Mach-Mikrokernel

Mach ist ein Mikrokernel der als Betriebssystem-Kernel für verschiedene UNIX-konforme Systeme dient. Er wurde von 1985 bis 1994 an der Carnegie Mellon University entwickelt. 

Abgrenzung zum monolithischen Kernel
Ein Mikrokernel ist ein Betriebssystem-Kernel der - im Gegensatz zu einem Monolithischen Kernel - auf wesentliche Funktionen reduziert ist.  Nachteil eines Monolithischen Kernels ist seine Strukturlosigkeit - es können sämtliche Funktionen von allen  Bereichen aus aufgerufen werden. Daraus entstehen komplexe Interdependenzen so dass jede Änderung unbeabsichtigte Konsequenzen haben kann. Der Aufwand alle Abhängigkeiten zu durchleuchten steigt mit der Komplexität und damit die Fehlerquote.  Desweiteren belegt der Monolithische Kernel unnötig Arbeitsspeicher, da vom Kernel verwendete Programmteile nicht auslagerungsfähig sind. Funktionalitäten müssen in Kernel Modulen ausgelagert werden, damit ein Teilabsturz einer  Betriebssystem-Komponente oder eines Gerätetreibers nicht zu einem Absturz des gesamten Systems führt. 

Vorläufer von Mach Mikrokernel
Vorläufer von Mach ist das Rochester Intelligent Gateway (RIG), welches ein modulares Betriebssystem ist, das die Interprozesskommunikation  durch das Senden von Nachrichten beherrscht. Einer der Entwickler von RIG, Richard Rashid, wechselte von der University of Rochester zur Carnegie Mellon University und entwickelte dort ein ebenfalls nachrichtenbasiertes  Betriebssystem: "Accent". Accent wurde auf der PERQ Workstation der Three Rivers Computer Corporation eingesetzt. Jedoch waren UNIX-Systeme erfolgreicher. Dieses Manko sollte durch die Entwicklung von Mach behoben werden. 

Unix-Kompatibilität
Man setzte auf UNIX-Kompatibilität, Interprozesskommunikation und Threads. Um die UNIX-Kompatibilität von  Mach zu gewährleisten wurde es zunächst in einem monolithischen Kernel mit 4.2 BSD-Komponenten realisiert.  Komponenten des BSD-Kernels wurden sukzessive ersetzt - zur Vereinfachung des Entwicklungsprozesses von Mach wurde 1989 sämtlicher BSD-Quellcode in den sog. Userspace-Server ausgelagert. 

Userspace und Eigenschaften
Tasks, welche nicht von Funktionalitäten des Mach-Kernels abgedeckt werden, werden von Prozessen im  Userspace ausgeführt. Solche Prozesse werden in der Mach-Terminologie "Server" genannt. Die Kommunikation des Kernels mit diesen Servern erfolgt nachrichtengesteuert.  Eigenschaften von Mach sind: Arbeiten mit Threads und je nach Implementierung auch Multi-Threading, Multitasking, Speicherverwaltung und Speicherschutz, Kommunikation zwischen Prozessen durch Versenden von Mach Messages, elementare Ein-/Ausgabedienste.  Der Mach Kernel stellt folgende Abstraktionen zur Verfügung: Prozesse, Threads, Ports, Speicherobjekte, Nachrichten. 

Betriebssysteme die auf dem Mach Mikrokernel aufbauen
Auf dem Mach Kernel bauen folgende Betriebssysteme auf: NeXTStep (Mach 2.5), Rhapsody, GNU The  HURD, Tru64 UNIX (OSF/1), Darwin, Mac OS X und MkLinux (Mikrokernel Linux vom OSF Research Institute und Apple für die PowerPC Plattform).                       
Siehe auch:    Mikrokernel   Kernel   GNU   Multitasking   Multithreading   BSD   XNU   POSIX