DE102018115251A1 - Technologien zum Schutz eines virtuellen Maschinenspeichers - Google Patents

Technologien zum Schutz eines virtuellen Maschinenspeichers Download PDF

Info

Publication number
DE102018115251A1
DE102018115251A1 DE102018115251.5A DE102018115251A DE102018115251A1 DE 102018115251 A1 DE102018115251 A1 DE 102018115251A1 DE 102018115251 A DE102018115251 A DE 102018115251A DE 102018115251 A1 DE102018115251 A1 DE 102018115251A1
Authority
DE
Germany
Prior art keywords
translation
address
addresses
physical host
virtual machine
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.)
Pending
Application number
DE102018115251.5A
Other languages
English (en)
Inventor
Uttam K. Sengupta
Prashant Dewan
Siddhartha Chhabra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018115251A1 publication Critical patent/DE102018115251A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Technologien zum Schutz eines virtuellen Maschinenspeichers einer Rechenvorrichtung enthalten eine virtuelle Maschine (VM), die auf der Rechenvorrichtung instanziiert ist, einen virtuellen Maschinenmonitor (VMM), der auf der Rechenvorrichtung eingerichtet ist, um den Betrieb der VM zu steuern, einen gesicherten Speicher und einen Speichermanager. Der Speichermanager empfängt eine Speicherzugriffsanfrage, die eine virtuelle lineare Adresse enthält (LA), vom VM und führt eine Übersetzung der LA zu einer übersetzten physischen Host-Adresse (HPA) der Rechenvorrichtung unter Verwendung ein oder mehr Seitentabellen durch, die mit der VM und dem VMM verknüpft sind. Der Speichermanager bestimmt, ob eine gesicherte Übersetzungsabbildung von LA auf HPA, die der LA entspricht, gesperrt ist. Falls die Abbildung gesperrt ist, verifiziert der Speichermanager die Übersetzung basierend auf einem Vergleich der übersetzten HPA mit einer HPA, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde, und führt, falls verifiziert, die Speicherzugriffsanfrage unter Verwendung der übersetzten HPA durch.

Description

  • HINTERGRUND
  • In Cloud-Umgebungen werden Host-Dienstvorrichtungen verwendet, um Client-Vorrichtungen verschiedene Cloud-Dienste bereitzustellen. Für eine erhöhte Effizienz und Nutzung kann eine Host-Dienstvorrichtung mehrere Dienste auf derselben Vorrichtung durch Nutzung virtueller Maschinen (VMs) hosten. Jede VM stellt eine virtuelle „Gast“-Vorrichtung oder Maschine für jeden gehosteten Dienst bereit, sodass der gehostete Dienst auf einer einzelne, zweckbestimmten Vorrichtung ausgeführt zu werden scheint.
  • Virtuelle Maschinen einer Host-Dienstvorrichtung können durch einen virtuellen Maschinenmonitor (VMM) verwaltet werden. Ein typischer VMM ist als Softwareprogramm verkörpert, der die physisch Computer-Hardware (z. B. einen Prozessor, Speicher, Kommunikationsvorrichtungen, Platte und CD-ROM-Laufwerke usw.) der Host-Dienstvorrichtung steuert und Programme präsentiert, die in den virtuellen Maschinen (VM) ausgeführt werden, mit der Illusion, dass die Programme auf unabhängiger, physischer Computer-Hardware ausgeführt werden. Der virtuelle Speicher, der durch Programme verwendet wird, die in virtuellen Maschinen ausgeführt werden, kann auf den physischen Speicher einer Host-Dienstvorrichtung auf verschiedene Weisen abgebildet werden. In einigen Fällen jedoch kann eine Host-Dienstvorrichtung für Angriffe durch Malware, Viren und andere Arten bösartiger Software anfällig sein, die versuchen könnten, Funktionen des virtuellen Maschinenmonitors zu manipulieren. Der böswillig manipulierte, virtuelle Maschinenmonitor kann einen virtuellen Speicher der virtuellen Maschinen, die auf der Host-Dienstvorrichtung instanziiert ist, eine Risiko aussetzen.
  • Figurenliste
  • Die hier beschriebenen Konzepte sind als Beispiel und nicht als Einschränkung in den beiliegenden Figuren dargestellt. Der einfachen und klaren Darstellung wegen sind Elemente, die in den Figuren dargestellt sind, nicht unbedingt im Maßstab gezeichnet. Falls als angemessen erachtet, werden Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
    • 1 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Systems zum Schutz eines virtuellen Maschinenspeichers einer Host-Dienstvorrichtung;
    • 2 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform verschiedener Umgebungen, die durch die Host-Dienstvorrichtung von 1 errichtet werden können;
    • 3 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform verschiedener Umgebungen, die durch die Host-Dienstvorrichtung von 1 errichtet werden können;
    • 4 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Initialisieren einer sicheren Host-Plattform durch Speichern von Übersetzungsabbildungen in einem gesicherten Speicher, das durch die Host-Dienstvorrichtung von 1-3 ausgeführt werden kann;
    • 5 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Zugreifen auf den Speicher der Host-Dienstvorrichtung als Reaktion auf einen Empfang einer Speicherzugriffsanfrage von einer virtuellen Maschine, das durch die Host-Dienstvorrichtung des Systems von 1-3 ausgeführt werden kann;
    • 6 und 7 sind vereinfachte Flussdiagramme mindestens einer zusätzlichen Ausführungsform eines Verfahrens für einen Zugriff auf einen Speicher der Host-Dienstvorrichtung als Reaktion auf einen Empfang einer Speicherzugriffsanfrage von einer virtuellen Maschine, das durch die Host-Dienstvorrichtung des Systems von 1-3 ausgeführt werden kann; und
    • 8 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Entsperren einer oder mehr gesicherter Übersetzungsabbildungen, die in einem gesicherten Speicher der Host-Dienstvorrichtung gespeichert sind, das durch die Host-Dienstvorrichtung des Systems von 1-3 ausgeführt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Während die Konzepte der vorliegenden Offenbarung verschiedenen Modifizierungen und alternativen Formen zugänglich sind, sind spezielle Ausführungsformen derselben als Beispiel in den Zeichnungen dargestellt und werden hier ausführlich beschrieben. Es sollte klar sein, dass keine Absicht besteht, die Konzepte der vorliegenden Offenbarung auf die besonderen offenbarten Formen zu beschränken, sondern, im Gegenteil, beabsichtigt ist, alle Modifizierungen, Äquivalente und Alternativen, die mit der vorliegenden Offenbarung und den beiliegenden Ansprüchen übereinstimmen, abzudecken.
  • Verweise in der Beschreibung auf „eine (1) Ausführungsform“, „eine Ausführungsform“, „eine illustrative Ausführungsform“ usw., geben an, dass die beschriebene Ausführungsform ein besonderes Merkmal, eine besondere Struktur oder Eigenschaft enthalten kann, aber jede Ausführungsform dieses besondere Merkmal, die besondere Struktur oder Eigenschaft unbedingt enthalten kann oder nicht. Ferner beziehen sich solche Phrasen nicht unbedingt auf dieselbe Ausführungsform. Wenn ein besonderes Merkmal, eine besondere Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, wird ferner angenommen, dass es in der Kenntnis eines Fachmanns auf dem Gebiet liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen auszuführen, sei dies nun ausdrücklich beschrieben oder nicht. Zusätzlich sollte klar sein, dass Punkte, die in einer Liste in der Form von „mindestens eines von A, B und C“ enthalten sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B, und C) bedeuten können. Ebenso können Punkte, die in der Form „mindestens eines von A, B oder C“ aufgelistet sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B, und C) bedeuten können.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder jeder Kombination davon implementiert werden. Die offenbarten Ausführungsformen können auch als Anweisungen implementiert werden, die auf einem oder mehr transitorischen oder nicht transitorischen, maschinenlesbaren (z. B. computerlesbaren) Speichermedien ausgeführt werden oder auf diesen gespeichert sind, die durch einen oder mehr Prozessoren gelesen und ausgeführt werden können. Ein maschinelesbares Speichermedium kann als jede Speichervorrichtung, jeder Mechanismus oder jede andere physische Struktur zum Speichern oder Senden von Informationen in einer Form verkörpert sein, die durch eine Maschine (z. B. einen flüchtigen oder nicht flüchtigen Speicher, einem Datenträger oder einer anderen Medienvorrichtung) lesbar ist.
  • In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in speziellen Anordnungen und/oder Reihenfolgen dargestellt sein. Es sollte jedoch klar sein, dass solche speziellen Anordnungen und/oder Reihenfolgen nicht notwendig sein könnten. Vielmehr können in einigen Ausführungsformen solche Merkmale in einer anderen Weise und/oder Reihenfolge als in den illustrativen Figuren dargestellt angeordnet sein. Zusätzlich soll die Aufnahme eines Struktur- Verfahrensmerkmal in einer bestimmten Figur nicht bedeuten, dass ein solches Merkmal in allen Ausführungsformen erforderlich ist, und kann in einigen Ausführungsformen nicht enthalten sein oder mit anderen Merkmalen kombiniert sein.
  • Unter Bezugnahme nun auf 1 enthält in einer illustrativen Ausführungsform ein System 100 zum Schutz eines virtuellen Maschinenspeichers eine Host-Dienstvorrichtung 102, die mit einer oder mehr Client-Vorrichtungen 104 über ein Netzwerk 106 kommunizieren kann, um verschiedene Cloud- oder gehostete Dienste bereitzustellen. In Verwendung, wie in der Folge ausführlicher beschrieben ist, konfiguriert die Host-Dienstvorrichtung 102 einen gesicherten Speicher der Host-Dienstvorrichtung 102, um einen virtuellen Maschinenspeicher von virtuellen Maschine(n) zu schützen, die durch einen virtuellen Maschinenmonitor der Host-Dienstvorrichtung 102 gesteuert werden. Wie in der Folge ausführlicher besprochen ist, wenn eine virtuelle Maschine instanziiert ist, ordnet der virtuelle Maschinenmonitor einen Bereich physischer Adressen(z. B. physische Gastadressen) der instanziierten virtuellen Maschine zu. In der illustrativen Ausführungsform, wird eine Übersetzungsabbildung von virtuellen Adressen auf physische Adressen, die dem physischen Adressenbereich entspricht, der der virtuellen Maschine zugeordnet ist, im gesicherten Speicher der Host-Dienstvorrichtung 102 gespeichert, sodass die gesicherte Übersetzungsabbildung für den virtuellen Maschinenmonitor nicht zugänglich ist. Als solches, selbst wenn der virtuelle Maschinenmonitor böswillig manipuliert oder gehackt wird, ist die gesicherte Übersetzungsabbildung, die im gesicherten Speicher gespeichert ist, nicht betroffen. Zusätzlich können folgende Speicheradressenübersetzungen durch Vergleichen solcher Speicherübersetzungen mit der gesicherten Übersetzungsabbildung verifiziert werden.
  • Die Host-Dienstvorrichtung 102 kann als eine Art von Rechen- oder Computervorrichtung verkörpert sein, die imstande ist, die hier beschriebenen Funktionen durchzuführen, enthaltend, ohne Einschränkung, einen Computer, einen Server, einen Rackmontierten Server, einen Hochleistungsrechenknoten, einen Desktop-Computer, eine Workstation, einen Laptop-Computer, einen Notebook-Computer, einen Tablet-Computer, eine mobile Rechenvorrichtung, eine tragbare Rechenvorrichtung, ein Netzwerkgerät, ein verteiltes Rechensystem, ein Prozessor-basiertes System und/oder eine elektronische Verbrauchervorrichtung. Wie in 1 dargestellt, enthält die Host-Dienstvorrichtung 102 zur Veranschaulichung eine Rechen-Engine 120, ein Eingabe-/Ausgabe- („I/O“) Teilsystem 126, einen Datenspeicher 130 und ein Kommunikationsteilsystem 128. In einigen Ausführungsformen kann die Rechen-Engine 120 einen Prozessor 122 und einen integrierten oder separaten Speicher 124 enthalten oder als dieser verkörpert sein, wie in der Folge besprochen. Zusätzlich kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen auch eine oder mehr periphere Vorrichtungen 132 enthalten. Es sollte klar sein, dass die Host-Dienstvorrichtung 102 in anderen Ausführungsformen andere oder zusätzliche Komponenten enthalten kann, wie jene, die allgemein in einem Server-Computer gefunden werden (z. B. verschiedene Eingabe-/AusgabeVorrichtungen). Zusätzlich können in einigen Ausführungsformen eine oder mehr der illustrativen Komponenten in einer anderen Komponente eingegliedert sein oder auf andere Weise einen Teil derselben bilden. Zum Beispiel kann der Speicher 124, oder können Teile davon, in einigen Ausführungsformen in den Prozessor 122 eingegliedert sein.
  • Die Rechen-Engine 120 kann als eine Art von Vorrichtung oder Sammlung von Vorrichtungen verkörpert sein, die imstande ist, verschiedene Rechenfunktionen, wie in der Folge beschrieben, durchzuführen. In einigen Ausführungsformen kann die Rechen-Engine 120 als eine einzige Vorrichtung wie eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Array (FPGA, ein System-on-Chip (SOC), oder ein anderes integriertes System oder eine andere integrierte Vorrichtung verkörpert sein. In einigen Ausführungsformen enthält die Rechen-Engine 120 den Prozessor 122 und den Speicher 124 oder ist als diese verkörpert. Der Prozessor 122 kann als eine Art von Prozessor verkörpert sein, der imstande ist, die hier beschriebenen Funktionen durchzuführen. Zum Beispiel kann der Prozessor 122 als Einzel- oder Mehrfachkern-Prozessor(en), Digitalsignalprozessor, Mikrosteuerung oder als anderer Prozessor oder eine Verarbeitungs-/Steuerschaltung verkörpert sein. Ebenso kann der Speicher 124 als eine Art von flüchtigem oder nicht flüchtigem Speicher oder Datenspeicher verkörpert sein, der imstande ist, die hier beschriebenen Funktionen durchzuführen. In Betrieb kann der Speicher 124 verschiedene Daten und Software speichern, die während des Betriebs der Host-Dienstvorrichtung 102 verwendet werden, wie Betriebssysteme, Anwendungen, , Programme, Bibliotheken und Treiber. Der Speicher 124 ist kommunikativ über das I/O-Teilsystem 126, das als Schaltkreis und/oder Komponenten verkörpert sein kann, an den Prozessor 122 gekoppelt, um die Eingabe-/Ausgabe-Operationen mit dem Prozessor 122, dem Speicher 124 und anderen Komponenten der Host-Dienstvorrichtung 102 zu erleichtern. Zum Beispiel kann das I/O Teilsystem 126 als Speichersteuerungs-Hubs, Eingabe-/Ausgabe-Steuer-Hubs, Firmware Vorrichtungen, Kommunikationsverbindungen (d. h. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenbahnen usw.) und/oder andere Komponenten und Teilsysteme verkörpert sein oder diese enthalten, um die Eingabe-/Ausgabe-Operationen zu erleichtern. In einigen Ausführungsformen kann das I/O Teilsystem 126 gemeinsam mit dem Prozessor 122, dem Speicher 124 und anderen Komponenten der Host-Dienstvorrichtung 102 in die Rechen-Engine 120 eingegliedert sein.
  • Das Kommunikationsteilsystem 128 kann als eine Art von Kommunikationsschaltung, Vorrichtung oder Sammlung davon verkörpert sein, imstande, Kommunikationen zwischen der Host-Dienstvorrichtung 102 und anderen Vorrichtungen des Systems 100 (z. B. den Client-Vorrichtungen 104 über das Netzwerk 106) zu ermöglichen. Dazu kann das Kommunikationsteilsystem 128 konfiguriert sein, eine oder mehr Kommunikationstechnologien (z. B. drahtlose oder verdrahtete Kommunikationen) und zugehörige Protokolle (z. B. Ethernet, Bluetooth®, Wi-Fi®, WiMAX, LTE, 5G usw.) zu verwenden, um eine solche Kommunikation zu bewirken.
  • Der Datenspeicher 130 kann als eine Art von Vorrichtung oder Vorrichtungen verkörpert sein, die für eine kurzfristige oder langfristige Datenspeicherung konfiguriert sind, wie zum Beispiel Speichervorrichtungen und Schaltungen, Speicherkarten, Festplattenlaufwerke, Solid-State-Laufwerke oder andere Datenspeichervorrichtungen. Wie in der Folge ausführlich besprochen ist, kann der Datenspeicher 130 Übersetzungsabbildungen speichern.
  • In einigen Ausführungsformen kann die Host-Dienstvorrichtung 102 eine oder mehr periphere Vorrichtungen 132 enthalten. Die peripheren Vorrichtungen 132 können eine beliebige Anzahl zusätzlicher peripherer oder Schnittstellenvorrichtungen enthalten, wie andere Eingabe-/Ausgabe-Vorrichtungen, Speichervorrichtungen und so weiter. Die besonderen Vorrichtungen, die in den peripheren Vorrichtungen 132 enthalten sind, können zum Beispiel von der Art und/oder Konfiguration der Host-Dienstvorrichtung 102, der Client-Vorrichtungen 104 und/oder der gehosteten Dienste abhängig sein, die durch die Host-Dienstvorrichtung 102 bereitgestellt werden.
  • Jede Client-Vorrichtung 104 kann als eine Art von Rechen- oder Computervorrichtung verkörpert sein, die zur Kommunikation mit der Host-Dienstvorrichtung 102 zum Hosten von hier beschriebenen Diensten und Funktionen imstande ist, enthaltend, ohne Einschränkung, einen Computer, einen Tablet-Computer, ein Smartphone, einen Laptop-Computer, ein Notebook, einen Desktop-Computer, ein UltrabookTM, eine intelligente Vorrichtung, einen Personal Digital Assistant, eine mobile Internet-Vorrichtung, eine tragbare Rechenvorrichtung, ein Netzwerkgerät, ein verteiltes Rechensystem, ein Prozessor-basiertes System, eine elektronische Verbrauchervorrichtung und/oder eine andere Rechenvorrichtung. Als solche kann jede Client-Vorrichtung 104 Komponenten, wie einen Prozessor, einen Speicher und ein Kommunikationsteilsystem, ähnlich den oben in Bezug auf die Host-Dienstvorrichtung 102 enthalten.
  • Das Netzwerk 106 kann als eine Anzahl verschiedener verdrahteter und/oder drahtloser Netzwerke verkörpert sein, die imstande sind, Kommunikationen zwischen der mobilen Rechenvorrichtung 102 und dem fernen Dienst 104 zu erleichtern. Zum Beispiel kann das Netzwerk 106 als ein verdrahtetes oder drahtloses lokales Netzwerk (LAN), ein verdrahtetes oder drahtloses Weitverkehrsnetzwerk (WAN), ein zellulares Netzwerk und/oder ein öffentlich zugängliches, globales Netzwerk wie das Internet verkörpert sein oder auf andere Weise enthalten. Als solches kann das Netzwerk 106 eine beliebige Anzahl zusätzlicher Vorrichtungen enthalten, wie zusätzlicher Computer, Router und Schalter, um Kommunikationen über diese zu erleichtern.
  • Unter Bezugnahme nun auf 2 kann die Host-Dienstvorrichtung 102 in Verwendung eine Umgebung 200 zum Schutz des virtuellen Maschinenspeichers einer virtuellen Maschinen errichten, die auf der Host-Dienstvorrichtung 102 instanziiert ist. Die illustrative Umgebung 200 enthält einen virtuellen Maschinenmonitor (VMM) 202, ein oder mehr virtuelle Maschinen (VMs) 204, einen Speichermanager 206, einen gesicherten Speicher 208 und einen Speicherseitenfehlerdetektor 210. Einige der Komponenten der Umgebung 200 können als Hardware, Firmware, Software oder eine Kombination davon verkörpert sein. Als solche können in einigen Ausführungsformen eine oder mehr der Komponenten der Umgebung 200 als Schaltkreis oder Sammlung elektrischer Vorrichtungen verkörpert sein (z. B. eine Speichermanagerschaltung 206, eine gesicherte Speicherschaltung 208, eine Speicherseitenfehlerdetektorschaltung 210 usw.). Es sollte klar sein, dass in solchen Ausführungsformen, eine oder mehr der Speichermanagerschaltung 206 und/oder der Speicherseitenfehlerdetektorschaltung 210 einen Abschnitt eines oder mehr der Rechen-Engine 120, des Prozessors 122, des I/O Teilsystems 126, des Kommunikationsteilsystems 128 und/oder anderer Komponenten der Host-Dienstvorrichtung 102 bilden können. Zusätzlich können in einigen Ausführungsformen eine oder mehr der illustrativen Komponenten der Umgebung 200 einen Teil einer anderen Komponente bilden und/oder eine oder mehr der illustrativen Komponenten können voneinander unabhängig sein. Ferner können in einigen Ausführungsformen eine oder mehr der Komponenten der Umgebung 200 als virtualisierte Hardware Komponenten oder emulierte Architektur verkörpert sein, die Rechen-Engine 120 oder andere Komponenten der Host-Dienstvorrichtung 102 errichtet und aufrechterhalten werden können.
  • Der virtuelle Maschinenmonitor (VMM) 202 ist zum Instanziieren der virtuellen Maschinen 204 auf der Host-Dienstvorrichtung konfiguriert. Dabei ist der virtuelle Maschinenmonitor 202 konfiguriert, eine VMM-Seitentabelle zu erstellen, um eine lokale Übersetzungsabbildung zwischen physischen Gastadressen (GPA) und physischen Host-Adressen (HPA) zu speichern und einen Bereich der physischen Gastadressen der (den) virtuellen Maschine(n) 204 zuzuordnen, die auf der Host-Dienstvorrichtung 102 instanziiert sind. Dazu enthält der virtuelle Maschinenmonitor 202 einen Speichermapper 212, der eine Abbildung von physischen Gastadressen auf physische Host-Adressen für die physischen Gastadressenbereiche generiert, die den virtuellen Maschinen 204 zugewiesen wurden. Mit anderen Worten, der virtuelle Maschinenmonitor 202 ordnet jeder virtuellen Maschine 204 einen physischen Host-Adressenbereich durch Zuordnen des physischen Gastadressenbereichs zu, der auf den entsprechenden physischen Host-Adressenbereich abgebildet wird. Um die virtuelle Maschine 204 mit dem zugewiesenen physischen Gastadressenbereich verfolgen zu können, enthält die VMM-Seitentabelle ferner eine virtuelle Maschinensteuerstruktur- (VMCS) Kennung, die mit jeder virtuellen Maschine 204 verknüpft ist und eine VMCS → GPA → HPA generiert, die im gesicherten Speicher 208 zu speichern ist, wie in der Folge ausführlich besprochen ist. Die VMCS-Kennung identifiziert jede virtuelle Maschine 204 einzigartig, die auf der Host-Dienstvorrichtung 102 instanziiert ist.
  • Wie oben besprochen, kann der virtuelle Maschinenmonitor 202 in einigen Fällen manipuliert oder gehackt sein und kann versuchen die generierten Übersetzungsabbildungen böswillig zu verändern, Zur Sicherstellung, dass die Host-Dienstvorrichtung 102 nicht böswillig manipuliert ist, ist der virtuelle Speicher der virtuellen Maschinen 204 durch Kopieren der VMCS → GPA → HPA auf den gesicherten Speicher 208 als eine gesicherte Übersetzungsabbildung gesichert. Sobald die gesicherte Übersetzungsabbildung der physischen Gastadressen-auf physische Host-Adressen im gesicherten Speicher 208 gespeichert ist, kann der virtuelle Maschinenmonitor 202 die physische Host-Adresse, die der virtuellen Maschine 204 durch den zugeordneten physischen Gastadressenbereich zugeordnet wurde, nicht erneut zuweisen. Als solche kann auf die gesicherte Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen, die mit der virtuellen Maschine 204 verknüpft ist, erst zugegriffen werden oder diese kann erst modifiziert werden, wenn die virtuelle Maschine 204 den zugeordneten physischen Gastadressenbereich freigibt oder entsperrt. Daher kann nur die virtuelle Maschine 204 auf die physischen Host-Adressen der Host-Dienstvorrichtung 102 zugreifen, die dem Bereich von physischen Gastadressen entsprechen, die der virtuellen Maschine 204 zugeordnet sind.
  • Jede virtuelle Maschine (VM) 204 ist konfiguriert, verknüpfte Software auszuführen oder auf andere Weise eine Cloud oder gehostete Sicherung bereitgestellt. Jede virtuelle Maschine 204 erstellt eine VM-Seitentabelle zum Speichern einer Übersetzungsabbildung zwischen virtuellen linearen Adressen (LA) der virtuellen Maschine und den physischen Gastadressen (GPA) des Bereichs physischen Gastadressen, die durch den virtuellen Maschinenmonitor 202 bereitgestellt werden. Dazu enthält die virtuelle Maschine 204 einen Speichermapper 214, der eine LA → GPA generiert, die zum Übersetzen einer virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse verwendet wird.
  • Der Speichermanager 206 ist zum Verwalten von Speicheranfragen von virtuellen Maschinen 204 konfiguriert, während er Sicherheit für den virtuellen Speicher der virtuellen Maschinen 204 bereitstellt. Dazu enthält der Speichermanager 206 eine Speichermapper-Sicherheitssteuerung 216, einen Speichermapperaggregator 218, eine Speichermappersperrung 220 und eine Speichermapperentsperrung 222. In Verwendung ist der Speichermanager 206 konfiguriert, eine Speicherzugriffsanfrage, die eine virtuelle lineare Adresse enthält, von einer virtuellen Maschine 204 zu empfangen. In Antwort auf die Speicherzugriffsanfrage führt der Speichermanager 206 eine Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Host-Dienstvorrichtung 102 unter Verwendung der VM-Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und der VMM-Seitentabelle, die mit dem virtuellen Maschinenmonitor verknüpft ist, durch.
  • Zur Bereitstellung einer Sicherheit für den virtuellen Speicher der virtuellen Maschinen 204 ist die Speichermapper-Sicherheitssteuerung 216 konfiguriert, die Übersetzung der virtuellen linearen Adresse zur übersetzten physischen Host-Adresse basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse zu verifizieren, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde, die im gesicherten Speicher 208 gespeichert ist. Der Speichermapper-Sicherheitssteuerung 216 ist ferner konfiguriert, einen Zugang zum gesicherten Speicher 208 zu steuern, der eine oder mehr gesicherte Übersetzungsabbildungen speichert (z. B. eine gesperrte VMCS → LA → GPA → HPA , gesperrte LA → GPA , und/oder eine gesperrte VMCS → GPA → HPA , wie in 3 dargestellt). Wie oben besprochen, sobald die Übersetzungsabbildungen im gesicherten Speicher 208 kopiert sind, sind die gesicherten Übersetzungsabbildungen 306, 308, 310 für den virtuellen Maschinenmonitor 202 und die virtuellen Maschinen 204 nicht zugänglich.
  • Der Speichermapperaggregator 218 ist in einigen Ausführungsformen konfiguriert, die LA → GPA , die durch die virtuellen Maschinen 204 generiert werden, und die VMCS → GPA → HPA , die durch den virtuellen Maschinenmonitor 202 generiert wird, zu aggregieren, um eine VMCS → LA → GPA → HPA zu generieren (siehe 3). Wie oben besprochen wird die VMCS → LA → GPA → HPA verwendet, um eine Übersetzung einer virtuellen linearen Adresse einer virtuellen Maschine 204 zu einer übersetzten physischen Host-Adresse der Host-Dienstvorrichtung 102 unter Verwendung der VM-Seitentabelle, die mit der virtuellen Maschine 204 verknüpft ist, und der VMM-Seitentabelle, die mit dem virtuellen Maschinenmonitor 202 verknüpft ist, zu verifizieren.
  • Alternativ kann der Speichermapper-Sicherheitssteuerung 216 in einigen Ausführungsformen die übersetzte physische Host-Adresse unter Verwendung eine Zwei-Stufen-Prozesses verifizieren. Erstens kann die Speichermapper-Sicherheitssteuerung 216 die gesperrte LA → GPA , die im gesicherten Speicher 208 gespeichert ist, verwenden, um eine Übersetzung einer virtuellen linearen Adresse einer virtuellen Maschine 204 zu einer übersetzten physischen Gastadresse unter Verwendung der VM-Seitentabelle, die mit der anfragenden virtuellen Maschine 204 verknüpft ist, zu verifizieren. Falls die Speichermapper-Sicherheitssteuerung 216 bestimmt, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesperrten LA → GPA übersetzt wurde, kann die Speichermapper-Sicherheitssteuerung 216 einen Sicherheitsfehler generieren, um eine Sicherheitsfunktion auszuführen. Falls jedoch die erste Übersetzung verifiziert wird, kann die Speichermapper-Sicherheitssteuerung 216 die gesperrte VMCS → GPA → HPA , die im gesicherten Speicher 208 gespeichert ist, verwenden, um eine Übersetzung der übersetzten physischen Gastadresse zu einer übersetzten physischen Host-Adresse unter Verwendung der VMM-Seitentabelle, die mit dem virtuellen Maschinenmonitor 202 verknüpft ist, zu verifizieren. Falls die Speichermapper-Sicherheitssteuerung 216 bestimmt, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesperrten VMCS → GPA → HPA übersetzt wurde, kann die Speichermapper-Sicherheitssteuerung 216 einen Sicherheitsfehler generieren, um eine Sicherheitsfunktion auszuführen. Als solches, kann die Speichermapper-Sicherheitssteuerung 216 durch Verifizieren der gesicherten Übersetzungsabbildung(en) sicherstellen, dass der virtuelle Maschinenmonitor 202 nicht böswillig manipuliert.
  • Die Speichermappersperrung 220 ist konfiguriert, die gesicherten Übersetzungsabbildungen 306, 308, 310 zu sperren, die im gesicherten Speicher 208 gespeichert sind. Es sollte klar sein, dass die gesicherten Übersetzungsabbildungen 306, 308, 310, die im gesicherten Speicher 208 gesperrt sind, für den virtuellen Maschinenmonitor 202 und die virtuellen Maschinen 204 nicht zugänglich sind. Mit anderen Worten, die VMCS → LA → GPA → HPA , die LA → GPA Abbildung(en) 308 und/oder die VMCS → GPA → HPA (siehe 3) sind für den virtuellen Maschinenmonitor 202 und die virtuelle(n) Maschine(n) 204 nicht zugänglich. Zum Sperren der gesicherten Übersetzungsabbildungen 306, 308, 310, kann die Speichermappersperrung 220 ein Status-Bit oder Flag setzen oder auf andere Weise eine Anzeige bereitstellen, die mit den gesperrten gesicherten Übersetzungsabbildungen 306, 308, 310 verknüpft sind. In einigen Ausführungsformen ist das bloße Vorhandensein einer gesicherten Übersetzungsabbildung 306, 308, 310 im gesicherten Speicher 208 eine Anzeige, dass die entsprechende gesicherte Übersetzungsabbildung 306, 308, 310 gesperrt wurde.
  • Die Speichermapperentsperrung 222 ist auch konfiguriert, ein oder mehr Übersetzungsabbildungen aus dem gesicherten Speicher 208 freizugeben, sodass der virtuelle Maschinenmonitor 202 und/oder ein oder mehr virtuelle Maschinen 204 auf die entsperrte Übersetzungsabbildung zugreifen können. Dazu entfernt die Speichermapperentsperrung 222 eine Übersetzungsabbildung, deren Entsperrung aus dem gesicherten Speicher 208 angefordert wird. Als solches sollte klar sein, dass die VMCS → LA → GPA → HPA und/oder die VMCS → GPA → HPA für den virtuellen Maschinenmonitor 202 erst zugänglich ist, wenn die virtuelle Maschine 204 den Bereich der physischen Host-Adressen freigibt, die der virtuellen Maschine 204 durch den virtuellen Maschinenmonitor 202 zugewiesen wurden.
  • Der Speicherseitenfehlerdetektor 210 ist konfiguriert, einen Speicherseitenfehler, der während einer Adressenübersetzung auftreten kann, unter Verwendung der Seitentabellen, die mit einer virtuellen Maschine 204 oder dem virtuellen Maschinenmonitor 202 verknüpft sind, zu detektieren. Zum Beispiel kann der Speicherseitenfehlerdetektor 210 einen Speicherseitenfehler detektieren, wenn eine übersetzte physische Adresse (z. B. eine übersetzte physische Gastadresse und/oder eine übersetzte physische Host-Adresse) in einer entsprechenden Seitentabelle nicht vorhanden ist. Wenn zum Beispiel der Speichermanager 206 eine virtuelle lineare Adresse einer virtuellen Maschine 204 zu einer übersetzten physischen Gastadresse übersetzt, bestimmt der Speicherseitenfehlerdetektor 210, ob die übersetzte physische Gastadresse in der VM-Seitentabelle vorhanden ist, die mit der virtuellen Maschine 204 verknüpft ist. Falls die übersetzte physische Gastadresse in der VM-Seitentabelle nicht vorhanden ist, generiert der Speicherseitenfehlerdetektor 210 einen Speicherseitenfehler. Zusätzlich, wenn der Speichermanager 206 die übersetzte physische Gastadresse in eine übersetzte physische Host-Adresse übersetzt, bestimmt der Speicherseitenfehlerdetektor 210, ob die übersetzte physische Host-Adresse in der VMM-Seitentabelle vorhanden ist, die mit dem virtuellen Maschinenmonitor 202 verknüpft ist. Falls die übersetzte physische Host-Adresse in der VM-Seitentabelle nicht vorhanden ist, generiert der Speicherseitenfehlerdetektor 210 einen Speicherseitenfehler. In einigen Ausführungsformen kann der Speicherseitenfehlerdetektor 210 einen Benutzer warnen, dass die Host-Dienstvorrichtung 102 manipuliert ist.
  • Der gesicherte Speicher 208 ist konfiguriert, die gesicherten Übersetzungsabbildungen in einem sicheren Übersetzungs-Cache 224 zu speichern. Wie oben besprochen, enthalten die gesicherten Übersetzungsabbildungen die Übersetzungsabbildungen, die durch den virtuellen Maschinenmonitor 202 und ein oder mehr virtuelle Maschinen 204 generiert werden. In einigen Ausführungsformen, wie in der Folge ausführlicher besprochen ist, können die Abbildungen, die durch den virtuellen Maschinenmonitor 202 und ein oder mehr virtuelle Maschinen 204 generiert werden (d. h. VMCS → GPA → HPA bzw. LA → GPA ) zu einer einzigen VMCS → LA → GPA → HPA aggregiert werden. Daher, wie in 3 dargestellt, kann der gesicherte Speicher 208 eine VMCS → LA → GPA → HPA speichern. In anderen Ausführungsformen kann der gesicherte Speicher 208 separat ein oder mehr LA → GPA für jede virtuelle Maschine 204 und die VMCS → GPA → HPA speichern.
  • Unter Bezugnahme nun auf 4 kann die Host-Dienstvorrichtung 102 in Verwendung ein Verfahren 400 zum Initialisieren einer sicheren Host-Plattform der Host-Dienstvorrichtung 102 ausführen. Wie oben besprochen, speichert und sperrt die Speichermapper-Sicherheitssteuerung 216 die gesicherten Übersetzungsabbildungen im gesicherten Speicher 208, sodass die gesicherten Übersetzungsabbildungen durch den virtuellen Maschinenmonitor 202 und die virtuellen Maschinen 204 nicht zugänglich sind. Das Verfahren 400 beginnt mit Block 402, in dem die Speichermapper-Sicherheitssteuerung 216 der Host-Dienstvorrichtung 102 bestimmt, ob die sichere Host-Plattform der Host-Dienstvorrichtung 102 zu initialisieren ist. Falls die Speichermapper-Sicherheitssteuerung 216 bestimmt, dass eine Initialisierung der sicheren Host-Plattform nicht erwünscht ist, kehrt das Verfahren 400 zu Block 402 zurück, um mit dem Bestimmen fortzufahren, ob die sichere Host-Plattform zu initialisieren ist. Falls die Speichermapper-Sicherheitssteuerung 216 jedoch bestimmt, die sichere Host-Plattform zu initialisieren, fährt das Verfahren 400 mit Block 404 fort.
  • In Block 404 reserviert die Speichermapper-Sicherheitssteuerung 216 eine gesicherte Speicherregion des physischen Host-Adressenbereichs zum Speichern der sicheren Übersetzungen. Dazu in Block 406 errichtet die Speichermapper-Sicherheitssteuerung 216 den sicheren Übersetzungs-Cache (STC) 224 im gesicherten Speicher 208. In Block 408 stellt die Speichermapper-Sicherheitssteuerung 216 sicher, dass der sichere Übersetzungs-Cache 224 für die virtuelle(n) Maschine(n) 204 und den virtuelle Maschinenmonitor 202 nicht zugänglich ist. Zum Beispiel kann die Speichermapper-Sicherheitssteuerung 216 in einigen Ausführungsformen sicherstellen, dass der physische Host-Adressenbereich des sicheren Übersetzungs-Cache 224 nicht durch den virtuellen Maschinenmonitor 202 oder die virtuellen Maschinen 204 abgebildet werden kann. In einigen Ausführungsformen kann die gesicherte Speicherregion in einem gesicherten Container oder einer anderen Sicherheitsvorkehrung errichtet werden.
  • In Block 410 initialisiert die Speichermapper-Sicherheitssteuerung 216 den virtuellen Maschinenmonitor 202. Dazu erstellt die Speichermapper-Sicherheitssteuerung 216 in Block 412 eine VMM-Seitentabelle, die eine Abbildung zwischen physischen Gastadressen (GPA) und physischen Host-Adressen (HPA) speichert.
  • In Block 414, bestimmt der virtuelle Maschinenmonitor 202, ob eine neue virtuelle Maschine (VM) zu instanziieren ist. Falls der virtuelle Maschinenmonitor 202 bestimmt, keine neue virtuelle Maschine 204 zu instanziieren kehrt das Verfahren 400 zu Block 414 zurück, um mit der Bestimmung fortzufahren, eine neue virtuelle Maschine 204 zu instanziieren. Falls der virtuelle Maschinenmonitor 202 bestimmt, eine neue virtuelle Maschine 204 zu instanziieren, fährt das Verfahren 400 mit Block 416 fort.
  • In Block 416 ordnet der virtuelle Maschinenmonitor 202 den Host-Speicher der neuen virtuellen Maschine 204 zu. Dazu ordnet der virtuelle Maschinenmonitor 202 in Block 418 einen Bereich der physischen Gastadressen der neuen virtuellen Maschine 204 zu. In Block 420 aktualisiert der virtuelle Maschinenmonitor 202 eine VMCS → GPA → HPA des virtuellen Maschinenmonitors 202 mit der neuen Zuordnung des physischen Gastadressenbereichs zur neuen virtuellen Maschine 204. Dazu generiert der virtuelle Maschinenmonitor 202 eine Abbildung der physischen Gastadressen auf physische Host-Adressen für den Bereich physischer Gastadressen, der der neuen virtuellen Maschine 204 zugeordnet wurde. Der virtuelle Maschinenmonitor 202 aktualisiert die VMCS → GPA → HPA mit der neuen Abbildung des zugeordneten physischen Gastadressenbereichs der neuen virtuellen Maschine 204 und der virtuellen Maschinensteuerstruktur- (VMCS) Kennung, die mit der neuen virtuellen Maschine 204 verknüpft ist. Wie oben besprochen, identifiziert die virtuelle Maschinensteuerstrukturkennung die entsprechende virtuelle Maschine einzigartig.
  • In Block 422 startet der virtuelle Maschinenmonitor 202 die neue virtuelle Maschine 204. In Block 424 generiert die neue virtuelle Maschine 204 eine LA → GPA für den physischen Gastadressenbereich, der der neuen virtuellen Maschine 204 durch den virtuellen Maschinenmonitor 202 zugeordnet wurde. Dazu erstellt die neue virtuelle Maschine 204 in Block 426 eine VM-Seitentabelle, die eine Übersetzungsabbildung der virtuellen linearen Adressen auf physische Gastadressen speichert, die mit der neuen virtuellen Maschine 204 verknüpft sind.
  • In Block 428, bestimmt die Speichermapper-Sicherheitssteuerung 216, ob die Übersetzungsabbildungen (d. h. die VMCS → GPA → HPA und die LA → GPA ) zu sperren sind. Falls die Speichermapper-Sicherheitssteuerung 216 bestimmt, die Übersetzungsabbildungen nicht zu sperren, kehrt das Verfahren 400 zu Block 414 zurück, um mit der Bestimmung fortzufahren, ob eine neue virtuelle Maschine 204 zu instanziieren ist. Falls jedoch die Speichermapper-Sicherheitssteuerung 216 bestimmt, die Übersetzungsabbildungen zu sperren, fährt das Verfahren 400 mit Block 430 fort.
  • In Block 430, fordert die neue virtuelle Maschine 204 eine Sperre der Übersetzungsabbildungen an. In Antwort auf einen Empfang einer Sperranfrage von der neuen virtuellen Maschine 204 kopiert die Speichermapper-Sicherheitssteuerung 216 die Übersetzungsabbildungen in Block 432 zum gesicherten Speicher 208. Dazu kopiert die Speichermapper-Sicherheitssteuerung 216 die LA → GPA der neuen virtuellen Maschine 204 und die VMCS → GPA → HPA des virtuellen Maschinenmonitors 202 in den gesicherten Speicher 208.
  • In der illustrativen Ausführungsform kann der Speichermapperaggregator 218 der Speichermapper-Sicherheitssteuerung 216 die LA → GPA der instanziierten virtuellen Maschine(n) 204 und die VMCS → GPA → HPA des virtuellen Maschinenmonitors 202 in eine VMCS → LA → GPA → HPA aggregieren und die aggregierte im gesicherten Speicher 208 speichern. Es sollte klar sein, dass die VMCS → LA → GPA → HPA im gesicherten Speicher 208 gesperrt ist und für den virtuellen Maschinenmonitor 202 oder die virtuellen Maschine(n) 204 nicht zugänglich ist.
  • Wie oben besprochen und in 3 dargestellt, können die LA → GPA und die VMCS → GPA → HPA in einigen Ausführungsformen einzeln kopiert und im gesicherten Speicher 208 gespeichert werden. In solchen Ausführungsformen, sperrt die Speichermapper-Sicherheitssteuerung 216, sobald die Übersetzungsabbildungen 302, 304 im gesicherten Speicher 208 gespeichert sind, die Übersetzungsabbildungen 308, 310, sodass die gesperrte LA → GPA und die gesperrte VMCS → GPA → HPA für den virtuellen Maschinenmonitor 202 oder die virtuellen Maschine(n) 204 nicht zugänglich sind. In solchen Ausführungsformen ist die LA → GPA der VM-Seitentabelle anfänglich dieselbe wie die gesperrte LA → GPA , die im gesicherten Speicher 208 gespeichert ist, und die VMCS → GPA → HPA der VMM-Seitentabelle ist anfänglich dieselbe wie die gesperrte VMCS → GPA → HPA , die im gesicherten Speicher 208 gespeichert ist. Der virtuelle Maschinenmonitor 202 kann jedoch böswillig manipuliert sein und kann versuchen, die Übersetzungsabbildungen zu ändern. Als solches können sämtliche Unstimmigkeiten zwischen den Seitentabellen und den gesicherten Übersetzungsabbildungen, die im gesicherten Speicher 208 gespeichert sind, zu einem Sicherheitsfehler führen, der anzeigen kann, dass die Host-Dienstvorrichtung 102 manipuliert wurde, wie in der Folge ausführlicher besprochen ist.
  • Unter Bezugnahme nun auf 5, kann die Host-Dienstvorrichtung 102 in Verwendung ein Verfahren 500 zum Zugreifen auf den physischen Host-Speicher der Host-Dienstvorrichtung als Reaktion auf einen Empfang einer Speicherzugriffsanfrage von einer virtuellen Maschine 204 ausführen. Das Verfahren 500 kann zum Beispiel nach Initialisieren der sicheren Host-Plattform der Host-Dienstvorrichtung 102 ausgeführt werden, wie oben in Verbindung mit 4 beschrieben ist. Das Verfahren 500 beginnt mit Block 502, in dem die Host-Dienstvorrichtung 102 der Host-Dienstvorrichtung 102 bestimmt, ob eine Speicherzugriffsanfrage von einer virtuellen Maschine 204 durch den Speichermanager 206 empfangen wurde. Falls nicht, kehrt das Verfahren 500 zu Block 502 zurück, um mit dem Warten auf einen Empfang einer Speicherzugriffsanfrage von einer virtuellen Maschine 204 fortzufahren. Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass eine Speicherzugriffsanfrage empfangen wurde, fährt das Verfahren 500 mit Block 504 fort. In Block 504 empfängt die Host-Dienstvorrichtung 102 eine virtuelle lineare Adresse (LA), eine Zugriffsart und eine VMCS ID (d. h. die VM-Kennung) in Verknüpfung mit dem Speicherzugriff von der anfragenden virtuellen Maschine 204.
  • In Block 506 übersetzt die Host-Dienstvorrichtung 102 die virtuelle lineare Adresse der Speicherzugriffsanfrage zu einer entsprechenden physischen Host-Adresse unter Verwendung der VM-Seitentabelle, die mit der anfragenden virtuellen Maschine 204 verknüpft ist, und der VMM-Seitentabelle, die mit dem virtuellen Maschinenmonitor 202 verknüpft ist. Dazu übersetzt in einigen Ausführungsformen die Host-Dienstvorrichtung 102 die virtuelle lineare Adresse der Speicherzugriffsanfrage zu einer übersetzten physischen Gastadresse unter Verwendung der VM-Seitentabelle und übersetzt ferner die übersetzte physische Gastadresse zu einer physischen Host-Adresse unter Verwendung der VMM-Seitentabelle. Während des Übersetzungsprozesses bestimmt die Host-Dienstvorrichtung 102, ob die angeforderte virtuelle lineare Adresse in die VM-Seitentabelle der anfragenden virtuellen Maschine 204 abgebildet wird und ob die übersetzte physische Gastadresse in die VMM-Seitentabelle abgebildet wird. Falls die Host-Dienstvorrichtung 102 bestimmt, dass die virtuelle lineare Adresse der Speicherzugriffsanfrage nicht in der VM-Seitentabelle vorhanden ist und/oder die übersetzte physische Gastadresse nicht in der VMM-Seitentabelle vorhanden ist, wirft die Host-Dienstvorrichtung 102 einen Speicherseitenfehler in Block 508 auf und das Verfahren 500 fährt mit Block 510 fort. In Block 510 ruft die Host-Dienstvorrichtung 102 einen Speicherseitenfehlerbeheber auf, der eine oder mehr Fehlerbehebungsprozeduren durchführen kann.
  • Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass keine Speicherseitenfehler vorliegen, fährt das Verfahren 500 mit Block 512 fort. In Block 512 bestimmt die Host-Dienstvorrichtung 102, ob die Abbildung der virtuellen linearen Adresse zur physischen Host-Adressenübersetzung gesperrt ist. Dazu kann die Host-Dienstvorrichtung 102 in Block 514 die VMCS-Kennung der anfragenden virtuellen Maschine 204 mit der (den) gesicherten Übersetzungsabbildung(en) vergleichen, die im gesicherten Speicher 208 gespeichert ist (sind) (z. B. VMCS → LA → GPA → HPA ) um zu bestimmen, ob die virtuelle lineare Adresse gegenwärtig im gesicherten Speicher 208 gespeichert ist. Falls die Host-Dienstvorrichtung 102 in Block 516 bestimmt, dass die Übersetzungsabbildung nicht gesperrt ist, springt das Verfahren 500 zu Block 524, in dem die Host-Dienstvorrichtung 102 den angeforderten Speicherzugriff unter Verwendung der übersetzten physischen Host-Adresse durchführt.
  • Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass die Übersetzungsabbildung gesperrt ist, fährt das Verfahren 500 mit Block 518 fort. In Block 518 verifiziert die Host-Dienstvorrichtung 102 die Übersetzung der virtuellen linearen Adresse zur physischen Host-Adresse. Dazu vergleicht die Host-Dienstvorrichtung 102 in Block 520 die Seitentabellenübersetzung der virtuellen linearen Adresse zur physischen Host-Adresse mit der gesperrten VMCS → LA → GPA → HPA , die im gesicherten Speicher 208 gespeichert ist, basierend auf der VMCS-Identifizierung der anfragenden virtuellen Maschine 204. In einigen Ausführungsformen kann die Host-Dienstvorrichtung 102 die übersetzte physische Host-Adresse, die unter Verwendung der VM- und VMM-Seitentabellen erhalten wird, mit einer physischen Host-Adresse vergleichen, die unter Verwendung der VMCS → LA → GPA → HPA übersetzt wird. Alternativ oder zusätzlich können in einigen Ausführungsformen die gesamten VM- und VMM-Seitentabellen mit der VMCS → LA → GPA → HPA verglichen werden, um die Übersetzung zu verifizieren.
  • In Block 522 bestimmt die Host-Dienstvorrichtung 102, ob die VMCS → LA → GPA → HPA mit den VM- und VMM-Seitentabellen übereinstimmt. Zum Beispiel kann die Host-Dienstvorrichtung 102 bestimmen, ob die übersetzte physische Host-Adresse dieselbe wie die physische Host-Adresse ist, die unter Verwendung der VMCS → LA → GPA → HPA übersetzt wurde. Falls die Host-Dienstvorrichtung 102 bestimmt, dass die übersetzte physische Host-Adresse dieselbe wie die physische Host-Adresse ist, die unter Verwendung der VMCS → LA → GPA → HPA übersetzt wurde, fährt das Verfahren 500 mit Block 524 fort, in dem die Host-Dienstvorrichtung 102 den angeforderten Speicherzugriff unter Verwendung der übersetzten physischen Host-Adresse durchführt.
  • Alternativ oder zusätzlich kann Host-Dienstvorrichtung 102 in einigen Ausführungsformen, wie oben erwähnt, bestimmen, ob die gesamten VM- und VMM-Seitentabellen mit der VMCS → LA → GPA → HPA übereinstimmen, die im gesicherten Speicher 208 gespeichert ist. Falls die Host-Dienstvorrichtung 102 bestimmt, das die gesamten VM- und VMM-Seitentabellen dieselben wie die VMCS → LA → GPA → HPA sind, fährt das Verfahren 500 mit Block 524 fort, in dem die Host-Dienstvorrichtung 102 den angeforderten Speicherzugriff unter Verwendung der übersetzten physischen Host-Adresse durchführt.
  • Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass sich die übersetzte physische Host-Adresse von der physischen Host-Adresse unterscheidet, die unter Verwendung der VMCS → LA → GPA → HPA übersetzt wurde, oder dass sich die VMCS → LA → GPA → HPA von den VM- und VMM-Seitentabellen unterscheidet, fährt das Verfahren 500 mit Block 526 fort, um einen Sicherheitsfehler zu generieren. Dabei kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen in Block 528 eine Sicherheitsfunktion ausführen. Zum Beispiel kann die Host-Dienstvorrichtung 102 einen Benutzer benachrichtigen, dass die Host-Dienstvorrichtung 102 manipuliert wurde.
  • Unter Bezugnahme nun auf 6 und 7 kann die Host-Dienstvorrichtung 102 in Verwendung ein alternatives Verfahren 600 für einen Zugriff auf den Speicher der Host-Dienstvorrichtung als Reaktion auf einen Empfang einer Speicherzugriffsanfrage von einer virtuellen Maschine 204 durchführen. Das Verfahren 600 kann zum Beispiel nach Initialisieren der sicheren Host-Plattform der Host-Dienstvorrichtung 102 durchgeführt werden, wie oben in Verbindung mit 4 beschrieben. Das Verfahren 600 beginnt mit Block 602, in dem die Host-Dienstvorrichtung 102 bestimmt, ob ein Speicherzugriff empfangen wurde. Falls nicht, kehrt das Verfahren 600 zu Block 602 zurück, um mit dem Warten auf eine Speicherzugriffsanfrage von einer virtuellen Maschine 204 fortzufahren. Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass eine Speicherzugriffsanfrage empfangen wurde, fährt das Verfahren 600 mit Block 604 fort. In Block 604 empfängt die Host-Dienstvorrichtung 102 eine virtuelle lineare Adresse (LA), eine Zugriffsart und eine VMCS ID (d. h. die VM-Kennung), die mit dem Speicherzugriff von der anfragenden virtuellen Maschine 204 verknüpft ist.
  • In Block 606 übersetzt die Host-Dienstvorrichtung 102 die virtuelle lineare Adresse der Speicherzugriffsanfrage zu einer entsprechenden physischen Gastadresse unter Verwendung der VM-Seitentabelle, die mit der anfragenden virtuellen Maschine 204 verknüpft ist. Während des Übersetzungsprozesses bestimmt die Host-Dienstvorrichtung 102, ob die angeforderte virtuelle lineare Adresse in die VM-Seitentabelle abgebildet ist. Falls die Host-Dienstvorrichtung 102 bestimmt, dass die virtuelle lineare Adresse der Speicherzugriffsanfrage nicht in die VM-Seitentabelle abgebildet ist, wirft die Host-Dienstvorrichtung 102 einen Speicherseitenfehler in Block 608 auf und das Verfahren 600 fährt mit Block 610 fort. In Block 610 ruft die Host-Dienstvorrichtung 102 einen Speicherseitenfehlerbeheber auf, um den Seitenfehler zu behandeln, und das Verfahren 600 kehrt zu Block 602 zurück um eine folgende Speicherzugriffsanfrage zu überwachen.
  • Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass kein Speicherseitenfehler vorliegt, fährt das Verfahren 600 mit Block 612 fort. In Block 612 bestimmt die Host-Dienstvorrichtung 102, ob die Übersetzung der virtuellen linearen Adresse zur physischen Gastadresse gesperrt ist. Dazu kann die Host-Dienstvorrichtung 102 in Block 614 die lineare Adresse und/oder die VMCS-Kennung der anfragenden virtuellen Maschine 204 mit der gesperrten LA → GPA vergleichen, die im gesicherten Speicher 208 gespeichert ist, um zu bestimmen, ob die virtuelle lineare Adresse gegenwärtig im gesicherten Speicher 208 gespeichert ist. Falls die Host-Dienstvorrichtung 102 in Block 616 bestimmt, dass die Übersetzung nicht gesperrt ist, springt das Verfahren 600 zu Block 628 von 7, um die übersetzte physische Gastadresse weiter zu einer physischen Host-Adresse zu übersetzen, wie in der Folge näher beschrieben ist.
  • Falls jedoch die Host-Dienstvorrichtung 102 bestimmt, dass die Übersetzung gesperrte ist, fährt das Verfahren 600 mit Block 618 fort. In Block 618 verifiziert die Host-Dienstvorrichtung 102 die Übersetzung der virtuellen linearen Adresse zu physischen Gastadresse. Dazu vergleicht die Host-Dienstvorrichtung 102 in Block 620 die VM-Seitentabellenübersetzung der virtuellen linearen Adresse zur physischen Gastadresse mit der gesperrten LA → GPA basierend auf der VMCS der anfragenden virtuellen Maschine 204 oder auf der virtuellen linearen Adresse selbst. Zum Beispiel kann die Host-Dienstvorrichtung 102 die übersetzte physische Gastadresse mit einer physischen Gastadresse vergleichen, die unter Verwendung der gesicherten Übersetzungsabbildung von virtuellen linearen Adressen zu physischen Gastadressen übersetzt wurde (d. h. die LA → GPA die im gesicherten Speicher 208 gespeichert ist). Zusätzlich oder alternativ kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen die gesamte VM-Seitentabelle mit der LA → GPA vergleichen, die im gesicherten Speicher 208 gespeichert ist, um die Übersetzung zu verifizieren.
  • Falls die Host-Dienstvorrichtung 102 in Block 622 bestimmt, dass sich die gesperrte LA → GPA von der VM-Seitentabelle unterscheidet, fährt das Verfahren 600 mit Block 624 fort, um einen Sicherheitsfehler zu generieren. In einigen Ausführungsformen kann die Host-Dienstvorrichtung 102 in Block 626, in Antwort auf eine Bestimmung, dass die Verifizierung fehlgeschlagen ist, eine Sicherheitsfunktion ausführen. Zum Beispiel kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen einem Benutzer melden, dass die Host-Dienstvorrichtung 102 manipuliert wurde.
  • Falls die Host-Dienstvorrichtung 102 jedoch bestimmt, dass die gesperrte LA → GPA mit der VM-Seitentabelle übereinstimmt, springt das Verfahren 600 zu Block 628 von 7. In Block 628 übersetzt die Host-Dienstvorrichtung 102 die übersetzte physische Gastadresse zu einer physischen Host-Adresse unter Verwendung der VMM-Seitentabelle. Während des Übersetzungsprozesses bestimmt die Host-Dienstvorrichtung 102, ob die übersetzte physische Gastadresse in die VMM-Seitentabelle abgebildet ist. Falls die Host-Dienstvorrichtung 102 bestimmt, dass die übersetzte physische Gastadresse nicht in die VMM-Seitentabelle abgebildet ist, wirft die Host-Dienstvorrichtung 102 einen Speicherseitenfehler in Block 630 auf und das Verfahren 600 fährt mit Block 632 fort. In Block 632 ruft die Host-Dienstvorrichtung 102 einen Speicherseitenfehlerbeheber auf, um den Fehler zu behandeln, und das Verfahren 600 kehrt dann zu Block 602 zurück, um eine folgende Speicherzugriffsanfrage zu überwachen.
  • Falls die Host-Dienstvorrichtung 102 jedoch bestimmt, dass kein Speicherseitenfehler vorliegt, fährt das Verfahren 600 mit Block 634 fort. In Block 634 bestimmt die Host-Dienstvorrichtung 102, ob die Übersetzung der übersetzten physischen Gastadresse zur physischen Host-Adresse gesperrt ist. Dazu vergleicht die Host-Dienstvorrichtung 102 in Block 636 die VMCS-Kennung der anfragenden virtuellen Maschine 204 mit der gesperrten VMCS → GPA → HPA , die im gesicherten Speicher 208 gespeichert ist, um zu bestimmen, ob die übersetzte physische Gastadresse gegenwärtig im gesicherten Speicher 208 gespeichert ist.
  • Falls die Host-Dienstvorrichtung 102 in Block 638 bestimmt, dass die Übersetzung nicht gesperrt ist, springt das Verfahren 600 zu Block 646, um den angeforderten Speicherzugriff unter Verwendung der übersetzten physischen Host-Adresse durchzuführen. Das Verfahren 600 kehrt dann zu Block 602 zurück, um eine folgende Speicherzugriffsanfrage zu überwachen.
  • Falls die Host-Dienstvorrichtung 102 jedoch bestimmt, dass die Übersetzung gesperrt ist, fährt das Verfahren 600 mit Block 640 fort. In Block 640 verifiziert die Host-Dienstvorrichtung 102 die Übersetzung der übersetzten physischen Gastadresse zur physischen Host-Adresse. Dazu vergleicht die Host-Dienstvorrichtung 102 in Block 642 die VMM-Seitentabellenübersetzung der physischen Gastadresse zur physischen Host-Adresse mit der gesperrten VMCS → GPA → HPA basierend auf der VMCS der anfragenden virtuellen Maschine 204. Zum Beispiel kann die Host-Dienstvorrichtung 102 die übersetzte physische Host-Adresse mit der physischen Host-Adresse vergleichen, die unter Verwendung der gesicherten Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen übersetzt wurde (d. h. die VMCS → GPA → HPA die im gesicherten Speicher 208 gespeichert ist). Zusätzlich oder alternativ kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen die gesamte VMM-Seitentabelle mit der VMCS → GPA → HPA vergleichen, die im gesicherten Speicher 208 gespeichert ist, um die Übersetzung zu verifizieren.
  • Falls die Host-Dienstvorrichtung 102 in Block 644 bestimmt, dass sich die gesperrte VMCS → GPA → HPA von der VMM-Seitentabelle unterscheidet, fährt das Verfahren 600 mit Block 648 fort, um einen Sicherheitsfehler zu generieren. Dazu kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen in Block 650 eine Sicherheitsfunktion ausführen. Zum Beispiel kann die Host-Dienstvorrichtung 102 in einigen Ausführungsformen einen Benutzer benachrichtigen, dass die Host-Dienstvorrichtung 102 manipuliert wurde.
  • Falls die Host-Dienstvorrichtung 102 jedoch bestimmt, dass die gesperrte VMCS → GPA → HPA mit der VMM-Seitentabelle übereinstimmt, springt das Verfahren 600 zu Block 646, um den angeforderten Speicherzugriff unter Verwendung der übersetzten physischen Host-Adresse durchzuführen. Das Verfahren 600 kehrt dann zu Block 602 zurück, um eine folgende Speicherzugriffsanfrage zu überwachen.
  • Unter Bezugnahme nun auf 8 kann die Host-Dienstvorrichtung 102 in Verwendung ein Verfahren 800 zum Entsperren einer oder mehrerer gesicherten Übersetzungsabbildungen, die im sicheren Speicher 208 sind, in Antwort auf einen Empfang einer Entsperrungsanfrage von einer virtuellen Maschine 204 durchführen. Das Verfahren 800 kann zum Beispiel nach dem Initialisieren der sicheren Host-Plattform der Host-Dienstvorrichtung 102 ausgeführt werden, wie oben in Verbindung mit 4 beschrieben. Das Verfahren 800 beginnt mit Block 802, in dem die Host-Dienstvorrichtung 102 bestimmt, ob eine oder mehr gesicherte Übersetzungsabbildungen zu entsperren sind, die im gesicherten Speicher 208 gespeichert sind. Falls die Host-Dienstvorrichtung 102 bestimmt, dass keine Entsperrungsanfrage empfangen wurde, kehrt das Verfahren 800 zu Block 802 zurück, um mit dem Warten auf eine Entsperrungsanfrage von einer virtuellen Maschine 204 fortzufahren. Falls die Host-Dienstvorrichtung 102 jedoch bestimmt, dass eine Entsperrungsanfrage empfangen wurde, fährt das Verfahren 800 mit Block 804 fort. In Block 804 empfängt die Host-Dienstvorrichtung 102 als Reaktion auf einen Empfang der Entsperrungsanfrage einen Bereich virtueller linearer Adressen, die zu entsperren sind, von der anfragenden virtuellen Maschine 204.
  • In Block 806 gibt die Host-Dienstvorrichtung 102 die LA → GPA → HPA Adressenhierarchie durch Entfernen jeder gesicherten Übersetzungsabbildung, die mit der anfragenden virtuellen Maschine 204 verknüpft ist, aus dem gesicherten Speicher 208 frei. Dazu bestimmt die Host-Dienstvorrichtung 102 in Block 808 die LA → GPA → HPA Adressenhierarchie basierend auf dem Bereich virtueller linearer Adresse, die zu entsperren sind, die mit der anfragenden virtuellen Maschine 204 verknüpft ist. In Block 810 entfernt die Host-Dienstvorrichtung 102 die LA → GPA → HPA Adressenhierarchie aus dem gesicherten Speicher 208. Zum Beispiel entfernt die Host-Dienstvorrichtung 102 die gesicherte Übersetzungsabbildung der virtuellen linearen Adressen auf physische Host-Adressen, die dem Bereich virtueller linearer Adressen entspricht, aus dem gesicherten Speicher 208.
  • BEISPIELE
  • Illustrative Beispiele der hier offenbarten Technologien sind in der Folge angeführt. Eine Ausführungsform der Technologien kann eines oder mehr und eine Kombination der oben beschriebenen Beispiele enthalten.
  • Beispiel 1 enthält eine Rechenvorrichtung zum Schutz eines virtuellen Maschinenspeichers der Rechenvorrichtung, wobei die Rechenvorrichtung einen gesicherten Speicher umfasst; und einen Speichermanager zum (i) Empfangen, von einer virtuellen Maschine, die auf der Rechenvorrichtung instanziiert ist, durch einen virtuellen Maschinenmonitor der Rechenvorrichtung, einer Speicherzugriffsanfrage die eine virtuelle lineare Adresse enthält, (ii) Durchführen einer Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Rechenvorrichtung unter Verwendung einer Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und einer Seitentabelle, die mit dem virtuellen Maschinenmonitor verknüpft ist, (iii) Bestimmen, ob eine gesicherte Übersetzungsabbildung der virtuellen linearen Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gesperrt ist, wobei die gesicherte Übersetzungsabbildung im gesicherten Speicher gespeichert ist, (iv) Verifizieren, als Antwort auf eine Bestimmung, dass die gesicherte Übersetzungsabbildung gesperrt ist, der Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde, und (v) Durchführen der Speicherzugriffsanfrage unter Verwendung der übersetzten physischen Host-Adresse in Antwort auf eine Verifizierung der Übersetzung.
  • Beispiel 2 enthält den Gegenstand von Beispiel 1, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen enthält, und wobei die Durchführung der Übersetzung eine Durchführung einer ersten Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse unter Verwendung der Seitentabelle umfasst, die mit der anfragenden virtuellen Maschine verknüpft ist, die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, die Bestimmung umfasst, ob die gesicherte Übersetzungsabbildung der virtuellen linearen Adressen auf physische Gastadressen gesperrt ist; und die Verifizierung der Übersetzung die Verifizierung der ersten Übersetzung basierend auf einem Vergleich der übersetzten physischen Gastadresse zu einer physischen Gastadresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 3 enthält den Gegenstand eines der Beispiele 1 und 2, und wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 4 enthält den Gegenstand eines der Beispiele 1-3, und wobei die Generierung des Sicherheitsfehlers eine Ausführung einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 5 enthält den Gegenstand eines der Beispiele 1-4, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen enthält, und wobei die Durchführung der Übersetzung, in Antwort auf die Verifizierung der ersten Übersetzung, eine zweite Übersetzung der übersetzten physischen Gastadresse zur übersetzten physischen Host-Adresse unter Verwendung der Seitentabelle umfasst, die mit dem virtuellen Maschinenmonitor verknüpft ist, die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, die Bestimmung umfasst, ob die gesicherte Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen gesperrt ist; und die Verifizierung der Übersetzung die Verifizierung der zweiten Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 6 enthält den Gegenstand eines der Beispiele 1-5, und wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 7 enthält den Gegenstand eines der Beispiele 1-6, und wobei die Generierung des Sicherheitsfehlers eine Ausführung einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 8 enthält den Gegenstand eines der Beispiele 1-7, und wobei die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, die Bestimmung umfasst, ob eine Übersetzung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gegenwärtig im gesicherten Speicher gespeichert ist.
  • Beispiel 9 enthält den Gegenstand eines der Beispiele 1-8, und wobei die Verifizierung der Übersetzung die Übersetzung der virtuellen linearen Adresse zu einer physischen Host-Adresse unter Verwendung der gesicherten Übersetzungsabbildung basierend auf einer Kennung der virtuellen Maschine umfasst.
  • Beispiel 10 enthält den Gegenstand eines der Beispiele 1-9, und wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 11 enthält den Gegenstand eines der Beispiele 1-10, und wobei die Generierung des Sicherheitsfehlers eine Ausführung einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 12 enthält den Gegenstand eines der Beispiele 1-11, und wobei der virtuelle Maschinenmonitor ferner einen physischen Gastadressenbereich der virtuellen Maschine zuordnet und eine erste Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine generiert; die virtuelle Maschine ferner eine zweite Abbildung virtueller linearer Adressen auf die physischen Gastadressen generiert; und der Speichermanager ferner die erste Abbildung und zweite Abbildung aggregiert, um eine dritte Abbildung der virtuellen linearen Adresse auf physische Gastadressen auf eine physische Host-Adresse zu bilden und die dritte Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung zu speichern.
  • Beispiel 13 enthält den Gegenstand eines der Beispiele 1-12, und wobei die dritte Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 14 enthält den Gegenstand eines der Beispiele 1-13, und wobei der virtuelle Maschinenmonitor ferner einen physischen Gastadressenbereich der virtuellen Maschine zuordnet und eine erste Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine generiert; die virtuelle Maschine ferner eine zweite Abbildung virtueller linearer Adressen auf die physischen Gastadressen generiert; und der Speichermanager ferner die erste und zweite Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung speichert.
  • Beispiel 15 enthält den Gegenstand eines der Beispiele 1-14, und wobei die erste Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 16 enthält den Gegenstand eines der Beispiele 1-15, und wobei der Speichermanager ferner von der virtuellen Maschine einen Bereich linearer Adressen empfängt, die zu entsperren sind; und eine Abbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, aus dem gesicherten Speicher entfernt.
  • Beispiel 17 enthält den Gegenstand eines der Beispiele 1-16, und wobei die Entfernung der Abbildung virtueller linearer Adressen auf physische Host-Adressen die Bestimmung einer Adressenhierarchie, die Abbildungen einer linearen Adresse auf eine physische Gastadresse auf eine physische Host-Adresse angibt, basierend auf dem Bereich linearer Adressen, die zu entsperren sind, umfasst und die Entfernung der Abbildung virtueller linearer Adressen auf physische Host-Adressen die Entfernung der Adressenhierarchie aus dem gesicherten Speicher umfasst.
  • Beispiel 18 enthält ein Verfahren zum Schutz eines virtuellen Maschinenspeichers einer Rechenvorrichtung, das Verfahren umfassend ein Empfangen, von einer virtuellen Maschine, die auf der Rechenvorrichtung instanziiert ist, einer Speicherzugriffsanfrage die eine virtuelle lineare Adresse enthält; Durchführen, durch die Rechenvorrichtung, einer Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Rechenvorrichtung unter Verwendung einer Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und einer Seitentabelle, die mit einem virtuellen Maschinenmonitor verknüpft ist, der auf der Rechenvorrichtung eingerichtet ist; Bestimmen, durch die Rechenvorrichtung, ob eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gesperrt ist, wobei die gesicherte Übersetzungsabbildung in einem gesicherten Speicher der Rechenvorrichtung gespeichert ist; Verifizieren, durch die Rechenvorrichtung und in Antwort auf eine Bestimmung, dass die gesicherte Übersetzungsabbildung gesperrt ist, der Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde; und Durchführen, durch die Rechenvorrichtung, der Speicherzugriffsanfrage unter Verwendung der übersetzten physischen Host-Adresse in Antwort auf eine Verifizierung der Übersetzung.
  • Beispiel 19 enthält den Gegenstand von Beispiel 18, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen enthält, und wobei das Durchführen der Übersetzung ein Durchführen einer ersten Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse unter Verwendung der Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, umfasst, ein Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob die gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen gesperrt ist; und das Verifizieren der Übersetzung ein Verifizieren der ersten Übersetzung basierend auf einem Vergleich der übersetzten physischen Gastadresse mit einer physischen Gastadresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 20 enthält den Gegenstand eines der Beispiele 18 und 19, und ferner enthaltend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 21 enthält den Gegenstand eines der Beispiele 18-20, und wobei das Generieren des Sicherheitsfehlers ein Durchführen, durch die Rechenvorrichtung, einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 22 enthält den Gegenstand eines der Beispiele 18-21, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen enthält, und wobei das Durchführen der Übersetzung ein Durchführen, in Antwort auf die Verifizierung der ersten Übersetzung, einer zweiten Übersetzung der übersetzten physischen Gastadresse zur übersetzten physischen Host-Adresse unter Verwendung der Seitentabelle, die mit dem virtuellen Maschinenmonitor verknüpft ist, umfasst, ein Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob die gesicherte Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen gesperrt ist; und ein Verifizieren der Übersetzung ein Verifizieren der zweiten Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 23 enthält den Gegenstand eines der Beispiele 18-22, und ferner enthaltend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 24 enthält den Gegenstand eines der Beispiele 18-23, und wobei das Generieren des Sicherheitsfehlers ein Durchführen, durch die Rechenvorrichtung, einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 25 enthält den Gegenstand eines der Beispiele 18-24, und wobei das Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob eine Übersetzung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gegenwärtig im gesicherten Speicher gespeichert ist.
  • Beispiel 26 enthält den Gegenstand eines der Beispiele 18-25, und wobei das Verifizieren der Übersetzung ein Übersetzen der virtuellen linearen Adresse zu einer physischen Host-Adresse unter Verwendung der gesicherten Übersetzungsabbildung basierend auf einer Kennung der virtuellen Maschine umfasst.
  • Beispiel 27 enthält den Gegenstand eines der Beispiele 18-26, und ferner enthaltend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 28 enthält den Gegenstand eines der Beispiele 18-27, und wobei das Generieren des Sicherheitsfehlers ein Durchführen, durch die Rechenvorrichtung, einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 29 enthält den Gegenstand eines der Beispiele 18-28, und ferner enthaltend ein Zuordnen, durch den virtuellen Maschinenmonitor, eines physischen Gastadressenbereichs zur virtuellen Maschine; ein Generieren, durch den virtuellen Maschinenmonitor, einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; ein Generieren, durch die virtuelle Maschine, einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; ein Aggregieren, durch die Rechenvorrichtung, der ersten Abbildung und zweiten Abbildung zur Bildung einer dritten Abbildung der virtuellen linearen Adresse auf physische Gastadressen auf eine physische Host-Adresse; und Speichern, durch die Rechenvorrichtung, der dritten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  • Beispiel 30 enthält den Gegenstand eines der Beispiele 18-29, und wobei die dritte Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 31 enthält den Gegenstand eines der Beispiele 18-30, und ferner enthaltend ein Zuordnen, durch den virtuellen Maschinenmonitor, eines physischen Gastadressenbereichs zur virtuellen Maschine; ein Generieren, durch den virtuellen Maschinenmonitor, einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; ein Generieren, durch die virtuelle Maschine, einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; und ein Speichern, durch die Rechenvorrichtung, der ersten und zweiten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  • Beispiel 32 enthält den Gegenstand eines der Beispiele 18-31, und wobei die erste Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 33 enthält den Gegenstand eines der Beispiele 18-32, und ferner enthaltend ein Empfangen, von der virtuellen Maschine, eines Bereichs linearer Adressen, die zu entsperren sind; und ein Entfernen einer Abbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, aus dem gesicherten Speicher entfernt.
  • Beispiel 34 enthält den Gegenstand eines der Beispiele 18-33, und wobei das Entfernen der Abbildung virtueller linearer Adressen auf physische Host-Adressen ein Bestimmen einer Adressenhierarchie, die Abbildungen einer linearen Adresse auf eine physische Gastadresse auf eine physische Host-Adresse anzeigt, basierend auf dem Bereich linearer Adressen, die zu entsperren sind, umfasst, wobei das Entfernen der Abbildung virtueller linearer Adressen auf physische Host-Adressen ein Entfernen der Adressenhierarchie aus dem gesicherten Speicher umfasst.
  • Beispiel 35 enthält ein oder mehr computerlesbare Medien, die mehrere darauf gespeicherte Anweisungen umfassen, die, wenn sie ausgeführt werden, eine Rechenvorrichtung veranlassen, das Verfahren eines der Beispiele 18-34 durchzuführen.
  • Beispiel 36 enthält eine Rechenvorrichtung zum Schutz eines virtuellen Maschinenspeichers der Rechenvorrichtung, wobei die Rechenvorrichtung Mittel zum Empfangen, von einer virtuellen Maschine, die auf der Rechenvorrichtung instanziiert ist, einer Speicherzugriffsanfrage, die eine virtuelle lineare Adresse enthält; Mittel zum Durchführen einer Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Rechenvorrichtung unter Verwendung einer Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und einer Seitentabelle, die mit einem virtuellen Maschinenmonitor verknüpft ist, der auf der Rechenvorrichtung eingerichtet ist; Mittel zum Bestimmen, ob eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gesperrt ist, wobei die gesicherte Übersetzungsabbildung in einem gesicherten Speicher der Rechenvorrichtung gespeichert ist; Mittel zum Verifizieren, in Antwort auf eine Bestimmung, dass die gesicherte Übersetzungsabbildung gesperrt ist, der Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde; und Mittel zum Durchführen der Speicherzugriffsanfrage unter Verwendung der übersetzten physischen Host-Adresse in Antwort auf eine Verifizierung der Übersetzung umfasst.
  • Beispiel 37 enthält den Gegenstand von Beispiel 36, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen enthält, und wobei das Mittel zum Durchführen der Übersetzung ein Mittel zum Durchführen einer ersten Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse unter Verwendung der Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, umfasst, das Mittel zum Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Mittel zum Bestimmen, ob die gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen gesperrt ist, umfasst; und das Mittel zum Verifizieren der Übersetzung ein Mittel zum Verifizieren der ersten Übersetzung basierend auf einem Vergleich der übersetzten physischen Gastadresse zu einer physischen Gastadresse, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde, umfasst.
  • Beispiel 38 enthält den Gegenstand eines der Beispiele 36 und 37, und ferner enthaltend ein Mittel zum Generieren eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 39 enthält den Gegenstand eines der Beispiele 36-38, und wobei das Mittel zum Generieren des Sicherheitsfehlers ein Mittel zum Durchführen einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  • Beispiel 40 enthält den Gegenstand eines der Beispiele 36-39, und wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen enthält, und wobei das Mittel zum Durchführen der Übersetzung ein Mittel zum Durchführen, in Antwort auf die Verifizierung der ersten Übersetzung, einer zweiten Übersetzung der übersetzten physischen Gastadresse zur übersetzten physischen Host-Adresse unter Verwendung der Seitentabelle umfasst, die mit dem virtuellen Maschinenmonitor verknüpft ist, das Mittel zum Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Mittel zum Bestimmen umfasst, ob die gesicherte Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen gesperrt ist; und das Mittel zum Verifizieren der Übersetzung ein Mittel zum Verifizieren der zweiten Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde, umfasst.
  • Beispiel 41 enthält den Gegenstand eines der Beispiele 36-40, und ferner enthaltend ein Mittel zum Generieren eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 42 enthält den Gegenstand eines der Beispiele 36-41, und wobei das Mittel zum Generieren des Sicherheitsfehlers ein Mittel zum Durchführen einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  • Beispiel 43 enthält den Gegenstand eines der Beispiele 36-42, und wobei das Mittel zum Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Mittel zum Bestimmen umfasst, ob eine Übersetzung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gegenwärtig im gesicherten Speicher gespeichert ist.
  • Beispiel 44 enthält den Gegenstand eines der Beispiele 36-43, und wobei das Mittel zum Verifizieren der Übersetzung ein Übersetzen der virtuellen linearen Adresse zu einer physischen Host-Adresse unter Verwendung der gesicherten Übersetzungsabbildung basierend auf einer Kennung der virtuellen Maschine umfasst.
  • Beispiel 45 enthält den Gegenstand eines der Beispiele 36-44, und ferner enthaltend ein Mittel zum Generieren eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 46 enthält den Gegenstand eines der Beispiele 36-45, und wobei das Mittel zum Generieren des Sicherheitsfehlers ein Mittel zum Durchführen einer Sicherheitsfunktion in Antwort auf die Bestimmung umfasst, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  • Beispiel 47 enthält den Gegenstand eines der Beispiele 36-46, und ferner enthaltend ein Mittel zum Zuordnen eines physischen Gastadressenbereichs zur virtuellen Maschine; ein Mittel zum Generieren einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; ein Mittel zum Generieren einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; ein Mittel zum Aggregieren der ersten Abbildung und zweiten Abbildung zur Bildung einer dritten Abbildung der virtuellen linearen Adresse auf physische Gastadressen auf eine physische Host-Adresse; und ein Mittel zum Speichern der dritten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  • Beispiel 48 enthält den Gegenstand eines der Beispiele 36-47, und wobei die dritte Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 49 enthält den Gegenstand eines der Beispiele 36-48, und ferner enthaltend ein Mittel zum Zuordnen eines physischen Gastadressenbereichs zur virtuellen Maschine; ein Mittel zum Generieren einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; ein Mittel zum Generieren einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; und ein Mittel zum Speichern der ersten und zweiten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  • Beispiel 50 enthält den Gegenstand eines der Beispiele 36-49, und wobei die erste Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  • Beispiel 51 enthält den Gegenstand eines der Beispiele 36-50, und ferner enthaltend ein Mittel zum Empfangen, von der virtuellen Maschine, eines Bereichs linearer Adressen, die zu entsperren sind; und ein Mittel zum Entfernen einer Abbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, aus dem gesicherten Speicher.
  • Beispiel 52 enthält den Gegenstand eines der Beispiele 36-51, und wobei das Mittel zum Entfernen der Abbildung virtueller linearer Adressen auf physische Host-Adressen ein Mittel zum Bestimmen einer Adressenhierarchie, die Abbildungen einer linearen Adresse auf eine physische Gastadresse auf eine physische Host-Adresse anzeigt, basierend auf dem Bereich linearer Adressen, die zu entsperren sind, wobei das Entfernen der Abbildung virtueller linearer Adressen auf physische Host-Adressen ein Entfernen der Adressenhierarchie aus dem gesicherten Speicher umfasst.

Claims (25)

  1. Rechenvorrichtung zum Schutz eines virtuellen Maschinenspeichers der Rechenvorrichtung, die Rechenvorrichtung umfassend: einen gesicherten Speicher; und einen Speichermanager zum (i) Empfangen, von einer virtuellen Maschine, die auf der Rechenvorrichtung instanziiert ist, durch einen virtuellen Maschinenmonitor der Rechenvorrichtung, einer Speicherzugriffsanfrage die eine virtuelle lineare Adresse enthält, (ii) Durchführen einer Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Rechenvorrichtung unter Verwendung einer Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und einer Seitentabelle, die mit dem virtuellen Maschinenmonitor verknüpft ist, (iii) Bestimmen, ob eine gesicherte Übersetzungsabbildung der virtuellen linearen Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gesperrt ist, wobei die gesicherte Übersetzungsabbildung im gesicherten Speicher gespeichert ist, (iv) Verifizieren, als Antwort auf eine Bestimmung, dass die gesicherte Übersetzungsabbildung gesperrt ist, der Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde, und (v) Durchführen der Speicherzugriffsanfrage unter Verwendung der übersetzten physischen Host-Adresse in Antwort auf eine Verifizierung der Übersetzung.
  2. Rechenvorrichtung nach Anspruch 1, wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen enthält, und wobei: die Durchführung der Übersetzung eine Durchführung einer ersten Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse unter Verwendung der Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, umfasst, die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, eine Bestimmung umfasst, ob die gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen gesperrt ist; und die Verifizierung der Übersetzung eine Verifizierung der ersten Übersetzung basierend auf einem Vergleich der übersetzten physischen Gastadresse zu einer physischen Gastadresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  3. Rechenvorrichtung nach Anspruch 2, wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  4. Rechenvorrichtung nach Anspruch 2, wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen enthält, und wobei: die Durchführung der Übersetzung eine Durchführung, in Antwort auf die Verifizierung der ersten Übersetzung, einer zweiten Übersetzung der übersetzten physischen Gastadresse zur übersetzten physischen Host-Adresse unter Verwendung der Seitentabelle umfasst, die mit dem virtuellen Maschinenmonitor verknüpft ist, die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, eine Bestimmung umfasst, ob die gesicherte Übersetzungsabbildung der physischen Gastadressen auf physische Host-Adressen gesperrt ist; und die Verifizierung der Übersetzung eine Verifizierung der zweiten Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  5. Rechenvorrichtung nach Anspruch 4, wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  6. Rechenvorrichtung nach Anspruch 1, wobei die Bestimmung, ob die gesicherte Übersetzungsabbildung gesperrt ist, eine Bestimmung umfasst, ob eine Übersetzung virtueller linearer Adressen zu physischen Host-Adressen, die der virtuellen linearen Adresse entspricht, gegenwärtig im gesicherten Speicher gespeichert ist.
  7. Rechenvorrichtung nach Anspruch 1, wobei die Verifizierung der Übersetzung die Übersetzung der virtuellen linearen Adresse zu einer physischen Host-Adresse unter Verwendung der gesicherten Übersetzungsabbildung basierend auf einer Kennung der virtuellen Maschine umfasst.
  8. Rechenvorrichtung nach Anspruch 1, wobei der Speichermanager ferner einen Sicherheitsfehler als Antwort auf eine Bestimmung generiert, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  9. Rechenvorrichtung nach Anspruch 1, wobei: der virtuelle Maschinenmonitor ferner einen physischen Gastadressenbereich zur virtuellen Maschine zuordnet und eine erste Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine generiert; die virtuelle Maschine ferner eine zweite Abbildung virtueller linearer Adressen auf die physischen Gastadressen generiert; und der Speichermanager ferner die erste Abbildung und zweite Abbildung zur Bildung einer dritten Abbildung der virtuellen linearen Adresse auf physische Gastadressen auf eine physische Host-Adresse generiert und die dritte Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung speichert.
  10. Rechenvorrichtung nach Anspruch 9, wobei die dritte Abbildung basierend auf einer Kennung jeder virtuellen Maschine indiziert ist, die auf der Rechenvorrichtung instanziiert ist.
  11. Rechenvorrichtung nach Anspruch 1, wobei: der virtuelle Maschinenmonitor ferner einen physischen Gastadressenbereich zur virtuellen Maschine zuordnet und eine erste Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine generiert; die virtuelle Maschine ferner eine zweite Abbildung virtueller linearer Adressen auf die physischen Gastadressen generiert; und der Speichermanager ferner die erste und zweite Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung speichert.
  12. Rechenvorrichtung nach Anspruch 1, wobei der Speichermanager ferner dient zum: Empfangen, von der virtuellen Maschine, eines Bereichs linearer Adressen, die zu entsperren sind; und Entfernen einer Abbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, aus dem gesicherten Speicher.
  13. Verfahren zum Schutz eines virtuellen Maschinenspeichers einer Rechenvorrichtung, das Verfahren umfassend: Empfangen, von einer virtuellen Maschine, die auf der Rechenvorrichtung instanziiert ist, einer Speicherzugriffsanfrage die eine virtuelle lineare Adresse enthält; Durchführen, durch die Rechenvorrichtung, einer Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Host-Adresse der Rechenvorrichtung unter Verwendung einer Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, und einer Seitentabelle, die mit einem virtuellen Maschinenmonitor verknüpft ist, der auf der Rechenvorrichtung eingerichtet ist; Bestimmen, durch die Rechenvorrichtung, ob eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, gesperrt ist, wobei die gesicherte Übersetzungsabbildung in einem gesicherten Speicher der Rechenvorrichtung gespeichert ist; Verifizieren, durch die Rechenvorrichtung und in Antwort auf eine Bestimmung, dass die gesicherte Übersetzungsabbildung gesperrt ist, der Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse, die unter Verwendung der gesicherten Übersetzungsabbildung übersetzt wurde; und Durchführen, durch die Rechenvorrichtung, der Speicherzugriffsanfrage unter Verwendung der übersetzten physischen Host-Adresse in Antwort auf eine Verifizierung der Übersetzung.
  14. Verfahren nach Anspruch 13, wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen enthält, und wobei: das Durchführen der Übersetzung ein Durchführen einer ersten Übersetzung der virtuellen linearen Adresse zu einer übersetzten physischen Gastadresse unter Verwendung der Seitentabelle, die mit der anfragenden virtuellen Maschine verknüpft ist, umfasst, das Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob die gesicherte Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen gesperrt ist; und das Verifizieren der Übersetzung ein Verifizieren der ersten Übersetzung basierend auf einem Vergleich der übersetzten physischen Gastadresse mit einer physischen Gastadresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  15. Verfahren nach Anspruch 14, ferner umfassend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Gastadresse nicht mit der physischen Gastadresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung virtueller linearer Adressen auf physische Gastadressen übersetzt wurde.
  16. Verfahren nach Anspruch 14, wobei die gesicherte Übersetzungsabbildung eine gesicherte Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen enthält, und wobei: das Durchführen der Übersetzung ein Durchführen, in Antwort auf die Verifizierung der ersten Übersetzung, einer zweiten Übersetzung der übersetzten physischen Gastadresse zur übersetzten physischen Host-Adresse unter Verwendung der Seitentabelle umfasst, die mit dem virtuellen Maschinenmonitor verknüpft ist, das Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob die gesicherte Übersetzungsabbildung auf physischer Gastadressen auf physische Host-Adressen gesperrt ist; und das Verifizieren der Übersetzung ein Verifizieren der zweiten Übersetzung basierend auf einem Vergleich der übersetzten physischen Host-Adresse mit einer physischen Host-Adresse umfasst, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  17. Verfahren nach Anspruch 16, ferner umfassend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzungsabbildung physischer Gastadressen auf physische Host-Adressen übersetzt wurde.
  18. Verfahren nach Anspruch 13, wobei das Bestimmen, ob die gesicherte Übersetzungsabbildung gesperrt ist, ein Bestimmen umfasst, ob eine Übersetzung virtueller linearer Adressen zu physischen Host-Adressen, die der virtuellen linearen Adresse entspricht, gegenwärtig im gesicherten Speicher gespeichert ist.
  19. Verfahren nach Anspruch 13, wobei das Verifizieren der Übersetzung ein Übersetzen der virtuellen linearen Adresse zu einer physischen Host-Adresse unter Verwendung der gesicherten Übersetzungsabbildung basierend auf einer Kennung der virtuellen Maschine umfasst.
  20. Verfahren nach Anspruch 13, ferner umfassend ein Generieren, durch die Rechenvorrichtung, eines Sicherheitsfehlers in Antwort auf eine Bestimmung, dass die übersetzte physische Host-Adresse nicht mit der physischen Host-Adresse übereinstimmt, die unter Verwendung der gesicherten Übersetzung übersetzt wurde.
  21. Verfahren nach Anspruch 13, ferner umfassend Zuordnen, durch den virtuellen Maschinenmonitor, eines physischen Gastadressenbereichs zur virtuellen Maschine; Generieren, durch den virtuellen Maschinenmonitor, einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; Generieren, durch die virtuelle Maschine, einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; Aggregieren, durch die Rechenvorrichtung, der ersten Abbildung und zweiten Abbildung zur Bildung einer dritten Abbildung der virtuellen linearen Adresse auf physische Gastadressen auf eine physische Host-Adresse; und Speichern, durch die Rechenvorrichtung, der dritten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  22. Verfahren nach Anspruch 13, ferner umfassend: Zuordnen, durch den virtuellen Maschinenmonitor, eines physischen Gastadressenbereichs zur virtuellen Maschine; Generieren, durch den virtuellen Maschinenmonitor, einer ersten Abbildung der physischen Gastadressen auf physische Host-Adressen für die virtuelle Maschine; Generieren, durch die virtuelle Maschine, einer zweiten Abbildung virtueller linearer Adressen auf die physischen Gastadressen; und Speichern, durch die Rechenvorrichtung, der ersten und zweiten Abbildung im gesicherten Speicher als die gesicherte Übersetzungsabbildung.
  23. Verfahren nach Anspruch 13, ferner umfassend: Empfangen, von der virtuellen Maschine, eines Bereichs linearer Adressen, die zu entsperren sind; und Entfernen einer Abbildung virtueller linearer Adressen auf physische Host-Adressen, die der virtuellen linearen Adresse entspricht, aus dem gesicherten Speicher
  24. Computerlesbares Medium oder computerlesbare Medien, die mehrere darauf gespeicherte Anweisungen umfassen, die, wenn sie ausgeführt werden, eine Rechenvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 13-23 auszuführen.
  25. Rechenvorrichtung zum Schutz eines virtuellen Maschinenspeichers der Rechenvorrichtung, wobei die Rechenvorrichtung Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 13-23 umfasst.
DE102018115251.5A 2017-06-26 2018-06-25 Technologien zum Schutz eines virtuellen Maschinenspeichers Pending DE102018115251A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/633,259 2017-06-26
US15/633,259 US10866909B2 (en) 2017-06-26 2017-06-26 Technologies for protecting virtual machine memory

Publications (1)

Publication Number Publication Date
DE102018115251A1 true DE102018115251A1 (de) 2018-12-27

Family

ID=64567586

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018115251.5A Pending DE102018115251A1 (de) 2017-06-26 2018-06-25 Technologien zum Schutz eines virtuellen Maschinenspeichers

Country Status (3)

Country Link
US (1) US10866909B2 (de)
CN (1) CN109117245A (de)
DE (1) DE102018115251A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099874B2 (en) 2019-01-28 2021-08-24 Red Hat Israel, Ltd. Efficient userspace driver isolation by shallow virtual machines
US11243864B2 (en) * 2019-09-17 2022-02-08 International Business Machines Corporation Identifying translation errors
US11221869B2 (en) * 2020-03-25 2022-01-11 Red Hat, Inc. Memory efficient host virtual address management for hypercalls
US11886351B2 (en) 2020-03-25 2024-01-30 Red Hat, Inc. Memory efficient virtual address management for system calls
JP2022018964A (ja) * 2020-07-16 2022-01-27 富士通株式会社 情報処理装置およびアクセス制御プログラム
EP4180936A1 (de) * 2021-11-10 2023-05-17 Samsung Electronics Co., Ltd. Virtualisiertes system und verfahren zur steuerung des zugriffs auf nichtflüchtige speichervorrichtung in einer virtualisierungsumgebung

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1870814B1 (de) * 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7739466B2 (en) * 2006-08-11 2010-06-15 Intel Corporation Method and apparatus for supporting immutable memory
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
CN104239238B (zh) * 2013-06-21 2018-01-19 格芯公司 用于管理转换旁视缓冲的方法和装置
US10152612B2 (en) * 2015-09-25 2018-12-11 Intel Corporation Cryptographic operations for secure page mapping in a virtual machine environment
US10338957B2 (en) * 2016-12-27 2019-07-02 Intel Corporation Provisioning keys for virtual machine secure enclaves

Also Published As

Publication number Publication date
US10866909B2 (en) 2020-12-15
US20180373647A1 (en) 2018-12-27
CN109117245A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
DE102018115251A1 (de) Technologien zum Schutz eines virtuellen Maschinenspeichers
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
DE102007062744B4 (de) Guest-Host-Adressübersetzung für den Zugriff von Geräten auf einen Speicher in einem partitionierten System
JP5837206B2 (ja) 分離された仮想空間を提供するための方法および装置
DE112012003776T5 (de) Migration logischer Partitionen mit zustandsbehafteten Auslagerungsdatenverbindungen während des laufenden Betriebs unter Verwendung der Kontextherauslösung und -einfügung
DE112012003342T5 (de) Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen
DE112012003808T5 (de) Ermittlung der Migration des Netzwerkadapter-Hardwarezustands in einer zustandsbehafteten Umgebung
US20150135175A1 (en) Virtual machine migration with swap pages
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
CN111159134A (zh) 面向多租户的分布式文件系统安全访问控制方法及系统
DE112012003988T5 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE112007001988T5 (de) Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung
DE112011100392T5 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
CN110678845A (zh) 用于大数据分析的分布式文件系统中的多租户数据服务
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112016005933T5 (de) Technologien zum Durchsetzen einer Netzwerkzugriffssteuerung fiir virtuelle Maschinen
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE112017001027T5 (de) Seitenfehlerbehebung
DE112018005404T5 (de) Vereinfachen des zugriffs auf lokalitätsdomäneninformationen eines speichers
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE102022124530A1 (de) Speicherpoolmanagement
DE112020000286T5 (de) Sicheres ein-/auslagern mit seitenänderungserkennung