Operating systems
By Sean E. Russell on on Permalink.
Every so often, I get frustrated with monolithic kernels. Forced reboots after kernel updates; unkillable processes; random hangs and reboots... it's all so pathological, and it drives me to go survey the state of microkernels in the hope that something... anything... has evolved enough to be usable.
: Minix 3 It's getting there. Slowly. The previous blocker was virtual memory, which I needed because I didn't have a machine I could put a "safe" amount of memory into. Ironically, now that I do have such a machine -- with more physical memory than I'm able to exhaust without being silly about it -- Minix has in the meantime gotten virtual memory. Hooray! Only now I discover that the x86 version doesn't support USB. At all. In a modern world where even displays are USB devices now, and certainly every other peripheral is, such a limitation would seem to make Minix 3 functionally unusable, except perhaps as a headless server. Assuming you don't want to attach a UPS to the Minix server, because, you know... UPS command-and-control has been over USB for decades. Ah, well. Maybe someday before I die.
: Managarm This one is new to me. It doesn't have any obvious limitations, but then it is hard to tell what it does or does not have, as half of the documentation is TBD. I'll probably give it a try, for the heck of it, but I can only hope the code is more complete than the documentation.
: HelenOS At the moment, it looks the most promising. It also looks like one of those "build everything from scratch" projects, which often suffer from trying to boil the world. From the documentation, it'd appear the authors do not expect anyone to run the OS anywhere but in QEMU, but we'll see.
: Redox OS Another interesting microkernel system, departing from the rest by being written in Rust. It's another boil-the-ocean, but seems younger than HelenOS and so may be less advanced. Unlike HelenOS, Redox says "go ahead! Install on a hard drive!" The filesystem is based loosely on ZFS, with the important bits implemented; btrfs would have been a better choice, but it could be worse. It takes the "everything is a file" concept from 9P and recasts it as "everything is a URL" which is pretty clever. I'm interested to see how that works out. My only concern is the likelihood that it won't be possible to build Go on it, and I refuse to develop in Rust.
: Haiku BeOS was always an interesting operating system, and Haiku has kept some of the more radical decisions, such as the filesystem-is-a-relational-database feature. The kernel is a monokernel, though, and I've become so used to mainly keyboard-driven interactions with my computers that it might be hard to switch to a mouse-dominant UI.
I think Redox and HelenOS both look promising. It's such a shame Minix is perpetually stuck in a limited feature-set state.