mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-06-07 08:14:48 +00:00
Charter update
This commit is contained in:
parent
c7c5497a84
commit
8d24d35e0d
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,38 +1,32 @@
|
||||
$FG,5$$WW,1$$TX+CX,"ZenithOS Charter"$$FG$
|
||||
|
||||
* God said $FG,2$640x480 16 color$FG$ graphics is a covenant like circumcision. Children will do offerings. Think of 16 colors like the Simpson's cartoons. In the future, even if one GPU were universal, we would still keep 640x480 16 color and not use GPU acceleration. Graphics operations should be transparent, not hidden in a GPU.
|
||||
* The vision is the same usage model and niche as the Commodore 64 -- a simple machine where programming was the goal, not just a means to an end. However, it is modern, 64-bit and $FG,2$multi-cored$FG$. It is special purpose, not general purpose, so some things it will not do. Also, it's a kayak, not a Titanic. The priority is $FG,2$user developers$FG$, not $FG,2$3rd party developers$FG$.
|
||||
|
||||
* God said to use a single-voice 8-bit signed MIDI-like sample for sound. God does not want death screams, perhaps, because God has PTSD or soldiers have PTSD. (Imagine wounded on battlefields.)
|
||||
* $FG,4$We don't think twice about breaking compatibility. $FG$ We do not put any hooks for future changes. "Perfect" means we always act as though it is final, for all time. Microsoft allowed the $FG,2$$TX,"Windows BMP",HTML="http://en.wikipedia.org/wiki/BMP_file"$$FG$ file format to adapt to the future and it became grotesque.
|
||||
|
||||
* God said His temple must be perfect. $FG,4$We don't think twice about breaking compatibility.$FG$ God said we do a seven year release cycle. I say the PC hardware follows a 49 year, jubilee cycle, like broadcast TV upgrades.
|
||||
* Low line count and code complexity is the highest good, so it is easy to learn the whole thing. Users should see the light at the end of the tunnel. One file system, for example, is better than many file systems.
|
||||
|
||||
* The vision is the same usage model and niche as the Commodore 64 -- a non-networked, simple machine where programming was the goal, not just a means to an end. However, it is modern, 64-bit and $FG,2$multi-cored$FG$. It is special purpose, not general purpose, so some things it will not do. Also, it's a kayak, not a Titanic. The priority is $FG,2$user developers$FG$, not $FG,2$3rd party developers$FG$.
|
||||
|
||||
* We do not put any hooks for future changes. "Perfect" means we always act as though it is final, for all time. Microsoft allowed the $FG,2$$TX,"Windows BMP",HTML="http://en.wikipedia.org/wiki/BMP_file"$$FG$ file format to adapt to the future and it became grotesque.
|
||||
|
||||
* Low line count is the highest good, so it is easy to learn the whole thing. Users should see the light at the end of the tunnel. One file system, for example, is better than many file systems.
|
||||
|
||||
* There is a limit of 100,000 lines of code for all time, not including applications and demos. $FG,4$Code comments count$FG$, however. Currently, there are $TX,"80,849",D="DD_TEMPLEOS_LOC"$ lines of code. $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit. The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell that is no longer blissful.
|
||||
* There is a limit of 100,000 lines of code for all time, not including applications and demos. Currently, there are $TX,"80,849",D="DD_TEMPLEOS_LOC"$ lines of code. $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit. The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell that is no longer blissful.
|
||||
|
||||
* The metric for resolving all ZenithOS code governance issues is how fast the compiler compiles itself and the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$(). The $LK,"CosmiC",A="FI:::/Doc/CosmiC.DD"$ language should be changed to optimize this metric, as I did when I changed type casting from prefix standard C to postfix $LK,"CosmiC",A="FI:::/Doc/CosmiC.DD"$, but we need a rule to prevent degenerating into a brainfuck language.
|
||||
|
||||
* Minimal abstraction is a goal. Sheep are fools. They always respect a design that is more complicated than another. Any genius can make it complicated. Like in physics, it takes a supra-genius to make it simple.
|
||||
|
||||
* It is for one platformc -- $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles.
|
||||
* It is for one platform -- $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles.
|
||||
|
||||
* All hardware access will be done through x86 IN/OUT instructions, not PCI drivers. A frame buffer for VGA is an exception.
|
||||
|
||||
* One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare for user applications and what is gained? A three buuton mouse is like a leg you cannot put weight on.
|
||||
* One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare for user applications and what is gained?
|
||||
|
||||
* $FG,2$Ring-0-only$FG$. Everything runs in kernel mode, including user applications.
|
||||
|
||||
* $FG,4$No wireless$FG$ communications. Only wired communications like Ethernet and Serial IO will be used.
|
||||
|
||||
* $FG,4$No GPU$FG$. We want one processing platform, the CPU, for everything.
|
||||
|
||||
* Full access to everything. All memory, I/O ports, instructions, and similar things must never be off limits. All functions, variables and class members will be accessible. There are no C++ $FG,2$public$FG$/$FG,2$private$FG$ protections and all functions, even secondary ones in the kernel, can be called.
|
||||
|
||||
* $FG,2$Single-address-map$FG$ as though paging is not used. Long mode requires paging, however, so the nearest thing is keeping all memory $FG,2$identity-mapped$FG$.
|
||||
|
||||
* $FG,4$No networking$FG$, so malware is not an issue.
|
||||
|
||||
* No encryption or passwords. Files are compressed, not encrypted.
|
||||
* No encryption or passwords.
|
||||
|
||||
* $FG,2$Free$FG$ and $FG,2$public domain$FG$.
|
||||
|
||||
@ -50,7 +44,6 @@ $FG,8$
|
||||
* "Windows" is a trademark owned by MicroSoft Corp.
|
||||
$FG$
|
||||
|
||||
|
||||
$FG,5$$WW,1$$TX+CX,"Possible Amendments"$$FG$
|
||||
|
||||
The compiler's parser makes RISC code which it optimizes to CISC. I discovered this does not matter because the CPU converts it back to RISC and schedules it, internally. A ZenithOS zealot with more zeal than I, might say we should save lines-of-code by removing the CISC optimizing.
|
||||
|
Binary file not shown.
BIN
src/Kernel.BIN.C
BIN
src/Kernel.BIN.C
Binary file not shown.
@ -168,7 +168,7 @@ U0 GrInit2()
|
||||
HashDefineListAdd("ST_SPRITE_ELEM_CODES",SPHT_ELEM_CODE,gr.sprite_hash);
|
||||
gr.screen_zoom=1;
|
||||
|
||||
PaletteSetDark;
|
||||
PaletteSetPastel;
|
||||
|
||||
gr.to_8_bits =MAlloc(256*sizeof(I64));
|
||||
gr.to_8_colors=MAlloc(256*sizeof(I64));
|
||||
|
Loading…
x
Reference in New Issue
Block a user