Difference between revisions of "Mach"

From Computer History Wiki
Jump to: navigation, search
m (Fixed a few typos)
(Proper cat, +links)
Line 9: Line 9:
 
| architecture = [[m68k]], [[i386]], [[POWER]], [[HPPA]], [[Sparc]]
 
| architecture = [[m68k]], [[i386]], [[POWER]], [[HPPA]], [[Sparc]]
 
}}
 
}}
Mach was the microkernel from CMU that popularized the microkernel craze of the late 1980's and into the 1990's.  While seen as a dead end effort, it did at the time bring in many new things to the aging Unix kernel. Mach, based loosely on [[BSD]] was a low level kernel adding threads insteads of forked processes, and had the ability to run on SMP hardware. BSD was then ported back as a user process ontop of the Mach micro kernel.
+
 
 +
Mach was the [[microkernel]] from CMU that popularized the microkernel craze of the late 1980's and into the 1990's.  While seen as a dead end effort, it did at the time bring in many new things to the aging [[UNIX|Unix]] [[kernel]]. Mach, based loosely on [[BSD]] was a low level kernel adding [[thread]]s insteads of forked [[process]]es, and had the ability to run on SMP hardware. BSD was then ported back as a user process on top of the Mach micro kernel.
  
 
== Mach Operating Systems ==
 
== Mach Operating Systems ==
  
Some of the operating systems that used Mach were [[NeXTSTEP]]/[[OPENSTEP]] & [[OSF/1]].  The [[GNU Hurd]] project also used Mach at one point before abandoning it for [[L4]]. There was even some 'free' verions of Mach that started to ship after the opening up of the [[BSD]] source code.
+
Some of the [[operating system]]s that used Mach were [[NeXTSTEP]]/[[OPENSTEP]] & [[OSF/1]].  The [[GNU Hurd]] project also used Mach at one point before abandoning it for [[L4]]. There was even some 'free' verions of Mach that started to ship after the opening up of the [[BSD]] source code.
  
 
After 1994 Mach 3.0 was picked up by the University of Utah, who released Mach 4.0, and the [[OSKit]].  Then they focused on L4.
 
After 1994 Mach 3.0 was picked up by the University of Utah, who released Mach 4.0, and the [[OSKit]].  Then they focused on L4.
Line 21: Line 22:
  
 
== Servers ==
 
== Servers ==
Mach could run various 'server' programs that would then provide an operating system personality to the user.
+
 
 +
Mach could run various '[[server]]' programs that would then provide an operating system personality to the user.
  
 
=== Lites ===
 
=== Lites ===
 +
 
One of the more popular servers was Lites.  It was a BSD based personality that could then run early versions of NetBSD & FreeBSD.
 
One of the more popular servers was Lites.  It was a BSD based personality that could then run early versions of NetBSD & FreeBSD.
  
 
== Criticism ==
 
== Criticism ==
Mach was seen as unnecesary as its main idea of running multiple servers hardly ever happened.  Most projects based on Mach only ran a single server.  Also every time a program made a system call it had to transition through the kernel to talk to the 'server' process, which had to go thru mach again to do whatever it was, then back to the server, then thru mach again to talk to the program.  The overhead system call was was significant, and a way was never developed to bring the LPC calls down to something comparable to an older monolithic style OS.  This is why XNU (the Nextstep/Openstep/Darwin/OSX kernel) used mach as a library rather then as a full blown microkernel.
 
  
The rise if Linux also showed that a restructured monolithic kernel could not only scale on SMP hardware, but could remain portable.
+
Mach was seen as unnecesary as its main idea of running multiple servers hardly ever happened.  Most projects based on Mach only ran a single server. Also every time a program made a [[system call]] it had to transition through the kernel to talk to the 'server' process, which had to go thru Mach again to do whatever it was, then back to the server, then thru Mach again to talk to the program.  The overhead of the system call was was significant, and a way was never developed to bring the LPC calls down to something comparable to an older monolithic style OS.  This is why XNU (the Nextstep/Openstep/Darwin/OSX kernel) used Mach as a [[library]] rather then as a full blown microkernel.
 +
 
 +
The rise of Linux also showed that a re-structured monolithic kernel could not only scale on SMP hardware, but could remain portable.
  
 
== Getting it to run ==
 
== Getting it to run ==
 +
 
Installing Mach on the PC is not a task for the timid.  It is VERY involved and difficult.  I have decided to provide an image [http://vpsland.superglobalmegacorp.com/install/MachUK22-lites-nat.zip here].  I may document the install later, but it is extremly complex.
 
Installing Mach on the PC is not a task for the timid.  It is VERY involved and difficult.  I have decided to provide an image [http://vpsland.superglobalmegacorp.com/install/MachUK22-lites-nat.zip here].  I may document the install later, but it is extremly complex.
{{stub}}
+
 
 +
{{semi-stub}}

Revision as of 00:50, 20 October 2018


Mach
Mach 2.5 with Lites on NetBSD.png
Logging into a Mach/Lites/NetBSD system
Type: Multitasking, multiuser
Creator: CMU
Architecture: m68k, i386, POWER, HPPA, Sparc
This Version: 3.0 (1994)
Date Released: 1985


Mach was the microkernel from CMU that popularized the microkernel craze of the late 1980's and into the 1990's. While seen as a dead end effort, it did at the time bring in many new things to the aging Unix kernel. Mach, based loosely on BSD was a low level kernel adding threads insteads of forked processes, and had the ability to run on SMP hardware. BSD was then ported back as a user process on top of the Mach micro kernel.

Mach Operating Systems

Some of the operating systems that used Mach were NeXTSTEP/OPENSTEP & OSF/1. The GNU Hurd project also used Mach at one point before abandoning it for L4. There was even some 'free' verions of Mach that started to ship after the opening up of the BSD source code.

After 1994 Mach 3.0 was picked up by the University of Utah, who released Mach 4.0, and the OSKit. Then they focused on L4.

The GNU project had taken a version of Mach, and used the GNU license to 'gnu-ify' mach and produce GNUMach. While Windows NT may share design ideas with Mach, it is NOT a derived Mach microkernel.

Servers

Mach could run various 'server' programs that would then provide an operating system personality to the user.

Lites

One of the more popular servers was Lites. It was a BSD based personality that could then run early versions of NetBSD & FreeBSD.

Criticism

Mach was seen as unnecesary as its main idea of running multiple servers hardly ever happened. Most projects based on Mach only ran a single server. Also every time a program made a system call it had to transition through the kernel to talk to the 'server' process, which had to go thru Mach again to do whatever it was, then back to the server, then thru Mach again to talk to the program. The overhead of the system call was was significant, and a way was never developed to bring the LPC calls down to something comparable to an older monolithic style OS. This is why XNU (the Nextstep/Openstep/Darwin/OSX kernel) used Mach as a library rather then as a full blown microkernel.

The rise of Linux also showed that a re-structured monolithic kernel could not only scale on SMP hardware, but could remain portable.

Getting it to run

Installing Mach on the PC is not a task for the timid. It is VERY involved and difficult. I have decided to provide an image here. I may document the install later, but it is extremly complex.