Konzepte von Betriebssystem-Komponenten
Microkernel-Betriebssysteme Mach, L4, Hurd
14. November 2002
Holger Ruckdeschel [email protected]
Konzepte von Betriebssystem-Komponenten 1 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Übersicht
Gegenüberstellung: Monolithischer Kernel - Microkernel Der Mach Microkernel Der L4 Microkernel GNU Hurd Geschwindigkeitsvergleich: Mach - L4
Konzepte von Betriebssystem-Komponenten 2 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Monolithischer Kernel
Klassischer Ansatz (Unix) Alle BS-Komponenten in Kern integriert Gemeinsamer Adressraum
Konzepte von Betriebssystem-Komponenten 3 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Monolithischer Kernel
Anwendung Anwendung Anwendung
User Mode Kernel Mode
API
Prozess- Speicher- Datei- ... manager manager system
Konzepte von Betriebssystem-Komponenten 4 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Monolithischer Kernel
Vorteile
effiziente Kommunikation im Kern
Hardwarezugriffe jederzeit und unmittelbar durchführbar Nachteile
kein Zugriffsschutz zwischen den Komponenten
undurchsichtige Struktur
Konzepte von Betriebssystem-Komponenten 5 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Microkernel
Auslagerung von BS-Komponenten in Server BS-Komponenten in getrennten Speicherbereichen Kernel bietet lediglich
einfaches Prozessmanagement
einfaches Speichermanagement
effiziente Wege zur Inter-Prozess-Kommunikation (IPC)
Konzepte von Betriebssystem-Komponenten 6 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Microkernel
Datei- Anwendung Anwendung ... system
User Mode Kernel Mode
API
Prozess- Speicher- manager manager
Konzepte von Betriebssystem-Komponenten 7 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Microkernel
Vorteile
Schutz der BS-Komponenten voreinander
hohe Flexibilität Nachteile
Kommunikation ist teuer
Konzepte von Betriebssystem-Komponenten 8 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Mach
Ausgangspunkt 4.2BSD Schrittweiser Tausch von BSD- gegen Mach-Code ¡ Mach Release 2
4.3BSD kompatibel
monolithisch Auslagerung von BSD-Komponenten in Server ¡ Mach Release 3
Unix-frei
Microkernel
Geräteschnittstelle
Konzepte von Betriebssystem-Komponenten 9 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Mach - Konzepte
Task Textsegment
Threads Nachricht
Ports Datensegment
nach: Silberschatz
Konzepte von Betriebssystem-Komponenten 10 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 L4
Von Anfang an als Microkernel entworfen Erste Version: L4/x86 Heute: verschiedene Architekturen
Alpha
MIPS
StrongARM
PowerPC
IA64
Konzepte von Betriebssystem-Komponenten 11 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 L4 - Konzepte
Flexpages Virtuelle Adressräume
bestehen aus Flexpages
Ein- und Ausblenden von Flexpages mit grant, map, flush Threads Tasks Clans
Gruppe von Tasks
mit privilegiertem Chief kein eigenes I/O-System
Konzepte von Betriebssystem-Komponenten 12 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 L4 - I/O
Keine I/O-Schnittstelle im Kernel Gerätetreiber im User-Mode Einblenden der I/O-Adressräume in Tasks Weiterleitung von IRQs als IPC-Nachrichten
Konzepte von Betriebssystem-Komponenten 13 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 GNU Hurd
Microkernel-Betriebssystem auf Basis von GNU Mach Kernel enthält Gerätetreiber Server für
Dateisysteme (ext2, isofs u.a.)
Netzwerkprotokolle (IP, ...)
... spezielle Bibliotheken (z.B. libext2fs) spezielle Utilities (z.B. settrans)
Konzepte von Betriebssystem-Komponenten 14 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 GNU Hurd
Beispiel für Hurd-Systemkommando: Dateisystem mounten settrans -c /mountpoint /hurd/ext2fs /dev/hd0s1
ext2fs-Server läuft als normaler Prozess
Jeder Benutzer kann eigene Server schreiben und starten Zum Vergleich: Linux mount /dev/hda1 /mountpoint -t ext2
Befehl direkt an Kernel
Kernel muss Dateisystem bereitstellen
Konzepte von Betriebssystem-Komponenten 15 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Geschwindigkeitsvergleich
Vergleich von
Linux (monolithisch)
MkLinux (auf Mach aufsetzend)
L4Linux (auf L4 aufsetzend)
Konzepte von Betriebssystem-Komponenten 16 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003 Geschwindigkeitsvergleich
Low-Level Benchmark: getpid()-Aufruf
Linux 1,68 µs L4Linux 3,95 µs MkLinux 110,60 µs
High-Level Benchmark: Übersetzen des Linux-Servers
Linux 476 s L4Linux 506 s MkLinux 605 s
Konzepte von Betriebssystem-Komponenten 17 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel, WS 2002/2003