Xinu – A small, elegant operating system
I browsed the source code a bit.   Some interesting finds:<p>* The code is pretty simple and clean, clearly for educational purpose.<p>* There's no memory protection.  All processes share the same memory space, along with the kernel.<p>* No virtual memory, nor page table.<p>* No notion of ring protection.  The kernel and the processes run in the same ring.<p>* Max number of processes is 8.  The process table is a fixed size array, of 8 entries.<p>* Context switch can be preemptive, driven by the clock interrupt.<p>* Process scheduling is round-robin, first in first run.<p>* Process priority is supported.  Each priority has its own ready queue.  All processes of the highest priority are run first in round-robin fashion, before running the next priority level.<p>* "Program" is just a function.  All "programs" in the system have their starting functions hardcoded in the shell's cmdtab[], like cat, ping, etc.  Executing ping is just creating a process with the address of the ping function.<p>* Loading a program from disk to run doesn't seem to be supported.<p>* The local file system is based on RAM block device.  Accessing data on actual disk doesn't seem to be supported.