Agenda Architektur und Schlüsselkomponenten von Windows I. II. I. II. III. III. IV. V. von Stefan Lietsch Steffen Sommer Architektur und Schlüsselkomponenten von Windows I. Geschichte Architektur und Schlüsselkomponenten von Windows Merkmale eines kompletten Betriebsystems (u.a. virtueller Speicher, Prozessmanagement, Multiprogramming) Hatte noch große Teile des 16-Bit-Assembler-Codes von DOS (mit einigen 32-Bit-Erweiterungen) Benutzte MS-DOS-Dateisystem Keine großen Veränderungen zu Windows 95 Kerndatenstrukturen im Benutzerraum (1993) Windows NT 3.1 (New Technologie) komplett neues 32-Bit-BS Ziele bei Entwicklung: Sicherheit und hohe Zuverlässigkeit Multiprocessing und Multiuser lediglich Anhänger im Servermarkt (1996) Windows NT 4.0 Stefan Lietsch und Steffen Sommer Geschichte (1998) Windows 98 bzw. später Windows ME VIII. Alle Programme liefen im selben Adressraum und ein Fehler in irgendeinen Programm konnte das gesamte System zum Absturz bringen. (1995) Windows 95 VII. Auf MS-DOS aufgesetzt DOS hatte noch immer Kontrolle über Maschine und Dateisystem VI. Hardware Abstraction Layer (HAL) Kernel Executive Objekte in Windows Win32-API Teilsysteme für andere Systeme ( Registry ) Quellen Fragen I. (1985) erste graf. Oberfläche für MS-DOS (Windows 1.0) (1990) kommerzielle Erfolge mit Windows 3.0 / 3.1 / 3.11 Stefan Lietsch und Steffen Sommer Geschichte Architektur graf. Benutzeroberfläche, wie Win 95 (2000) Windows NT 5.0 bzw. Windows 2000 Zusammenführung der zwei Windowsstränge echtes 32-Bit-System mit Trennung von Kern- und Benutzermodus Unterstützung für Plug-and-Play / USB / FireWire / IrDa / PowerManagement u.v.m. Jedes Programm konnte also diese Kerndatenstrukturen überschreiben und so das ganze System zum Absturz bringen. Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer II. Architektur Ursprünglich auf Betrieb von mehreren verschiedenen Teilsystemen ausgelegt, die Ausführung von Programmen verschiedener BS (z.B. Unix, OS/2, Windows) ermöglicht So konzipiert, dass Absturz eines Teilsystems nicht zu Absturz anderer Teilsysteme oder des Ganzen BS führt (bzw. führen soll) Aufgliederung in Schichten: Hardwareabstraktionsschicht (HAL) Zentraler Zuweisungsmechanismus = Kernel Executive (Gerätetreiber) Schichten bieten die Möglichkeit durch Abstraktion mit einfachen Systemaufrufen komplexere Befehle zur Verfügung zu stellen Windows 2000 hat eine modulare Struktur mit relativ kleinem Kern Windows 2000 ist Pseudo-Objektorientiert Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Architektur und Schlüsselkomponenten von Windows II.I Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Stefan Lietsch und Steffen Sommer Hardwareabstaraktionsschicht (HAL) Ziel: BS soll portierbar sein Problem: untere Ebene des BS arbeitet mit Geräteregistern, Interrupts und anderen Hardwaremerkmalen, die sich von Maschine zu Maschine grundlegend unterscheiden → Abstrahierte Sicht auf Hardware durch HAL Die HAL stellt Dienste zur Verfügung, die darüber liegende Schichten nutzen können um mit der Hardware zu kommunizieren/interagieren (z.B. Zugriff auf Geräteregister, busnahe Geräteadressierung, Multiprozessorsynchronisation etc.) Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer II.I Hardwareabstraktionsschicht (HAL) Gerätespezifische Adressen, Interrupts etc. werden in systemweite, logische Adressen, Interrupts etc. umgewadelt um ein eindeutiges ansprechen der Geräte zu ermöglichen Informationen über im System vorhandene Geräte, Busse etc. bekommt die HAL beim Hochfahren direkt vom BIOS/CMOS Erweiterung der HAL durch z.B. DirectX möglich, dadurch können zusätzliche, spezialisierte Prozeduren für z.B. Multimediaanwendungen implementiert werden Architektur und Schlüsselkomponenten von Windows II.II Stefan Lietsch und Steffen Sommer Kern Architektur und Schlüsselkomponenten von Windows II.II Kein Mikrokern, da von Anfang an Dienste wie Speicherverwaltung und andere Systemkomponenten im Kern integriert waren Der Kern soll den Rest des BS vollständig von der Hardware unabhängig und somit hochgradig portierbar machen → Kern benutzt einfache Prozeduren der HAL um höhere Abstraktionsstufen zu erreichen Der Kern ist für das Scheduling der Threads und Prozesse zuständig und führt z.B. bei abgelaufener Zeitscheibe oder E/AUnterbrechung notwendig gewordene Kontextwechsel durch ohne das darüber liegende Schichten sich darum kümmern müssen Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Kern (Objekte) Der Kern verwaltet die internen Objekte: Stefan Lietsch und Steffen Sommer Kontrollobjekte (steuern das System): Einfache Prozessobjekte, Unterbrechungsobjekte Defferred Procedure Call (DPC) Objekte: trennen zeitlich kritischen Teil einer Unterbrechungsroutine von zeitlich unkritischem und ordnet dann die Teile in der DPC-Warteschlange zur Bearbeitung Asynchronous Procedure Call (APC) Objekte: wie DPC, werden aber im Kontext eines bestimmten Prozesses ausgeführt Dispatcherobjekte Semaphore, Mutexe, Ereignisse, Stoppuhren und andee Objekte auf die Threads warten können Sind in den Kern eingelagert, weil sie eng mit Thread/Prozess-Scheduling zusammenarbeiten Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer II.III Executive Besteht aus 10 Komponenten, wobei jede eine Sammlungvon Prozeduren darstellt um bestimmte Ziele zu erreichen: Object Manager: E/A Manager II.III Executive Garantiert das Sicherheitsstandards nach Orange Book eingehalten werden Z.B. authentifizierende Anmeldung, Zugriffskontrolle etc. Plug and Play Manger Überprüft beim Hochfahren und im Betrieb (z.B. bei USB) ob neue Geräte angeschlossen wurden und leitet Treibersuche/-installation ein Power Manager Configuration Manager Local Procedure Call Manager Beschleunigt Speicherzugriff indem zuletzt oder häufig verwendete Speicherblöcke im Speicher behalten werden Arbeitet für alle Dateisysteme und eng mit Virtual Memory Mgr zusammen Executive Ursprünglich im Benutzerraum, seit NT 4.0 zur Leistungssteigerung im Kernraum Behandelt Bilddaten für Monitor und Drucker Verwaltet Grafiktreiber und Window Manager Systemdienste Herrscher über Energieverwaltung Stefan Lietsch und Steffen Sommer Graphics Device Interface (GDI) File System Cache Verwaltet virtuellen Speicher (Einlagerung , Überwachung) Behandelt Systemaufrufe, die virtuellen Speicher betreffen Architektur und Schlüsselkomponenten von Windows II.III Security Reference Monitor Stefan Lietsch und Steffen Sommer Behandelt Prozesse und Threads (Erstellung und Vernichtung) Schlüssel zur Multiprogrammierung Virtual Memory Manager Architektur und Schlüsselkomponenten von Windows Verwaltet E/A-Geräte und stellt E/A-Dienste zur Verfügung „Heimat der Gerätetreiber“ Auch Dateisysteme (NTFS, FAT) sind technisch gesehen Gerätetreiber und werden deshalb im E/A Manager verwaltet Process Manager Verwaltet alle „Objekte“, die dem BS bekannt sind (z.B. Threads, Prozesse, Dateien, Verzeichnisse, Semaphore, E/A-Geräte etc.) Eigenständige, dünne Schicht über der Executive Dient als Schnittstelle zur Executive Akzeptiert echte Windows 2000 Systemaufrufe und ruft Teile der Executive zur Ausführung auf Verwaltet die Registry Interprozesskommunikation zw. Prozessen und Subsystemen Effizienz sehr wichtig weil für Systemaufrufe benötigt Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer II.IV Gerätetreiber III. Objekte in Windows 2000 Jeder Treiber kann ein oder mehrere E/A-Geräte steuern aber auch z.B. Datenstrom verschlüsseln oder Zugang zu den Datenstrukturen des Kerns verschaffen Kein Bestandteil des Kerns (im Gegensatz zu UNIX) → Vorteil: Kern ist für (fast) jede Hardwarekonstellation gleich, die Treiber werden dynamisch beim Start geladen und ermöglichen so trotzdem eine individuelle Konfiguration Architektur und Schlüsselkomponenten von Windows III. Stefan Lietsch und Steffen Sommer Objekte in Windows 2000 IV. Einheitliche und konsistente Schnittstelle zu den Systemressourcen und Datenstrukturen (Prozesse, Threads, offene Dateien etc.) Alle Objekte werden auf gleiche Art benannt und können über sog. Objekt-Handles angesprochen werden Alle Objekte laufen über den Objektmanager, dadurch wird eine zentrale Sicherheitskontrolle ermöglicht und nicht mehr benutzte Objekte können schnell ermittelt und gelöscht werden Jedes Objekt hat einen Bestimmten Typ, der durch eine Zeiger auf ein Typobjekt festgelegt wird, diese Typobjekte haben Standardoperationen um die jeweiligen Objekte aufzurufen, zu schließen und zu löschen Jedes Objekt hat seine eigenen Adressraum, da sie dynamisch erzeugt werden Win32-API bietet Methoden um Objekte zu erschaffen oder zu öffnen Architektur und Schlüsselkomponenten von Windows Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Stefan Lietsch und Steffen Sommer API allgemein API = Anwendungsprogrammierschnittstelle (Application Programming Interface) „Eine API besteht aus einem Satz von Funktionen, die von Programmierern benutzt werden, um festzulegen, wie Programme interagieren.“ Bsp. CryptoAPI von MS: Wen ein Programm eine Verschlüsselung vornehmen muss, kann es dafür diese CryptoAPI von MS aufrufen. Diese enthält Standardfunktionen für die Verschlüsselung. Das Programm selbst muss nicht wissen, wie die Verschlüsselung funktioniert. Wenn MS eine neue Verschlüsselungfkt. entwickelt, kann diese problemlos in die API integriert werden. Solange sich die Schnittstellen nicht ändert, können die Programme unverändert auf diese API zugreifen. Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer IV. Win32-API Dokumentierte Bibliothek mit Funktionen Systemaufrufe oder Arbeit direkt im Benutzerraum Speicherverwaltung Dateiein- und Ausgabe Demzufolge abwärtskompatibel bis Win95, wenn man grundlegende Änderungen beachtet. (z. Bsp.: Sicherheitsaufrufe…) Sicherheit, Handles gehören zu dem Prozess der das Objekt erzeugt hat. Handles referenzieren das Objekt. Bsp.: Beim Laden eines Gerätetreibers wird ein Objekt erzeugt, das alle Eigenschaften und Zeiger auf all seine Funktionen enthält. Innerhalb des BS wird der Treiber nur über dieses Objekt referenziert. Stefan Lietsch und Steffen Sommer Weitere Teilsysteme (MS-DOS-VM / WOW) Ein- und Ausabegeräte … Architektur und Schlüsselkomponenten von Windows V. POSIX-Teilsystem (Portable Operating System Interface for Unix) Minimale Unterstützung für UNIX-Anwendungen Wandelt C-Aufrufe in Win32-API-Aufrufe um MS-DOS-Teilsystem NTVDM (NT Virtual DOS Machine) führt alle DOS-Anwendungen aus, indem die MS-DOS-5.0 –Umgebung emuliert wird. Jede DOS-Anwendung läuft in ihrer eigenen NTVDM und in ihrem eigenen Adressraum. Es wird ein vollständiger Netzwerk-Redirector sowie Unterstützung für Maus und CD-ROM-Laufwerken bereitgestellt. 16-Bit-Windows-Teilsystem Stefan Lietsch und Steffen Sommer allerdings keine Threads, kein Fenstersystem und kein Netzwerk Demzufolge vom Win32-Teilsystem abhängig. Das Posix-Teilsystem kann nur das was auch das Win32-Teilsystem kann. Und nicht mal das. Es steht nicht die gesamte Win32-Schnittstelle zur Verfügung. OS/2-Teilsystem für OS/2 1.x Zeichenmodusanwendungen konvertiert ebenfalls OS/2-API-Aufrufe in Win32-API-Aufrufe WOW (Windows on Windows) für Windows 3.1 / 3.11- Anwendungen Mittels Prozess Thunking werden 16-Bit-Aufrufe in entsprechende 32-BitAufrufe der Win32-API umgewandelt Architektur und Schlüsselkomponenten von Windows Während der Entwurfsphase von Windows NT, war die POSIX-Kompatibilität eine Anforderung an BS, das von der US-Bundesregierung gekauft wurde. Es gibt drei Posix-Ebenen. Windows 2000 unterstützt die unterste: POSIX.1. Stefan Lietsch und Steffen Sommer Weitere Teilsysteme (POSIX und OS/2) Teilsysteme agieren mit dem Win32-Teilsystem, das als Einziges direkt mit der Ausführungsschicht interagiert. Es gibt hunderte von Aufrufen zum Erzeugen, Zerstören, Verwalten, Benutzen von Fenstern, Menüs, Toolbars, Statusanzeigen, Rollbalken, Dialogboxen, Symbolen und vieles mehr. Sicherherheitsdeskriptor legt genau fest, wer welche Operationen auf dem Objekt ausführen darf und wer nicht. Architektur und Schlüsselkomponenten von Windows Jeder Prozess besitzt eine ID, die ihn eindeutig identifiziert. Jedes Objekt besitzt eine Zugriffskontrolle, die festlegt, welcher Benutzer welche Operatione ausführen darf. graf. Schnittstelle über 60 Aufrufe zum Erzeugen, Löschen, Schließen, Lesen, Schreiben von Dateien, sowie Auslesen und Setzen von Dateiattributen Kontrollierte Zugriff auf Objekte mittels Sicherheitsdeskriptor V. Jedes BS besitzt Systemaufrufe. Allerdings hat MS diese nie öffentlich bekannt gegeben. Und MS ändert die Systemaufrufe von Ausgabe zu Ausgabe Win32-Aufrufe erzeugen Betriebssystemkernobjekte, wie Dateien, Prozesse, Threads, Pipes usw. Ergebnis = Handle, welches das Objekt referenziert Win32-Aufrufe decken alle Operationen ab, die eine WindowsAnwendung bei der Ausführung benötigt Win32-Aufrufe ändern sich nicht (es kommen nur neue hinzu) IV. Win32-API Sehr beschränkt. Kann keine graf. Anwendungen oder OS/2 2.x Programme oder höher ausführen. Enthält nur Kern-API von OS/2 1.x und einige grundlegende NetzwerkaufrufeAufrufe. Womit es den POSIX-Teilsystem einen Schritt voraus ist. Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer VI. Registry VI. Alle Boot- und Konfigurationsinformationen, sowie aktuelle Benutzeranpassung in einer großen zentralen Datenbank Verzeichnis = Key / Verzeichniseintrag = value (Name, Typ, Daten) alle benutzerspezifischen Einstellungen (Sounds, Grafikeinstellungen usw.) Generell alles was man mit der Systemsteuerung einstellen kann Wir beim Systemstart vom Plug-and-Play-Manager aufgebaut und nicht auf der Festplatte gespeichert. HKEY_CLASSES_ROOT ( SAM = Security Account Manager (Benutzernamen, Gruppen, Passwörter usw. ) Security (Systemweite Sicherheitsrichtlinien) HKEY_CURRENT_CONFIG HKEY_CURRENT_USER Hardware (alle Informationen über Hardware, Treiber) HKEY_USERS HKEY_PERFORMANCE_DATA (Systemleistung über „perfmon“) HKEY_LOCAL_MACHINE Registry Mindestlänge der Passwörter, geduldete Anzahl falscher Anmeldeversuche. Software (Informationen von Programmen externer Hersteller) System (Informationen zum Systemstart) Liste der Treiber, die geladen werden müssen, und eine Liste der Dieste, die nach dem Hochfahren gestartet werden müssen. Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Hunderte von internen Zählern, die die Systemleistung beobachten. Link auf COM-Objekte = Dateiendungen Link zum aktuellen Hardwareprofil Link zum aktuellen Benutzerprofil Wenn das System heruntergefahren wird, wird das meiste der Registry auf der Festplatte gespeichert, und zwar in Dateien, die Hives genannt werden. Hardware-Informationen werden nicht abgespeichert. Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer VII. Quellen Andrew S. Tanenbaum, Moderne Betriebssysteme, Kapitel 11 David A. Solomon, Inside MS Windows 2000 3. Edition, Kapitel 2 Brown, Miller, Windows 2000 Server Kompendium, Kapitel 2 Fragen ? Vielen Dank für Eure Aufmerksamkeit! Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer Architektur und Schlüsselkomponenten von Windows Stefan Lietsch und Steffen Sommer