Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Proseminar KVBK
Gliederung
1.Das Designproblema) Überblickb) Design Goalsc) Möglichkeiten der Strukturierung
2. Umsetzung der Design Goals in NT 5.0a) ArchitekturÜberblickb) Aufbau der User Mode Komponentenc) Aufbau des Kernels
3. Zusammenfassung2
Aufbau eines modernen Betriebssystems
Proseminar KVBK
Gliederung
1. Das Designproblema) Überblickb) Design Goalsc) Möglichkeiten der Strukturierung
2. Umsetzung der Design Goals in NT 5.0a) ArchitekturÜberblickb) Aufbau der User Mode Komponentenc) Aufbau des Kernels
3.Zusammenfassung3
Aufbau eines modernen Betriebssystems
● Sehr hohe Lebensdauer➔ UNIX ist etwa 25 Jahre alt➔ Windows ist etwa 10 Jahre alt
● Platformunabhängigkeit trotz➔ Unterschiedlicher HardwareUmgebungen➔ Unabhängig voneinander designter HWKomponenten
● Komplexes Resourcen Management➔ Benutzer wollen ihre Daten vor Zugriffen anderer schützen➔ I/O Geräte müssen sich HW Resourcen teilen (Interrupts, DMA
Kanäle, ...)➔ Komponenten hängen stark zusammen
Probleme (1)
Proseminar KVBK Aufbau eines modernen Betriebssystems
4
● Abwärtskompatibilität➔ Einschränkungen / Eigenarten der früheren Version(en) müssen
berücksichtigt werden
● Betriebssysteme sind sehr grosse Programme➔ UNIX i.d.R > 1 Mio Zeilen Code➔ Windows NT ~ 29 Mio Zeilen Code➔ Unmöglich zu überblicken!
➢ Betriebssysteme sollten trotzdem einfach und einheitlich programmierbar sein...
Probleme (2)
Proseminar KVBK Aufbau eines modernen Betriebssystems
5
Design Goals
Proseminar KVBK Aufbau eines modernen Betriebssystems
6
Welche Ziele sollte man also beim Entwurf im Auge behalten?
● Erweiterbarkeit● Portierbarkeit● Zuverlässigkeit● Kompatibilität● Sicherheit● Effizienz
Möglichkeiten der Strukturierung (1)
Proseminar KVBK Aufbau eines modernen Betriebssystems
7
1. SchichtenModell
System Call Handler
Hardware abstrahieren
Interrupt Handling, Context Switching, MMU
Threads, Thread Scheduling, Thread Syncronisation
Treiber 1
Virtual Memory
File System 1
... Treiber n
File System n...
Nach Tanenbaum
Kernel Mode
● Verringerung der Komplexität durch Einteilung in Schichten
● Weit verbreitet (siehe UNIX, Windows)
8
Möglichkeiten der Strukturierung (2)
Proseminar KVBK Aufbau eines modernen Betriebssystems
2. Exokernel
Prinzip: Alles, was der Benutzer programmieren kann, soll er auch selber machen
➔ Es wird z.B. kein Dateisystem vorgegeben
➔ Einzige Aufgabe des Kernels ist das sichere Belegen und Freigeben von Resourcen
➔ Alle anderen Dienste sind UserLibraries (“LibOS”)
Exokernel
Ex OS OO OS“LibOS”
User Mode
App 1 App 2
Kernel Mode
Nach Engeler '95
9
Möglichkeiten der Strukturierung (3)
Proseminar KVBK Aufbau eines modernen Betriebssystems
3. ClientServer Systeme
Microkernel
Client Process
Client Process
Process Server
Terminal Server
File Server
Memory Server...
Nach Tanenbaum
• Grösster Teil des OS läuft im User Mode
• Kommunikation durch den Microkernel
• Eignet sich gut für verteilte Systeme
• Viele Context Switches➔ nicht sehr effizient
User Mode
Kernel Mode
Proseminar KVBK
Gliederung
1. Das Designproblema) Überblickb) Design Goalsc) Möglichkeiten der Strukturierung
2. Umsetzung der Design Goals in NT 5.0a) ArchitekturÜberblickb) Aufbau der User Mode Komponentenc) Aufbau des Kernels
3.Zusammenfassung10
Aufbau eines modernen Betriebssystems
Architektur-Überblick
Proseminar KVBK Aufbau eines modernen Betriebssystems
11
Anwendungen
Environment Subsystems
NT Executive
NT Kernel
Hardware Abstraction Layer (HAL)
Hardware
Kernel Mode
User Mode
● SchichtenModell➔ NT Executive im Kernel Mode › Effizienz➔ Hardwarezugriff in HAL gekapselt › Portierbarkeit
Aufbau der User Mode Komponenten
Proseminar KVBK Aufbau eines modernen Betriebssystems
12
Win32Apps
POSIXApps
Win32Subsystem
POSIXSubsystem
OS/2Subsystem
NT Native API
User Mode
Kernel Mode
Applications(Clients)
NT Executive(Server)
OS/2Apps (!?)
Windows NT Executive
● ClientServer Modell:➔Anwendungen kommunizieren mit dem Kernel über die Environment
Subsystems › Kompatibilität
● NT Native API ständig erweitert➔ Normale
Anwendungen sind von der Native API unabhängig, Emulation der jeweiligen OS API im Env Subsystem
Proseminar KVBK
Aufbau des Kernels (1)
13
Aufbau eines modernen Betriebssystems
Object Mgr
Hardware
NT KernelHardware Abstraction Layer (HAL)
Memory Mgr
Process Mgr
Security Mgr
... Power Mgr
LPCMgr
Win32 GDI
I/O MgrFilesys
NT Native API
● Wegen starker Abhängigkeiten nur schwer in Module gliederbar › im Prinzip Monolithisch ● Frühere User Mode Module wie das GDI jetzt im Kernel Mode › Effizienz
Proseminar KVBK
Aufbau des Kernels (2)
14
Aufbau eines modernen Betriebssystems
Einige Kernel Module: ● Object Manager
➔ Zentrale Rolle: Alle Resourcen sind Objekte (Threads, Files, ...)➔ Repräsentation durch Handles➔ Reference Counting
● Security Manager➔ Vergibt und überprüft Zugriffsrechte auf Objekte➔ “Access Token” wird an Objekte angehängt
● Process Manager➔ Erstellt, löscht, startet und stoppt Prozesse➔ kein Scheduling (> Kernel)
Proseminar KVBK
Aufbau des Kernels (3)
15
Aufbau eines modernen Betriebssystems
● LPC Manager➔ Interprozesskommunikation: Apps ⇔ Env Subsystems➔ Aus Geschindigkeitsgründen keinen normalen IPC Mechanismen
● NT Kernel➔ Thread Scheduling (Preemptive Scheduler, 32 Priority Levels)➔ Software / Hardware Interrupts, Exceptions➔ Stellt “Kernel Objects” zur Verfügung (Mutex, Semaphor, Event, ...)
● Hardware Abstraction Layer (HAL)● Bildet Bus Adressen auf Logische Adressen ab● Clock, TimerManagement● Hardwareunabhängiger DMA Datentransfer
Proseminar KVBK
Zusammenfassung
16
Aufbau eines modernen Betriebssystems
● Betriebssysteme sind sehr komplexe Programme
● 3 Gängige Strukturierungsmöglichkeiten● Layered● Exokernel● ClientServer
● NT UserMode Komponenten:● Env Subsystems sind für Kompatibilität verantwortlich● ClientServer Modell bei der Kommunikation App <> Subsystem
● NT Kernel Mode Komponenten:● Grob in Schichte eingeteilt: HAL, NT Kernel, NT Executive● Vielzahl stark voneinander abhängiger Module in der NT Executive
Proseminar KVBK
Literatur / Quellen
17
Aufbau eines modernen Betriebssystems
● “Modern Operating Systems”Andrew S. Tanenbaum, Prentice Hall, 2001
● “Sliding through Operating Systems”Daniel Menasce, George Mason University, 1997
● “Exokernel: an operating system architecture for applicationlevel resource management”
Dawson R. Engler, M. Frans Kaashoek et al, 1995