In 2007, after years of reading about OS development & writing only toy projects in that vein, I wrote my first ‘serious’ small OS — serious in the sense that it used protected mode, had a filesystem, & had a marginally-usable UI. Three years later, I wrote another OS incorporating the lessons I learned from the first. Both of these projects are failures as usable OS projects but successes in other ways.
I’d like to describe them, briefly, in case they might be of interest to other aspiring osdev hobbyists (if only as a warning). I’d also like to describe them in order to indulge in a bit of reminiscence: writing OS experiments is time-consuming, even when they are this small, and while I found the experience enjoyable, I no longer have the spare energy to work on such things — full-time employment has made it impossible.
Both of these projects incorporated Project Xanadu ideas as I understood them at the time. My understanding of these ideas was largely incorrect. For an accurate overview of them from a technical perspective, I recommend reading my essay on the subject. I will not be covering the actual concepts I mis-understood except shallowly (to illuminate the ways in which my implementations differed from them).
The history I sketch is from memory, and I haven’t made an effort to verify beyond looking at commit history. So, circumstances I describe are largely a description of my understanding at the time, filtered through a…