Nothing is ever a separate module in kernel space. A single bad driver can bring down the entire system |
Agreed, and it happens in monolithic systems quite often.
That is why you should never trust Linux or Windows in life-critical systems.
This is a perfect example, how C and C++ are bad languages for large scale systems: a single module can bring down the whole system. So large systems, even though simple conceptually(kernel + API + lots of independent drivers), become complex. In functional languages, simple conceptually systems, remain simple. Thus it scales much better. First, there is no possibility for a module to access something it is not intended to do. Second, if the module fails, or perform something it is not allowed to do, just kill that module. Functional languages are great at isolating complexity.
I will just say that so far there have been no successful attempts at building OSs using unorthodox practices. That is all. |
There have been. Or you have a different definition of successful. For me successful != popular.
There have been successful research projects showing it can be done and there is point in doing that. The popularity is often driven by historical reasons, not the technical ones. It would be insane to switch now to some new, research operating system, regardless it is written in C, Java, .NET or LISP. Just see how hard it is for Linux to break through the Windows monopoly. Should we say that Linux is not a successful system?