I think history has proven that the microkernel people were right from a conceptual point of view, but maybe had some wrong ideas about how to implement one and what level to put abstractions.
The whole mess of VM hosts, hypervisors, containers, and container images is basically a messy half-baked microkernel architecture. A kernel running under another kernel with thin I/O abstractions (virtio, etc.) is sort of like a partition within a microkernel. VM hypervisor hardware pass-through is like allowing a microkernel service to drive one system component.
The fact that the market created all this shows that one monolithic kernel is insufficient from a security, permission management, and configuration management perspective at least if one assumes the limitations of Unix-like permissions and isolation.
I'm not necessarily saying Linus was wrong. Linus was right in the 1990s and from a "get it working and ship it" point of view.
The whole mess of VM hosts, hypervisors, containers, and container images is basically a messy half-baked microkernel architecture. A kernel running under another kernel with thin I/O abstractions (virtio, etc.) is sort of like a partition within a microkernel. VM hypervisor hardware pass-through is like allowing a microkernel service to drive one system component.
The fact that the market created all this shows that one monolithic kernel is insufficient from a security, permission management, and configuration management perspective at least if one assumes the limitations of Unix-like permissions and isolation.
I'm not necessarily saying Linus was wrong. Linus was right in the 1990s and from a "get it working and ship it" point of view.