Systemaufbau - Subsysteme

Die Windows Architektur ähnelt der Microkernel-Architektur. Im Executive sind elementare Betriebssystem-Funktionalitäten zusammengefaßt. Hierzu zählen Sicherheitsmechanismen, Inter-Prozeß-Kommunikation, Scheduling, Ein/Ausgabe (I/O), Dateisystem und Speichermanagement. 

Auf dem Kernel setzten Betriebssystem-Subsysteme auf. Im Augenblick enthält Windwos NT/2000 das 32-Bit Windows Subsystem (win32), ein POSIX-Subsystem und ein OS/2 Subsystem für OS/2 Applikationen. Es können somit auch POSIX-Applikationen ausgeführt werden. Dies beinhaltet  jedoch keine Binärkompatibilität; POSIX-Applikationen müssen für Windows kompiliert werden.
OS/2 Applikationen können ausgeführt werden, wenn sie unter OS/2 Version 1.x lauffähig sind. Modernere OS/2 Appliaktionen, die den Präsentation-Manager verwenden sind nicht lauffähig. Ein Subsystem kann sogar abstürzen, ohne daß der Kernel beeinträchtigt wird. Die Trennung von Executive und Subsystemen wurde ab Version 4 aus Performance-Gründen leider etwas verwaschen.
Ab Windows XP wird nur noch das 32-Bit Windows Subsystem unterstützt.
POSIX und OS/2 werden nicht unter Windows XP oder Windows Server 2003 unterstützt (308259)


SubSysteme

Win32-Subsystem

Das Win32 Subsystem stellt die Ausführungsumgebung für 32-Bit Applikationen, 16-Bit Applikationen (Windows 3.1-Programme) und DOS-Applikationen zu Verfügung. Insbesondere die grafische Oberfläche wird von diesem Subsystem verwaltet.

Windows 32-Bit Applikationen setzen direkt auf dem Subsystem auf. Ihre Speicherbereiche sind voneinander  getrennt. Ein Fehler in einem Programm beeinträchtigt somit kein anderes.

32 Bit

 

32 Bit

                 

win32

 

win32

 

Win16 VDM
Jede 16-Bit Windows Applikation wird in einem getrennten Speicherbereich in einer virtuellen DOS-Maschine (VDM) ausgeführt.

16 Bit

 

16 Bit

                 

thunking

win32

16 Bit / seperate

       

win32

   

DOS VDM  (8 Bit)
DOS-Applikationen werden ebenfalls jeweils in einem getrennten Speicherbereich ausgeführt. Auch DOS-Applikationen nutzen die virtuellen DOS-Maschinen (VDM) der Intel-Prozessoren.

DOS

 

DOS

                 

NTVDM

 

NTVDM

                 

win32

 

win32

 

 


OS/2-Subsystem

Das OS/2-Subsystem stellt nur eine sehr eingeschränkte Emulation von OS/2 inklusive der Unterstützung des OS/2-Dateisystems HPFS dar. Es werden zeichenorientierte 16 Bit OS/2 Anwendungen nur auf dem x86 PC unterstützt. Andere Anwendungen, die sowohl unter OS/2 als auch unter MS-DOS laufen, können auch auf dem MS-DOS-Teilsystem von RISC-Computern ausgeführt werden.

Bei der Anmeldung des Benutzers wird das Subsystem in den Speicher gebracht und aktiviert; ggf. wird es anschließend wieder ausgelagert, weil es nicht gebraucht wird.


POSIX-Subsystem

Es werden nur POSIX-Anwendungen gemäß IEEE-Standard 1003.1, die unter Windows kompiliert wurden, unterstützt. Das Grafik-API von Win32 kann nicht benutzt werden; dazu kommt, daß man nur einen eingeschränkten Zugriff auf den Bildschirm und einige NT-Funktionen zur Ausgabe hat.

Genauso wie beim OS/2-Subsystem gilt auch hier, daß bei der Anmeldung des Benutzers das Subsystem in den Speicher gebracht und aktiviert wird, auch wenn es anschließend wieder ausgelagert wird, weil es nicht gebraucht wird.


Das integrale Sicherheits-Subsystem

Um überhaupt erst einmal Zugriff auf das System zu bekommen, muß man sich über einen Login-Prozeß identifizieren (1). Das Sicherheits-Subsystem überprüft die Daten mittels einer Datenbank (dem Security Account Manager, kurz SAM) durch den Executive und gewährt bei korrekten Angaben des Benutzers Zugriff auf das System (2). Dazu wird ein Access-Token (Zugriffsschlüssel) mit allen Berechtigungen generiert und beim Kreieren des neuen Prozesses weitergegeben (3), so daß das System jederzeit beim Starten eines neuen Prozesses vom Benutzer über dessen Zugriffsrechte informiert ist. Zuletzt wird die Benutzerschnittstelle, sprich der Programm-Manager gestartet (4).

Die Anmeldung
Die Anmeldung