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)