What Caused The Spectacular Failure of Machs Microkernel?
Having met the initial design goals of working as a multiprocessing, distributed system capable of functioning on heterogeneous hardware, the Mach project moved on to the next step: weaning BSD out of the kernel space entirely. Mach 3.0 was intended to be a true microkernel system that could support an external operating system (like BSD) living outside the kernel space. Theoretically, Mach would be even able to host multiple external operating systems at the same time. Attempts to accomplish this failed spectacularly. The performance issues involved with pulling operating system functions out of the kernel developed into an intractable problem. Designing and optimizing a microkernel in general was found to be outrageously complex. Further, the basic concept of a microkernel was found to be poorly suited to the needs of general purpose computing. While some microkernels work very well for what they were designed to do, it became increasingly obvious by the mid 90’s that the basic premi