MkLinux

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

MkLinux ist ein quelloffenes und freies UNIX-artiges Computerbetriebssystem das auf einem Mach 3.0 Microkernel basiert, auf den ein modifiziertes Linux als Server für die Betriebssystem-Personalität (Personality Server) aufsetzt. Wie bei klassischem Linux enthält MkLinux neben dem reinen Betriebssystem die GNU Software-Tools. MkLinux wurde vom Research Institute der Open Software Foundation (OSF) erstellt. Die Entwicklung wurde von Apple gesponsert. MkLinux steht für Microkernel Linux.

Geschichte[Bearbeiten]

Bei der OSF entstanden in den 1990er Jahren Pläne, für Forschung und Entwicklung von Mikrokernel-Systemen eine Alternative zum eigenen Betriebssystem OSF/1 zu entwickeln. OSF/1 basierte ebenfalls auf einem Mach[1] Mikrokernel, aber der darauf aufsetzende Personality-Server stand teilweise unter AT&Ts System V- Lizenz. Deshalb entwickelte man eine freie UNIX-kompatible Alternative und entschied sich für Linux als Systemumgebung. Dies Projekt wurde die Grundlage von MkLinux.

Als Basis wurde OSF MK gewählt, die von der OSF weiterentwickelte Variante des Mach 3.0 Microkernels. Die Portierung von OSF MK auf die PowerMacintosh Plattform begann Anfang 1995, gleichzeitig wurde die Überarbeitung des monolithischen Linux-Kernels begonnen, um ihn als OS-Server auf dem Mach-Mikrokernel verwenden zu können. Dies erfolgte auf Intel x86 Systemen. Erst später wurde der Linux-Server auch auf PowerMacintosh portiert. [2] Im Februar 1996 kündigte Apple die erste verfügbare Version von MkLinux für PowerMacintosh für Sommer 1996 an, das Developer Release 1 (DR1) wurde jedoch schon im Mai 1996 veröffentlicht. Es folgte DR2 im September 1996 und DR2.1 im Januar 1997. Dieses Release wurde auf CD-ROM zusammen mit einem Referenz-Handbuch von der kleinen kalifornischen Firma Prime Time Freeware in Kooperation mit Apple vertrieben. Im Juli 1998 erschien schließlich als letzte "offizielle" Version auf CD-ROM das Developer Release 3 (DR3).

In den folgenden Jahren wurde ähnlich wie mit den Developer Releases davor im Wesentlichen versucht, die Unterstützung für verfügbare Hardware zu verbessern und neue Computermodelle wie z.B. neue PowerBooks und NewWorld-PowerMacs zu unterstützen. Wurde die weitere Entwicklung zunächst noch von einem kleinen Team bei Apple betreut und koordiniert, zog sich Apple bald darauf ganz aus dem Projekt zurück, so dass ab Mitte 1999 das Projekt vollständig von einer kleinen Gruppe von freien Entwicklern, der MkLinux Developers Association fortgeführt wurde. Da Anwenderprogramme unter MkLinux binärkompatibel zu denen des LinuxPPC-Projektes (der Portierung des klassischen Linux auf PowerPC Systeme) waren, konzentrierten sich die MkLinux-Programmierer nun auf die Weiterentwicklung des Mach-Kernel/Linux-Server Paares. Von diesen erschienen in der Folgezeit diverse Zwischenreleases, sowie schließlich unter der Bezeichnung Pre1 und Pre2 Release-Candidates für eine Version 1.0 von MkLinux. Pre2 im Sommer 2002 war das letzte komplette Kernel/Server Paar.

Technische Besonderheiten[Bearbeiten]

Anders als klassisches Linux, das wie die meisten kommerziellen UNIX-Implementationen, aus einem monolithischen Kernel für Betriebssystemfunktionen und Programmen besteht, die mit eingeschränkten Rechten im "User-Land" laufen, werden die Betriebssystemfunktionen in MkLinux auf zwei Bereiche aufgeteilt: Der Mach Microkernel stellt wenige grundlegende und von dem darauf aufsetzenden Betriebssystemen abstrahierte Dienste bereit. Diese sind: Tasks (Kontrolle von Systemresourcen), Threads (Kontrolle von CPU-Benutzung, Scheduling), Ports (Kontrollierte Kommunikation zwischen Tasks), Messages (Informationen, die über Ports ausgetauscht werden) und Memory Objects (Speicherverwaltung, Adressräume, etc) [3]. Mach stellt kein Konzept für Prozesse bereit noch bietet es elaborierte Dienste wie Netzwerkprotokolle oder Dateisysteme. Alle diese Dinge sind Aufgabe des OS-Personality-Servers, der im Falle von MkLinux als Linux-Server diese in der Semantik von Linux (z.B. /proc Dateisystem) bereitstellt.

Virtueller Speicher wird vom Mach-Mikrokernel verwaltet, auf dessen Memory Objects die entsprechenden Linux-Datenstrukturen abgebildet werden. Das Auslagern und Einlesen von Speicherseiten auf Festplattenspeicher erledigt nicht der Kernel bzw. der Linux-Server sondern ein separater Hintergrundprozess namens default_pager.

Der Linux-Server ist implementiert als sog. "single server". Das bedeutet, dass der gesamte Linux-Server als ein einziger Mach-Task angelegt ist, und somit einen einzigen Adressraum besitzt. Dies erhöht die Performance des Systems, da weniger Inter-Prozess-Kommunikation (IPC) notwendig ist, andererseits erschwert es die Portierbarkeit des Systems.

Weblinks[Bearbeiten]

Referenzen[Bearbeiten]

  1. M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, M. Young, "Mach: A New Kernel Foundation for UNIX Development," in Proceedings of the Summer 1986 USENIX Conference, Atlanta, GA.
  2. Vorwort aus R. Morin (Editor): MkLinux - Microkernel Linux for the Power Macintosh, Referenzhandbuch zur DR2.1, Sunnyvale, CA 1997
  3. F. Barbou des Places, N. Stephen, F.D. Reynolds: Linux on the OSF Mach3 microkernel 1995, Nachdruck in R. Morin (Editor): MkLinux - Microkernel Linux for the Power Macintosh, Referenzhandbuch zur DR2.1, Sunnyvale, CA 1997