3 ms·
One of the benefits of microkernels is supposed to be their resilience (since code that would otherwise be in the kernel is now in servers and can be restarted
by kybernetikos 13y ago
One of the benefits of microkernels is supposed to be their resilience (since code that would otherwise be in the kernel is now in servers and can be restarted if it goes wrong or upgraded in place without taking down the whole kernel).
That sounds like a pretty good practical benefit to me.
- nknighthb 13y agoResilience is the requirement. "Microkernel" is a possible means to an end, not the end itself.
- loup-vaillant 13y agoDo we know of any other mean?
- gaius 13y agoWell, if you have X units of effort (dollars, man-years, whatever) you can choose to allocate some of it to creating a mechanism for tolerating buggy drivers, and some to debugging the drivers. Micro- vs monolithic- in the real world is an argument over this exact allocation.
- rwmj 13y agoThere are two practical problems with microkernels: (1) Hardware. Some driver locks up your PCI bus. Your whole system grinds to a halt, whether it's a microkernel or not. This could probably be solved by having hardware that doesn't suck, but unfortunately here in the real world we've settled on the cheapest option, PC hardware which does suck. (2) Division of responsibilities. Some OS structures like the process table are inherently connected to multiple components (memory management, filesystem, etc). Doing process creation or fork in a microkernel results in a flurry of internal messages between the different parts which is hard to reason about and fragile. Minix especially suffered this problem.
- zurn 13y agoI don't know what you specifically mean by a driver locking up PCI (and we've moved on to PCIe now), but I suspect the general category of (1) is largely addressed by the io virtualization facilities and RAS features that have recently come to amd64 hardware. That stuff has existed on big iron hardware since times immemorial.