Hypervisor

EIN Hypervisor ist Computer Software, Firmware oder Hardware- Dies ermöglicht die Partitionation der Ressourcen einer CPU zwischen mehreren Betriebssystemen oder unabhängigen Programmen. IBM prägte den Begriff Hypervisor für die 360/65[1] und benutzte es später für den Diag-Handler von CP-67. Die zeitgenössische Verwendung ist für Virtual Machine Monitor (Vmm) oder Virtualizer. Es ist Computer Software, Firmware oder Hardware- das schafft und läuft virtuelle Maschinen. Ein Computer, auf dem ein Hypervisor eine oder mehrere virtuelle Maschinen ausführt, heißt a Hostmaschineund jede virtuelle Maschine heißt a Gastmaschine. Der Hypervisor präsentiert den Gastbetriebssystemen mit a Virtuelle Betriebsplattform und verwaltet die Ausführung der Gastbetriebssysteme. Im Gegensatz zu einem EmulatorDer Gast führt die meisten Anweisungen für die native Hardware aus.[2] Mehrere Instanzen einer Vielzahl von Betriebssystemen können die virtualisierten Hardware -Ressourcen teilen: Zum Beispiel, Linux, Fenster, und Mac OS Instanzen können alle auf einem einzigen physischen laufen x86 Maschine. Dies steht im Gegensatz zu Virtualisierung des Betriebssystems. Level, wo alle Fälle (normalerweise genannt Behälter) muss sich einen einzelnen Kernel teilen, obwohl sich die Gastbetriebssysteme unterscheiden können Benutzerraumwie unterschiedlich Linux -Verteilungen mit dem gleichen Kernel.

Der Begriff Hypervisor ist eine Variante von Supervisor, ein traditioneller Begriff für die Kernel von einem Betriebssystem: Der Hypervisor ist der Vorgesetzte der Vorgesetzten,[3] mit Hyper- verwendet als stärkere Variante von super-.[a] Der Begriff stammt aus dem Jahr 1970;[4] im früheren CP/CMS (1967) System, der Begriff Steuerungsprogramm wurde stattdessen verwendet.

Einstufung

Typ-1- und Typ-2-Hypervisoren

In seiner These von 1973 "Architekturprinzipien für virtuelle Computersysteme", " Robert P. Goldberg Klassifizierte zwei Arten von Hypervisor:[2]

Typ-1-, native oder nackte Hypervisoren
Diese Hypervisoren laufen direkt auf der Hardware des Hosts, um die Hardware zu steuern und Gastbetriebssysteme zu verwalten. Aus diesem Grund werden sie manchmal genannt Rohmetall Hypervisoren. Die ersten Hypervisoren, die IBM in den 1960er Jahren entwickelte, waren native Hypervisoren.[5] Dazu gehörten die Testsoftware Simmmon und die CP/CMS Betriebssystem, der Vorgänger von IBM Z/VM.
Typ-2 oder gehostete Hypervisoren
Diese Hypervisoren werden genau wie andere Computerprogramme auf einem herkömmlichen Betriebssystem (OS) betrieben. Ein virtueller Maschinenmonitor läuft als Prozess auf dem Gastgeber. Typ-2-Hypervisors abstrakte Gastbetriebssysteme aus dem Host-Betriebssystem.

Die Unterscheidung zwischen diesen beiden Typen ist nicht immer klar. Zum Beispiel, KVM und bhyve sind Kernelmodule[6] Dadurch werden das Host-Betriebssystem effektiv in einen Typ-1-Hypervisor umgewandelt.[7] Gleichzeitig seitdem Linux -Verteilungen und Freebsd sind immer noch allgemeine Betriebssysteme, wobei Anwendungen miteinander um VM-Ressourcen konkurrieren, KVM und BHYVE können auch als Typ-2-Hypervisoren eingestuft werden.[8]

Mainframe -Ursprünge

Die ersten Hypervisoren, die bereitstellen Vollständige Virtualisierung waren das Testwerkzeug Simmmon und das einmalige IBM CP-40 Forschungssystem, das im Januar 1967 mit der Produktionsnutzung begann und die erste Version des IBM wurde CP/CMS Betriebssystem. CP-40 lief auf a S/360-40 modifiziert am Cambridge Scientific Center Um eine dynamische Adressübersetzung zu unterstützen, eine Funktion, die eine Virtualisierung ermöglichte. Vor dieser Zeit wurde die Computerhardware nur so virtualisiert, dass mehrere Benutzeranwendungen gleichzeitig ausgeführt werden können, z. B. in CTSS und IBM M44/44X. Mit CP-40 der Hardware der Hardware Supervisorstaat wurde ebenfalls virtualisiert, sodass mehrere Betriebssysteme gleichzeitig in separaten Läufen laufen können virtuelle Maschine Kontexte.

Programmierer implementierten bald CP-40 (als CP-67) für die IBM System/360-67, das erste Produktionscomputersystem, das zur vollen Virtualisierung in der Lage ist. IBM hat diese Maschine 1966 ausgeliefert; es umfasste Page-Translation-Tabelle Hardware für virtuelles Gedächtnis und andere Techniken, die eine vollständige Virtualisierung aller Kernelaufgaben ermöglichten, einschließlich I/A- und Interrupt -Handhabung. (Beachten Sie, dass das "offizielle" Betriebssystem das unglückliche TSS/360, verwendete keine vollständige Virtualisierung.) Sowohl CP-40 als auch CP-67 begannen 1967 mit der Produktion. CP/CMS war von 1968 bis frühen 1970er Jahren IBM -Kunden in Quellcodeform ohne Unterstützung zur Verfügung.

CP/CMS bildete einen Teil von IBMs Versuch, robust zu bauen Zeitteilung Systeme für seine Mainframe Computers. Durch gleichzeitig mehrere Betriebssysteme erhöhte der Hypervisor die Robustheit und Stabilität der Systeme: Selbst wenn ein Betriebssystem abstürzt, würden die anderen ohne Unterbrechung weiter funktionieren. In der Tat erlaubte dies sogar Beta oder experimentelle Versionen von Betriebssystemen - sogar von neuer Hardware[9]‍ ‍ ‌ ‌ ‌ um bereitzustellen und debuggen, ohne das stabile Hauptproduktionssystem und ohne kostspielige zusätzliche Entwicklungssysteme zu gefährden.

IBM kündigte es an System/370 Serie im Jahr 1970 ohne die virtueller Speicher Feature benötigt für die Virtualisierung, fügte sie jedoch in der Advanced Function -Ankündigung im August 1972 hinzu. Die Virtualisierung wurde in allen Nachfolgesystemen vorgestellt, so dass alle modernen IBM-Mainframes, einschließlich der ZSeries Linie, behalten Sie die Abwärtskompatibilität mit der IBM S/360-Linie der 1960er Jahre bei. Die Ankündigung von 1972 enthielt auch VM/370, eine Neuauflagen von CP/CMS Für die S/370. nicht wie CP/CMSIBM unterstützte diese Version (obwohl sie für mehrere Releases noch in Quellcodeform verteilt wurde). VM steht für Virtuelle Maschineund betont, dass alle, nicht nur einige der Hardware -Schnittstellen, virtualisiert sind. Sowohl VM als auch CP/CMS genossen eine frühzeitige Akzeptanz und schnelle Entwicklung von Universitäten, Unternehmensnutzern und Zeitteilung Anbieter sowie innerhalb von IBM. Benutzer spielten eine aktive Rolle bei der kontinuierlichen Entwicklung und antizipierten die Trends in der Moderne Open Source Projekte. In einer Reihe von umstrittenen und bitter Stapelverarbeitung Durch IBM -politische Infighting und VM blieb das "andere" Mainframe -Betriebssystem von IBM jahrzehntelang, und verlor an MVS. Es erlebte ab 2000 eine Wiederbelebung von Popularität und Unterstützung als die Z/VM Produkt, zum Beispiel als Plattform für Linux auf ibm z.

Wie oben erwähnt, enthält das VM -Steuerungsprogramm a Hypervisor-Call Handler, der Diag ("Diagnose", Opcode x'83 ') Anweisungen in einer virtuellen Maschine abfängt. Dies bietet eine nicht virtualisierte Ausführung des Dateisystemzugriffs und anderer Vorgänge (Diag ist ein modellabhängiger privilegierter Befehl, der nicht in der normalen Programmierung verwendet wird, und ist daher nicht virtualisiert. Es ist daher für die Verwendung als Signal für die verfügbar Betriebssystem "Host"). Bei der ersten implementierten in CP/CMS Release 3.1 lieferte diese Verwendung von Diag eine Betriebssystemschnittstelle, die analog zu der war System/360 Aufrufanweisung (SVC), aber das erforderte keine Änderung oder Erweiterung der Virtualisierung des Systems von SVC.

1985 stellte IBM die vor PR/SM Hypervisor zu verwalten Logische Partitionen (LPAR).

Betriebssystemunterstützung

Mehrere Faktoren führten zu einem Wiederaufleben um 2005 bei der Verwendung von Virtualisierung Technologie unter Unix, Linux, und andere Unix-artig Betriebssysteme:[10]

  • Erweiterung der Hardwarefunktionen, sodass jeder einzelne Maschine gleichzeitigere Arbeit leisten kann
  • Bemühungen, die Kosten zu kontrollieren und das Management durch Konsolidierung von Servern zu vereinfachen
  • Die Notwendigkeit, groß zu kontrollieren Multiprozessor und Cluster Installationen zum Beispiel in Serverfarmen und Farmen rendern
  • Die verbesserte Sicherheit, Zuverlässigkeit und Geräteunabhängigkeit von Hypervisor Architekturen möglich
  • Die Fähigkeit, komplexe OS-abhängige Anwendungen in verschiedenen Hardware- oder OS-Umgebungen auszuführen

Große Unix -Anbieter, einschließlich HP, IBM, SGI, und Sun Microsystems, haben seit vor 2000 virtualisierte Hardware verkauft. Diese waren im Allgemeinen große, teure Systeme (im Multimillionen-Dollar-Bereich im High-End), obwohl auch bei einigen Systemen mit niedrigem und mittlerem Bereich, wie IBM PERSE Server, HP Superdome Serienautomaten und Sonne/Orakel T-Serie Coolthreads Server.

Obwohl Solaris war schon immer das einzige Gastdomain -Betriebssystem Logische Domänen Hypervisor Ende 2006, Linux (Ubuntu und Gentoo) und Freebsd wurden portiert, um oben auf dem Hypervisor zu laufen (und können alle gleichzeitig auf demselben Prozessor ausgeführt werden, wie es vollständig virtualisierte unabhängige Gäste betrieben hat). Wind River "Carrier Grade Linux"Läuft auch auf Suns Hypervisor.[11] Vollständige Virtualisierung auf Sparc Die Prozessoren haben sich als unkompliziert erwiesen: Seit ihrer Gründung Mitte der 1980er Jahre hielt die Sonne die SPARC-Architektur absichtlich sauber von Artefakten, die die Virtualisierung behindert hätten. (Vergleiche mit Virtualisierung auf X86 -Prozessoren unten.)[12]

HPE bietet HP -Integrität virtuelle Maschinen (Integrität VM), um mehrere Betriebssysteme auf ihrer zu veranstalten Itanium Powered Integrity Systems. Itanium kann laufen HP-UX, Linux, Windows und OpenVMSUnd diese Umgebungen werden auch als virtuelle Server auf der Integrity VM -Plattform von HP unterstützt. Das HP-UX-Betriebssystem veranstaltet die Integritäts-VM-Hypervisorschicht, mit der viele wichtige Funktionen von HP-UX ausgenutzt werden können, und bietet eine große Unterscheidung zwischen dieser Plattform und anderen Warenplattformen-wie Processor Hotswap, Memory Hotswap und Dynamic Kernel Aktualisierungen ohne System -Neustart. Während es HP-UX stark nutzt, ist der Integrity VM Hypervisor wirklich ein Hybrid, der auf Bare-Metal läuft, während die Gäste ausführen. Das Ausführen normaler HP-UX-Anwendungen auf einem Integritäts-VM-Host ist stark entmutigt.[von wem?] Da Integrity VM seine eigene Speicherverwaltung, Planung und E/A -Richtlinien implementiert, die für virtuelle Maschinen abgestimmt sind und für normale Anwendungen nicht so effektiv sind. HPE bietet auch strengere Aufteilung ihrer Integrität und HP9000 -Systeme über VPAR und npar Technologie, erstere Angebote gemeinsame Ressourcenpartitionierung und letztere bieten vollständige E/A und Verarbeitungsisolation an. Die Flexibilität der virtuellen Serverumgebung (VSE) hat ihre Verwendung in neueren Bereitstellungen häufiger Platz gemacht.

IBM bietet eine Virtualisierungspartitionstechnologie, die als bekannt ist logische Partitionierung (LPAR) auf System/390, ZSeries, PERSE und IBM as/400 Systeme. Für IBM-Stromversorgungssysteme ist der Power Hypervisor (PHYP) ein nationaler (bloßem Metall) Hypervisor in der Firmware und bietet Isolation zwischen LPARs. Die Verarbeitungskapazität wird LPARS entweder dediziert oder auf einer Ansprüche zur Verfügung gestellt, wenn nicht genutzte Kapazitäten geerntet werden und auf geschäftige Arbeitsbelastungen überarbeitet werden können. Gruppen von LPARs können ihre Prozessorkapazität so bewältigen lassen, als ob sie in einem "Pool" wären - IBM bezeichnet diese Fähigkeit als mehrere Shared -Processor -Pools (MSPPs) und implementiert sie auf Servern mit dem Power6 Prozessor. LPAR- und MSPP -Kapazitätszuweisungen können dynamisch verändert werden. Der Speicher wird jedem LPAR (bei LPAR-Initiierung oder dynamisch) zugeordnet und vom Power Hypervisor adressiert. Für die Real-Mode-Adressierung durch Betriebssysteme (AIX, Linux, Ibm i), das Leistung Prozessoren (Power4 weiter) haben Virtualisierungsfunktionen entworfen, bei denen ein Hardware-Adress-Offset mit dem OS-Adress-Offset bewertet wird, um die physische Speicheradresse zu erreichen. Eingabe/Ausgabe (E/A) -Anadapter können ausschließlich von LPARS "gehören" oder von LPARS über eine als virtuelle E/A -Server (VIOS) bezeichnete Appliance -Partition "freigegeben" werden. Der Power -Hypervisor sieht ein hohes Maß an Zuverlässigkeit, Verfügbarkeit und Wartungsfähigkeit (RAS) durch, indem viele Teile das heiße Hinzufügen/Ersetzen von Teilen erleichtern (modellabhängige: Prozessoren, Speicher, E/A -Adapter, Gebläse, Leistungseinheiten, Scheiben, Systemsteuerungen usw. ))

Ähnliche Trends sind mit X86/X86-64-Serverplattformen aufgetreten, wo Open Source Projekte wie Xen haben Virtualisierungsbemühungen geleitet. Dazu gehören Hypervisoren, die auf Linux- und Solaris -Kerneln sowie kundenspezifischen Kernel basieren. Da diese Technologien von großen Systemen bis hin zu Desktops erstrecken, werden sie im nächsten Abschnitt beschrieben.

x86 Systeme

Seit 2005 haben CPU -Anbieter ihren Produkten Hardware -Virtualisierungshilfe hinzugefügt. zum Beispiel, Intel vt-x (Code-benannter Vanderpool) und AMD-V (Code-benannter Pacifica).

Ein alternativer Ansatz erfordert das Ändern des Gastbetriebssystems, um a zu erstellen Systemanruf An den zugrunde liegenden Hypervisor, anstatt die E/A -Anweisungen der Maschine auszuführen, die der Hypervisor simuliert. Das nennt man Paravirtualisierung in Xen, ein "Hypercall" in Parallelen Workstationund ein "Diagnosecode" in IBM VM. Einige Mikrokernel, wie z. Mach und L4, sind flexibel genug, um eine paravirtuelle Veröffentlichung von Gastbetriebssystemen zu ermöglichen.

Eingebettete Systeme

Eingebettete Hypervisoren, Targeting eingebettete Systeme und sicher Echtzeit-Betriebssystem (RTOS) Umgebungen, sind im Vergleich zu Desktop- und Unternehmenssystemen mit unterschiedlichen Anforderungen ausgelegt, einschließlich Robustheit, Sicherheit und Echtzeit Fähigkeiten. Die ressourcenbezogene Natur vieler eingebetteter Systeme, insbesondere der batteriebetriebenen mobilen Systeme, sorgt für eine weitere Anforderung für kleine Speichergrößen und niedrige Overheads. Im Gegensatz zur Allgegenwart der X86 -Architektur in der PC -Welt verwendet die eingebettete Welt eine breitere Vielfalt von Architekturen und weniger standardisierten Umgebungen. Die Unterstützung für die Virtualisierung erfordert Gedächtnisschutz (in Form von a Speicherverwaltungseinheit oder zumindest eine Speicherschutzeinheit) und eine Unterscheidung zwischen Benutzermodus und privilegierter Modus, was am meisten ausschließt Mikrocontroller. Das geht immer noch x86, MIPS, ARM und Powerpc als weit verbreitete Architekturen auf mittleren bis hochwertigen eingebetteten Systemen.[13]

Da Hersteller von eingebetteten Systemen normalerweise den Quellcode für ihre Betriebssysteme haben, müssen in diesem Bereich weniger virtualisiert werden. Stattdessen die Leistungsvorteile von Paravirtualisierung Machen Sie dies normalerweise zur Virtualisierungstechnologie der Wahl. Trotzdem haben Arm und MIPS kürzlich einen vollständigen Virtualisierungsunterstützung als IP-Option hinzugefügt und diese in ihre neuesten High-End-Prozessoren und Architekturversionen aufgenommen, wie z. Arm Cortex-A15 mpcore und ARMV8 EL2.

Weitere Unterschiede zwischen der Virtualisierung in Server/Desktop und eingebetteten Umgebungen sind die Anforderungen für die effiziente gemeinsame Nutzung von Ressourcen über virtuelle Maschinen, die Kommunikation mit hoher Bandbreite, niedrige Latenz-Inter-VM-Kommunikation, eine globale Sichtweise der Planung und des Stromverwaltungsmanagements sowie die feinkörnige Kontrolle der Informationen fließt.[14]

Sicherheitsauswirkungen

Die Verwendung von Hypervisor -Technologie von Malware und Rootkits sich als Hypervisor unter dem Betriebssystem installieren, bekannt als Hyperjacking, kann es schwieriger zu erkennen erschweren, da die Malware alle Vorgänge des Betriebssystems (z. B. jemand, der ein Kennwort eingibt), ohne die Anti-Malware-Software abfangen könnte, die es notwendigerweise erfasst (da die Malware unter dem gesamten Betriebssystem läuft). Die Umsetzung des Konzepts ist angeblich im Subvirt Laboratory Rootkit aufgetreten (gemeinsam von entwickelt von Microsoft und Universität von Michigan Forscher[15]) sowie in der Blaue Pille Malware Paket. Solche Behauptungen wurden jedoch von anderen bestritten, die behaupten, es sei möglich, das Vorhandensein eines hypervisorbasierten Rootkit festzustellen.[16]

Im Jahr 2009 Forscher von Microsoft und North Carolina State University zeigte einen Hypervisor-Schicht-Anti-Rootkit namens Hooksafe Das kann generische Schutz gegen Kernel-Mode bieten Rootkits.[17]

Anmerkungen

  1. ^ super- ist aus lateinisch, bedeutet "über", während Hyper- ist von der verwandt Begriff in Altgriechisch (ὑπέρ-) auch Bedeutung Oben oder Über.

Verweise

  1. ^ Gary R. Allred (Mai 1971). System/370 Integrierte Emulation unter OS und DOS (PDF). 1971 Spring Joint Computer Conference. Vol. 38. AFIPS Press. p. 164. doi:10.1109/afips.1971.58. Abgerufen 12. Juni, 2022. Das Hypervisor -Konzept war relativ einfach. Es bestand aus einem Addendum zum Emulatorprogramm und einer Hardware -Modifikation auf einem Modell 65 mit einer Kompatibilitätsfunktion. Die Hardware-Modifikation unterteilte das Modell 65 in Partitionen, die jeweils von 0-n adressierbar sind. Das Programm -Addendum, der die Systemprogrammstatuswörter (PSW) mit sich überlagert hat, wurde zum Interrupt -Handler für das gesamte System. Nachdem festgestellt wurde, welche Partition das Ereignis initiiert hatte, das den Interrupt verursacht, wurde die Kontrolle entsprechend übertragen. Der Hypervisor benötigte dedizierte E/A -Geräte vor jeder Partition, und aus diesem Grund waren die E/A -Konfigurationen normalerweise recht groß und daher für die Mehrheit der Verwendungen unerschwinglich.
  2. ^ a b Goldberg, Robert P. (1973). Architekturprinzipien für virtuelle Computersysteme (PDF) (Technischer Bericht). Harvard Universität. ESD-TR-73-105.
  3. ^ Bernard Golden (2011). Virtualisierung für Dummies. p.54.
  4. ^ "Wie kam der Begriff" Hypervisor "in Gebrauch?".
  5. ^ Meier, Shannon (2008). "IBM Systems Virtualisierung: Server, Speicher und Software" (PDF). S. 2, 15, 20. Abgerufen 22. Dezember, 2015.
  6. ^ Dexter, Michael. "Praxis-On-Bhyve". CallForsting.org. Abgerufen 24. September, 2013.
  7. ^ Graziano, Charles (2011). "Eine Leistungsanalyse von Xen- und KVM -Hypervisors für das Hosting des Xen Worlds -Projekts". Absolvieren Sie die Thesen und Dissertationen. Iowa State University. Abgerufen 29. Januar, 2013.
  8. ^ Pariseau, Beth (15. April 2011). "KVM REIGNITES TYP 1 vs. Typ 2 Hypervisor -Debatte". SearchServervirtualisierung. TechTarget. Abgerufen 29. Januar, 2013.
  9. ^ Sehen Geschichte von CP/CMS Für virtuelle Hardware-Simulation bei der Entwicklung der System/370
  10. ^ Loftus, Jack (19. Dezember 2005). "Xen Virtualisierung wird schnell Open Source 'Killer App'". TechTarget. Abgerufen 26. Oktober, 2015.
  11. ^ "Wind River, um den bahnbrechenden Ultrassparc T1 Multithread-Prozessor der nächsten Generation von Sun zu unterstützen". Wind River Newsroom (Pressemitteilung). Alameda, Kalifornien. 1. November 2006. Abgerufen 26. Oktober, 2015.
  12. ^ Fritsch, Lothar; Husseiki, Rani; Alkassar, Ammar. Komplementäre und alternative Technologien zum vertrauenswürdigen Computing (TC-erg./-a.), Teil 1, Eine Studie im Namen des deutschen Bundesbüros für Informationssicherheit (BSI) (PDF) (Bericht).
  13. ^ Strobl, Marius (2013). Virtualisierung für zuverlässige eingebettete Systeme.München: Grinsen GmbH.S. 5–6. ISBN 978-3-656-49071-5. Abgerufen 7. März, 2015.
  14. ^ Gernot Heiser (April 2008). "Die Rolle der Virtualisierung in eingebetteten Systemen". Proc.1. Workshop zur Isolation und Integration in eingebettete Systeme (IIES'08).S. 11–16.Archiviert von das Original am 21. März 2012. Abgerufen 8. April, 2009.
  15. ^ "Subvirt: Implementieren von Malware mit virtuellen Maschinen" (PDF). Universität von Michigan, Microsoft. 3. April 2006. Abgerufen 15. September, 2008.
  16. ^ "Mythos für blaue Pille entlarven".Virtualisierung.info.11. August 2006. archiviert von das Original am 14. Februar 2010. Abgerufen 10. Dezember, 2010.
  17. ^ Wang, Zhi;Jiang, Xuxian;Cui, Weidong;Ning, Peng (11. August 2009). Kernel Rootkits mit leichtem Hakenschutz entgegenwirken (PDF). Verfahren der 16. ACM -Konferenz über Computer- und Kommunikationssicherheit.CCS '09.Chicago, Illinois, USA: ACM. Citeseerx 10.1.1.147.9928. doi:10.1145/1653662.1653728. ISBN 978-1-60558-894-0. S2CID 3006492. Abgerufen 11. November, 2009.

Externe Links