3 ms·
It's still fundamentally monolithic though, a crash in a module or subsystem still brings the entire system down. The point of a microkernel is to bring the sub
by rythie 12y ago
It's still fundamentally monolithic though, a crash in a module or subsystem still brings the entire system down. The point of a microkernel is to bring the subsystems into user space, where a crash can be tolerated.
Linux essentially is made stable by the sign-off/code-review/sub-system maintainers which keep the code quality high.
- tbrownaw 12y agoIt really depends what you mean by "monolithic". Properly I would think it should refer to program structure, and how well independent pieces of code are (logically) separated and able to tolerate failures in eachother. Here it's just being used to mean "single unprotected address space", where a particular class of bugs (memory corruption) can cause arbitrary problems in completely unrelated code. Would this mean that a kernel written in some managed memory-safe language (I think msft has an experimental C# one) cannot possibly be monolithic?
- rythie 12y agoI mean monolithic in terms of what the argument was about. Monolithic Kernels can't generally be written in a managed memory-safe language, because it's the kernel that does the memory-safe part. With a microkernel, parts can be written in memory-safe languages, that's why Singularity has to use one: http://en.wikipedia.org/wiki/Singularity_%28operating_system%29 http://en.wikipedia.org/wiki/Singularity_%28operating_system...