WikiDer > Machkernel

Machkernel

Mach ist ein kompakter Kernel entwickelt an der Carnegie Mellon Universität (CMU). Es wurde entwickelt, um die Forschung auf dem Gebiet der Betriebssysteme, mit Betonung auf verteilt und parallel Berechnungen. Das Projekt an der CMU war aktiv von 1985 bis einschließlich 1994.

Gemeinsame Teile

Mach wurde aus dem Verständnis heraus entwickelt, dass moderne Betriebssysteme eine Reihe von Dingen gemeinsam haben oder haben sollten, wie zum Beispiel:

  • mehrere drehen Anwendungen gleichzeitig durch Multitasking;
  • Faden, d. h. Teile einer Anwendung, die wie Minianwendungen eigenständig Multitasking ausführen können;
  • Unterstützung für mehrere Prozessoren, in einem einzelnen Computer oder über ein Netzwerk;
  • Interprozessverkehr, Direktnachrichten zwischen Anwendungen;
  • Speicherschutz und Sicherheit.

Projekte

Anfang und Mitte der 1980er Jahre gab es eine Reihe von Projekten, die versuchten, diesen Bedarf zu decken. Dabei mussten oft Teile bestehender Betriebssysteme geändert werden, insbesondere BSD. Nach jeder Änderung wurde das Betriebssystem neu gestartet zusammengestellt, startete die Maschine neu und versuchte die Änderung. Dieser Ansatz war problematisch, zumal selbst kleinere Pannen die gesamte Maschine ruinierten Absturz.

Mikrokernel

Mit Mach begannen sie, ein neues Konzept zu erforschen, das heute als . bekannt ist Mikrokernel. Außerdem ist der Betriebssystemcode nicht in einem großen Kernel enthalten, sondern der größte Teil des Codes wird an kleinere Programme, sogenannte . delegiert Server, die wie alle anderen Programme als Prozesse unter dem Mikrokernel laufen. Dies beendete die Situation, in der der Kernel mehr oder weniger dem Betriebssystem entsprach und die Rolle des Kernels auf die des Verkehrspolizisten und Controllers für die Server beschränkt war.

Dies sollte bedeuten, dass Sie nach einem Wechsel des Betriebssystems lediglich das geänderte Serverprogramm neu laden mussten, ohne das gesamte Betriebssystem neu kompilieren zu müssen. Erst nach der Arbeit am Machkernel selbst wäre ein Neustart nötig, was selten sein sollte.

Machkernel und BSD: POE

Mach selbst ist kein vollständiges Betriebssystem, und ohne eine Sammlung von Servern ist es ziemlich nutzlos. Allerdings gab es diese Server damals noch nicht. Um ein brauchbares System zu bekommen, haben die Macher von Mach eine schnelle Anpassung des Betriebssystems vorgenommen BSD: Anstatt BSD in Teile zu zerlegen und jeden Teil in einen Server zu verwandeln, kompilierten sie einfach den gesamten Kernel als einen Server und führten ihn aus. Das Ergebnis war bekannt als POE.

POE lief also mehr oder weniger als Anwendung wie jede andere, aber die Leistung war schrecklich. Jeder Aufruf einer Benutzeranwendung, beispielsweise um die Uhrzeit von der Systemuhr abzufragen, erforderte das Senden einer Nachricht an den Kernel (ein mühsamer Vorgang, bekannt als Kontextwechsel). Der Kernel leitete diese Nachricht dann über einen weiteren Kontextwechsel an den Unix-Bibliothek. Die Antwort musste den ganzen Weg zurück gehen. So erlangte Mach ohne eigenes Verschulden den Ruf, flexibel, aber sehr langsam zu sein.

Im folgenden Jahrzehnt wurde dieser Nachrichtenverkehr um ein Vielfaches beschleunigt. Am Ende übertrafen Mach-ähnliche Betriebssysteme oft die BSDs, auf denen sie basierten. Doch bis dahin hatte die Wissenschaft das Interesse an der Betriebssystemforschung mehr oder weniger verloren, und Machs Versprechen hat sich immer noch nicht erfüllt.

Früher dachte man, dass Mach langsam die ganze Welt der Betriebssysteme übernehmen würde, aber das ist nicht passiert. Vielleicht ist der Hauptgrund für Machs allgemeines Versagen Faulheit: Jeder schien zu denken, dass jemand anderes nur eins zu eins war Bibliotheken basierendes Betriebssystem, und so hat es niemand getan. Die bisher größte Anstrengung in diese Richtung war die Hurd von GNU. Die Hurd hat sich jedoch seit mehr als zehn Jahren verlangsamt, teilweise aufgrund des Anstiegs von Linux. Eine Reihe kommerzieller Betriebssysteme waren erfolgreicher, wie z QNX, die alle Versprechen von Mach zu erfüllen scheint.

Die Arbeit an Mach fand mehrere Jahre an der CMU statt, wurde jedoch schließlich eingestellt, als viele Mitarbeiter die Universität verließen, um ins Geschäft zu gehen. Mach Mitte der 90er Jahre kurzzeitig wiederbelebt Universität von Utah, die mit großen Verbesserungen zu Mach 4 führte, dann aber wieder ein ruhendes Projekt wurde.

Inzwischen haben eine Reihe von Unternehmen Mach einen praktischen Ansatz verfolgt. Die BSD-Schicht (oder die eines anderen Betriebssystems) wurde direkt im Kernel ausgeführt, sodass viele Kontextwechsel vermieden werden konnten. Das lieferte eine angemessene Leistung, ohne auf die Fähigkeiten mehrerer Prozessoren zu verzichten und einfach zu bedienen Faden einreichen. Aber auch diese Vorteile sind relativ geringer geworden, da die verschiedenen Unix-Anbieter sie inzwischen in ihre eigenen Produkte integriert haben.

Solche Versionen von Mach-basierten Betriebssystemen enthalten OSF/1, Nächster Schritt, und OS/2 von IBM für die auf der RS/6000 basierten Maschinen. Keines dieser Systeme ist noch im Einsatz. Auch andere Betriebssysteme untersuchten die Möglichkeit, zu einem solchen Ansatz überzugehen, wie z kleiner Finger von Apfel und Arbeitsplatz-Betriebssystem von IBM.

In der Zwischenzeit, ApfelOpenSTEP übernommen, um Mac OS ersetzen. (OpenSTEP ist im Grunde eine aktualisierte Version des Mach 2.5-basierten Betriebssystems Nächster Schritt.) Das Ergebnis heißt Mac OS X, das wie seine Vorgänger auf der Mach/BSD-Kombination basiert.

Externe Links