Comment by nobodyandproud
3 days ago
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.
3 days ago
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.
Windows Vista isn't Windows NT 3.x. In the internal versioning, it's not even 4.0.
Indeed, it is something better, Windows NT 6.0.
And it is irrelevant anyway, given that this comment was written from 10.0.26100.
2 replies →
What do you meant by them sidestepping the HAL?
I think the biggest one is that the whole GDI library was moved into the Kernel in 3.5x because the performance was terrible at the time.
I don't think they ever intended to keep all drivers strictly userland, though. Just the service side.
Mind you I don't have access to Microsoft code, so this is all indirect, and a lot of this knowledge was when I was fledgling developer.
The Windows NT code was engineered to be portable across many different architectures--not just X86--so it has a hardware abstraction layer. The kernel only ever communicated to the device-driver implementation through this abstraction layer; so the kernel code itself was isolated.
That doesn't mean the device drivers were running in user-land privilege, but it does mean that the kernel code is quite stable and easy to reason about.
When Microsoft decided to compromise on this design, I remember senior engineers--when I first started my career--being abuzz about it for Windows NT 4.0 (or apparently earlier?).