Xinu – A small, elegant operating system
I browsed the source code a bit.   Some interesting finds:* The code is pretty simple and clean, clearly for educational purpose.* There's no memory protection.  All processes share the same memory space, along with the kernel.* No virtual memory, nor page table.* No notion of ring protection.  The kernel and the processes run in the same ring.* Max number of processes is 8.  The process table is a fixed size array, of 8 entries.* Context switch can be preemptive, driven by the clock interrupt.* Process scheduling is round-robin, first in first run.* 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.* "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.* Loading a program from disk to run doesn't seem to be supported.* The local file system is based on RAM block device.  Accessing data on actual disk doesn't seem to be supported.