Alles rund um Windows

Die Architektur von Windows

Die Architektur von Windows

In diesem Artikel befassen wir uns mit der inneren Struktur von Windows. Windows NT ist die Grundlage für das heutige Windows, und wir werden uns zunächst einige der Zielsetzungen für Windows NT ansehen.

Inhaltsverzeichnis

Einige Zielsetzungen für das Betriebssystem Windows NT

Bei der Planung von Windows NT in den frühen 1990er Jahren wurden folgende Ziele für das Betriebssystem festgelegt.

  • Erweiterbarkeit
  • Übertragbarkeit
  • Zuverlässigkeit und Robustheit
  • Kompatibilität
  • Leistung

Das Betriebssystem musste erweiterbar sein, d. h. der Code des Betriebssystems musste mit der Zeit und der Entwicklung wachsen und sich verändern können.

Das Betriebssystem sollte auch übertragbar sein, d. h. es sollte auf verschiedenen Hardware-Architekturen funktionieren. Das Betriebssystem sollte auch leicht an neue Arten von Hardware-Architekturen angepasst werden können, die in der Zukunft entwickelt werden.

Ein zuverlässiges und robustes Betriebssystem muss mit Fehlern in seinem eigenen Code umgehen können. Ein Problem in einer Anwendung, die auf dem System läuft, darf weder das Betriebssystem noch die laufenden Benutzeranwendungen beeinträchtigen.

Als Windows NT auf den Markt kam, war es mit früheren Versionen von Windows und MS-DOS kompatibel. Das bedeutet, dass Anwendungen für frühere Versionen von Windows und MS-DOS unter Windows NT ausgeführt werden können müssen.

Das Betriebssystem muss leistungsfähig sein, was bedeutet, dass das Betriebssystem so schnell wie möglich auf verschiedenen Plattformen funktioniert.

Über die Struktur von Windows

Es gibt verschiedene Möglichkeiten, ein Betriebssystem zu organisieren. Eine Möglichkeit besteht darin, das Betriebssystem als eine große Anwendung zu erstellen, die auf einem Computer wie eine Benutzeranwendung läuft. Moderne Betriebssysteme wurden jedoch nicht auf diese Weise entwickelt, sondern bestehen aus mehreren Schichten, wobei jede Schicht eine bestimmte Aufgabe hat.

Die Architektur des Windows-Betriebssystems ist ein Schichtensystem mit den beiden Hauptkomponenten Benutzermodus und Kernelmodus. Benutzeranwendungen laufen im Benutzermodus, während die zum Betriebssystem gehörenden Prozesse im Kernelmodus laufen.

BenutzermodusBenutzeranwendungen
Kernel-ModusDie Prozesse des Betriebssystems bestehen aus ausführenden Diensten, Gerätetreibern, dem Kernel und HAL.

Zentrale Komponenten im Kernelmodus sind der Kernel, eine Hardwareschicht (HAL), Treiber und eine Vielzahl von Diensten, die Executive Services genannt werden. Eine weitere wichtige Komponente des Kernelmodus sind die Gerätetreiber, die an den Computer angeschlossene physische Geräte, das Dateisystem, Netzwerkprotokolle und mehr verwalten.

Benutzermodus

Um das Betriebssystem vor Benutzeranwendungen zu schützen, die Daten des Windows-Betriebssystems beschädigen oder kritisch verändern können, werden Anwendungen im Benutzermodus ausgeführt. Der Benutzermodus schützt die Anwendungen auch voreinander.

Anwendungen im Benutzermodus kommunizieren mit dem Kernel über die Windows-API und greifen über das Betriebssystem auf die Hardware zu. Anwendungen im Benutzermodus können nur über die Windows-API auf Daten im Speicher anderer Anwendungen zugreifen.

Prozesse von Benutzeranwendungen haben eine niedrigere Priorität als die Prozesse des Betriebssystems.

Kernel-Modus

Prozesse im Kernel-Modus haben vollen Zugriff auf die Hardware und Systemressourcen. Um eine gute Sicherheit zu gewährleisten, laufen Prozesse im Kernelmodus in einem geschützten Bereich des Speichers.

Die wichtigsten Teile des Kernelmodus sind der Kernel, die ausführenden Dienste, die Hardwareschicht und die Gerätetreiber.

Kernel
Exekutivdienste (Executive Services)
Treiber (Drivers)
Hardware-Ebene (Hardware Layer)
Grafische Benutzeroberfläche (Graphical User Interface)

Der Zweck des Kernelmodus ist es, zu verhindern, dass Anwendungen im Benutzermodus auf kritische Bereiche des Betriebssystems zugreifen können. Anwendungen im Benutzermodus müssen die Hilfe des Kernelmodus in Anspruch nehmen, um diese Art von Operationen durchzuführen.

Windows-Exekutivdienste

Exekutivdienste sind Dienste im Windows-Betriebssystem, die Anwendungen im Benutzermodus dabei helfen, auf dem Computersystem zu laufen. Zu den Ausführungsdiensten gehören viele grundlegende Dienste des Windows-Betriebssystems.

Die Betriebssystemdatei Ntoskrnl.exe

Die obere Schicht in der Betriebssystemdatei Ntoskrnl.exe ist der ausführende Teil von Windows, während die untere Schicht in Ntoskrnl.exe der Kernel ist. Der ausführende Teil von Windows trägt den Namen Windows Executive.

Die ausführenden Dienste in Windows befinden sich im Kernelmodus. Die Exekutivdienste leisten zentrale Dienste für das Betriebssystem, einschließlich der Verwaltung von Prozessen und Threads, der Speicherverwaltung und der Verarbeitung von Ein- und Ausgaben.

Einige der Hauptkomponenten der Windows-Exekutivdienste:

  • Objekt-Manager
  • Konfigurations-Manager
  • Prozess- und Thread-Manager
  • Eingabe-/Ausgabe-Manager
  • Installations- und Konfigurations-Manager
  • Speicher-Manager
  • Cache-Manager
  • Energie-Manager

Zu den Exekutivdiensten gehören auch eine Reihe anderer Funktionen, die für die Infrastruktur des Windows-Betriebssystems wichtig sind.

Der Kernel

Der Kernel ist der zentralste Teil des Betriebssystems und steuert die Nutzung der Prozessoren und verwaltet das Scheduling von Threads, den Context Switching, Interrupt-Signale, Exception-Signale und die Multiprozessor-Synchronisation. 

Der Kernel befindet sich zwischen der Hardwareschicht (HAL) und den ausführenden Diensten und bildet eine Brücke zwischen den Benutzeranwendungen und der Datenverarbeitung auf der Hardware-Ebene.

Die wichtigste Aufgabe des Kernels ist es, die Ausführung von Anwendungen zu ermöglichen und den Anwendungen Zugang zur Hardware zu ermöglichen. Um ein Programm auszuführen, richtet der Kernel einen Adressraum für das Programm ein, lädt den Programmcode in den Speicher und versorgt das Programm mit einem Stack.

Weitere wichtige Aufgaben des Kernels sind die Verwaltung der Computerressourcen und die Ermöglichung der Nutzung dieser Ressourcen durch Anwendungen.

Diese Ressourcen sind:        

der ProzessorProzesse erhalten über den Kernel Zugriff auf den Prozessor.
den Speicher des ComputersDer Kernel hat vollen Zugriff auf den Arbeitsspeicher des Computers und weist dem Prozessor nach Bedarf Speicher zu.
Eingabe-/AusgabegeräteDer Kernel empfängt Anfragen von Prozessen zur Durchführung von Eingaben/Ausgaben und ermöglicht den Zugriff auf die entsprechenden Geräte.

Beim Starten von Windows wird gleichzeitig der Kernel gestartet. Der Kernel startet die Treiber, die für den Start und die Ausführung des Windows-Betriebssystems erforderlich sind. Der Kernel läuft im Kernelmodus und richtet Paging und virtuellen Speicher ein. Dann startet er einige Systemprozesse und lässt sie im Benutzermodus laufen.

Der Kernel behält den Überblick über die an den Computer angeschlossenen Hardwaregeräte, indem er eine Liste dieser Geräte führt. Der Kernel ermöglicht Prozessen bei Bedarf den Zugriff auf Hardware-Geräte.

Hardware-Abstraktionsschicht

Hardware-Abstraktionen sind eine Reihe von Routinen, die Anwendungen den Zugriff auf Hardware-Geräte ermöglichen, unabhängig davon, welcher Hersteller die Geräte stammen.

Die Abkürzung für die Hardware-Abstraktionsschicht ist HAL, eine Schicht zwischen der physischen Hardware und der Software, die auf dem Betriebssystem läuft. Bei einem PC kann HAL als Treiber für die Hauptplatine angesehen werden, der es ermöglicht, dass Anweisungen aus einer höheren Programmiersprache mit Komponenten auf niedrigerer Ebene wie der Hardware kommunizieren.

Eine Aufgabe von HAL ist es, das Windows-Betriebssystem in die Lage zu versetzen, mit verschiedenen Hardware-Plattformen zu arbeiten. HAL ist also eine Schnittstelle zur Hardwareausstattung des Computerbetriebssystems. Programme in Windows kommunizieren nicht direkt mit der Hardware, sondern über HAL mit der Hardware.

Gerätetreiber

Treiber sind Steuerprogramme, die die Kommunikation zwischen Hardware-Geräten und dem Betriebssystem ermöglichen und notwendig sind, damit Windows mit der Hardware kommunizieren kann.

Windows enthält Installationstreiber, die eine große Anzahl von verschiedenen Hardwaregeräten unterstützen. Tausende von Treibern sind über ein Windows-Update verfügbar, und jeden Monat kommen Hunderte von neuen Treibern hinzu.

Gerätetreiber sind kleine Programme, die Anwendungen auf einer höheren Ebene bei der Kommunikation mit der Hardware helfen. Gerätetreiber werden im Kernel-Modus ausgeführt und stellen eine Schnittstelle zwischen dem Eingabe-/Ausgabe-Manager und der Hardware dar.

Es gibt verschiedene Arten von Gerätetreibern. Im Folgenden wird ein Überblick über einige von ihnen gegeben:

  • Treiber für Hardware-Geräte. Unter Verwendung der Hardwareschicht kümmern sich diese Treiber um die Ein-/Ausgabe für physische Geräte.
  • Dateisystemtreiber sind Windows-Treiber, die sich um die Eingabe/Ausgabe von Dateien kümmern.
  • Dateisystem-Filtertreiber führen Aufgaben wie die Verschlüsselung oder das Schreiben von Daten auf mehr als eine Festplatte aus. Sie führen auch Scans durch, um Viren aufzuspüren. Dateisystemtreiber für das Netzwerk übertragen die Dateisystem-Eingabe/Ausgabe an andere Computer in einem Netzwerk.
  • Protokolltreiber implementieren ein Netzwerkprotokoll wie TCP/IP oder NetBUI.
  • Softwaretreiber sind Kernelmodule, die im Auftrag eines Prozesses im Benutzermodus Operationen ausführen, die nur im Kernelmodus durchgeführt werden können. 

Microsoft hat das Windows Driver Model (WDM) eingeführt, damit Treiberentwickler Gerätetreiber schreiben können, die mit dem Quellcode aller Windows-Versionen kompatibel sind. Kernel-Mode-Treiber, die den WDM-Regeln folgen, werden WDM-Treiber genannt, und es gibt drei Arten von WDM-Treibern: Bustreiber, Funktionstreiber und Filtertreiber.

Ein Bustreiber bedient einen Bus-Controller, einen Adapter, eine Bridge oder ein anderes Gerät, das untergeordnete Geräte hat. Bustreiber erkennen und melden auch andere Geräte, die mit dem Bus verbunden sind. Jeder Bustyp, wie z. B. PCI, PCMCIA und USB, in einem System hat einen Bustreiber.
Ein Funktionstreiber ist der Haupttreiber für ein Gerät. Normalerweise verwaltet der Funktionstreiber Lese- und Schreibvorgänge auf dem Gerät und verwaltet die Energierichtlinien des Geräts.
Ein Filtertreiber ist ein Microsoft Windows-Treiber, der die Funktion von Peripheriegeräten erweitert oder modifiziert oder ein spezielles Gerät im Personal Computer unterstützt.

Die Windows Driver Foundation (WDF) vereinfacht die Treiberentwicklung durch die Bereitstellung von zwei Frameworks: Das Kernel Mode Driver Framework (KMDF) und das User Mode Driver Framework. Entwickler können diese Frameworks verwenden, um Treiber für Windows zu schreiben.

Das Fenster- und Grafiksystem

Eine grafische Benutzeroberfläche (GUI) ist eine Art von Schnittstelle, die es dem Benutzer ermöglicht, auf andere Weise als über die Tastatur mit dem Computer zu kommunizieren.

Das Fenster- und Grafiksystem implementiert die grafischen Benutzeroberflächen für Windows.

Dieses System kümmert sich um die Verarbeitung von Fenstern, das Zeichnen in Fenstern, die Verarbeitung von Steuerelementen wie Menüs und Symbolleisten, den Empfang von Maus- und Tastatureingaben und mehr.

Systemprozesse

Es gibt viele Systemprozesse, die in jedem Windows-System immer laufen, und wir werden uns einige von ihnen ansehen:

  • Leerlaufprozess
  • Sitzungsmanager
  • Anmeldeprozess
  • Windows-Subsystem
  • Dienststeuerungsmanager

Leerlaufprozess besteht aus einem oder mehreren Threads im Kernel, die im Prozessor laufen, wenn keine anderen Threads auf dem Computer laufen. In einem Computersystem mit mehreren Prozessoren gibt es einen Idle Process für jeden Prozessor.

Der ursprüngliche Grund für einen Idle-Prozess war, die spezielle Situation für den Prozessmanager zu vermeiden, in der keine Programme auf dem System laufen.

In der Informatik ist eine Session ein aktiver Informationsaustausch, auch Dialog genannt, zwischen zwei Geräten. Der Session Manager ist der erste Prozess, der im Benutzermodus erstellt wird, und ist für viele wichtige Schritte beim Start von Windows verantwortlich. Session Manager erstellt auch Systemvariablen, startet den Kernel- und Benutzermodus, erstellt virtuellen Speicher und startet die Windows-Anmeldung.

Der Windows-Anmeldeprozess verwaltet die An- und Abmeldung des Computersystems. Eine sichere Tastenkombination zum Starten von Winlogon ist Strg + Alt + Entf.

Das Windows-Subsystem besteht aus mehreren Komponenten, die wichtige Aufgaben im Betriebssystem übernehmen, darunter die Verwaltung von Tastatur, Maus und Bildschirm. Das Windows-Subsystem ist für die Ausführung von Windows erforderlich.

Der Dienststeuerungs-Manager ist ein spezieller Systemprozess, der für das Starten, Beenden und die Interaktion mit Dienstprozessen verantwortlich ist. Es handelt sich um einen geschützten Prozess, der nur schwer manipuliert werden kann.

Diese Artikel könnte Sie ebenfalls interessieren: