Aufbau eines modernen Betriebssystems (Windows NT 5.0) · Vielzahl stark voneinander abhängiger...

17
Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK

Transcript of Aufbau eines modernen Betriebssystems (Windows NT 5.0) · Vielzahl stark voneinander abhängiger...

Aufbau eines modernen Betriebssystems

(Windows NT 5.0)

Moritz Mühlenthaler14.6.2004

Proseminar KVBK

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 Hardware­Umgebungen➔ Unabhängig voneinander designter HW­Komponenten

● 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. Schichten­Modell

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 User­Libraries (“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. Client­Server 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

● Schichten­Modell➔ 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

● Client­Server 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­, Timer­Management● Hardware­unabhängiger DMA Datentransfer

Proseminar KVBK

Zusammenfassung

16

Aufbau eines modernen Betriebssystems

● Betriebssysteme sind sehr komplexe Programme

● 3 Gängige Strukturierungsmöglichkeiten● Layered● Exokernel● Client­Server

● NT User­Mode Komponenten:● Env Subsystems sind für Kompatibilität verantwortlich● Client­Server 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 application­level resource management”

Dawson R. Engler, M. Frans Kaashoek et al, 1995