Schutzring

Privilegienringe für die x86 verfügbar in Sicherheitsmodus

Im Informatik, Hierarchische Schutzdomänen,[1][2] oft angerufen Schutzringesind Mechanismen zum Schutz von Daten und Funktionalität vor Fehlern (durch Verbesserung Fehlertoleranz) und böswilliges Verhalten (durch Bereitstellung Computersicherheit).

Computerbetriebssysteme bieten unterschiedliche Zugang zu Ressourcen. Ein Schutzring ist einer von zwei oder mehr hierarchischen Ebenen oder Schichten von Privileg Innerhalb der Architektur von a Computersystem. Dies wird im Allgemeinen von einigen von Hardware durchgesetzt Zentralprozessor Architekturen das liefern anders CPU -Modi in der Hardware oder Mikrocode eben. Ringe sind in einer Hierarchie von den meisten privilegierten (am meisten vertrauenswürdigen, normalerweise nummerierten Null) bis zum geringsten privilegierten (am wenigsten vertrauenswürdig, normalerweise mit der höchsten Ringnummer) angeordnet. Ring 0 ist die Ebene mit den meisten Privilegien und ermöglicht eine direkte Interaktion mit der physischen Hardware wie bestimmte CPU -Funktionalität und Chips auf dem Motherboard.

Speziell Rufen Sie Tore an Es werden zwischen Ringen bereitgestellt, damit ein äußerer Ring vordefiniert auf die Ressourcen eines inneren Rings zugreifen kann, anstatt die willkürliche Verwendung zu ermöglichen. Das korrekte Gating -Zugang zwischen Ringen kann die Sicherheit verbessern, indem sie Programme von einem Ring oder einer Privilegienebene verhindern, wenn Ressourcen für Programme in einem anderen vorgesehen sind. Zum Beispiel, Spyware Das Ausführen als Benutzerprogramm in Ring 3 sollte verhindert werden, dass eine Webkamera eingeschaltet wird, ohne den Benutzer zu informieren, da der Hardwarezugriff eine Ring 1 -Funktion sein sollte, die für reserviert ist Gerätetreiber. Programme wie Webbrowser, die in höheren nummerierten Ringen ausgeführt werden, müssen Zugriff auf das Netzwerk anfordern, eine Ressourcen, die auf einen niedrigeren nummerierten Ring beschränkt ist.

Implementierungen

Mehrere Schutzringe gehörten zu den revolutionärsten Konzepten, die von der eingeführt wurden Mehrheit Betriebssystem, ein sehr sicherer Vorgänger von heute Unix Familie der Betriebssysteme. Das GE 645 Mainframe -Computer hatte eine Hardware -Zugriffskontrolle, aber das reichte nicht aus, um Ringe in Hardware vollständig zu unterstützen. Multics unterstützten sie, indem sie Ringübergänge in Software fangen.[3] sein Nachfolger, der Honeywell 6180, implementierte sie in Hardware mit Unterstützung für acht Ringe.[4] Die meisten allgemeinen Systeme verwenden jedoch nur zwei Ringe, auch wenn die von ihnen ausgeführte Hardware mehr bietet CPU -Modi als die. Zum Beispiel verwenden Windows 7 und Windows Server 2008 (und deren Vorgänger) nur zwei Ringe, wobei Ring 0 entspricht Kernelmodus und Ring 3 bis Benutzermodus,[5] Weil frühere Versionen von Windows auf Prozessoren durchgeführt wurden, die nur zwei Schutzstufen unterstützten.[6]

Viele moderne CPU -Architekturen (einschließlich der beliebten Intel x86 Architektur) beinhalten irgendeine Form von Ringschutz, obwohl die Windows NT Das Betriebssystem nutzt diese Funktion wie UNIX nicht vollständig. OS/2 Verwendet in gewissem Maße drei Ringe:[7] Ring 0 für Kernelcode- und Geräte -Treiber, Ring 2 für privilegierten Code (Benutzerprogramme mit E/A -Zugriffsberechtigungen) und Ring 3 für nicht privilegierten Code (fast alle Benutzerprogramme). Unter DOS, Der Kernel, die Treiber und Anwendungen, die normalerweise auf Ring 3 ausgeführt werden (dies ist jedoch ausschließlich für den Fall, in dem Treiber und/oder DoS-Extender verwendet werden; als Real-Mode-Betriebssystem läuft das System mit effektiv ohne Schutz). während 386 Speichermanager wie z. EMM386 Laufen Sie bei Ring 0. Zusätzlich dazu, DR-DOS'Emm386 3.xx kann optional einige Module ausführen (wie z. DPMs) auf Ring 1 stattdessen. OpenVMS Verwendet vier Modi, die als Kernel, Executive, Supervisor und Benutzer bezeichnet werden (in der Reihenfolge der abnehmenden Berechtigungen).

Ein erneutes Interesse an dieser Entwurfsstruktur kam mit der Verbreitung der Xen Vmm Software, Laufende Diskussion an monolithisch vs. Mikrokernel (speziell in Usenet Newsgroups und Webforen), Microsoft's Ring-1 Entwurfsstruktur als Teil ihrer NGSCB Initiative und Hypervisoren bezogen auf x86 Virtualisierung wie zum Beispiel Intel vt-x (ehemals Vanderpool).

Das ursprüngliche Multics -System hatte acht Ringe, aber viele moderne Systeme haben weniger. Die Hardware ist sich des aktuellen Rings der ausführenden Anweisung bewusst Faden Mit Hilfe eines speziellen Maschinenregisters zu jeder Zeit. In einigen Systemen Bereiche von virtueller Speicher werden stattdessen Ringnummern in Hardware zugewiesen. Ein Beispiel ist das Daten allgemeiner Eclipse MV/8000, in denen die Top -drei Bits der Programmzähler (PC) diente als Ringregister. Somit würde der Code, der mit dem auf 0xE200000 festgelegten virtuellen PC ausgeführt wird, automatisch in Ring 7 und das Aufrufen eines Unterprogramms in einem anderen Speicherabschnitt automatisch zu einer Ringübertragung.

Die Hardware schränkt die Art und Weise, wie die Kontrolle von einem Ring zum anderen übergeben werden kann, erheblich ein und erzwingt auch Einschränkungen für die Arten des Speicherzugriffs, die über Ringe ausgeführt werden können. Verwenden von X86 als Beispiel gibt es eine besondere[Klarstellung erforderlich] Tor Struktur, auf die auf die verwiesen wird Anruf Anweisungen, die die Kontrolle auf sichere Weise übertragen[Klarstellung erforderlich] auf vordefinierte Einstiegspunkte in unteren (vertrauensvolleren) Ringen; Dies funktioniert als Vorgesetzter Anruf In vielen Betriebssystemen, die die Ringarchitektur verwenden. Die Hardwarebeschränkungen sollen die Möglichkeiten für versehentliche oder böswillige Sicherheitsverletzungen einschränken. Darüber hinaus kann der privilegierte Ring spezielle Funktionen erhalten (z. B. realer Speicher, der die virtuelle Speicherhardware umgeht).

ARM Version 7 Architektur implementiert drei Privilegienstufen: Anwendung (PL0), Betriebssystem (PL1) und Hypervisor (PL2). Ungewöhnlich ist Level 0 (PL0) das am wenigsten privilegierte Niveau, während Level 2 das meist privilegierte Niveau ist.[8] ARM Version 8 implementiert vier Ausnahmebereiche: Anwendung (EL0), Betriebssystem (EL1), Hypervisor (EL2) und Secure Monitor / Firmware (EL3) für AARG64[9]: D1-2454 und aarch32.[9]: G1-6013

Ringschutz kann mit mit Prozessormodi (Master/Kernel/privilegiert/Supervisor -Modus Versus Slave/Unrivileged/Benutzermodus) in einigen Systemen. Betriebssysteme, die auf Hardware ausgeführt werden, die beide unterstützt, können beide Schutzformen oder nur eine verwenden.

Die effektive Verwendung der Ringarchitektur erfordert eine enge Zusammenarbeit zwischen Hardware und Betriebssystem[warum?]. Betriebssysteme, die auf mehreren Hardware -Plattformen funktionieren, können nur begrenzte Ringe nutzen, wenn sie nicht auf jeder unterstützten Plattform vorhanden sind. Oft ist das Sicherheitsmodell "Kernel" und "Benutzer" vereinfacht, auch wenn Hardware durch Ringe eine feinere Granularität bietet.

Modi

Supervisor -Modus

In Computerbegriffen, Supervisor -Modus ist ein Hardware-vermittelter Flag, das durch Code geändert werden kann, das in Software auf Systemebene ausgeführt wird. Aufgaben oder Threads auf Systemebene haben dieses Flag-Set, während sie ausgeführt werden, während die Anwendungen auf Benutzerebene dies nicht tun. Dieses Flag ermittelt, ob es möglich wäre, Maschinencodevorgänge wie Änderungen von Registern für verschiedene Deskriptortabellen oder Durchführung von Vorgängen wie Deaktivieren von Interrupts auszuführen. Die Idee, zwei verschiedene Modi zu betreiben, stammt aus "mit mehr Kontrolle kommt mehr Verantwortung" - ein Programm im Supervisor -Modus wird vertrauenswürdig, dass ein Fehler zum Stürzen des gesamten Computersystems dazu führen kann.

Der Supervisor -Modus ist "ein Ausführungsmodus für einige Prozessoren, die die Ausführung aller Anweisungen, einschließlich privilegierter Anweisungen Normalerweise läuft. "[10]

In einem monolithischen KernelDas Betriebssystem wird im Supervisor -Modus ausgeführt und die Anwendungen im Benutzermodus ausgeführt. Andere Arten von Betriebssysteme, wie diejenigen mit einem Exokernel oder MikrokernelTeilen Sie dieses Verhalten nicht unbedingt.

Einige Beispiele aus der PC -Welt:

  • Linux, Mac OS und Fenster sind drei Betriebssysteme, die Supervisor/Benutzermodus verwenden. Um spezialisierte Funktionen auszuführen, muss der Benutzermodus -Code a ausführen Systemanruf in den Supervisor -Modus oder sogar in den Kernelraum, in dem vertrauenswürdiger Code des Betriebssystems die erforderliche Aufgabe ausführt und die Ausführung wieder an den Benutzerspace zurückgibt. Zusätzlicher Code kann durch die Verwendung von in den Kernelraum hinzugefügt werden Ladbare Kernelmodule, aber nur von einem Benutzer mit den erforderlichen Berechtigungen, da dieser Code nicht den Zugriffskontroll- und Sicherheitsbeschränkungen des Benutzermodus unterliegt.
  • DOS (So ​​lange wie kein 386 Speichermanager wie z. EMM386 ist geladen) sowie andere einfache Betriebssysteme und viele eingebettete Geräte, die im Supervisor -Modus dauerhaft ausgeführt werden, was bedeutet, dass Treiber direkt als Benutzerprogramme geschrieben werden können.

Die meisten Prozessoren haben mindestens zwei verschiedene Modi. Das x86-Prozessoren haben vier verschiedene Modi in vier verschiedene Ringe unterteilt. Programme, die in Ring 0 ausgeführt werden können irgendetwas Mit dem System und Code, der in Ring 3 ausgeführt wird, sollte jederzeit ohne Auswirkungen auf den Rest des Computersystems scheitern können. Ring 1 und Ring 2 werden selten verwendet, können jedoch mit unterschiedlichen Zugriffsstufen konfiguriert werden.

In den meisten vorhandenen Systemen hat der Wechsel vom Benutzermodus in den Kernel -Modus eine hohe Leistung zugeordnet. Es wurde an der Grundanfrage gemessen Getpid, um 1000–1500 Zyklen für die meisten Maschinen zu kosten. Von diesen sind nur etwa 100 für den tatsächlichen Schalter (70 vom Benutzer zum Kernelraum und 40 zurück), der Rest ist "Kernel Overhead".[11][12] In dem L3 MicrokernelDie Minimierung dieses Overheads reduzierte die Gesamtkosten auf rund 150 Zyklen.[11]

Maurice Wilkes schrieb:[13]

... Es wurde schließlich klar, dass der hierarchische Schutz, den Ringe bereitgestellt haben, nicht genau mit den Anforderungen des Systemprogrammierers übereinstimmte, und das einfache System nur für nur zwei Modi verbesserte. Schutzringe verliehen sich einer effizienten Implementierung in Hardware, aber es gab wenig zu sagen. [...] Die Attraktivität von feinkörnigem Schutz blieb auch, selbst nachdem festgestellt wurde, dass Schutzringe nicht die Antwort lieferten ... Dies erwies sich erneut als blinde Gasse ...

Um Leistung und Determinismus zu erzielen, platzieren einige Systeme Funktionen, die wahrscheinlich eher als Anwendungslogik als als Gerätetreiber im Kernelmodus angesehen werden. Sicherheitsanwendungen (Zugangskontrolle, Firewallsusw.) und Betriebssystemmonitore werden als Beispiele zitiert. Mindestens ein eingebettetes Datenbankverwaltungssystem, eXTremeDB -Kernel -Moduswurde speziell für die Bereitstellung des Kernel-Modus entwickelt, um eine lokale Datenbank für Kernel-basierte Anwendungsfunktionen bereitzustellen und die zu beseitigen Kontextschalter Dies würde ansonsten auftreten, wenn Kernelfunktionen mit einem Datenbanksystem interagieren, das im Benutzermodus ausgeführt wird.[14]

Funktionen werden manchmal auch in die andere Richtung über Ringe bewegt. Der Linux -Kernel injiziert beispielsweise in Prozesse a VDSO Abschnitt, der Funktionen enthält, die normalerweise einen Systemaufruf erfordern, d. H. Ein Ringübergang. Anstatt ein System zu machen, verwenden diese Funktionen statische Daten, die vom Kernel bereitgestellt werden. Dies vermeidet die Notwendigkeit eines Ringübergangs und ist daher leichter als ein Systemsystem. Auf diese Weise kann die Funktion GetTimeofday bereitgestellt werden.

Hypervisor -Modus

Jüngste CPUs von Intel und AMD -Angebot x86 Virtualisierung Anweisungen für a Hypervisor So steuern Sie Ring 0 Hardware -Zugriff. Obwohl sie beide gegenseitig inkompatibel sind, beide Intel vt-x (Codenamen "Vanderpool") und AMD-V (Codenamen "Pacifica") Erstellen Sie einen neuen "Ring -1", damit ein Gastbetriebssystem den Ring 0 -Vorgängen nativ ausführen kann, ohne andere Gäste oder das Host -Betriebssystem zu beeinflussen.

Um die Virtualisierung zu unterstützen, fügen VT-X und SVM eine neue Berechtigungsstufe unter Ring 0 ein. Beide fügen neun neue Anweisungen für Maschinencode hinzu, die nur an "Ring −1" funktionieren, die vom Hypervisor verwendet werden sollen.[15]

Privilegienniveau

A Privilegienniveau in dem x86 Befehlssatz steuert den Zugriff des Programms, das derzeit auf dem Prozessor auf Ressourcen wie Speicherregionen, E/A -Ports und speziellen Anweisungen ausgeführt wird. Es gibt 4 Privilegien, die von 0 reichen, was am privilegiertesten ist, bis 3, was am wenigsten privilegiert ist. Die meisten modernen Betriebssysteme verwenden Level 0 für Kernel/Executive und verwenden Level 3 für Anwendungsprogramme. Jede Ressource, die auf Level N zur Verfügung steht, steht ebenfalls auf Level 0 bis n zur Verfügung, sodass die Berechtigungsstufen Ringe sind. Wenn ein weniger privilegierter Prozess versucht, auf einen höher privilegierten Prozess zuzugreifen, a allgemeine Schutzverletzung Ausnahme wird dem Betriebssystem gemeldet.

Es ist nicht erforderlich, alle vier Privilegien zu verwenden. Aktuell Betriebssysteme mit weitem Marktanteil einschließlich Microsoft Windows, Mac OS, Linux, iOS und Android Meistens verwenden a Paging Mechanismus mit nur einem Bit, um die Berechtigungsstufe als Supervisor oder Benutzer (U/S -Bit) anzugeben. Windows NT Verwendet das zweistufige System.[16] Die realen Modusprogramme in 8086 werden auf Stufe 0 (höchste Privilegienstufe) ausgeführt, während der virtuelle Modus in 8086 alle Programme auf Stufe 3 ausführt.[17]

Potenzielle zukünftige Verwendungszwecke für die von der X86 ISA -Familie unterstützten Mehrfach Privilegien -Ebenen inklusive Containerisierung und virtuelle Maschinen. Ein Kernel des Host -Betriebssystems kann Anweisungen mit dem vollständigen Berechtigungszugriff verwenden (Kernelmodus), während Anwendungen, die auf dem Gastbetrieb in einem virtuellen Gerät oder Container ausgeführt werden, die niedrigste Berechtigungsstufe im Benutzermodus verwenden können. Der Virtual Machine und der Gast -OS -Kernel könnten selbst ein mittleres Anweisungsberechtiger verwenden, um aufzurufen und virtualisieren Kernel-Mode-Operationen wie z. Systemaufrufe Aus Sicht des Gastbetriebssystems.[18]

IOPL

Das IOPL (E/A -Privilegienniveau) Flag ist eine Flagge, die auf allen IA-32-kompatibel ist x86 CPUs. Es nimmt die Bits 12 und 13 in der Flaggenregister. Im Sicherheitsmodus und langer ModusEs zeigt die E/A -Privilegienstufe des aktuellen Programms oder der aktuellen Aufgabe. Die aktuelle Berechtigungsstufe (CPL) (CPL0, CPL1, CPL2, CPL3) der Aufgabe oder des Programms muss dem IOPL weniger oder gleich dem IOPL sein, damit die Aufgabe oder das Programm zugreifen kann E/O -Ports.

Der IOPL kann mit Verwendung geändert werden POPF (d) und Iret (d) Nur wenn der aktuelle Privilegienstand Ring 0 ist.

Außer IOPL, die E/A -Hafenberechtigungen In der TSS nehmen auch die Fähigkeit einer Aufgabe teil, auf einen E/A -Port zuzugreifen.

Miser

In X86 -Systemen die X86 -Hardware -Virtualisierung (VT-X und SVM) wird als "Ring −1" bezeichnet, die Systemverwaltungsmodus wird als "Ring -2" bezeichnet, die Intel Management Engine und AMD -Plattform -Sicherheitsprozessor werden manchmal als "Ring -3" bezeichnet.[19]

Verwendung von Hardwarefunktionen

Viele CPU -Hardware -Architekturen bieten weitaus mehr Flexibilität als von der genutzt Betriebssysteme dass sie normalerweise laufen. Die ordnungsgemäße Verwendung komplexer CPU -Modi erfordert eine sehr enge Zusammenarbeit zwischen dem Betriebssystem und der CPU und neigt daher dazu, das Betriebssystem an die CPU -Architektur zu binden. Wenn das Betriebssystem und die CPU spezifisch für einander ausgelegt sind, ist dies kein Problem (obwohl einige Hardwarefunktionen möglicherweise noch unerklärlich bleiben), aber wenn das Betriebssystem so ausgelegt ist, dass sie mit mehreren, unterschiedlichen CPU -Architekturen kompatibel sind Die Funktionen des CPU -Modus können vom Betriebssystem ignoriert werden. Zum Beispiel ist der Grund, warum Windows nur zwei Ebenen verwendet (Ring 0 und Ring 3), dass einige Hardware -Architekturen, die in der Vergangenheit unterstützt wurden Powerpc oder MIPS) Implementierte nur zwei Privilegien.[5]

Mehrheit war ein operatives System, das speziell für eine spezielle CPU -Architektur entwickelt wurde (die wiederum speziell für Multics entwickelt wurde) und nutzte die ihm verfügbaren CPU -Modi voll aus. Es war jedoch eine Ausnahme von der Regel. Heutzutage ist dieses hohe Grad an Interoperation zwischen dem Betriebssystem und der Hardware trotz der potenziellen Vorteile für Sicherheit und Stabilität nicht oft kostengünstig.

Letztendlich besteht der Zweck unterschiedlicher Betriebsmodi für die CPU darin, Hardwareschutz vor versehentlich oder absichtlicher Korruption der Systemumgebung (und entsprechenden Verstößen gegen die Systemsicherheit) durch Software zu bieten. Nur "vertrauenswürdige" Teile der Systemsoftware dürfen in der uneingeschränkten Umgebung des Kernel -Modus und dann in paradigmatischen Designs nur dann in Bezug auf unbedingt erforderlich ausgeführt werden. Alle anderen Software werden in einem oder mehreren Benutzermodi ausgeführt. Wenn ein Prozessor in einem Benutzermodus einen Fehler- oder Ausnahmebeständigkeit generiert, ist in den meisten Fällen die Systemstabilität nicht betroffen. Wenn ein Prozessor im Kernel -Modus einen Fehler- oder Ausnahmebeständigkeit generiert, stoppen die meisten Betriebssysteme das System mit einem nicht wiederzuverschreibbaren Fehler. Wenn eine Hierarchie von Modi (ringbasierte Sicherheit) vorhanden ist, können Fehler und Ausnahmen auf einer Privilegienebene nur die höhere Privilegien destabilisieren. Ein Fehler in Ring 0 (der Kernelmodus mit dem höchsten Privileg) stürzt daher das gesamte System ab, aber ein Fehler in Ring 2 beeinflusst die Ringe 3 und darüber hinaus und Ring 2 selbst.

Übergänge zwischen Modi liegen im Ermessen der Ausführung Faden Wenn der Übergang von einem hohen Privileg zu einem von geringen Privilegien (wie von Kernel zu Benutzermodi) erfolgt, können Übergänge jedoch von niedrigeren zu höheren Privilegien nur durch sichere, hardwarekontrollierte "Gates" erfolgen, die von durchquerten Hardware-kontrollierten "Gates" durchgeführt werden, die von durchquert werden. Ausführung spezieller Anweisungen oder wenn externe Interrupts empfangen werden.

Mikrokernel Betriebssysteme versuchen, die Menge an Code zu minimieren, die im privilegierten Modus ausgeführt wird, für Zwecke von Sicherheit und Eleganz, aber letztendlich die Leistung opfern.

Siehe auch

Verweise

  1. ^ Karger, Paul A.; Herbert, Andrew J. (1984). "Eine erweiterte Fähigkeitsarchitektur zur Unterstützung der Gittersicherheit und der Rückverfolgbarkeit des Zugangs". 1984 IEEE Symposium über Sicherheit und Privatsphäre. p. 2. doi:10.1109/sp.1984.10001. ISBN 0-8186-0532-4. S2CID 14788823.
  2. ^ Binder, W. (2001). "Design und Implementierung des JSEAL2 Mobile Agent Kernel". Proceedings 2001 Symposium für Anwendungen und Internet. S. 35–42. doi:10.1109/saint.2001.905166. ISBN 0-7695-0942-8. S2CID 11066378.
  3. ^ "Eine Hardware -Architektur zur Implementierung von Schutzringen". Abgerufen 27. September 2012.
  4. ^ "Multics Glossar - Ring". Abgerufen 27. September 2012.
  5. ^ a b Russinovich, Mark E.; David A. Solomon (2005). Microsoft Windows Interna (4 ed.). Microsoft Press. pp.16. ISBN 978-0-7356-1917-3.
  6. ^ Russsinovich, Mark (2012). Windows -Interna Teil 1. 6. Aufl.. Redmond, Washington: Microsoft Press. p. 17. ISBN 978-0-7356-4873-9. Der Grund, warum Windows nur zwei Ebenen verwendet, ist, dass einige Hardwarearchitekturen, die in der Vergangenheit unterstützt wurden (wie z. Compaq Alpha und Siliziumgrafik MIPS) Implementierte nur zwei Privilegien.
  7. ^ "Präsentationsgeräte -Treiberreferenz für Betriebssystem/2 - 5. Einführung in OS/2 -Präsentationstreiber". Archiviert von das Original am 15. Juni 2015. Abgerufen 13. Juni 2015.
  8. ^ Armarchitektur Referenzhandbuch ARMV7-A und ARMV7-R Edition. Arm Ltd. p. B1-1136.
  9. ^ a b Armarchitektur Referenzhandbuch ARMV8 für A-Profil-Architektur. Arm Ltd.
  10. ^ "Supervisor -Modus". Ordner. 15. Februar 1995.
  11. ^ a b Jochen liestke. Auf µ-Kernel-Konstruktion, Proc. 15. ACM -Symposium für Betriebssystemprinzipien (SOSP), Dezember 1995
  12. ^ OUSTERHOUT, J. K. 1990. Warum werden Betriebssysteme nicht schneller wie Hardware? In Usenix Summer Conference, Anaheim, CA, S. 247–256.
  13. ^ Maurice Wilkes (April 1994). "Betriebssysteme in einer sich verändernden Welt". ACM SIGOPS -Betriebssysteme Überprüfung. 28 (2): 9–21. doi:10.1145/198153.198154. ISSN 0163-5980. S2CID 254134.
  14. ^ Gorine, Andrei und Krivolapov, Alexander. "Kernel-Modus-Datenbanken: Eine DBMS-Technologie für Hochleistungsanwendungen", Dr. Dobbs Journal, Mai 2008.
  15. ^ Dornan, Andy (1. November 2005). "Intel VT gegen Amd Pacifica". CMP. Archiviert von das Original am 30. Mai 2013. Abgerufen 11. November 2012.
  16. ^ Russinovich, Mark E.; David A. Solomon (2005). Microsoft Windows Interna (4 Aufl.). Microsoft Press. S. 16. ISBN978-0-7356-1917-3
  17. ^ Sunil Mathur, "Mikroprozessor 8086: Architektur, Programmierung und Schnittstelle", Eastern Economy Edition, Phi Learning
  18. ^ Anderson, Thomas; Dahlin, Michael (21. August 2014). "2.2". Betriebssysteme: Prinzipien und Praxis (2. Aufl.). Rekursive Bücher. ISBN 978-0985673529.
  19. ^ Gelas, Johan de. "Hardware -Virtualisierung: Die Muttern und Schrauben". www.anandtech.com. Abgerufen 13. März 2021.
  • Referenz des Intel 80386 -Programmierers

Weitere Lektüre