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 communicate 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). This has been extended for demonstration purposes, however the default is still single-voice 8-bit. * 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 modified 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. Variable and function names should short and not overly verbose. No excessive code comments (the code is the documentation). * There is no line limit and integration of apps is allowed provided all code is public domain, no GPL, no MIT, etc. * Minimal abstraction is a goal. 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. * 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