Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To quote that bastion of Jimmy Wales:

"Although Mach is often mentioned as one of the earliest examples of a microkernel, not all versions of Mach are microkernels.

The project at Carnegie Mellon ran from 1985 to 1994, ending in apparent failure with Mach 3.0, which was finally a true microkernel.

Mach and its derivatives are in use in a number of commercial operating systems, … most notably Mac OS X using the XNU operating system kernel which incorporates an earlier (non-microkernel) Mach as a major component.

Neither Mac OS X nor FreeBSD maintain the microkernel structure pioneered in Mach."[0]

[0]: https://en.wikipedia.org/wiki/Mach_(kernel)



I was one of the last Mach people at CMU. The BSD emulation on Mach 3.0 was implemented by stubs that made IPCs to the BSD emulation server, which then made additional Mach API calls to implement the UNIX semantics. This design was generally half as fast as an in-kernel implementation (e.g. Mach 2.5 or a commercial UNIX kernel). In the mid-90's we figured out how to make up the performance gap by refactoring the BSD emulation to put some code in the same address space as each application (ie in the libc .so), which allowed you to avoid the RPC to the emulation server in most cases (eg http://dl.acm.org/citation.cfm?id=168639). So I don't think it's fair to say that microkernel implementations of UNIX are inherently slow; instead I would argue that the simpleminded approach to UNIX emulation was the real problem.

None of this technology made it into a mainstream Mach distribution because the band broke up: Rick Rashid and his staff and students went off to work at Microsoft Research. Brian Bershad took over the project and then moved to University of Washington. It was also becoming clear in the mid-90's that the OS didn't really matter much anymore, since the big money was being made in Internet applications. So most of the hackers who might have worked on new operating systems during this time ended up working on application servers and web apps instead.


Anonymous HN readers, why the downvotes? I feel like Mach's wikipedia page succinctly answers the parent's question and gives some interesting background. Am I crazy?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: