4 ms·
To be fair, Linux evolves a lot since then. It's not as monolithic as it used to be - it has layers, modules, subsystems (vfs, usb), interfaces.
by vilda 12y ago
To be fair, Linux evolves a lot since then. It's not as monolithic as it used to be - it has layers, modules, subsystems (vfs, usb), interfaces.
- huherto 12y agoIt is a piece of history. It is also a great story. The young boy outshines the great scholar. I still think that Tanenbaum might have been right. But the forces of the open source movement were too great, beyond our wildest dreams and were able to overcome any design limitations. Also, Linus did an epic job technically and controlling the forces unleashed.
- justincormack 12y agoSo has Minix (now called minix3)[1], although more slowly than Linux. It is open source now, and still not monolithic. [1] http://minix3.org/ http://minix3.org/
- tormeh 12y agoIt's actually kind of cool. Seems to be very reliability-focused. Does anyone have any experience running production software on it?
- 0x420 12y agoNot sure about MINIX 3, but I remember from Andy's book that MINIX in general has been widely used for production code, typically embedded systems.
- rythie 12y agoIt'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...