4 ms·
I was big into OS dev when Mach was coming around but I was a newbie. I read all the Mach papers with stars in my eyes, it all sounded so good. I wasn't alone
by luckydude 11y ago
I was big into OS dev when Mach was coming around but I was a newbie. I read all the Mach papers with stars in my eyes, it all sounded so good. I wasn't alone in getting drawn in by the research papers.
I went to Sun and learned how a kernel could work and could perform and the allure of Mach, for me, started to wane. Reading the mach code made it worse, especially compared to the Sun code.
All these years later, I remain underwhelmed. Linux has a nicer VM system, performs better, and is more readable. Not Sun level readable by any stretch, but better than my memory of mach (which, to be fair, is in the distant past).
If someone can point to actual real world data that shows Mach to be better performing on the same hardware I'd be interested in seeing that, I tend to think that's not possible.
If you want to see what a real microkernel done right looks like, go look at QNX before they added the POSIX conformance. You have 4-5 people logged into an 80286 doing work. Very, very light weight and well done. They were the only guys that understood what the "micro" in microkernel meant. I remember Dan Hildebrandt telling me that the microkernel easily fit in a 4K instruction cache (it pretty much had to, it didn't do much so you needed some space for whatever it was dispatching).
- oscargrouch 11y agoAs someone that loves to dig into source code to see how things are done... Solaris source is the state-of-the-art. If there's a "beautiful" kernel, Solaris is definitely the one. QNX also is one very well made kernel(its like a OS created by a zen master). It's a pity that sun took so long to open the source of Solaris, or else i could be typing this from a solaris kernel, instead of Linux.
- snw 11y agowell... there is illumos
- oscargrouch 11y agoThe solaris source code was open, i believe in 2005.. then came OpenSolaris in 2008.. and then the Illumos fork, if i recall correctly in 2010, after Oracle bought Sun.. But even in 2005, when they decided to open the source, it was already too late, because Linux was already a big hit by that time. But, to use Illumos as a first machine, can be really painful, exactly because of the lack of adoption, and the lack of drivers and software as a consequence... that's the reason of my comment about the time to open the code.. and Oracle closing it up again, didnt help it either. I would definetly consider Ilummos as a server node.. but for a personal machine.. it can get painful really easy, if you use for development like i do.
- maaku 11y agoPerformance with Mach is not possible. Modern microkernel research has moved on to architectures like L4 which are much better in that regard. I have no idea what the "mach" at the heart of OS X is, but I'm sure it is not the Mach as described in the literature (anymore).
- nickpsecurity 11y agoIt's called Darwin: Mach + kernel-mode components for things like graphics and networking + some modifications. Mach used straight-up as a microkernel wouldn't have been fast enough. I've heard people on their developer side admit Mach was a mistake and want to ditch it. Just would be hard at this point. Animats and I both thing QNX was the best microkernel of the period, used successfully from embedded to [briefly] desktop prototypes. Managed to get microkernel advantages while being fast and deterministic. People working on new one's should take lessons from them. INTEGRITY RTOS's have some nice design choices, too, like making apps donate their own resources to kernel functions they call and using only predictable instructions in critical paths. Mach is crap compared to the competition. Despite all the attempts to make it not so.
- maaku 11y agoHave you tried L4?
- nickpsecurity 11y agoIt was lightening-fast but too primitive & had weaknesses. Something like EROS (capability-secure kernel) or INTEGRITY-178B (separation kernel) were more ideal. Back when I was implementing, I did work with L4 (esp OKL4) based on the Nizza Security Architecture: http://genode-labs.com/publications/nizza-2005.pdf http://genode-labs.com/publications/nizza-2005.pdf Case study for a secure, IPsec VPN with Nizza below: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B12EF1739E0D9515BC0B892BC05833BB?doi=10.1.1.65.6309&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B12... Applied to secure filesystems https://www.usenix.org/legacy/event/atc11/tech/slides/weinhold.pdf https://www.usenix.org/legacy/event/atc11/tech/slides/weinho... You can do a lot with that model whether you use a recent L4 kernel or some other microkernel. If you're into that stuff, I'd say check out the GenodeOS project at genode.org. Unlike most, their OS is using as many robust components from academia as possible while attempting to integrate them into something usable. They have a microkernel, a resource architecture, Nitpicker GUI, and so on. It needs help wherever people can get it.
- nickpsecurity 11y agoI agree that it looked good at the time far as open stuff goes. I looked at it in terms of INFOSEC research. I followed all the attempts to make high-security, microkernel platforms based on it and variants. These included Trusted Mach (TMach), Distributed TMach, DTOS, and so on. That line of research led to Flask architecture, bases of SELinux. It also fed into decisions by Cambridge team to do capability-based, app sandboxing with Capsicum vs prior methods like MAC & microkernels. That's been applied to FreeBSD, CheriBSD, and Apple's stuff. So, there were lots of interesting papers and work on it. Anyone could've gotten sucked in. After a while, though, it became clear that Mach was a bad track with research shifting to L4 and commercial microkernels (esp RTOS, sep kernels). Torch passed to groups like Dresden and NICTA. Relevant to your QNX claims: https://news.ycombinator.com/item?id=10483544 https://news.ycombinator.com/item?id=10483544 https://web.archive.org/web/20011106140711/http://www.qnx.com/demodisk/how.html https://web.archive.org/web/20011106140711/http://www.qnx.co...