DE10197121B4 - Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors - Google Patents
Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors Download PDFInfo
- Publication number
- DE10197121B4 DE10197121B4 DE10197121T DE10197121T DE10197121B4 DE 10197121 B4 DE10197121 B4 DE 10197121B4 DE 10197121 T DE10197121 T DE 10197121T DE 10197121 T DE10197121 T DE 10197121T DE 10197121 B4 DE10197121 B4 DE 10197121B4
- Authority
- DE
- Germany
- Prior art keywords
- processor
- mode
- processor mode
- guest
- privilege level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Abstract
Verfahren zur Unterstützung eines Virtuelle-Maschine-Monitors (310) durch einen Prozessor, wobei
a) der Prozessor einen ersten und einen zweiten (V32) Prozessormodus unterstützt,
b) der Prozessor den Virtuelle-Maschine-Monitor (310) in dem ersten Prozessormodus ausführt,
c) der Prozessor eine Gast-Software (306, 308) in dem zweiten Prozessormodus und auf ihrem jeweils vorgesehenen, von ihr gewünschten Hardware-Privileg-Level ausführt (404), wobei die Gast-Software (306, 308) ursprünglich vorgesehen ist, um durch einen Prozessor eines Typs (IA-32-ISA), der den zweiten Prozessormodus nicht unterstützt, auf dem jeweils von ihr gewünschten Hardware-Privileg-Level ausgeführt zu werden,
d) der Prozessor in dem zweiten Prozessormodus die Ausführung einer Operation bei einem ersten und einem zweiten Hardware-Privileg-Level unterstützt, wobei die Ausführung der Operation in dem Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, bei dem ersten Hardware-Privileg-Level zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen würde und bei dem zweiten Hardware-Privileg-Level nicht zum Zugriff auf die bestimmten Hardwareressourcen...
a) der Prozessor einen ersten und einen zweiten (V32) Prozessormodus unterstützt,
b) der Prozessor den Virtuelle-Maschine-Monitor (310) in dem ersten Prozessormodus ausführt,
c) der Prozessor eine Gast-Software (306, 308) in dem zweiten Prozessormodus und auf ihrem jeweils vorgesehenen, von ihr gewünschten Hardware-Privileg-Level ausführt (404), wobei die Gast-Software (306, 308) ursprünglich vorgesehen ist, um durch einen Prozessor eines Typs (IA-32-ISA), der den zweiten Prozessormodus nicht unterstützt, auf dem jeweils von ihr gewünschten Hardware-Privileg-Level ausgeführt zu werden,
d) der Prozessor in dem zweiten Prozessormodus die Ausführung einer Operation bei einem ersten und einem zweiten Hardware-Privileg-Level unterstützt, wobei die Ausführung der Operation in dem Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, bei dem ersten Hardware-Privileg-Level zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen würde und bei dem zweiten Hardware-Privileg-Level nicht zum Zugriff auf die bestimmten Hardwareressourcen...
Description
- Die Erfindung betrifft ein Verfahren zur Unterstützung eines Virtuelle-Maschine-Monitors durch einen Prozessor, der einen ersten und einen zweiten Prozessormodus unterstützt, den Virtuelle-Maschine-Monitor in dem ersten Prozessormodus ausführt und eine Gast-Software in dem zweiten Prozessormodus und auf ihrem jeweils vorgesehenen, von ihr gewünschten Hardware-Privileg-Level ausführt. Ferner betrifft die Erfindung einen Prozessor zum Ausführen eines solchen Verfahrens.
- Ein Verfahren bzw. ein Prozessor der eingangs genannten Art sind aus der US-Patentschrift
US 5,522,075 A bekannt. Bei diesem bekanntem Prozessor wird ein VM-Bit zum Anzeigen des ersten oder zweiten Prozessormodus verwendet. Es werden sogenannte ”sensitive” Befehle definiert, bei deren Ausführung der sich in einem VM-Modus befindende Prozessor einen Trap erzeugt und in einen VMM-Modus wechselt. Dies wird unabhängig davon ausgeführt, ob dieser sensitive Befehl bei seiner fortgesetzten Ausführung in dem VM-Modus zu einer Schutzrechtsverletzung geführt hätte und somit letztendlich nicht ausgeführt worden wäre. - Ein Virtuelle-Maschine-Monitor (VMM) läuft üblicherweise auf einen Computer und stellt für andere Software die Abstraktion von einer oder mehreren virtuellen Maschinen dar. Jede virtuelle Maschine kann als eine unabhängige Plattform funktionieren, die ihr eigenes ”Gast-Betriebssystem” ausführt (zum Beispiel ein von dem VMM verwaltetes (hosted by) Betriebssystem). Das Gast-Betriebssystem erwartet so zu arbeiten, als würde es auf einem speziellen Computer statt auf einer virtuellen Maschine laufen. Das heißt das Gast-Betriebssystem erwartet, verschiedene Computeroperationen zu steuern und während dieser Operationen Zugriff auf Hardwareressourcen zu haben. Die Hardwareressourcen können prozessorresidente Ressourcen (beispielsweise Steuerregister) und Ressourcen umfassen, die sich im Speicher befinden (beispielsweise Deskriptortabellen). In einer Virtuelle-Maschine-Umgebung jedoch sollte der VMM in der Lage sein, die endgültige Kontrolle über diese Ressourcen zu haben, um einen ordnungsgemäßen Betrieb der virtuellen Maschinen und Schutz vor und zwischen virtuellen Maschinen bereitzustellen. Um dies zu erreichen, fängt der VMM üblicherweise alle Zugriffe von dem Gast-Betriebssystem auf die Hardwareressourcen ab und vermittelt diese.
- Aktuelle Implementierungen von VMM's können auf Software-Techniken zum Steuern des Zugriffs von dem Gast-Betriebssystem auf Hardwareressourcen basieren. Jedoch kann es diesen Software-Techniken an der Fähigkeit mangeln, Gast-Software am Zugriff auf einige Felder in den Steuerregistern und dem Speicher des Prozessors zu hindern. Beispielsweise kann das Gast-Betriebssystem nicht vom Zugriff auf ein Requestor Privileg Level(RPL)-Feld in dem Codesegmentregister von IA-32-Mikropozessoren abgehalten werden. Darüber hinaus weisen bestehende Software-Techniken üblicherweise Leistungsprobleme auf. Somit wird ein alternativer Mechanismus zum Unterstützen des Betriebes des VMM's benötigt.
- Ausgehend von dem eingangs genannten Stand der Technik des US-Patents Nr.
US 5,522,075 A ist es eine Aufgabe der Erfindung, die Prozessorleistung durch Vermeidung unnötigen Mehraufwands zu verbessern. - Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. einen Prozessor mit den Merkmalen des Anspruchs 8 gelöst. Grundgedanke der erfindungsgemäßen Weiterbildung ist es, den mit einem Wechsel in den ersten Prozessormodus des Virtuelle-Maschine-Monitors verbundenen Mehraufwand dann zu vermeiden, wenn dieser eigentlich nicht erforderlich ist, weil der betroffene kritische Befehl auch ohne den Wechsel nicht ausgeführt würde.
- Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
- Die vorliegende Erfindung wird anhand der Figuren der beigefügten Zeichnungen exemplarisch und nicht zur Beschränkung dargestellt und in diesen beziehen sich gleiche Bezugszeichen auf ähnliche Elemente und:
-
1 zeigt ein Ausführungsbeispiel einer Virtuelle-Maschine-Umgebung; -
2 zeigt den Betrieb eines Virtuelle-Maschine-Monitors basierend auf einer Gast-Deprivilegierung; -
3 zeigt eine Blockdarstellung eines Systems zum Bereitstellen einer Prozessorunterstützung für einen Virtuelle-Maschine-Monitor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
4 zeigt ein Ablaufdiagramm eines Verfahrens zum Bereitstellen einer Prozessorunterstützung für einen Virtuelle-Maschine-Monitor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
5 zeigt ein Ablaufdiagramm eines Verfahrens zum Durchführen eines Übergangs aus dem V32-Modus gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
6 zeigt ein Ablaufdiagramm eines Verfahrens zum Erzeugen von Virtualisierungs-Traps gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
7 zeigt ein Ablaufdiagramm eines Verfahrens zum Aufrechterhalten einer Umleit-Abbildung (redirection map) gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
8 zeigt ein Ablaufdiagramm eines Verfahrens zum Steuern des Maskierens von Interrupts gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und -
9 zeigt eine Blockdarstellung eines Ausführungsbeispiels eines Verarbeitungssystems. - Beschreibung von Ausführungsbeispielen
- Es wird ein Verfahren und eine Einrichtung zum Bereitstellen einer Prozessorunterstützung für einen Virtuelle-Maschine-Monitor beschrieben. In der folgenden Beschreibung werden zur Erläuterung zahlreiche spezielle Details angegeben, um ein vollständiges Verständnis der vorliegenden Erfindung zu ermöglichen. Für den Fachmann ist jedoch ersichtlich, daß die vorliegende Erfindung ohne diesen speziellen Details ausgeführt werden kann.
- Einige Abschnitte der folgenden detaillierten Beschreibung werden anhand von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendeten Mittel, um anderen Fachleuten den Gehalt ihrer Arbeit am effektivsten mitzuteilen. Ein Algorithmus wird hier und im allgemeinen als eine selbstkonsistente Abfolge von zu einem gewünschten Ergebnis führenden Schritten verstanden. Diese Schritte erfordern physikalische Behandlungen von physikalischen Größen. Üblicher- aber nicht notwendigerweise liegen diese Größen in Form von elektrischen oder magnetischen Signalen vor, die gespeichert, übertragen, kombiniert, verglichen oder auf andere Weise bearbeitet manipuliert werden können. Hauptsächlich aus Gründen der üblichen Verwendung hat es sich zeitweise als günstig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder ähnliches zu bezeichnen.
- Es sollte jedoch bedacht werden, daß all diese und ähnliche Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und lediglich geeignete Kennzeichen für diese Größen darstellen. Sofern es nicht explizit anders angegeben ist wie aus den folgenden Beschreibungen ersichtlich, ist klar, daß überall in der vorliegenden Erfindung Beschreibungen, die Begriffe wie beispielsweise ”Verarbeiten” oder ”Berechnen” oder ”Kalkulieren” oder ”Bestimmen” oder ”Anzeigen” oder dgl. verwenden auf die Aktion und Prozesse eines Computersystems oder einer ähnlichen elektronischen Recheneinrichtung hinweisen können, die Daten, die als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt sind bearbeitet und in andere Daten umwandelt, die auf ähnliche Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Informationsspeichern, Übertragungs- oder Anzeigeeinrichtungen dargestellt sind.
- Die vorliegende Erfindung betrifft ferner eine Einrichtung zum Durchführen der hier beschriebenen Operationen. Diese Einrichtung kann für die gewünschten Zwecke speziell konstruiert sein oder sie kann einen Mehrzweckcomputer aufweisen, der selektiv von einem in dem Computer gespeicherten Computerprogramm aktiviert oder rekonfiguriert wird. Ein derartiges Computerprogramm kann in einem computerlesbaren Speichermedium wie beispielsweise einer beliebigen Art von Platte einschließlich Floppy-Disks, optischen Platten, CD-ROMs und magnetisch-optische Platten, Nur-Lese-Speichern (ROMs), Speichern mit wahlfreiem Zugriff (RAMs), EPROMs, EEPROMs, magnetischen oder optischen Karten oder einer beliebigen Art von zum Speichern von elektronischen Befehlen geeigneten Medien gespeichert sein, ist hierauf jedoch nicht beschränkt, und jedes Speichermedium ist mit einem Computersystembus gekoppelt. Befehle sind unter Verwendung von einer oder mehreren Verarbeitungseinrichtungen (beispielsweise Prozessoren, zentrale Verarbeitungseinheiten etc.) ausführbar.
- Die hier dargestellten Algorithmen und Anzeigen sind nicht per se für einen bestimmten Computer oder eine andere Einrichtung bestimmt. Verschiedene Mehrzweckmaschinen können mit Programmen gemäß den hier beschriebenen Lehren verwendet werden oder es kann sich als günstig erweisen, spezialisiertere Einrichtungen zum Ausführen der erforderlichen Verfahrensschritte herzustellen. Die für eine Vielzahl dieser Maschinen erforderliche Struktur wird aus der folgenden Beschreibung ersichtlich. Darüber hinaus ist die vorliegende Erfindung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist klar, daß eine Vielzahl von Programmiersprachen verwendet werden können, um die hier beschriebenen Lehren der Erfindung zu implementieren.
- In der folgenden detaillierten Beschreibung der Ausführungsbeispiele wird Bezug genommen auf die beigefügten Zeichnungen, die zur Veranschaulichung spezielle Ausführungsbeispiele zeigen, in denen die Erfindung ausgeführt werden kann. Bei den Zeichnungen beschreiben gleiche Bezugszeichen bei den verschiedenen Darstellungen im wesentlichen ähnliche Komponenten. Diese Ausführungsbeispiele weder detailliert genug beschrieben, um es Fachleuten zu ermöglichen, die Erfindung auszuführen. Es können andere Ausführungsbeispiele verwendet werden und strukturelle, logische und elektrische Änderungen können vollzogen werden, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Darüber hinaus ist zu beachten, daß sich die verschiedenen Ausführungsbeispiele der Erfindung nicht gegenseitig ausschließen, auch wenn sie unterschiedlich sind. Zum Beispiel kann ein bestimmtes, bei einem Ausführungsbeispiel beschriebenes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum in anderen Ausführungsbeispielen enthalten sein. Die folgende detaillierte Beschreibung soll daher nicht in einem beschränkenden Sinne aufgefaßt werden und der Schutzbereich der vorliegenden Erfindung wird nur durch die beigefügten Ansprüche zusammen mit dem von diesen Ansprüchen umfaßten gesamten Äquivalenzbereich definiert.
- Das Verfahren und die Einrichtung der vorliegenden Erfindung stellen eine Prozessorunterstützung für einen Virtuelle-Maschine-Monitor (VMM) bereit.
1 zeigt ein Ausführungsbeispiel einer Virtuelle-Maschine-Umgebung100 , in welcher die vorliegende Erfindung ausgeführt werden kann. Bei diesem Ausführungsbeispiel weist eine bloße Plattform-Hardware116 eine Rechenplattform auf, die beispielsweise zum Ausführen eines Standardbetriebssystems (OS) oder eines Virtuelle-Maschine-Monitors (VMM) wie beispielsweise eines VMM112 geeignet sein kann. Obwohl ein VMM üblicherweise in einer Software implementiert ist, könnte er lediglich eine Maschinenschnittstelle wie beispielsweise eine Emulation an eine Software einer höheren Ebene exportieren. Eine derartige Software einer höheren Ebene kann ein Standard- oder ein Echtzeit-OS aufweisen, obgleich der Schutzbereich der Erfindung in dieser Hinsicht nicht beschränkt ist, und alternativ kann ein VMM beispielsweise in oder auf einem anderen VMM laufen. VMMs und ihre üblichen Merkmale und Funktionalitäten sind Fachleuten bekannt und können beispielsweise in Software, Firmware oder im Zusammenhang mit verschiedenen Techniken implementiert sein. - Wie weiter oben beschrieben, liefert ein VMM anderer Software (das heißt ”Gast”-Software) die Abstraktion von einer oder mehreren virtuellen Maschinen (VMs).
1 zeigt zwei VMs102 und114 . Die Gast-Software jeder VM umfaßt ein Gast-OS wie beispielsweise ein Gast-OS104 oder106 und verschiedene Gast-Softwareanwendungen108 –110 . Jedes Gast-OS104 und106 erwartet, den Zugriff auf physikalische Ressourcen (beispielsweise Prozessorregister, Speicher und speicherzugeordnete-I/O-Einrichtungen) in der Hardwareplattform zu steuern, auf der das Gast-OS104 oder106 läuft, und an dere Funktionen auszuführen. In einer Virtuelle-Maschine-Umgebung sollte der VMM112 jedoch die endgültige Kontrolle über die physikalischen Ressourcen haben, um einen ordnungsgemäßen Betrieb der VMs102 und112 und einen Schutz vor und zwischen den VMs102 und114 bereit zu stellen. Der VMM112 erreicht dies, indem alle Zugriffe der Gast-OS104 und106 auf die physikalischen Ressourcen des Computers abgefangen werden. Es können verschiedene Techniken verwendet werden, um es dem VMM112 zu ermöglichen, die oben genannten Zugriffe abzufangen. Eine dieser Techniken ist eine Gast-Deprivilegierungstechnik, die die gesamte Gast-Software zwingt, auf einem Hardware-Privileg-Level zu laufen, daß der Software den Zugriff auf bestimmte Hardwareressourcen verbietet. Wann immer das Gast-OS104 oder106 versucht, auf eine dieser Hardwareressourcen zuzugreifen, wird es demzufolge von dem VMM112 ”abgefangen” (traps to the VMM), das heißt der VMM112 erlangt die Kontrolle über eine von dem Gast-OS initiierte Operation, wenn diese Operation einen Zugriff auf derartige Hardwareressourcen umfaßt. -
2 zeigt ein bekanntes Ausführungsbeispiel für den Betrieb eines VMMs, der eine Gast-Deprivilegierung unterstützt. Wie zuvor beschrieben, zwingt die Gast-Deprivilegierung ein Gast-OS dazu, in einem weniger privilegierten Ausführungsmodus abzulaufen. Bei IA-32-Mikroprozessoren gestaltet sich die Art des seitenbasierten Schutzes derart, daß die gesamte Gast-Software auf dem am geringsten privilegierten Level (das heißt Ring 3) läuft. Das heißt, ein Gast-OS206 und Gast-Anwendungen204 laufen auf dem gleichen Privileg-Level. Demzufolge könnte das Gast-OS206 nicht in der Lage sein, sich selbst vor den Gast-Anwendungen206 zu schützen, wodurch möglicherweise die Integrität des Gast-OS206 gefährdet ist. Dieses Problem ist als Ringkompression (ring compression) bekannt. - Die Gast-Deprivilegierung kann ferner ein Adreßraum-Kommpressionsproblem verursachen. Wie zuvor beschrieben, führen bestimmte Versuche der Gast-Software, auf Hardwareressourcen zuzugreifen, zu Traps, die die Kontrolle auf den VMM
220 übertragen. Um diese Übertragung der Steuerung zu ermöglichen, kann es für einen Abschnitt des VMM-Codes und/oder der Datenstrukturen architektonisch erforderlich sein, sich in dem gleichen virtuellen Adreßraum zu befinden wie das Gast-OS206 . Beispielsweise kann die IA-32-Befehlssatzarchitektur (ISA) erfordern, daß sich eine Interrupt-Deskriptor-Tabelle (IDT)212 eine Global-Dekriptor-Tabelle (GDT)210 und Trap-Behandlungsroutinen in dem gleichen virtuellen Raum wie das Gast-OS206 befinden. Der in dem virtuellen Raum202 befindliche VMM-Code und die Datenstrukturen220 müssen vor Zugriffen durch die Gast-Software (beispielsweise durch ein Laufen bei Ring 0) geschützt werden. Demgemäß steuert das Gast-OS206 nicht den gesamten Adreßraum202 wie es das Gast-OS206 erwartet. Dies verursacht ein Adreßraum-Kompressionsproblem. - Eine weitere Beschränkung von Gast-Deprivilegierung verwendenden VMMs betrifft einige Fälle, bei denen es dem Prozessoren mißlingt, die Gast-Software davon abzuhalten, privilegierte Hardwareressourcen zu lesen. Beispielsweise erlauben es die IA-32-Mikroprozessoren dem Gast-OS
206 , PUSHCS-Befehle auszuführen, mit denen ein Codesegmentregister im Speicher gespeichert wird. Eines dieser Registerfelder speichert Informationen über das gegenwärtige Privileg-Level. Demgemäß kann das Gast-OS206 erkennen, daß sein Privileg-Level 3 beträgt und nicht 0, wie es das Gast-OS206 erwartet, indem es den Wert des aktuellen Privileg-Levels aus dem Speicher ließt. Demzufolge kann das Gast-OS206 die Tatsache zur Kenntnis nehmen, daß es auf einer virtuellen Maschine läuft, und die Integrität des Gast-OS206 kann gefährdet sein. - Ebenso fangen die Prozessoren in einigen Fällen einen Versuch der Gast-Software, privilegierte Softwareressourcen zu ändern, nicht ab. Beispielsweise erlauben es die IA-32- Prozessoren dem Gast-OS
206 , POPF-Befehle auszugeben, die EFLAGS zu laden versuchen, und anstatt ein Trap zu erzeugen, ignorieren sie alle oder Teile derartige Versuche des Gast-OS206 , da das Gast-OS206 diese Befehle mit einem nicht ausreichenden Privileg ausführt. Demzufolge glaubt das Gast-OS206 , daß ein entsprechendes EFLAGS-Feld modifiziert worden ist, aber dem VMM220 ist dies nicht bekannt und es kann diese Modifikation nicht ordnungsgemäß emulieren. Demgemäß kann das Gast-OS206 die Tatsache aufdecken, daß es auf einer virtuellen Maschine läuft, und die Integrität des Gast-OS206 kann gefährdet sein. - Noch eine weitere Beschränkung von Gast-Deprivilegierung verwendenden VM-Monitoren wird durch exzessives Trapping bzw. Abfangen verursacht. Da die Anzahl der Hardwareressource-Elemente, die vor Zugriffen durch Gast-Software geschützt werden müssen, signifikant ist und derartige Zugriffe häufig auftreten können, können Traps häufig auftreten. Beispielsweise unterstützen die IA-32-Mikroprozessoren CLI-Befehle. Die CLI-Befehle werden ausgegeben, um ein Interrupt-Flag zu ändern, das ein Element der privilegierten Hardwareressourcen ist und auf das somit von nicht privilegierter Software nicht zugegriffen werden darf. Das Gast-OS
206 gibt diese Befehle üblicherweise während seines Betriebes aus, wodurch häufig Traps zu dem VMM220 verursacht werden. Häufiges Trapping bzw. Abfangen beeinflußt die Systemleistung negativ und vermindert die Verwendbarkeit des VMM220 . - Die vorliegende Erfindung befaßt sich mit den oben genannten Problemen und verschiedene andere Beschränkungen, indem eine Prozessorunterstützung für einen VMM bereitgestellt wird.
3 zeigt eine Blockdarstellung eines Systems zum Bereitstellen einer Prozessorunterstützung für einen Virtuelle-Maschine-Monitor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. - Es wird Bezug genommen auf
3 . Die gesamte Gast-Software läuft in einem hier als virtueller 32-Bit-Modus (V32-Modus) bezeichneten Prozessormodus. Der V32-Modus erlaubt es der Gast-Software, auf ihrem vorgesehenen Privileg-Level zu laufen. Für die IA-32-ISA beispielsweise läuft das Gast-OS308 auf dem am höchsten privilegierten Level (das heißt Ring 0) und Gast-Anwendungen306 laufen auf dem am geringsten privilegierten Level (das heißt Ring 3). Der V32-Modus begrenzt den Betrieb der Gast-Software, indem die Gast-Software daran gehindert wird, Operationen auszuführen, die zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen können. Der V32-Modus wird verlassen, wenn die Gast-Software versucht, eine derartige Operation auszuführen. - Der VMM
320 läuft außerhalb des V32-Modus. Wenn ein Übergang aus dem V32-Modus heraus auftritt, erhält der VMM320 die Kontrolle über die von dem Gast-OS308 oder der Gast-Anwendung306 initiierte Operation. Der VMM320 führt diese Operation dann aus und überträgt die Kontrolle zurück auf die Gast-Software, indem in den V32-Modus eingetreten wird, wodurch die von der Gast-Software gewünschte Funktionalität emuliert wird. - Bei einem Ausführungsbeispiel wird der V32-Modus implementiert, indem ein Flag in einem der Steuerregister des Prozessors (beispielsweise CR0) aufrecht erhalten wird, um anzuzeigen, ob sich der Prozessor in dem V32-Modus befindet oder nicht. Bei einem weiteren Ausführungsbeispiel wird dieses Flag (das hier als EFLAGS.V32 bezeichnet wird) in einem der reservierten Bits in der oberen Hälfte des EFLAGS gehalten. Das EFLAGS.V32-Flag wird entweder durch einen Übergang aus dem V32-Modus heraus oder einen Übergang in den V32-Modus modifiziert.
- Bei einem Ausführungsbeispiel wird die Fähigkeit des Prozessors, den V32-Modus zu unterstützen, unter Verwendung eines der reservierten Feature- bzw. Merkmal-Bits beschrie ben, die in EDX zurückgegeben werden, wenn der CPUID-Befehl mit dem Wert 1 in EAX ausgeführt wird. Es sei angemerkt, daß eine Vielzahl anderer Mechanismen verwendet werden können, um den V32-Modus zu implementieren und die Fähigkeit des Prozessors darzulegen, den V32-Modus ohne einen Verlust von Universalität zu unterstützen.
- Bei einem Ausführungsbeispiel verursachen bestimmte Ausnahmen und Interrupts einen Übergang aus dem V32-Modus. Diese Ausnahmen und Interrupts umfassen ”Virtualisierungs-Traps”. Ein Virtualisierungs-Trag wird erzeugt, wenn in dem V32-Modus laufende Gast-Software versucht, eine Operation auszuführen, die zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen kann. Bei einem Ausführungsbeispiel wird der Gast-Adreßraum
304 automatisch in den VMM-Adreßraum302 geändert, wenn ein Übergang aus dem V32-Modus stattfindet. Darüber hinaus wird der Prozessorzustand, der von der Gast-Software verwendet wurde, gesichert und in temporären Registern gespeichert, und der von dem VMM320 benötigte Prozessorzustand wird geladen. - Bei einem Ausführungsbeispiel wird der bei dem Übergang aus dem V32-Modus (d. h. zu dem VMM
320 ) gesicherte Prozessorzustand automatisch wieder hergestellt, der VMM-Adreßraum302 in den Gast-Adreßraum304 geändert und die Steuerung an das Gast-OS308 zurückgegeben, wenn ein Übergang in den V32-Modus stattfindet. - Bei einem Ausführungsbeispiel werden Software-Interrupts (beispielsweise durch eine Ausführung von BOUND-, INT- oder INTO-Befehlen verursachte Interrupts) von dem Gast-OS
308 unter Verwendung der Gast-IDT (das heißt der in dem Gast-Adreßraum304 befindlichen IDT) verarbeitet, wenn die Gast-Software im V32-Modus läuft. Alle anderen Interrupts und Ausnahmen einschließlich Virtualisierungs-Traps verursachen einen Übergang aus dem V32-Modus, der zu einer Änderung des Gast-Adreßraumes304 in den VMM-Adreßraum302 führt. Die IDT316 wird dann verwendet, um auf einen Code zu zeigen, der eine entsprechende Ausnahme oder einen entsprechenden Interrupt verarbeitet. - Bei einem Ausführungsbeispiel wird ein neues Interrupt-Flag (das heißt ein Virtuelle-Maschine-Interrupt-Flag) für Zugriffe durch eine Gast-Software aufrecht erhalten. Wann immer die Gast-Software versucht, auf das Interrupt-Flag (IF) zuzugreifen, greift sie stattdessen auf das Virtuelle-Maschine-Interrupt-Flag (VMIF) zu. Bei einem Ausführungsbeispiel verursacht ein Versuch der Gast-Software, auf das VMIF (beispielsweise unter Verwendung des CLI-Befehls) zuzugreifen, keinen Übergang aus dem V32-Modus heraus, ausgenommen dann, wenn das Gast-OS
308 VMIF gerade auf 1 gesetzt hat (beispielsweise durch den STI-Befehl) und der VMM320 einen anhängigen Interrupt an das Gast-OS308 übergeben möchte. Derartige anhängige Interrupts werden hier als ”virtuelle anhängige Interrupts” bezeichnet und erzeugen Virtualisierungs-Traps, die es dem VMM320 ermöglichen, einen anhängigen Interrupt an die Gast-Software zu übergeben, wenn das Gast-OS308 signalisiert, daß es bereit ist, einen derartigen Interrupt zu verarbeiten. Bei einem Ausführungsbeispiel wird eines der reservierten Bits der oberen Hälfte des EFLAGS-Registers verwendet, um ein Flag aufrecht zu erhalten, das anzeigt, ob die Gast-Software einen anhängigen virtuellen Interrupt aufweist. - Die Implementierung des V32-Modus erlaubt es, sämtliche der von der weiter oben beschriebenen Gast-Deprivilegierung verursachten Probleme zu lösen. Insbesondere wird das Problem der Ringkompression gelöst, da die Gast-Software im V32-Modus in ihrem vorgegebenen Privileg-Level läuft. Darüber hinaus ist die Adreßraum-Kompression nicht länger ein Problem, da ein Virtualisierungs-Trag automatisch einen Wechsel in den VMM-Adreßraum
302 bewirkt und sich daher weder die derartige Übergänge steuernden Tabellen noch der ein entsprechendes Virtualisierungs-Trag verarbeitende Code in dem Gast-Adreßraum304 zu befinden. - Darüber hinaus umfassen die Hardwareressourcen, die geschützt werden müssen, nicht länger diejenigen Elemente der Hardwareressourcen, die das Privileg-Level steuern, da es der V32-Modus der Gast-Software ermöglicht, daß sie auf ihrem vorgesehenen Privileg-Level läuft. Beispielsweise kann der weiter oben beschriebene Push-CS-Befehl dem Gast-OS
308 nicht länger aufzeigen, daß es auf einer virtuellen Maschine läuft, da das Feld des Codesegmentregisters, das Informationen über ein aktuelles Privileg-Level speichert, nun das für das Gast-OS308 vorgesehene Privileg-Level speichert. In ähnlicher Weise werden POPF-Befehle, die versuchen EFLAGS zu laden, nicht länger ignoriert, wenn sie von dem Gast-OS308 ausgeführt werden, da das Gast-OS206 diese Befehle mit einem ausreichenden Privileg ausführt. - Demgemäß wird die Anzahl der Elemente der Hardwareressourcen, die geschützt werden müssen, reduziert. Wenn eines von diesen Lese- oder Schreibzugriffe ohne Trapping der Gast-Software erlaubt, werden sie speziell ausgebildet, um Traps zu verursachen, wenn sie in dem V32-Modus ausgeführt werden. Somit werden die von Lese- und Schreibzugriffen ohne Trapping verursachten Probleme gelöst. Da die Implementierung des V32-Modus die Anzahl der Elemente der Hardwareressourcen vermindert, die geschützt werden müssen, ist darüber hinaus ist auch die Anzahl der Traps geringer, die auftreten, wenn die Gast-Software versucht, auf diese Elemente zuzugreifen. Die Häufigkeit der Traps wird darüber hinaus durch das Bereitstellen eines Mechanismus zum Eliminieren der von den am häufigsten verwendeten Befehlen verursachten Traps reduziert. Beispielsweise verursachen STI-Befehle keine Traps mehr, es sei denn die Gast-Software weist einen anhängigen virtuellen Interrupt auf.
-
4 zeigt ein Ablaufdiagramm eines Verfahrens400 zum Bereitstellen einer Prozessorunterstützung für einen Virtuelle-Maschine-Monitor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Beim Verarbeitungsblock404 wird eine Gast-Software in einem Prozessormodus (das heißt V32-Modus) ausgeführt, der es der Gast-Software erlaubt, auf einem von der Gast-Software gewünschten Privileg-Level zu arbeiten. Das heißt, ein Gast-OS kann auf einem Supervisor-Privileg-Level arbeiten und Gast-Anwendungen können auf einem Benutzer-Privileg-Level arbeiten. - Bei Verarbeitungsblock
406 wird ein Versuch der Gast-Software identifiziert, eine von dem V32-Modus beschränkte Operation auszuführen. Als Antwort auf diesen Versuch wird der V32-Modus verlassen, um die Kontrolle über die von der Gast-Software initiierten Operation an den VMM zu übertragen, der außerhalb des V32-Modus läuft (Prozessorblock408 ). Bei einem Ausführungsbeispiel konfiguriert der VMM, welche Operationen einen Übergang aus dem V32-Modus verursachen sollen, wie es detaillierter weiter unten im Zusammenhang mit der7 beschrieben wird. Bei einem Ausführungsbeispiel erzeugen derartige Operationen Virtualisierungs-Traps, die einen Übergang aus dem V32-Modus bewirken. Alternativ kann jeder andere bekannte Mechanismus verwendet werden, um einen Übergang aus dem V32-Modus zu bewirken. Ein Ausführungsbeispiel zum Ausführen eines Übergangs aus dem V32-Modus wird detaillierter weiter unten in Zusammenhang mit der5 beschrieben. - Der VMM antwortet ferner auf die von der Gast-Software beabsichtigte Operation (Verarbeitungsblock
410 ). Anschließend wird in den V32-Modus zurückgekehrt, um die Kontrolle über diese Operation an die Gast-Software zurück zu geben (Verarbeitungsblock412 ), und das Verfahren400 kehrt zu dem Verarbeitungsblock404 zurück. Bei einem Ausführungsbeispiel wird der von der Gast-Software erwartete Prozessorzustand automatisch wieder hergestellt und der VMM-Adreßraum in den Gast-Adreßraum geändert, wenn ein Übergang in den V32-Modus auftritt. -
5 zeigt ein Ablaufdiagramm eines Verfahrens500 zum Ausführen eines Übergangs aus dem V32-Modus gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Verfahren500 beginnt mit dem Sichern des von der Gast-Software verwendeten Prozessorzustandes (Verarbeitungsblock504 ). Bei einem Ausführungsbeispiel wird der gesicherte Prozessorzustand in den temporären Registern des Prozessors gespeichert. Bei Verarbeitungsblock506 wird der von dem VMM benötigte Prozessorzustand in die Prozessorregister geladen. Bei einem Ausführungsbeispiel bewirkt das Laden des Prozessorzustandes einen Wechsel des Gast-Adreßraumes in den VMM-Adreßraum (beispielsweise wird der Prozessorzustand geladen, indem das Steuerregister CR3 geladen wird). Bei einem alternativen Ausführungsbeispiel bewirkt ein Laden des Prozessorzustandes keine Änderung des Adreßraumes. Bei einem solchen Ausführungsbeispiel wird bei Verarbeitungsblock508 eine Adreßraumumschaltung ausgeführt, um von dem Gast-Adreßraum in den VMM-Adreßraum zu wechseln. Wenn demgemäß ein den Übergang bewirkende(r) Interrupt oder eine entsprechende Ausnahme auftritt, wird die in dem VMM-Adreßraum befindliche IDT automatisch verwendet, um auf den VMM-residenten Code zum Behandeln dieses Interrupts oder dieser Ausnahme zu zeigen. -
6 zeigt ein Ablaufdiagramm eines Verfahrens600 zum Erzeugen von Virtualisierungs-Traps gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Verfahren600 beginnt mit einem Identifizieren eines Versuches der Gast-Software, eine Operation auszuführen, die von dem V32-Modus beschränkt sein kann (Verarbeitungsblock604 ). Bei einem Entscheidungskasten606 wird bestimmt, ob der Versuch der Gast-Software potentiell erfolgreich sein kann. Wenn die Bestimmung positiv ausfällt, wird ein Virtualisierungs-Trag erzeugt (Verarbeitungsblock608 ). Alternativ wird kein Virtualisierungs-Trag erzeugt und die Gast-Software fährt mit der Operation fort (Verarbeitungsblock610 ). Beispielsweise kann gemäß dem IA-32 ISA der RDMSR-Befehl nur von mit Supervisor-Privileg laufender Software ausgeführt werden. Wenn demzufolge das Gast-Software-OS, das mit dem Supervisor-Privileg läuft, diesen Befehl ausführt, kann dieser Versuch erfolgreich sein. Wenn eine Gast-Anwendung, die mit dem Benutzer-Privileg läuft, diesen Befehl ausführt, wird dieser Versuch nicht erfolgreich sein und ein allgemeiner Schutzfehler (general-protection fault) tritt auf. Ein Versuch des Gast-OS, den RDMSR-Befehl auszuführen, wird demgemäß ein Virtualisierungs-Trag verursachen, aber ein Versuch einer Gast-Anwendung wird von dem Gast-OS behandelt. - Bei einem Ausführungsbeispiel werden Virtualisierungs-Traps von potentiell erfolgreichen Versuchen des Gast-OS verursacht, auf die Steuerregister des Prozessors (beispielsweise CR0-CR4) zuzugreifen. Bei IA-32-Prozessoren beispielsweise werden Virtualisierungs-Traps als Antwort auf einen Versuch der Gast-Software erzeugt, MOV CR (ausgenommen der Versuche CR2 zu speichern, welche kein Virtualisierungs-Trap auslösen müssen), CLTS, LMSW oder SMSW-Befehle oder eine Task-Umschaltung auszuführen. Virtualisierungs-Traps können ferner von potentiell erfolgreichen Versuchen der Gast-Software verursacht werden, ein Interrupt-Flag IF zu setzen (beispielsweise mit STI-, POPF- oder IRET-Befehlen), wenn die Gast-Software einen anhängigen virtuellen Interrupt aufweist. Bei IA-32 ISA verursachen erfolgreiche Versuche, Befehle wie beispielsweise HLT, IN, INS/INSB/INSW/INSD, INVD, OUT, OUTS/OUTSB/OUTSW/OUTSD, RDMSR und WRMSR auszuführen Virtualisierungs-Traps. Diese Virtualisierungs-Traps halten die Gast-Software vom Anhalten des Prozessors und vom direkten Zugreifen auf I/O-Ports, Caches oder modellspezifische Register ab. Darüber hinaus können Virtualisierungs-Traps von Versuchen verursacht werden, CPUID-Befehle auszuführen, um es dem VMM zu ermöglichen die Abstraktion von von dem VMM ausgewählten Prozessormerkmalen zu präsentieren, von Versuchen, INVLPG-Befehle auszuführen, um es dem VMM zu ermöglichen, Adreßtranslationen richtig zu virtualisieren und von Versuchen, IRET-Befehle (wenn IRET für den Übergang in den V32-Modus verwendet wird) auszuführen, die von Gast-Software zum Implementieren eines VMM verwendet werden, das rekursiv verschachtelte VMMS erlaubt.
-
7 zeigt ein Ablaufdiagramm eines Verfahrens700 zum Aufrechterhalten einer Umleitabbildung (redirection map) gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Gemäß diesem Ausführungsbeispiel hält der VMM eine Umleitabbildung aufrecht, um zu konfigurieren, welche Interrupts und Ausnahmen zu einer Virtualisierungs-Trag führen sollen (Verarbeitungsblock704 ). Bei Verarbeitungsblock706 wird das Auftreten eines Interrupts oder einer Ausnahme identifiziert. Anschließend wird die Umleitabbildung (redirection map) befragt, um ein Bit aufzufinden, das diesem Interrupt oder dieser Ausnahme in der Umleit-Bitmap zugeordnet ist (Verarbeitungsblock708 ). - Bei Entscheidungskasten
710 wird bestimmt, ob dieses Interrupt von dem Gast-OS behandelt werden darf. Wenn die Bestimmung positiv ist, wird das Interrupt oder die Ausnahme an den V32-Modus übergeben und wird von dem Gast-OS behandelt (Verarbeitungsblock714 ). Alternativ wird ein Virtualisierungs-Trag erzeugt, das einen Übergang aus dem V32-Modus bewirkt (Verarbeitungsblock712 ). -
8 zeigt ein Ablaufdiagramm eines Verfahrens800 zum Steuern des Maskierens von Interrupts gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Verschiedene Ausführungsbeispiele können verwendet werden, um das Maskieren von Interrupts zu steuern. Bei einem Ausführungsbeispiel sind sämtliche Interrupts nicht maskiert, wenn die Gast-Software läuft. Bei diesem Ausführungsbeispiel wird der Gast-Software erlaubt, ein Interrupt-Flag (beispielsweise wird dieses Flag für IA-32-Mikroprozessoren als EFLAGS.IF gekennzeichnet) zu manipulieren, jedoch wird diese Manipulation in Hinblick auf die Maskierung von Interrupts ignoriert. Bei einem anderen Ausführungsbeispiel ist die Maskierung von Interrupts abhängig von dem Interrupt-Flag. Bei diesem Ausführungsbeispiel ist es der Gast-Software nicht erlaubt, das Interrupt-Flag zu manipulieren. Insbesondere kann die Gast-Software davon abgehalten werden, auf das Interrupt-Flag zuzugreifen, indem ein Schatten- bzw. Shadow-Interrupt-Flag (beispielsweise EFLAGS.VMIF) für Modifikationen durch die Gast-Software bereitgestellt wird, indem ein Virtualisierungs-Trag als Antwort auf einen derartigen Versuch der Gast-Software erzeugt wird oder indem eine beliebige andere bekannte Technik verwendet wird. - Das Verfahren
800 beginnt mit einem Identifizieren eines Versuches einer Gast-Software, ein Interrupt-Flag zu modifizieren, das potentiell ein Maskieren von Interrupts steuern kann (Verarbeitungsblock804 ). Bei dem Entscheidungskasten806 wird bestimmt, ob das Interrupt-Flag die Maskierung der Interrupts steuert. Wenn die Bestimmung negativ ist, das heißt sämtliche Interrupts nicht maskiert sind, wird es der Gast-Software erlaubt, das Interrupt-Flag zu modifizieren (Verarbeitungsblock808 ). Wie es zuvor beschrieben wurde, hat diese Modifikation keine Auswirkung auf die Maskierung der Interrupts. - Wenn andererseits die Maskierung der Interrupts von dem Interrupt-Flag abhängig ist, wird anschließend bestimmt, ob ein Shadow-Interrupt-Flag existiert, das heißt ob der Versuch der Gast-Software, die Maskierung der Interrupts zu beeinflussen, das Shadow-Flag beeinflußt (Entscheidungsbox
810 ). Wenn die Bestimmung negativ ist, das heißt wenn die Gast-Software versucht, das aktuelle Interrupt-Flag zu modifizieren, tritt ein Virtualisierungs-Trag auf (Verarbeitungsblock812 ), das einen Übergang aus dem V32-Modus bewirkt (Verarbeitungsblock816 ). Wenn alternativ das aktuelle Interrupt-Flag nicht für die Gast-Software zugänglich ist, wird der Gast-Software erlaubt, das Shadow-Interrupt-Flag zu modifizieren (Verarbeitungsblock814 ). -
9 zeigt eine Blockdarstellung eines Ausführungsbeispieles eines Verarbeitungssystems. Ein Verarbeitungs system900 umfaßt einen Prozessor920 und einen Speicher930 . Der Prozessor920 kann eine beliebige Art von Prozessor sein, der Software ausführen kann, wie beispielsweise ein Mikroprozessor, ein digitaler Signalprozessor, eine Mikrosteuereinheit oder dgl. Das Verarbeitungssystem900 kann ein Personalcomputer (PC), ein Mainframe, eine tragbare Handeinrichtung, ein tragbarer Computer, eine Set-Top-Box oder ein beliebiges anderes System sein, das Software umfaßt. - Der Speicher
930 kann eine Festplatte, eine Floppy-Disk, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), Flash-Speicher oder eine beliebige andere Art von von dem Prozessor920 lesbarem Maschinenmedium sein. Der Speicher930 kann Befehle zum Ausführen der Durchführung der verschiedenen erfindungsgemäßen Verfahrens-Ausführungsformen wie beispielsweise der Verfahren400 ,500 ,600 ,700 und800 (4 –8 ) speichern. - Es ist zu beachten, daß die obige Beschreibung zur Veranschaulichung und nicht zur Beschränkung dienen soll. Beim Lesen und Verstehen der obigen Beschreibung werden den Fachleuten zahlreiche andere Ausführungsbeispiele einfallen. Der Schutzbereich der Erfindung soll daher unter Bezugnahme auf die beigefügten Ansprüche bestimmt werden, zusammen mit dem gesamten Äquivalenzbereich, den diese Ansprüche abdecken.
Claims (10)
- Verfahren zur Unterstützung eines Virtuelle-Maschine-Monitors (
310 ) durch einen Prozessor, wobei a) der Prozessor einen ersten und einen zweiten (V32) Prozessormodus unterstützt, b) der Prozessor den Virtuelle-Maschine-Monitor (310 ) in dem ersten Prozessormodus ausführt, c) der Prozessor eine Gast-Software (306 ,308 ) in dem zweiten Prozessormodus und auf ihrem jeweils vorgesehenen, von ihr gewünschten Hardware-Privileg-Level ausführt (404 ), wobei die Gast-Software (306 ,308 ) ursprünglich vorgesehen ist, um durch einen Prozessor eines Typs (IA-32-ISA), der den zweiten Prozessormodus nicht unterstützt, auf dem jeweils von ihr gewünschten Hardware-Privileg-Level ausgeführt zu werden, d) der Prozessor in dem zweiten Prozessormodus die Ausführung einer Operation bei einem ersten und einem zweiten Hardware-Privileg-Level unterstützt, wobei die Ausführung der Operation in dem Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, bei dem ersten Hardware-Privileg-Level zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen würde und bei dem zweiten Hardware-Privileg-Level nicht zum Zugriff auf die bestimmten Hardwareressourcen führen würde, e) der Prozessor, e.1) wenn er sich auf dem ersten Hardware-Privileg-Level befindet, beim Versuch der Ausführung der Operation einen Virtualisierungs-Trag erzeugt (608 ) und e.2) wenn er sich auf dem zweiten Hardware-Privileg-Level befindet, die Operation so ausführt (610 ), als ob sie durch den Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, ausgeführt würde, f) der Virtualisierungs-Trag einen Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus bewirkt, g) der Virtuelle-Maschine-Monitor (310 ) beim einem Übergang aus dem zweiten Prozessormodus zum ersten Prozessormodus die Kontrolle über die von der Gast-Software (306 ,308 ) initiierte Operation erhält (408 ), die Operation ausführt (410 ) und die Kontrolle an die Gast-Software (306 ,308 ) durch einen Eintritt in den zweiten Prozessormodus zurück überträgt (412 ). - Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Gast-Software ein Gast-Betriebssystem (
308 ) und wenigstens eine Gast-Anwendung (306 ) umfasst. - Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Gast-Betriebssystem (
308 ) bei dem ersten Hardware-Privileg-Level und die Gast-Anwendung (306 ) bei dem zweiten Hardware-Privileg-Level läuft. - Verfahren nach einem der Ansprüche 1–3, dadurch gekennzeichnet, dass beim Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus ein Flag in dem Prozessor gesetzt wird und beim Übergang aus dem ersten Prozessormodus in den zweiten Prozessormodus das Flag zurückgesetzt wird.
- Verfahren nach einem der Ansprüche 1–4, dadurch gekennzeichnet, dass beim Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus der von dem Prozessor adressierbare Adressraum gewechselt wird.
- Verfahren nach einem der Ansprüche 1–5, dadurch gekennzeichnet, dass beim Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus der von der Gast-Software verwendete Prozessorzustand gesichert und der von dem Virtuelle-Maschine-Monitor (
310 ) benötigte Prozessorzustand geladen wird. - Verfahren nach einem der Ansprüche 1–6, dadurch gekennzeichnet, dass der Virtuelle-Maschine-Monitor (
310 ) beim Ausführen der von der Gast-Software (306 ,308 ) initiierten Operation die von der Gast-Software gewünschte Funktionalität emuliert. - Prozessor (
920 ) zum Ausführen eines Verfahrens zur Unterstützung eines Virtuelle-Maschine-Monitors nach einem der Ansprüche 1–7, wobei der Prozessor a) einen ersten und einen zweiten (V32) Prozessormodus unterstützt, b) den Virtuelle-Maschine-Monitor (310 ) in dem ersten Prozessormodus ausführt, c) eine Gast-Software (306 ,308 ) in dem zweiten Prozessormodus und auf ihrem jeweils vorgesehenen, von ihr gewünschten Hardware-Privileg-Level ausführt, wobei die Gast-Software (306 ,308 ) ursprünglich vorgesehen ist, um durch einen Prozessor eines Typs (IA-32-ISA), der den zweiten Prozessormodus nicht unterstützt, auf dem jeweils von ihr gewünschten Hardware-Privileg-Level ausgeführt zu werden, d) in dem zweiten Prozessormodus die Ausführung einer Operation bei einem ersten und einem zweiten Hardware-Privileg-Level unterstützt, wobei die Ausführung der Operation in einem Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, bei dem ersten Hardware-Privileg-Level zu einem Zugriff auf bestimmte privilegierte Hardwareressourcen führen würde und bei dem zweiten Hardware-Privileg-Level nicht zum Zugriff auf die bestimmten Hardwareressourcen führen würde, und e.1) dann, wenn er sich auf dem ersten Hardware-Privileg-Level befindet, beim Versuch der Ausführung der Operation einen Virtualisierungs-Trag erzeugt (608 ), der einen Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus bewirkt, wobei der Virtuelle-Maschine-Monitor (310 ) beim dem Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus die Kontrolle über die von der Gast-Software (306 ,308 ) initiierte Operation erhält (408 ), die Operation ausführt (410 ) und die Kontrolle an die Gast-Software (306 ,308 ) durch einen Eintritt in den zweiten Prozessormodus zurück überträgt (412 ), oder e.2) dann, wenn er sich auf dem zweiten Hardware-Privileg-Level befindet, die Operation so ausführt (610 ), als ob sie durch den Prozessor des Typs, der den zweiten Prozessormodus nicht unterstützt, ausgeführt würde. - Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass er ein Flag enthält, dass beim Übergang aus dem zweiten Prozessormodus in den ersten Prozessormodus gesetzt und beim Übergang aus dem ersten Prozessormodus in den zweiten Prozessormodus zurückgesetzt wird.
- Prozessor nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass er seine Fähigkeit zur Unterstützung des zweiten Prozessormodus anzeigt, indem er in einem Register (EDX) ein dies anzeigendes Bit zurückgibt, wenn ein CPUID-Befehl mit einem Wert 1 in einem zweiten Register (EAX) ausgeführt wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/752,134 US7818808B1 (en) | 2000-12-27 | 2000-12-27 | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US09/752,134 | 2000-12-27 | ||
PCT/US2001/045061 WO2002052404A2 (en) | 2000-12-27 | 2001-11-27 | Processor mode for limiting the operation of guest software r unning on a virtual machine supported by a monitor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10197121T1 DE10197121T1 (de) | 2003-11-13 |
DE10197121B4 true DE10197121B4 (de) | 2009-10-01 |
Family
ID=25025025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10197121T Expired - Fee Related DE10197121B4 (de) | 2000-12-27 | 2001-11-27 | Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors |
Country Status (11)
Country | Link |
---|---|
US (1) | US7818808B1 (de) |
KR (1) | KR100602157B1 (de) |
CN (1) | CN1295604C (de) |
AU (1) | AU2002217992A1 (de) |
BR (1) | BR0116599A (de) |
DE (1) | DE10197121B4 (de) |
GB (1) | GB2386230B (de) |
HK (1) | HK1058255A1 (de) |
RU (1) | RU2265880C2 (de) |
TW (1) | TW594493B (de) |
WO (1) | WO2002052404A2 (de) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260820B1 (en) * | 2001-04-26 | 2007-08-21 | Vm Ware, Inc. | Undefeatable transformation for virtual machine I/O operations |
US7103529B2 (en) | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7793286B2 (en) * | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US7424709B2 (en) * | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US7287197B2 (en) * | 2003-09-15 | 2007-10-23 | Intel Corporation | Vectoring an interrupt or exception upon resuming operation of a virtual machine |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US7802250B2 (en) * | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US7484247B2 (en) * | 2004-08-07 | 2009-01-27 | Allen F Rozman | System and method for protecting a computer system from malicious software |
EP1669864B1 (de) * | 2004-12-03 | 2010-06-02 | STMicroelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US7685635B2 (en) * | 2005-03-11 | 2010-03-23 | Microsoft Corporation | Systems and methods for multi-level intercept processing in a virtual machine environment |
EP1736875A1 (de) * | 2005-06-21 | 2006-12-27 | Alcatel | Verfahren zum Betreiben eines Computersystems |
CN100399274C (zh) * | 2005-09-19 | 2008-07-02 | 联想(北京)有限公司 | 一种虚拟机系统输入/输出设备动态分配的方法及其设备 |
US8572604B2 (en) | 2005-11-12 | 2013-10-29 | Intel Corporation | Method and apparatus to support virtualization with code patches |
US8286162B2 (en) | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US7506121B2 (en) * | 2005-12-30 | 2009-03-17 | Intel Corporation | Method and apparatus for a guest to access a memory mapped device |
CN100464276C (zh) * | 2005-12-30 | 2009-02-25 | 联想(北京)有限公司 | 配置和保护用户软硬件配置信息的方法和系统 |
JP4233585B2 (ja) * | 2006-07-25 | 2009-03-04 | 株式会社エヌ・ティ・ティ・ドコモ | ペリフェラル切替装置及びペリフェラル切替制御装置 |
US7882336B2 (en) * | 2007-02-01 | 2011-02-01 | International Business Machines Corporation | Employing a buffer to facilitate instruction execution |
CN103751194B (zh) | 2007-06-22 | 2018-01-05 | 海德拉生物科学公司 | 用于治疗病症的方法和组合物 |
US8763115B2 (en) * | 2007-08-08 | 2014-06-24 | Vmware, Inc. | Impeding progress of malicious guest software |
US7996648B2 (en) | 2007-12-19 | 2011-08-09 | Microsoft Corporation | Coupled symbiotic operating systems |
US8522236B2 (en) | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
KR101425621B1 (ko) | 2008-01-15 | 2014-07-31 | 삼성전자주식회사 | 컨텐츠를 안전하게 공유하는 방법 및 시스템 |
CN101493781B (zh) * | 2008-01-24 | 2012-02-15 | 中国长城计算机深圳股份有限公司 | 一种虚拟机系统及其启动方法 |
GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US9424211B2 (en) * | 2008-12-31 | 2016-08-23 | Intel Corporation | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
US8510735B2 (en) * | 2009-02-11 | 2013-08-13 | International Business Machines Corporation | Runtime environment for virtualizing information technology appliances |
US8479196B2 (en) * | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
US8392625B2 (en) | 2010-06-25 | 2013-03-05 | Intel Corporation | Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system |
US9087199B2 (en) | 2011-03-31 | 2015-07-21 | Mcafee, Inc. | System and method for providing a secured operating system execution environment |
US8813227B2 (en) | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
US8925089B2 (en) | 2011-03-29 | 2014-12-30 | Mcafee, Inc. | System and method for below-operating system modification of malicious code on an electronic device |
US9038176B2 (en) | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
US9262246B2 (en) | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
US9317690B2 (en) | 2011-03-28 | 2016-04-19 | Mcafee, Inc. | System and method for firmware based anti-malware security |
US9032525B2 (en) | 2011-03-29 | 2015-05-12 | Mcafee, Inc. | System and method for below-operating system trapping of driver filter attachment |
US8966624B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for securing an input/output path of an application against malware with a below-operating system security agent |
US8966629B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for below-operating system trapping of driver loading and unloading |
US8863283B2 (en) * | 2011-03-31 | 2014-10-14 | Mcafee, Inc. | System and method for securing access to system calls |
US8959638B2 (en) | 2011-03-29 | 2015-02-17 | Mcafee, Inc. | System and method for below-operating system trapping and securing of interdriver communication |
US10303503B2 (en) | 2011-12-31 | 2019-05-28 | Intel Corporation | Hardware protection of virtual machine monitor runtime integrity watcher |
US9566158B2 (en) * | 2011-12-31 | 2017-02-14 | Intel Corporation | Hardware protection of virtual machine monitor runtime integrity watcher |
EP2847674A4 (de) * | 2012-05-09 | 2016-01-27 | Intel Corp | Aufgabenplanung zwischen prozessorkernen |
US9304874B2 (en) | 2014-02-03 | 2016-04-05 | Red Hat Israel, Ltd. | Virtual machine-guest driven state restoring by hypervisor |
US10963280B2 (en) * | 2016-02-03 | 2021-03-30 | Advanced Micro Devices, Inc. | Hypervisor post-write notification of control and debug register updates |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
CN107977252A (zh) * | 2016-10-21 | 2018-05-01 | 中兴通讯股份有限公司 | 一种云平台业务的缩容方法、装置及云平台 |
US10360353B2 (en) * | 2017-02-08 | 2019-07-23 | International Business Machines Corporation | Execution control of computer software instructions |
US11423140B1 (en) | 2017-03-27 | 2022-08-23 | Melih Abdulhayoglu | Auto-containment of guest user applications |
US10951644B1 (en) | 2017-04-07 | 2021-03-16 | Comodo Security Solutions, Inc. | Auto-containment of potentially vulnerable applications |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
Family Cites Families (228)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
JPS58140862A (ja) | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2601535B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2618002B1 (fr) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
US5551033A (en) | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
US5237669A (en) * | 1991-07-15 | 1993-08-17 | Quarterdeck Office Systems, Inc. | Memory management method |
JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
EP0602867A1 (de) | 1992-12-17 | 1994-06-22 | NCR International, Inc. | Vorrichtung zur Sicherheit einer Systemplattform |
JPH06187178A (ja) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
EP0706275B1 (de) | 1994-09-15 | 2006-01-25 | International Business Machines Corporation | System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften |
US6058478A (en) | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5901312A (en) * | 1994-12-13 | 1999-05-04 | Microsoft Corporation | Providing application programs with unmediated access to a contested hardware resource |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (fr) | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5684948A (en) | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US6093213A (en) | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
JP2000503154A (ja) | 1996-01-11 | 2000-03-14 | エムアールジェイ インコーポレイテッド | デジタル所有権のアクセスと分配を制御するためのシステム |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
IL117085A (en) | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6178509B1 (en) | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5757604A (en) | 1996-06-27 | 1998-05-26 | Raychem Corporation | Surge arrester having grooved and ridged terminals |
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
US6055637A (en) | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (ja) | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
JP4000654B2 (ja) | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | 半導体装置及び電子機器 |
US6272637B1 (en) | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6044478A (en) | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6175924B1 (en) | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6212635B1 (en) | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (de) | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6996828B1 (en) * | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US5935247A (en) | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
US6182089B1 (en) | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US6061794A (en) | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6192455B1 (en) | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6173417B1 (en) | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
DE69942712D1 (de) | 1998-05-29 | 2010-10-14 | Texas Instruments Inc | Sichere Rechnervorrichtung |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US6505279B1 (en) | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
US6339815B1 (en) | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
US6363485B1 (en) | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6230248B1 (en) | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6609199B1 (en) | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6453392B1 (en) * | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US6445797B1 (en) | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US7111290B1 (en) | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6560627B1 (en) | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US6188257B1 (en) | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
EP1030237A1 (de) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Vertrautes Hardware-Gerät in einem Rechner |
US6272533B1 (en) | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7225333B2 (en) | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6389537B1 (en) | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6275933B1 (en) | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
EP1056014A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System und Verfahren zur Versorgung einer vertrauenswürdigen Benutzerschnittstelle |
EP1055989A1 (de) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System zum digitalen Unterschreiben von einem Dokument |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
US6529909B1 (en) | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (ja) | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
EP1085396A1 (de) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Betrieb von gesicherten Zustand in einer Computerplattform |
US6535988B1 (en) | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
GB9923804D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | Electronic commerce system |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
AU2001251701A1 (en) | 2000-02-25 | 2001-09-03 | Identix Incorporated | Secure transaction system |
AU2001243365A1 (en) | 2000-03-02 | 2001-09-12 | Alarity Corporation | System and method for process protection |
JP3710671B2 (ja) | 2000-03-14 | 2005-10-26 | シャープ株式会社 | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6651132B1 (en) * | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
GB0020416D0 (en) | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7631160B2 (en) | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
EP1271277A3 (de) | 2001-06-26 | 2003-02-05 | Redstrike B.V. | Sicherheitssystem und Verfahren zur Verhinderung der unbefugten Benutzung eines Rechners |
US20030018892A1 (en) | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US7191464B2 (en) | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US7103771B2 (en) | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US20030126453A1 (en) | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7107460B2 (en) | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7343493B2 (en) | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
-
2000
- 2000-12-27 US US09/752,134 patent/US7818808B1/en not_active Expired - Fee Related
-
2001
- 2001-11-27 GB GB0314030A patent/GB2386230B/en not_active Expired - Fee Related
- 2001-11-27 AU AU2002217992A patent/AU2002217992A1/en not_active Abandoned
- 2001-11-27 RU RU2003123118/09A patent/RU2265880C2/ru not_active IP Right Cessation
- 2001-11-27 WO PCT/US2001/045061 patent/WO2002052404A2/en not_active Application Discontinuation
- 2001-11-27 CN CNB018215750A patent/CN1295604C/zh not_active Expired - Fee Related
- 2001-11-27 BR BR0116599-2A patent/BR0116599A/pt not_active Application Discontinuation
- 2001-11-27 KR KR1020037008692A patent/KR100602157B1/ko not_active IP Right Cessation
- 2001-11-27 DE DE10197121T patent/DE10197121B4/de not_active Expired - Fee Related
- 2001-12-24 TW TW090132037A patent/TW594493B/zh not_active IP Right Cessation
-
2004
- 2004-02-11 HK HK04100915A patent/HK1058255A1/xx not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
Non-Patent Citations (3)
Title |
---|
Hall,J.S., et.al.: Virtualizing the VAX architecture. In: Proceedings of the 18th annual international symposium on computer architecture, Toronto, CA, 1991, pp.380-389 * |
SIMS, D.: Interview: Mendel Rosenblum of Vmware, Linux DevCenter, 18.02.00, S.1-5, [http://www.linu xdevcenter.com/pub/a/linux/2000/02/18/interview/ro senblum1.html] * |
SIMS, D.: Interview: Mendel Rosenblum of Vmware, Linux DevCenter, 18.02.00, S.1-5, [http://www.linu xdevcenter.com/pub/a/linux/2000/02/18/interview/ro senblum1.html] Hall,J.S., et.al.: Virtualizing the VAX architecture. In: Proceedings of the 18th annual international symposium on computer architecture, Toronto, CA, 1991, pp.380-389 |
Also Published As
Publication number | Publication date |
---|---|
WO2002052404A3 (en) | 2003-09-12 |
HK1058255A1 (en) | 2004-05-07 |
GB2386230A (en) | 2003-09-10 |
BR0116599A (pt) | 2004-06-15 |
CN1561485A (zh) | 2005-01-05 |
RU2265880C2 (ru) | 2005-12-10 |
WO2002052404A2 (en) | 2002-07-04 |
KR20040028704A (ko) | 2004-04-03 |
TW594493B (en) | 2004-06-21 |
GB2386230B (en) | 2005-03-02 |
KR100602157B1 (ko) | 2006-07-19 |
AU2002217992A1 (en) | 2002-07-08 |
US7818808B1 (en) | 2010-10-19 |
RU2003123118A (ru) | 2005-01-10 |
DE10197121T1 (de) | 2003-11-13 |
GB0314030D0 (en) | 2003-07-23 |
CN1295604C (zh) | 2007-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10197121B4 (de) | Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors | |
DE10357804B4 (de) | Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe | |
DE10397004B4 (de) | Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems | |
DE10393679B4 (de) | Prozessor, der einen Übergang zwischen einem virtuellen Maschinen Betriebsmodus (VM) und einem virtuellen Maschinen Monitor Betriebsmodus (VMM) unterstützt | |
DE112004003080B4 (de) | Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung privilegierter Ereignisse | |
DE10393920B4 (de) | Verfahren und Systeme zur Steuerung virtueller Maschinen | |
DE102006061939B4 (de) | Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast | |
DE60306952T2 (de) | Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich | |
RU2374675C2 (ru) | Системы и способы использования синтезированных команд в виртуальной машине | |
DE102014003690A1 (de) | Prozessoren, Verfahren und Systeme zur Befehlsemulation | |
DE102014003705A1 (de) | Prozessoren, Verfahren und Systeme zur Befehlsemulation | |
DE112010005821T5 (de) | Kontextwechsel | |
DE112011102876T5 (de) | Ressourcenverwaltungs- und Sicherheitssystem | |
DE112017004980T5 (de) | Technologien für objektorientiertes speichermanagement mit erweiterter segmentierung | |
DE102007060324A1 (de) | Computerbetrieb im Mehrfachmodus | |
DE112012005209T5 (de) | Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang | |
DE112007001714T5 (de) | Virtualisieren von Leistungszählern | |
DE102014003540A1 (de) | Erzeugen einer isolierten ausführungsumgebung in einem co-designten prozessor | |
DE102009050983A1 (de) | Eine Technik, um Interrupts in einem Computersystem zu kommunizieren | |
DE112016004297T5 (de) | Technologien für mehrstufige virtualisierung | |
DE112017003332T5 (de) | Öffnungszugriffsprozessoren, verfahren, systeme und befehle | |
DE202019005683U1 (de) | Prozessorkern mit Unterstützung einer Befehlssatzarchitektur für heterogene Systeme | |
DE112004000626T5 (de) | Verfahren und Gerät zur Schaffung einer Programmlauf- bzw. Ausführungsabschirmung | |
DE10297686B4 (de) | System und Verfahren zum Steuern der Zugriffe zwischen einzelnen Geräten innerhalb eines Computersystems | |
DE112017008307T5 (de) | Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10197121 Country of ref document: DE Date of ref document: 20031113 Kind code of ref document: P |
|
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |