4 ms·
> Modern operating systems are all microkernel-ish to some extent. This won't become true even it gets repeated more. A micro kernel requires a micro kernel d
by still_grokking 4y ago
> Modern operating systems are all microkernel-ish to some extent.
This won't become true even it gets repeated more.
A micro kernel requires a micro kernel design form the ground up. (Something like FDs would be only one example of something where you would need different APIs…)
You can't make a micro kernel out of a monolith. That's one of the reasons something like Hurd failed, and something like macOS is a slow and buggy hell.
The story about the graphics drivers on Windows is also not true, afik. I've heard they moved this back into kernel space (with some special encapsulation) long ago because it was way to slow otherwise.
Because you can't move an existing design to be an micro kernel after the if your APIs are all designed for a monolith setting. Alone the fact that you need async "SysCalls" (or better said "ServerCalls") in a proper micro kernel design makes it impossible to make a micro kernel out of a monolith (where all SysCalls are usually sync, because it makes no sense to have an async layer for intra-process calls).
Also micro kernels aren't slow. The canonical link was posted already in a sibling.
The main point about micro kernels, and why they still more than matter, is not about bugs and crashes. The main point is about security. You can't have a secure monolith! The TCB would need to be way to large.
- ngcc_hk 4y agoA better word is non-monolithic.
- pjmlp 4y ago> The story about the graphics drivers on Windows is also not true, afik. I've heard they moved this back into kernel space (with some special encapsulation) long ago because it was way to slow otherwise. Yes, if you are stuck using a legacy installation of Windows NT 4 - Windows 7, instead of Windows Vista onwards. That move happened during Windows NT 3.51 to NT 4.0 transition, and was undone during Vista.
- still_grokking 4y agoThanks for clarifying.