During the Fall ‘07 semester, I took the Operating Systems class at Carnegie Mellon University. It was a partner project to write a full operating systems kernel from scratch that I completed with Will Constable (CMU ECE ‘09). Using simics, we designed and implemented the kernel in C to run on x86 hardware. We went from a specification document to a documented implementation by the deadline. The project was managed by source control.
We implemented all basic aspects of a kernel: managing virtual memory, forking and executing processes, managing interrupts, our own scheduler with context switching, and a basic display driver. In the end, the system had a handful of known issues, but was as robust as we could make it in the given time constraints.
A floppy image of the final system can be found here. NOTE: By downloading and flashing the image you assume all responsibility for any damage caused by the image or the data within the image. In particular, if you have hardware that requires specific OS support to handle system fans, this OS will fry your system.