Konzepte von Betriebssystem-Komponenten

Microkernel-Betriebssysteme , L4, Hurd

14. November 2002

Holger Ruckdeschel [email protected]

Konzepte von Betriebssystem-Komponenten 1 -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 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