Mach

Chris Hanson cmhanson at eschatologist.net
Sun Jan 5 17:21:32 CST 2020


On Jan 5, 2020, at 2:30 PM, Guy Sotomayor via cctalk <cctalk at classiccmp.org> wrote:
> 
> It did seem for a while that a lot of things were based on Mach, but
>> 
>> very few seemed to make it to market. NeXTstep and OSF/1, the only
>> version of which to ship AFAIK was DEC OSF/1 AXP, later Digital UNIX,
>> later Tru64.
> 
> Yes, a lot of things were based on Mach. One OS that you're forgetting
> is OS X. That is based upon Mach 2.5.

Nope, Mac OS X 10.0 was significantly upgraded and based on Mach 4 and BSD 4.4 content (via FreeBSD among other sources). It was NeXT that never got beyond Mach 2.5 and BSD 4.2. (I know, distinction without a difference, but this is an issue of historicity.)

I think only some of the changes from Mach 2.5→3→4 made it into Mac OS X Server 1.0 (aka Rhapsody) so maybe that’s what you’re remembering.

>> MkLinux didn't get very far, either, did it?
>> 
> 
> I think that was the original Linux port for PPC.

It was the original Linux port for NuBus PowerPC Macs at least. It was never really intended to “get very far” in the first place, it was more of an experimental system that a few people at Apple threw together and managed to allow the release of to the public.

MkLinux was interesting for two reasons: It documented the NuBus PowerMac hardware such that others could port their OSes to it, and it enabled some direct performance comparisons of things like running the kernel in a Mach task versus running it colocated with the microkernel (and thus turning all of its IPCs into function calls). Turns out running the kernel as an independent Mach task cost 10-15% overhead, which was significant on a system with a clock under 100MHz. Keep in mind too that this was in the early Linux 2.x days where Linux “threads” were implemented via fork()…

I don’t recall if anyone ever did any “multi-server” experiments with it like were done at CMU, where the monolithic kernel were broken up into multiple cooperating tasks by responsibility. It would have been interesting to see whether the overhead stayed relatively constant, grew, or shrank, and how division of responsibility affected that.

  — Chris




More information about the cctalk mailing list