The jury is still out on microkernels being "gravely ill-advised". Fuchsia, for example, is a modern microkernel that works quite well.
The performance concerns that famously killed the microkernel hype are very old at this point. Modern hardware significantly reduces IPC overhead. And lots of the modern application stack (e.g. multiprocess browsers) essentially cobble together microkernel primitives out of comparatively-clunky OS features (e.g. cmsg on Unix).
I think most of Linux's success relative to microkernel designs was due to being in the right place at the right time, not due to any fundamental technical factors.
It might be for some things like performance but they're very successful for small, reliable OS's in embedded scene. Tanenbaum cited a bunch in round 2 of the debate with Torvalds:
> Modern hardware significantly reduces IPC overhead.
In case you see this comment 5 days later, can you elaborate? And do the benefits of modern hardware in this area automatically apply to IPC on existing mainstream systems, or does the OS have to specifically use the new support?
> The jury is still out on microkernels being "gravely ill-advised". Fuchsia, for example, is a modern microkernel that works quite well.
They could have said "gravely ill-adopted". You know what they meant and are grinding your personal axe here... Microkernels for all their promise aren't in widespread use. Engineers with a resume headline "I build monolithic kernel operating systems for fun" vs "I build microkernel operating systems for fun" will have significant hiring delta biased towards the monolithic specialists.
> Microkernels for all their promise aren't in widespread use.
Ah, you haven't heard about MINIX, the operating system used in the ME in modern Intel chipsets and possibly now one of the most widely deployed operating systems on the planet.
It would be worse if it were a monolithic kernel. If you're going to deploy an always-on OS in the firmware, you should at least use an OS that obeys a sensible principle of least privilege.
> Engineers with a resume headline "I build monolithic kernel operating systems for fun" vs "I build microkernel operating systems for fun" will have significant hiring delta biased towards the monolithic specialists.
The performance concerns that famously killed the microkernel hype are very old at this point. Modern hardware significantly reduces IPC overhead. And lots of the modern application stack (e.g. multiprocess browsers) essentially cobble together microkernel primitives out of comparatively-clunky OS features (e.g. cmsg on Unix).
I think most of Linux's success relative to microkernel designs was due to being in the right place at the right time, not due to any fundamental technical factors.