Remix.run Logo
mrsvanwinkle 11 hours ago

plus 1 for Minix. that's how Linus learned OS, from Tanenbaum, and how their public monolithic vs microkernel rift began. iirc xv6 while monolithic also allows for a microkernel implementation (maybe not the ideal way to learn about microkernels) and also has a POSIX layer which fits your "resembles the POSIX world" req. unsure if one still requires learning compiling for strong type checking for IPC with microkernels (if learning for a diy build)

burnt-resistor 2 hours ago | parent [-]

Yeah, it was neat. Like "add a new process scheduling algorithm" as a class assignment. Good luck doing that in a complex, real OS or figuring it out in a contrived one that won't have relevancy to real OSes. At least MINIX is nominally UNIX/POSIX/C more or less and is somewhat related to ye olde UNIX design, internals, and software dev concepts, algorithms, and philosophy such that classic UNIX books are often helpful.

When seL4 came around, it helped me rethink microkernel architecture and limitations, especially IPC, security, and correctness. What is a mostly unsolved problem is coordinating a transaction and possible rollback of actions that touch multiple areas of responsibility without becoming a monolithic hybrid.