ZealOS Charter * 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 multi-cored. 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 user developers, not 3rd party developers. * We don't think twice about breaking compatibility. 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 Windows BMP file format to adapt to the future and it became grotesque. * Low line count and low 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. * There is a limit of 100,000 lines of code for all time, not including applications and demos. Currently, there are 98,675 lines of code. 3rd party libraries are banned from being required 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 primary metric for resolving all ZealOS code governance issues is how fast the compiler compiles itself and the kernel with BootHDIns(). The secondary metric is how understandable the code is. The ZealC language should be changed to optimize these metrics, as Terry Davis did when he changed type casting from prefix to postfix. * 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 platform -- x86_64 desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles. * One driver for each class of device. The only exceptions are networking, sound, and keyboard/mouse. With divergent device capabilities, it is a nightmare for user applications and what is gained? * Ring-0-only. Everything runs in kernel mode, including user applications. * No wireless communications. Only wired communications like Ethernet and Serial IO will be used. * No GPU. 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++ public/private protections and all functions, even secondary ones in the kernel, can be called. * Single-address-map as though paging is not used. Long mode requires paging, however, so the nearest thing is keeping all memory identity-mapped. * Free and public domain operating system code. Bootloaders of other open-source licenses (Grub, Limine, etc) are permitted. The Public Domain ZealOS HDD/DVD Bootloaders written in ZealC must always be kept functional, must always be offered as a bootloader option during BIOS-mode install, and must always be included in Distro ISOs. * 100% open source operating system code with all source included. Bootloaders are excluded from this requirement. * Documents are not for printing. They're dynamic, intended for the screen. * Just one 8x8 fixed-width font. No Unicode, just Extended ASCII. Other countries can make their own versions. The versions should be just for one language and platform. * Fully self-hosted self-reproducing functionality on bare-metal and in VMs, primarily via AHCI ATAPI burned CD/DVD discs (.R/W). * "Commodore 64" is a trademark owned by Polabe Holding NV. * "Windows" is a trademark owned by MicroSoft Corp. Possible Amendments The compiler's parser makes RISC code which it optimizes to CISC. Terry Davis discovered this does not matter because the CPU converts it back to RISC and schedules it, internally. A ZealOS zealot with more zeal might say we should save lines-of-code by removing the CISC optimizing.