Minix
Minix ist ein Unix-ähnliches Betriebssystem, das von Andrew S. Tanenbaum als Lehrsystem entwickelt wurde. Der Quellcode des Minix-Kerns besteht aus etwa 12000 Zeilen, hauptsächlich in der Programmiersprache C, und ist Teil von Tanenbaums Lehrbuch Operating Systems - Design and Implementation. Motivation Tanenbaums war unter anderem, dass der Quellcode von Unix nicht mehr für Lehrzwecke an Universitäten zur Verfügung stand.Das System wurde zunächst für um 1987 auch für Studenten verfügbare Hardware (PC mit Intel 8088 Prozessor, 512 kByte Ram, ein Diskettenlaufwerk) entwickelt, enthielt aber alle Systemrufe der Unix-Version 7. Es verwirklicht Mehrprogrammbetrieb, Prozesse (Tasks in Minix), Pipes, Signale und enthält neben einem Mikrokernel Neuimplementationen vieler Unix-Kommandos, einen Editor und einen C-Compiler. Aufgrund fehlender Hardware-Unterstützung ist kein Speicherschutz und kein virtueller Speicher realisiert, auch die Netzwerkunterstützung fehlt zunächst.
Später wurde das System auf andere Prozessoren (Intel 80286 und 80386, Motorola 68000-Linie, Sun SPARC) portiert und erweitert.
Interessant ist der Mikrokernel (Unix hat einen monolithischen Kernel). Auf der untersten Ebene befinden sich der Scheduler als Task und die Gerätetreiber-Tasks. Das Dateisystem und das Speichermanagement laufen als je eine Task in der mittleren Ebene. Auf der obersten Ebene laufen die Anwenderprogramme. Die Systemrufe sind über Mitteilungen an die Tasks der unteren Ebenen realisiert, ebenso kommunizieren die Systemtasks über Mitteilungen.
Minix diente dem finnischen Informatik-Studenten Linus Torvalds als Entwicklungsumgebung für seinen Betriebssystem-Kernel Linux. Torvalds wollte zunächst die Fähigkeiten der neuen 80386-Prozessorlinie (Multitasking, Paging) ausprobieren, entwickelte aber dann einen voll funktionsfähigen Kernel mit virtuellem Speicher und Speicherschutzmechanismen. Die Kommandos und der C-Compiler wurden durch GNU-Versionen ersetzt.
Literatur
Weblinks