Microkernels are a much more viable way of solving security problems in an operating system. Windows and Linux could both be rewritten as microkernels within a couple of months or years.
Windows and Darwin (MacOS) were originally designed to be hybrid kernels, but compromised by allowing more and more stuff into kernel space until they were the monolithic kernels we know today. Changing code built up over 20-30 years while maintaining compatibility, security, and performance guarantees is not something which could be accomplished in a couple of months.
Early versions of Windows NT WAS a 100% honest microkernel OS. Microsoft abandoned that approach when they realized they had zero chance of being competitive with Unix with a microkernel architecture.
Darwin was never intended to be anything except what it is, which is a monolithic kernel. The XNU kernel was based on FreeBSD kernel and Mach kernels. Some versions of the Mach kernel were microkernel, but many were not.
Both NT and XNU incorporate message passing features from microkernels, but they are monolithic in that they are essentially a single large process.
"Hybrid kernel" is more of a marketing thing than an engineering term.
Microkernels are a dead-end and never stopped being a dead end. It's a lovely idea that didn't work out. They had limited commercial success in embedded systems, but only because those embedded systems didn't actually do very much and what they did was largely not performance critical.
> Microkernels are a dead-end and never stopped being a dead end. It's a lovely idea that didn't work out. They had limited commercial success in embedded systems, but only because those embedded systems didn't actually do very much and what they did was largely not performance critical.
VMware's vmkernel? VFIO/Kernel-bypass? Shoving things into kernel space does not guarantee good performance by any means, and it murders security.
The Hurd is actually older than Linux now at a ripe age of 32, although I think it was Mendel Rosenblaum that said "hypervisors/machine monitors were microkernels done right".
Modern hypervisors are more or less modeled on microkernels, not the other way around. Microkernels are just naturally a good fit for hypervisors, hence why nearly all commercial microkernels have an embedded hypervisor solution.