Architektur von Windows NT

Das Architektur von Windows NTeine Linie von Betriebssysteme produziert und verkauft von Microsoft, ist ein geschichtetes Design, das aus zwei Hauptkomponenten besteht, Benutzermodus und Kernelmodus. Es ist ein Präventiv, wieder eingetreten Multitasking Betriebssystem, das mit der Arbeit mit der Arbeit entwickelt wurde Uniprozessor und Symmetrischer Multiprozessor (SMP) -basierte Computer. Herstellen Input-Output (I/O) Anfragen, sie verwenden Paket-gesteuerte E/O, die verwendet E/A -Anfragepakete (IRPS) und asynchroner i/o. Beginnen mit Windows XPMicrosoft begann zu machen 64-Bit Versionen von Windows verfügbar; Vorher gab es nur 32-Bit Versionen dieser Betriebssysteme.
Programme und Subsysteme im Benutzermodus sind begrenzt in Bezug auf die Systemressourcen, auf die sie zugreifen können, während der Kernel -Modus einen uneingeschränkten Zugriff auf den Systemspeicher und die externen Geräte hat. Der Kernel -Modus in Windows NT hat vollen Zugriff auf die Hardware- und Systemressourcen des Computers. Die Windows nt Kernel ist ein Hybridkern; Die Architektur umfasst a Einfacher Kernel, Hardware -Abstraktionsschicht (Hal), Fahrer und eine Reihe von Dienstleistungen (gemeinsam benannt Executive), die alle im Kernel -Modus existieren.[1]
Der Benutzermodus in Windows NT besteht aus Subsystemen, die E/A -Anforderungen an den entsprechenden Kernel -Modus weitergeben können Gerätetreiber Durch die Verwendung des E/A -Managers. Die Benutzermodusschicht von Windows NT besteht aus den "Umgebungssubsystemen", in denen Anwendungen für viele verschiedene Arten von Betriebssystemen geschrieben werden, und das "integrierte Subsystem", das systemspezifische Funktionen im Auftrag von Umgebungssubsystemen betreibt. Der Kernel -Modus verhindert, dass Benutzermodusdienste und Anwendungen auf kritische Bereiche des Betriebssystems zugreifen, auf den sie keinen Zugriff haben sollten.
Die Executive Interfaces mit allen Subsystemen des Benutzermodus befassen sich mit E/A, Objektverwaltung, Sicherheits- und Prozessmanagement. Der Kernel sitzt zwischen der Hardware -Abstraktionsschicht und der Führungskraft, um sie bereitzustellen Multiprozessorsynchronisation, Faden und unterbrechen Sie die Zeitplanung und Versand sowie Fallenhandhabung und Ausnahmeversand. Der Kernel ist auch für die Initialisierung von Gerätetreibern bei Bootup verantwortlich. Treiber der Kernel-Modus existieren in drei Ebenen: Treiber auf höchster Ebene, Zwischenfahrer und Treiber auf niedriger Ebene. Windows -Treibermodell (WDM) existiert in der Zwischenschicht und wurde haupt Windows 98 und Windows 2000. Die niedrigsten Treiber sind entweder Legacy Windows NT -Geräte -Treiber, die ein Gerät direkt steuern oder a sein können Stecker und Spiel (PNP) Hardwarebus.
Benutzermodus
Der Benutzermodus besteht aus verschiedenen systemdefinierten Prozessen und DLLs.
Die Schnittstelle zwischen den Anwendungen des Benutzermodus und dem Betriebssystem -Kernelfunktionen wird als "Umgebungssubsystem" bezeichnet. Windows NT kann mehr als eine davon haben, wobei jeder einen anderen API -Set implementiert. Dieser Mechanismus wurde entwickelt, um Anwendungen zu unterstützen, die für viele verschiedene Arten von Betriebssystemen geschrieben wurden. Keine der Umgebungssubsysteme kann direkt auf Hardware zugreifen. Der Zugriff auf Hardwarefunktionen erfolgt durch Aufrufen in die Kernel -Modusroutinen.
Es gibt drei Hauptumgebungssubsysteme: die Win32 Subsystem, an OS/2 Subsystem und a Posix Teilsystem.[2]
Win32 Umweltsubsystem

Das Win32-Umgebungssubsystem kann 32-Bit-Windows-Anwendungen ausführen. Es enthält sowohl die Konsole als auch die Textfensterunterstützung, das Herunterfahren und die Handhabung von Hard-Fehler für alle anderen Umgebungssubsysteme. Es unterstützt auch Virtuelle DoS -Maschinen (VDMs), die erlauben MS-DOS und 16-Bit Fenster (Win16) Anwendungen für Windows NT. Es gibt eine bestimmte MS-DOS-VDM, die in seinem eigenen Adressraum läuft und eine emuliert Intel 80486 Ausführen von MS-DOS 5.0. Win16 -Programme laufen jedoch in einem Win16 VDM. Jedes Programm wird standardmäßig im gleichen Prozess ausgeführt, wodurch derselbe Adressraum verwendet wird, und der Win16 VDM gibt jedem Programm einen eigenen Thread, auf dem man ausgeführt werden soll. Windows NT ermöglicht Benutzern jedoch, ein Win16-Programm in einem separaten Win16-VDM auszuführen, mit dem das Programm präventiv multitaskiert wird, da Windows NT den gesamten VDM-Prozess vorbeugt, der nur eine laufende Anwendung enthält. Der Win32 -Umwelt -Subsystemprozess (csrs.exe) Enthält auch die Fensterverwaltungsfunktion, die manchmal als "als" bezeichnet wird "Fenstermanager". Es übernimmt Eingabeereignisse (z. B. von der Tastatur und der Maus) und übergibt dann Nachrichten an die Anwendungen, die diese Eingabe empfangen müssen. Jede Anwendung ist als Antwort auf diese Nachrichten für das Zeichnen oder Auffrischen ihrer eigenen Fenster und Menüs verantwortlich.
OS/2 -Umgebungssubsystem
Das OS/2-Umgebungssubsystem unterstützt 16-Bit-charakterbasierte OS/2-Anwendungen und emuliert OS/2 1.x, jedoch nicht 32-Bit- oder grafische OS/2-Anwendungen, wie sie mit OS/2 2.x oder höher verwendet werden Nur x86 Maschinen.[3] Um grafische Betriebssysteme/2 1.x-Programme auszuführen, muss das Windows NT-Add-On-Subsystem für den Präsentationsmanager installiert werden.[3] Die letzte Version von Windows NT für ein OS/2 -Subsystem war Windows 2000; Es wurde ab Windows XP entfernt.[4][5]
POSIX -Umgebungssubsystem
Das POSIX -Umgebungssubsystem unterstützt Anwendungen, die streng entweder in den Standard oder den verwandten POSIX.1 -Standard geschrieben sind ISO/IEC Standards. Dieses Subsystem wurde durch ersetzt durch Interix, was ein Teil von ist Windows -Dienste für UNIX.[4] Dies wurde wiederum durch die ersetzt Windows -Subsystem für Linux.
Sicherheitssubsystem
Das Sicherheits -Subsystem befasst sich mit Sicherheitstoken, gewährt oder verweigert den Zugriff auf Benutzerkonten basierend auf Ressourcenberechtigungen, bearbeitet Anmeldeanforderungen und initiiert die Anmeldeauthentifizierung und bestimmt, welche Systemressourcen von Windows NT geprüft werden müssen. Es kümmert sich auch um Active Directory. Der Workstation Service implementiert die Netzwerkumbau, das ist die Client -Seite der Windows -Datei und der Druckfreigabe; Es implementiert lokale Anfragen an Remote -Dateien und Drucker, indem sie sie auf die entsprechenden Server im Netzwerk "umleiten".[6] Mit dem Serverdienst ermöglicht der Serverdienst andere Computer im Netzwerk, auf Dateifreigaben und freigegebene Drucker zuzugreifen, die vom lokalen System angeboten werden.[7]
Kernelmodus
Windows NT Kernelmodus Hat vollen Zugriff auf die Hardware- und Systemressourcen des Computers und führt Code in einem geschützten Speicherbereich aus.[8] Es steuert den Zugriff auf Planung, Thread -Priorisierung, Speicherverwaltung und die Interaktion mit Hardware. Der Kernel -Modus verhindert, dass Benutzermodusdienste und Anwendungen auf kritische Bereiche des Betriebssystems zugreifen, auf die sie keinen Zugriff haben sollten. Die Benutzermodusprozesse müssen den Kernel -Modus bitten, solche Vorgänge in ihrem Namen auszuführen.
Während x86 Die Architektur unterstützt vier verschiedene Privilegien (nummeriert 0 bis 3), nur die beiden extremen Privilegien werden verwendet. UsMode -Programme werden mit CPL 3 ausgeführt, und der Kernel läuft mit CPL 0. Diese beiden Ebenen werden häufig als "Ring 3" bzw. "Ring 0" bezeichnet. Eine solche Entwurfsentscheidung war getroffen worden, um die Code -Portabilität zu erreichen. RISC Plattformen, die nur zwei Privilegien unterstützen,[9] Dies bricht jedoch die Kompatibilität mit OS/2 Anwendungen, die E/A -Privilegien enthalten, die versuchen, direkt auf Hardware zuzugreifen.[10]
Der im Kernel -Modus ausgeführte Code umfasst: die Exekutive, die selbst aus vielen Modulen besteht, die bestimmte Aufgaben ausführen; das Kernel, die von der Exekutive verwendete Dienste mit niedrigem Niveau erbringt; die Hardware -Abstraktionsschicht (HAL); und Kernelfahrer.[8][11]
Executive
Die Windows Executive Services bilden den Kernel-Mode-Teil mit niedrigem Niveau und sind in der Datei enthalten Ntoskrnl.exe.[8] Es befasst sich mit E/A, Objektverwaltung, Sicherheits- und Prozessmanagement. Diese sind in mehrere unterteilt Subsysteme, darunter sind Cache -Manager, Konfigurationsmanager, E/O -Manager, Lokaler Verfahrensanruf (LPC), Speichermanager, Objektmanager, Prozessstruktur und Sicherheitsreferenzmonitor (SRM). Zusammen gruppiert, können die Komponenten aufgerufen werden Executive Services (Interner Name Ex). Systemdienste (Interner Name Nt), d.h. Systemaufrufe, werden auch auf dieser Ebene implementiert, außer nur sehr wenigen, die direkt in die Kernelschicht aufrufen, um eine bessere Leistung zu erzielen.
Der Begriff "Dienst" in diesem Zusammenhang bezieht sich im Allgemeinen auf eine aufrufbare Routine oder eine Reihe von Callable -Routinen. Dies unterscheidet sich vom Konzept eines "Serviceprozesses", der eine Benutzermoduskomponente ist, die zu a etwas analog ist Dämon in Unix-artig Betriebssysteme.

- Objektmanager
- Das Objektmanager (Interner Name Ob) ist ein Executive -Subsystem, das alle anderen Subsysteme von Executive, insbesondere Systemanrufen, durchgeben müssen, um Zugriff auf Windows NT -Ressourcen zu erhalten - im Wesentlichen zu einem Ressourcenmanagement -Infrastrukturdienst.[12] Der Objektmanager wird verwendet, um die Duplikation der Funktionen der Objektressourcenverwaltung in anderen Subsystemen der Executive zu verringern, was möglicherweise zu Fehlern führen und die Entwicklung von Windows nt erschweren kann.[13] Für den Objektmanager ist jede Ressource ein Objekt, unabhängig davon, ob diese Ressource eine physische Ressource (z. B. ein Dateisystem oder periphere) oder eine logische Ressource (z. B. eine Datei) ist. Jedes Objekt hat eine Struktur oder Objekttyp Dass der Objektmanager etwas wissen muss.
- Die Erstellung von Objekten ist ein Prozess in zwei Phasen, Schaffung und Einfügen. Schaffung verursacht die Zuweisung eines leeren Objekts und die Reservierung aller vom Objektmanager erforderlichen Ressourcen, wie z. B. einen (optionalen) Namen im Namespace. Wenn die Schöpfung erfolgreich war, füllt das für die Erstellung verantwortliche Subsystem das leere Objekt aus.[14] Wenn das Subsystem die Initialisierung für erfolgreich hält, wird der Objektmanager zugewiesen Einfügung das Objekt, das es über seinen (optionalen) Namen oder a zugänglich macht Plätzchen genannt handhaben.[15] Von da an wird die Lebensdauer des Objekts vom Objektmanager behandelt, und es liegt an dem Subsystem, das Objekt in einer Arbeitsbedingung zu halten, bis der Objektmanager signalisiert wird, es zu entsorgen.[16]
- Griffe sind Identifikatoren, die einen Verweis auf eine Kernel -Ressource durch einen undurchsichtigen Wert darstellen.[17] In ähnlicher Weise unterliegt das Öffnen eines Objekts über seinen Namen Sicherheitsüberprüfungen, aber das Handeln über einen vorhandenen, offenen Griff ist nur auf die angeforderte Zugangsgrenze beschränkt, die beim Öffnen oder Erstellen des Objekts angefordert wurde.
- Objekttypen definieren die Objektverfahren und alle für das Objekt spezifischen Daten. Auf diese Weise erlaubt der Objektmanager Windows NT eine objektorientierter Betriebssystem, wie Objekttypen als polymorph angesehen werden können Klassen das definiert Objekte. Die meisten Subsysteme sind jedoch mit einer bemerkenswerten Ausnahme im E/A -Manager auf die Standardimplementierung für alle Verfahren für Objekttypen angewiesen.
- Jede Instanz eines Objekts, das erstellt wird, speichert seinen Namen, Parameter, die an die Funktion zur Erstellung von Objekten, Sicherheitsattribute und einen Zeiger auf seinen Objekttyp übergeben werden. Das Objekt enthält auch eine Objektschließungsprozedur und eine Referenzzahl, um dem Objektmanager mitzuteilen, wie viele andere Objekte in der Systemreferenz dieses Objekt und dadurch bestimmt, ob das Objekt zerstört werden kann, wenn eine enge Anforderung an sie gesendet wird.[18] Jedes benannte Objekt existiert in einem hierarchischen Objekt Namespace.
- Cache -Controller
- Koordiniert eng mit dem Speichermanager, dem E/A -Manager und den E/A -Treibern einen gemeinsamen Cache für die reguläre Datei -I/A -Datei bereit. Der Windows Cache -Manager arbeitet in Dateiblöcken (anstelle von Geräteblöcken) für einen konsistenten Betrieb zwischen lokalen und Remotedateien und gewährleistet einen gewissen Grad an Kohärenz mit Ansichten mit Speicher-abgebildeter DateienDa Cache-Blöcke ein spezieller Fall von Ansichten für Speichermaked sind und Cache einen speziellen Fall von Seitenfehlern verfehlt.
- Konfigurationsmanager
- Implementiert die Systemaufrufe von Windows -Registrierung.
- E/O -Manager
- Ermöglicht Geräten, mit User-Mode-Subsystemen zu kommunizieren. Es übersetzt Benutzer-Modus-Les- und Schreibbefehle in Lesen oder Schreiben IRPS was es an Gerätefahrer übergeht. Es akzeptiert Dateisystem E/A-Anfragen und übersetzt sie in Gerätespezifische Anrufe und können Geräte-Treiber mit niedrigem Niveau einbeziehen, die Hardware direkt manipulieren, um die Eingabe zu lesen oder die Ausgabe zu schreiben. Es enthält auch einen Cache -Manager zur Verbesserung der Festplattenleistung durch Zwischenspeichern von Leseanforderungen und schreiben Sie auf die Festplatte im Hintergrund.
- Lokaler Verfahrensanruf (LPC)
- Bietet Inter-Process-Kommunikationsports mit Verbindungssemantik. LPC-Ports werden von User-Mode-Subsystemen verwendet, um mit ihren Clients zu kommunizieren, von Executive-Subsystemen zur Kommunikation mit User-Mode-Subsystemen und als Grundlage für den lokalen Transport für Microsoft RPC.
- Speichermanager
- Verwaltet virtueller Speicher, Kontrolle des Speicherschutzes und der Paging des Gedächtnisses in und aus dem physischen Gedächtnis zum sekundären Speicher und implementiert einen allgemeinen Allocator des physischen Gedächtnisses. Es implementiert auch einen Parser von PE -ausführbaren Funktionen, mit dem eine ausführbare Datei in einem einzigen atomaren Schritt zugeordnet oder nicht kartiert werden kann.
- Ausgehend von Windows NT Server 4.0, der Terminal Server Edition, implementiert der Speichermanager einen sogenannten Sitzungsraum, eine Reihe von Kernel-Mode-Speicher, der dem Kontextschalter genau wie der Benutzer-Modus-Speicher unterliegt. Dies ermöglicht mehrere Instanzen des Kernel-Mode Win32-Subsystems und GDI-Fahrer, die trotz der Mängel in ihrem ersten Design nebeneinander laufen. Jeder Sitzungsraum wird von mehreren Prozessen geteilt, die gemeinsam als "Sitzung" bezeichnet werden.
- Um einen Grad der Isolation zwischen Sitzungen ohne Einführung eines neuen Objekttyps zu gewährleisten, wird der Zusammenhang zwischen Prozessen und Sitzungen vom Sicherheitsreferenzmonitor als Attribut eines Sicherheitsmission (TOKEN) behandelt und kann nur geändert werden, während sie spezielle Berechtigungen abhalten .
- Die relativ unkomplizierte und ad hoc -Natur der Sitzungen ist darauf zurückzuführen, dass sie nicht Teil des anfänglichen Designs waren und von einem Dritten mit minimaler Störung der Hauptlinie entwickelt werden mussten (Dritter (Citrix -Systeme) als Voraussetzung für ihre Terminal-Server Produkt für Windows NT, genannt Winframe. Beginnend mit Windows Vista wurde die Sitzungen schließlich zu einem richtigen Aspekt der Windows -Architektur. Sie konstruieren kein Speichermanager mehr, das indirekt durch Win32 in den Benutzermodus eingeschaltet wird. Sie wurden in eine durchdringende Abstraktion erweitert, die die meisten Subsysteme ausführend betrifft. Tatsächlich führt der regelmäßige Einsatz von Windows Vista immer zu einer Umgebung mit mehreren Sitzungen.[19]
- Prozessstruktur
- Griffe Prozess und Thread -Erstellung und -beendigung, und es implementiert das Konzept von Arbeit, eine Gruppe von Prozessen, die als Ganzes beendet oder unter gemeinsame Beschränkungen (ein solches Maximum des zugewiesenen Speichers oder die CPU -Zeit) beendet werden können. Jobobjekte wurden in eingeführt Windows 2000.
- PNP -Manager
- Griffe Stecker und Spiel und unterstützt die Erkennung und Installation der Geräte zur Startzeit. Es liegt auch in der Verantwortung, die Geräte auf Nachfrage anzuhalten und zu starten - dies kann passieren, wenn ein Bus (wie z. USB oder IEEE 1394 FireWire) Gewinne ein neues Gerät und muss einen Gerätetreiber geladen haben, um es zu unterstützen. Die Masse wird tatsächlich im Benutzermodus implementiert, in der Plug -and -Play -Service, die die häufig komplexen Aufgaben der Installation der entsprechenden Treiber, der Benachrichtigung von Diensten und Anwendungen über die Ankunft neuer Geräte und das Anzeigen der GUI für den Benutzer erledigen.
- Power Manager
- Befasst sich mit Stromveranstaltungen (Power-off, Standby, Winterschlaf usw.) und benachrichtigt betroffene Fahrer mit speziellen IRPs (Power irps).
- Sicherheitsreferenzmonitor (SRM)
- Die Hauptbehörde zur Durchsetzung der Sicherheitsregeln des Sicherheits -Integral -Subsystems.[20] Es bestimmt, ob auf ein Objekt oder eine Ressource über die Verwendung von zugegriffen werden kann Zugriffskontrolllisten (ACLS), die selbst aus Zugangskontrolleinträgen (ACEs) bestehen. Asse enthalten a Sicherheitskennung (SID) und eine Liste von Vorgängen, die das ACE einer ausgewählten Gruppe von Treuhändern gibt - ein Benutzerkonto, ein Gruppenkonto oder eine Anmeldungssitzung[21]- Permission (erlauben, leugnen oder prüfen), um diese Ressource zu verbringen.[22][23]
- GDI
- Das Grafikgerätschnittstelle ist verantwortlich für Aufgaben wie das Zeichnen von Linien und Kurven, das Rendern von Schriftarten und den Umgang mit Paletten. Das Windows NT 3.x Die Reihe von Veröffentlichungen hatte die GDI-Komponente in den Benutzermodus platziert Client/Server -Laufzeit -SubsystemDies wurde jedoch mit Windows NT 4.0 in den Kernel -Modus verschoben, um die Grafikleistung zu verbessern.[24]
Kernel
Der Kernel sitzt zwischen Hal und Executive und bietet Multiprozessor -Synchronisation, Thread- und Interrupt -Planung und Versand sowie Handhabung und Ausnahmeversandung. Es ist auch für die Initialisierung von Gerätetreibern bei Bootup verantwortlich, die erforderlich sind, um das Betriebssystem zum Laufen zu bringen. Das heißt, der Kernel erledigt fast alle Aufgaben eines traditionellen Mikrokernel; Die strenge Unterscheidung zwischen Exekutive und Kernel ist der bekannteste Überrest des ursprünglichen Mikrokernel -Designs, und die historische Designdokumentation bezieht sich durchweg auf die Kernelkomponente als "The Microkernel".
Der Kernel ist häufig mit dem Prozessmanager geführt.[25] Die Abstraktionsniveau ist so, dass der Kernel niemals in den Prozessmanager aufruft, nur umgekehrt (abgesehen von einer Handvoll Eckfällen, immer noch nie bis zum Punkt einer funktionalen Abhängigkeit).
Hybrid -Kernel -Design
Das Windows NT -Design enthält viele der gleichen Ziele wie MachDas archetypische Mikrokernel-System, das eine der wichtigsten seiner Struktur als Sammlung von Modulen ist, die über bekannte Schnittstellen kommunizieren, mit einem kleinen Mikrokernel, der auf Kernfunktionen wie Interrupt-Handhabung der ersten Stufe, Fadenplanung und Synchronisationsprimitive beschränkt ist. Dies ermöglicht die Möglichkeit, entweder direkte Verfahrensaufrufe zu verwenden oder Interprozesskommunikation (IPC) zur Kommunikation zwischen Modulen und damit für den potenziellen Standort von Modulen in verschiedenen Adressräumen (z. B. entweder im Kernel- oder Serverprozesse). Weitere mit Mach geteilte Designziele beinhalteten die Unterstützung für verschiedene Architekturen, ein Kernel mit Abstraktionen, die allgemein genug sind, um mehrere Persönlichkeiten des Betriebssystems und eine objektorientierte Organisation implementieren zu können.[26][27]
Die primäre Betriebssystempersönlichkeit unter Windows ist die Windows -API, was immer vorhanden ist. Das Emulationssubsystem, das die Windows -Persönlichkeit implementiert Client/Server -Laufzeit -Subsystem (csrs.exe). Bei Versionen von NT vor 4.0 enthielt dieser Subsystemprozess auch die Treiber für Fenstermanager, Grafikgeräte und Grafikgeräte. Aus den Leistungsgründen in Version 4.0 und später werden diese Module (die häufig auch auf monolithischen Systemen implementiert werden, insbesondere auf solchen ohne interne Grafikunterstützung) als Kernel-Modus-Subsystem.[26]
Anwendungen, die auf NT ausgeführt werden, werden in eine der OS -Persönlichkeiten (normalerweise die Windows -API) und nicht an die native NT -API geschrieben, für die die Dokumentation nicht öffentlich verfügbar ist (mit Ausnahme der Routinen, die in der Entwicklung von Gerätefahrern verwendet werden). Eine OS-Persönlichkeit wird über eine Reihe von Benutzer-Modi-DLLs implementiert (siehe Dynamische Link Bibliothek), die nach Bedarf in die Adressräume der Anwendungsprozesse zugeordnet werden, zusammen mit einem Emulations -Subsystem -Serverprozess (wie zuvor beschrieben). Anwendungen zugreifen auf Systemdienste zu, indem sie in die OS-Persönlichkeit in ihren Adressräumen aufrufen, die wiederum in die NT-Laufzeitbibliothek (ntdll.dll) aufrufen, ebenfalls in den Prozessadressraum zugeordnet sind. Die NT-Laufzeitbibliotheksdienste Diese Anfragen, indem Sie in den Kernel-Modus einfallen, um entweder Kernel-Mode-Exekutivroutinen aufzurufen oder zu machen Lokale Verfahrensanrufe (LPCS) zu den entsprechenden User-Modus-Subsystem-Serverprozessen, die wiederum die NT-API verwenden, um mit Anwendungsprozessen, den Kernel-Mode-Subsystemen und einander zu kommunizieren.[28]
Kernel-Mode-Treiber
Windows NT verwendet Kernel-Mode Gerätetreiber um es zu ermöglichen, mit zu interagieren Hardware -Geräte. Jeder der Treiber verfügt über gut definierte Systemroutinen und interne Routinen, die er in den Rest des Betriebssystems exportiert. Alle Geräte werden vom Benutzermodus -Code als Dateiobjekt im E/A -Manager angezeigt, aber für den E/A -Manager selbst werden die Geräte als Geräteobjekte angesehen, die entweder als Datei-, Geräte- oder Treiberobjekte definiert. Treiber der Kernel -Modus existieren in drei Ebenen: Treiber auf höchster Ebene, Zwischenfahrer und Treiber mit niedrigem Niveau. Die höchsten Treiber auf höchster Ebene, wie z. B. Treiber des Dateisystems für FETT und NTFS, verlassen Sie sich auf Zwischenfahrer. Zwischenfahrer bestehen aus Funktionstreibern - oder einem Haupttreiber für ein Gerät -, die optional zwischen Filtertreibern mit niedrigerer und höherer Ebene eingeklemmt sind. Der Funktionstreiber verlässt sich dann auf einen Busfahrer - oder einen Fahrer, der a dient a Bus Controller, Adapter oder Brücke, die einen optionalen Busfiltertreiber haben kann, der zwischen sich und dem Funktionstreiber sitzt. Zwischenfahrer verlassen sich auf die niedrigsten Treiber, um zu funktionieren. Das Windows -Treibermodell (WDM) existiert in der Zwischenschicht. Die niedrigsten Treiber sind entweder Legacy Windows NT -Geräte -Treiber, die ein Gerät direkt steuern oder ein PNP -Hardware -Bus sein können. Diese Treiber mit niedrigerer Ebene steuern die Hardware direkt und verlassen sich nicht auf andere Treiber.
Hardware -Abstraktionsschicht
Die Windows nt Hardware -Abstraktionsschicht (Hal) ist eine Ebene zwischen der physischen Hardware des Computers und dem Rest des Betriebssystems. Es wurde entwickelt, um Unterschiede in der Hardware zu verbergen und eine konsistente Plattform bereitzustellen, auf der der Kernel ausgeführt wird. Der HAL enthält Hardware-spezifischen Code, der E/A-Schnittstellen steuert. Controller unterbrechen und mehrere Prozessoren.
Trotz seines Zwecks und seines bestimmten Ortes innerhalb der Architektur ist die Hal keine Ebene, die ganz unter dem Kernel liegt, so wie der Kernel unterhalb der Exekutive liegt Executive. In der Praxis bedeutet dies, dass Kernel- und HAL -Varianten in passenden Sätzen vorhanden sind, die speziell für die Zusammenarbeit konstruiert sind.
Insbesondere Hardware -Abstraktion tut es nicht beinhalten die Zusammenfassung des Anweisungssatzes, der im Allgemeinen unter das breitere Konzept von fällt Portabilität. Bei Bedarf den Anweisungssatz abstrahieren (z. B. für den Umgang mit den verschiedenen Überarbeitungen an der x86 Anweisungsset oder Emulation eines fehlenden Mathematik -Coprozessors) wird vom Kernel oder über via durchgeführt Hardware -Virtualisierung.
Siehe auch
- Microsoft Windows -Bibliotheksdateien
- Minwin
- Unix -Architektur
- Vergleich der Kernel des Betriebssystems
- User-Mode-Treiber-Framework
- Kernel-Mode-Treiber-Framework
- Hybridkern
Weitere Lektüre
- Martignetti, e.; Was macht es Seite ?: Der virtuelle Speichermanager von Windows 7 (x64) ( ISBN978-1479114290)
- Russinovich, Mark E.; Solomon, David A.; Ionescu, a.; Windows Interna, Teil1: Deckung von Windows Server 2008 R2 und Windows 7 ( ISBN978-0735648739)
- Russinovich, Mark E.; Solomon, David A.; Ionescu, a.; Windows Interna, Part2: Deckung von Windows Server 2008 R2 und Windows 7 ( ISBN978-0735665873)
Notizen und Referenzen
- Anmerkungen
- ^ Finnel 2000, Kapitel 1: Einführung in Microsoft Windows 2000, S. 7–18.
- ^ "Anhang D - Ausführen von nicht nativen Anwendungen in Windows 2000 Professional". Microsoft Windows 2000 Professional Resource Kit. Microsoft.
- ^ a b "Windows NT Workstation Resource Kit Kapitel 28 - OS/2 -Kompatibilität". Microsoft.
- ^ a b "POSIX und OS/2 werden in Windows XP oder in Windows Server 2003 nicht unterstützt". Microsoft.
- ^ Reiter, Brian (24. August 2010). "Die traurige Geschichte des Microsoft -Possix -Subsystems".
- ^ "Grundlegende Architektur eines Netzwerkumbauten". Microsoft. Abgerufen 2016-11-18.
- ^ "Windows NT -Netzwerkarchitektur". Microsoft. Abgerufen 2016-11-18.
- ^ a b c Roman, Steven (1999). "Windows -Architektur". Win32 -API -Programmierung mit visueller Basic. O'Reilly und Associates, Inc. ISBN 1-56592-631-5.
- ^ "MS Windows NT Kernel-Mode-Benutzer und GDI-Weißpapier". Windows NT Workstation Dokumentation. Microsoft Technet. Archiviert Aus dem Original am 15. Dezember 2007. Abgerufen 2007-12-09.
- ^ "Kapitel 28 - OS/2 -Kompatibilität". Windows NT Workstation Resource Kit. Microsoft. Archiviert Aus dem Original am 10. Februar 2009. Abgerufen 2009-01-18.
- ^ Mark E. Russinovich; David A. Solomon; Alex Ionescu. Windows Interna, fünfte Ausgabe. Microsoft Press. S. 228–255.
- ^ Russinovich & Solomon 2005, S. 124–125.
- ^ Russinovich 1997, Einführung.
- ^ Russinovich 1997, "Objekttypen".
- ^ Russinovich & Solomon 2005, S. 135–140.
- ^ Russinovich & Solomon 2005, S. 141–143.
- ^ "Griffe und Objekte". MSDN - Win32 und COM Development. Microsoft. Abgerufen 2009-01-17.
- ^ Russinovich 1997, "Objekte".
- ^ "Auswirkungen der Sitzung 0 Isolation auf Dienste und Treiber in Windows Vista". Microsoft.
- ^ "Active Directory -Datenspeicher". Microsoft.
- ^ "Definition der Treuhänder".Msdn.
- ^ Siyan 2000.
- ^ "1,2 Glossar". [MS-Azod]: Übersicht über Autorisierungsprotokolle. Zugangskontrolleintrag (ACE).
- ^ "Der Windows NT 4.0 -Kernel -Modus ändert sich". MS Windows NT Kernel-Mode-Benutzer und GDI-Weißbuch. Microsoft. Archiviert Aus dem Original am 13. Januar 2009. Abgerufen 2009-01-19.
- ^ Solomon & Russinovich 2000, S. 543–551.
- ^ a b "MS Windows NT Kernel-Mode-Benutzer und GDI-Weißpapier". Microsoft Corporation. 2007. Abgerufen 2007-03-01.
- ^ Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2005). Betriebssystemkonzepte; 7. Ausgabe (PDF). Hoboken, New Jersey: John Wiley & Sons Inc. ISBN 978-0-471-69466-3.
- ^ Probert, Dave (2005). "Überblick über Windows Architecture". Verwendung von Projekten, die auf internen NT -APIs basieren, um Betriebssystemprinzipien zu vermitteln. Microsoft Research/Asien - Peking. Abgerufen 2007-03-01.
- Verweise
- Finnel, Lynn (2000). MCSE-Prüfung 70-215, Microsoft Windows 2000 Server. Microsoft Press. ISBN 1-57231-903-8.
- Russsinovich, Mark (Oktober 1997). "Inneren NTs Objektmanager". Windows it Pro.
- "Active Directory -Datenspeicher". Microsoft. Abgerufen 2005-05-09.
- Solomon, David; Russsinovich, Mark E. (2000). In Microsoft Windows 2000 (Dritter Aufl.). Microsoft Press. ISBN 0-7356-1021-5. Archiviert von das Original am 2005-03-23.
- Russsinovich, Mark; Solomon, David (2005). Microsoft Windows Interna (4. Aufl.). Microsoft Press. ISBN 0-7356-1917-4.
- Schreiber, Sven B. (2001). Undokumentierte Windows 2000 -Geheimnisse. Addison-Wesley Longman. ISBN 978-0201721874.
- Siyan, Kanajit S. (2000). Windows 2000 Professionelle Referenz. Neue Fahrer. ISBN 0-7357-0952-1.
Externe Links
- "Microsoft offizielle Windows 2000 -Website". Microsoft. Archiviert von das Original Am 29. Februar 2000.
- "Microsoft Windows 2000 Plug and Play". Microsoft. Archiviert von das Original Am 8. August 2004.
- Speicherverwaltung im Windows XP -Kernel