Consider this a Request-For-Comments:
I am vaguely planning on writing an OS and
all supporting code as a learning exercise. Basically I plant to take a fairly simple system (probably a raspberry pi) and write an OS, boot loader, several (probably 2) programming languages, bare-metal runtimes for the languages, etc, etc.
I plant to start with IL:A (Implementation Language: A). This will be a simple threaded FORTH-like language designed to be run on bare metal with the express purpose of being easy to implement. IL:A will be written in whatever assembly the target supports, and will be designed to run on the target while being controlled remotely from my development machine.
IL:A will be used to write IL:B. IL:B will be focused on raw performance, with the objective of being used to write the OS kernel.
Once I have IL:B up and running I will use it to write the OS itself, starting with whatever piece I need most at that time. The OS will probably be some kind of micro kernel with as much as possible being run as separate (non-kernel) "service" processes communicating via passing messages through the kernel (possibly with secure semi-shared memory buffers of some kind). Basically the kernel will be a glorified memory manager, message passer, and process scheduler.
Needless to say POSIX compliance will not be considered at all
I may or may not get to this any time soon, currently I am in a very early concept stage.