Comment by DowsingSpoon
2 days ago
Yes. As far as kernels go, NT was pretty damn good.
So is Mach, by the way, if you can afford the microkernel performance overhead.
2 days ago
Yes. As far as kernels go, NT was pretty damn good.
So is Mach, by the way, if you can afford the microkernel performance overhead.
Mach is not a very good microkernel at all, because the overhead is much higher than necessary. The L4 family’s IPC design is substantially more efficient, and that’s why they’re used in actual systems. Fuchsia/Zircon have improved on the model further.
Someone will of course bring up XNU, but the microkernel aspect of it died when they smashed the FreeBSD kernel into the codebase. DriverKit has brought some userspace drivers back, but they use shared memory for all the heavy lifting.
> Mach is not a very good microkernel at all, because the overhead is much higher than necessary. The L4 family’s IPC design is substantially more efficient, and that’s why they’re used in actual systems.
As opposed to Mach, which is not used in any actual systems
I mentioned XNU below. It doesn’t really count as a microkernel if you, you know, don’t actually use the microkernel part. At least for the 30 years between the FreeBSD collision and the introduction of DriverKit, which does most of its IPC through shared memory (because the mach ports are not efficient enough, I would assume).
1 reply →
XNU monolith-ized itself over time, even over some microkernel-esque boundaries.
If you include all the drivers too (which surely makes the comparison more accurate), is that still the case?
Windows NT 3.x was a true microkernel. Microsoft ruined it but the design was quite good and the driver question was irrelevant, until they sidestepped HAL.
The Linux kernel was and is a monstrosity.
This is outdated since Windows Vista, and even more so in Windows 11.
4 replies →
What do you meant by them sidestepping the HAL?
2 replies →