

Linux on the OSF Mach3 microkernel (1996) - sergiolp
http://bat8.inria.fr/~lang/hotlist/free/licence/fsf96/mklinux.html

======
sergiolp
While reading "LINUX is obsolete (1992)", this relatively unknown article has
come to my mind. It's a pretty good read about a real world implementation of
a microkernel architecture, and the tricks they had to do to obtain a
reasonable degree of performance (migrating threads, collocation...).

Here's a little background. In the 90's, the Open Software Foundation (OSF,
now part of The Open Group) was trying to build a common foundation for all
UNIXes (back then you weren't a cool IT company if you didn't have your own
UNIX OS, ask Microsoft).

As OSF/1, the (supposedly) reference implementation of UNIX, didn't gain
enough traction, they started working on OSF Mach. OSF Mach was intended to be
a small layer between the hardware and the OS _personality_ , so UNIX
companies didn't have to waste effort porting their code for every
architecture.

The idea was quite cool (you can think of it as an early form of
virtualization), but the initial results were quite disappointing on the
performance front (the paper talks about being 40% slower), so they started
implementing some tricks that, essentially, broke the microkernel architecture
while keeping the modularity. The most significant was collocation, also
called in-kernel servers, which put the OS personality in the same, privileged
space as Mach, so cross-space messages would become syscalls.

On 1995-1996, the OSF was asked by Apple to build a Linux version for their
PowerPC based machines (go figure), and MkLinux, a Linux personality running
OSF Mach (which the paper is talking about), was born.

Here's when history becomes a little confusing. We've all been told that
modern Mac OS X comes from NeXTSTEP source base, which was a CMU Mach+BSD OS
(while MkLinux was OSF Mach + Linux), but if you look at the early code from
XNU (OSX's kernel), you'll find an almost unmodified OSF Mach.

I suppose they took OSF Mach, which probably at that point was far more
advanced than CMU's, added the BSD bits from NeXTSTEP and finally complemented
it with the FreeBSD based IOKit.

~~~
rwmj
At the first startup I worked at, we used MkLinux as a way to recycle old
(pre-OS X) Macs. One of them was the company firewall for years, another was a
Usenet server. It was actually quite a reliable and capable distribution, and
of course far better than the crash-prone Mac OS 9 that previously ran on the
hardware.

------
bediger4000
I'm amazed at the variety of emulations/ports of various OSes to Mach:

VMS on Mach:
[http://dl.acm.org/citation.cfm?id=964616](http://dl.acm.org/citation.cfm?id=964616)
\- There's a PS version of this floating around, too.

MS-DOS on Mach:
[https://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/ab...](https://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/abstracts/dospaper.html)

I'm never sure whether NeXTStep counted as BSD running on top of Mach, or if
NeXT built it in to Mach.

