TinkerOS Charter

Why make TinkerOS? TempleOS is a unique operating system, one man's attempt to make something pleasing to God. This OS really shines when run baremetal on a real machine, but sadly the number of machines that can run it is growing increasingly small. TinkerOS attempts to maintain a backwards compatible TempleOS like experience with the ability to run it on more machines. * TinkerOS is not a temple to God. If you want to communitcate with God, pray, do not expect Him to respond to you by spamming a random number generator for random words. * The TinkerOS default is 640x480 16 color graphics out of respect for Terry and maintaining a TempleOS like look and feel. You are free to use higher resolutions and 254 different colors if you want. * Single-voice 8-bit signed MIDI-like samples for sound (because that is what TempleOS apps expect to have available). * TinkerOS attempts to be backwards compatible with TempleOS to the maximum extent possible. It can compile the TempleOS compiler and kernel, can install TempleOS and the TempleOS userspace (Adam) can even run on top of a modifed TinkerOS kernel (this is how the USB boot version of TempleOS works). * TinkerOS shall be able to run the vast majority of the TempleOS OS Test Suite. * TinkerOS will restore some previously deprecated, but useful TempleOS apps and features. * In order to make TinkerOS able to run on more machines it was necessary to switch from using the VGA registers (which some newer video card no longer support) to VBE graphics modes. For this reason some apps and 3rd party apps which attempt to directly write the VGA registers or take direct control of the display do not work. * 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. * 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 no line limit and integration of apps is allowed. * 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 -- x86_64 desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles. * Ring-0-only. Everything runs in kernel mode, including user applications. * 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. * 100% open source with all source included. * 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. * See also the TempleOS Charter