www.wikidata.de-de.nina.az
Als virtuelle Maschine VM wird in der Informatik die Software technische Kapselung eines Rechnersystems innerhalb eines lauffahigen Rechnersystems bezeichnet Die virtuelle Maschine bildet die Rechnerarchitektur eines real in Hardware existierenden oder eines hypothetischen Rechners nach 1 Virtuelle Maschine in VirtualBoxDie abstrahierende Schicht zwischen realem oder Host bzw Wirt Rechner auf dem die virtuelle Maschine ausgefuhrt wird und der virtuellen Maschine wird Hypervisor oder Virtual Machine Monitor genannt ihre Implementierung erfolgt rein hardwarebasiert rein softwarebasiert oder durch eine Kombination Der Hypervisor erlaubt in der Regel den Betrieb mehrerer virtueller Maschinen gleichzeitig auf einem physischen Rechner Virtuelle Maschinen werden direkt auf der CPU des Gastgeberrechners ausgefuhrt und nutzen ublicherweise deren Virtualisierungsfunktionen Dagegen wird bei Emulatoren die Ausfuhrung rein als Software realisiert wodurch auch eine andere Rechnerarchitektur als die des Gastgeberrechners nachgebildet werden kann Inhaltsverzeichnis 1 Typen virtueller Maschinen 1 1 Systembasierte virtuelle Maschinen 1 1 1 Geschichte 1 1 2 Vor und Nachteile des Einsatzes systembasierter virtueller Maschinen 1 1 3 Methoden 1 1 3 1 Hypervisor 1 1 3 2 Hardware Emulation 1 1 3 3 Hardware Virtualisierung 1 1 3 4 Paravirtualisierung 1 1 4 Anwendungsszenarien 1 2 Prozessbasierte virtuelle Maschinen 1 2 1 Geschichte 1 2 2 Vor und Nachteil des Einsatzes prozessbasierter virtueller Maschinen 1 2 3 Anwendungsszenarien 2 Siehe auch 3 Literatur 4 Weblinks 5 EinzelnachweiseTypen virtueller Maschinen BearbeitenVirtuelle Maschinen werden heute danach eingeteilt in welchem Umfang sie die Funktionalitat eines realen Rechners nachstellen Systembasierte virtuelle Maschinen bilden einen Rechner so vollstandig nach dass Betriebssysteme die fur den realen Rechner entworfen wurden sich auf der virtuellen Maschine genauso wie auf dem entsprechenden realen Rechner ausfuhren lassen 2 Dieser Ansatz wird auch als vollstandige Virtualisierung bezeichnet 3 Er basiert im Wesentlichen auf der von Robert Goldberg gegebenen und von Gerald Popek 1972 noch enger gefassten Definition Eine virtuelle Maschine ist ein effizientes identisches und isoliertes Duplikat eines echten Prozessors 4 Beispiele fur bekannte Produkte die Virtualisierung mit Hilfe systembasierter virtueller Maschinen realisieren sind Oracles VirtualBox oder VMwares vSphere Im Gegensatz dazu erlauben es prozessbasierte virtuelle Maschinen lediglich einzelne Programme abstrahiert von der Ausfuhrungsumgebung einer Rechnerarchitektur auszufuhren indem sie eine darauf aufbauende Laufzeitumgebung bereitstellen 5 Meist werden solche virtuellen Maschinen auf mehreren Rechnerarchitekturen bereitgestellt wodurch die Anwendung dann auf all diesen Plattformen ohne Anderung ausgefuhrt werden kann Bekannte Beispiele solcher Umgebungen mit entsprechenden virtuellen Maschinen sind die Java Laufzeitumgebung als Teil der Java Plattform und die Common Language Runtime als Teil des NET Frameworks Systembasierte virtuelle Maschinen Bearbeiten Geschichte Bearbeiten Hauptartikel Wurzeln der Virtualisierung im Mainframe Bereich Der Wunsch mehrere Betriebssysteme gleichzeitig auf einem Rechner betreiben zu konnen war die ursprungliche Motivation zur Einfuhrung systembasierter virtueller Maschinen IBMs 1966 erstmals veroffentlichte CP CMS war das erste Betriebssystem welches vollstandige Virtualisierung unterstutzte und es dadurch mehreren Benutzern erlaubte gleichzeitig auf einem physischen Rechner jeweils ein eigenes Einzelbenutzerbetriebssystem unabhangig zu nutzen 6 In ihrem Artikel Formal Requirements for Virtualizable Third Generation Architectures von 1974 legten Gerald J Popek and Robert P Goldberg die formalen Grundlagen und stellen die grundlegenden Anforderungen an eine Architektur dar um virtuelle Maschinen mit Hilfe eines Hypervisors zu unterstutzen 4 Vor und Nachteile des Einsatzes systembasierter virtueller Maschinen Bearbeiten Der Einsatz systembasierter virtueller Maschinen bietet gegenuber der direkten Ausfuhrung von Betriebssystemen auf dem Rechner einige Vorteile Mehrere Betriebssysteme gleichzeitig Unterschiedliche Betriebssysteme konnen gleichzeitig auf der gleichen physischen Maschine betrieben werden Dadurch konnen Ressourcen des physischen Rechners z B der Prozessor besser ausgenutzt werden da mehrere Betriebssysteme sich diese teilen konnen Auch konnen unterschiedliche Betriebssystemversionen oder Systeme von unterschiedlichen Betriebssystemherstellern parallel betrieben werden Unterstutzung unterschiedlicher Instruktionssatze Die virtuelle Maschine kann eine Befehlssatzarchitektur unterstutzen die von der physischen Maschine abweicht Dadurch konnen Betriebssysteme ausgefuhrt werden die auf der realen Hardware gar nicht lauffahig waren Erhohte Sicherheit Virtuelle Maschinen konnen zwar ebenso von Schadprogrammen befallen werden In diesem Fall kann die virtuelle Maschine jedoch meist geloscht und neu aufgesetzt werden ohne dass der physische Computer dahinter mit langfristigen Schaden zu kampfen hat Gunstigerer und vereinfachter Betrieb Insbesondere in Rechenzentren mussen sehr viele Systeme parallel betrieben werden Durch den Einsatz von virtuellen Maschinen muss nicht fur jedes System eigene Hardware bereitgestellt werden sondern unterschiedliche Systeme teilen sich eine sehr leistungsfahige Plattform Da der Betrieb einer sehr leistungsfahigen Plattform in der Regel wirtschaftlicher ist als der Betrieb vieler kleinerer Plattformen mit der insgesamt gleichen Leistung bietet sich der Ansatz der Virtualisierung fur Rechenzentren siehe auch Rezentralisierung an Allerdings erkauft man sich diese Vorteile auch mit einigen Nachteilen die sich gegenuber direkter Ausfuhrung des Betriebssystems auf dem Rechner ergeben Effizienzverlust Eine virtuelle Maschine ist weniger effizient als die reale Maschine da ein Teil der Leistungsfahigkeit fur den Betrieb des Hypervisors zur Verwaltung der virtuellen Maschinen verwendet werden muss Gegenseitige Beeinflussung gleichzeitig betriebener virtueller Maschinen Wenn mehrere virtuelle Maschinen parallel betrieben werden ist zwar durch den Hypervisor eine Trennung sichergestellt jedoch teilen sie sich die beschrankten Ressourcen des physischen Rechners Da das Lastverhalten anderer virtueller Maschinen fur eine einzelne VM nicht vorhersehbar und beeinflussbar ist konnen Lastspitzen zu instabiler bzw nicht vorhersagbarer Leistungsfahigkeit einzelner oder aller gleichzeitig betriebener virtuellen Maschinen fuhren wenn der Hypervisor hier nicht gesonderte Vorkehrungen trifft z B durch Zusicherung von Ressourcen fur einzelne VMs Neuartige Herausforderungen bzgl Sicherheit und Datenschutz Schutzmechanismen gegen Viren und Malware wurden bisher auf Betriebssystemebene umgesetzt und schutzten so den Benutzer Durch den Einsatz von Hypervisoren entsteht eine neue Angriffsmoglichkeit namlich der Hypervisor selbst um Schadcode auf dem Rechner auszufuhren Daher sind neuartige Schutzmechanismen uber die bisher bekannten hinaus erforderlich Neue Herausforderungen hinsichtlich der Lizenzierung von Betriebssystemen Wahrend die Lizenzierung eines Betriebssystems fruher an einen jeweiligen physischen Rechner mit seinen Eigenschaften z B Anzahl Prozessoren Speichergrosse gebunden war ist das durch die Virtualisierung nicht mehr ohne weiteres moglich Es muss kein Rechner mehr mit der tatsachlichen Speichergrosse oder Anzahl Prozessoren existieren sondern er existiert ggf nur virtuell Dies zwingt Hersteller und Kunden zur Auseinandersetzung mit teils recht komplizierten Lizenzmodellen Bestimmte Hersteller z B Apple erlauben auch gar keine Virtualisierung ihrer Betriebssysteme Die Rechtsgultigkeit dieses Verbotes ist allerdings in Deutschland umstritten Methoden Bearbeiten Hypervisor Bearbeiten Hauptartikel Hypervisor Hardware Emulation Bearbeiten Hauptartikel Emulator Hardware Virtualisierung Bearbeiten Hauptartikel Hardware Virtualisierung Paravirtualisierung Bearbeiten Hauptartikel Paravirtualisierung Anwendungsszenarien Bearbeiten Desktop Virtualisierung Servervirtualisierung Rezentralisierung Eingebettete SystemeProzessbasierte virtuelle Maschinen Bearbeiten Geschichte Bearbeiten Die Geschichte der prozessbasierten virtuellen Maschinen begann mit dem bahnbrechenden Aufsatz Transportability of Software Applications on Microcomputers von W Wellbourne 1983 und der vorausgegangenen Arbeit A Comparison of Pascal Intermediate Languages von P Nelson 1979 7 Es geht hier um die Losung des Problems Anwendungscode der fur eine Rechnerarchitektur entwickelt wurde ohne Anderungen auf einer anderen Rechnerarchitektur auszufuhren Insbesondere um den Portierungsaufwand fur Anwendungen von einer Architektur zu anderen z B neuen Rechnerarchitekturen gering zu halten Vor und Nachteil des Einsatzes prozessbasierter virtueller Maschinen Bearbeiten Der Einsatz von prozessbasierten virtuellen Maschinen bietet folgende Vorteile Plattformunabhangigkeit Programme fur eine virtuelle Maschine laufen auf allen physischen Maschinen fur die die virtuelle Maschine implementiert ist Dynamische Optimierung ist moglichDer Einsatz von prozessbasierten virtuellen Maschinen hat folgende Nachteile Die Ausfuhrung eines portablen Programms auf einer portablen virtuellen Maschine ist langsamer als die native Ausfuhrung eines Programms das speziell fur die Zielumgebung ubersetzt wurde Bei Verwendung eines Interpreters ergeben sich zusatzliche Indirektionen was ineffizienter ist als direkte Ausfuhrung Dynamische Ubersetzung zur Laufzeit JIT Compiler lost zwar die meisten Indirektionen auf und sorgt fur grossteils direkte Ausfuhrung jedoch erfordert die Ubersetzung selbst zusatzlichen Aufwand bis der Code direkt ausgefuhrt werden kann jedoch nur im Moment der Ubersetzung nicht mehr bei spateren Durchlaufen Diese Nachteile konnen durch geeignete z B dynamische Optimierung verringert werden Eine weitere Moglichkeit ist die automatische Kompilierung mittels Ahead of time Compiler unmittelbar vor der Ausfuhrung Damit wird das Backend eines hochoptimierenden maschinenorientierten Compilers unmittelbar auf dem Anwendersystem ausgefuhrt Dadurch kann der Compiler noch spezifischere Optimierungen fur das System des Anwenders vornehmen als es bei einem vorkompilierten Programm ohne spezielle Optimierungen fur das System bzw den Prozessor des Anwenders moglich ware Anwendungsszenarien Bearbeiten Entwicklung von UnternehmenssoftwareSiehe auch BearbeitenAnwendungsvirtualisierung x86 Virtualisierung Liste von Virtualisierungsprodukten Rootkit Virtualisierungs RootkitsLiteratur BearbeitenIain D Craig Virtual Machines Springer 2006 ISBN 1 85233 969 1 269 SeitenWeblinks BearbeitenPascal P Code Maschine das p System war auch ein komplettes Betriebssystem englisch Virtual Private Server Weiterfuhrender Artikel uber Virtual Private Server Einzelnachweise Bearbeiten Hans Jurgen Siegert Uwe Baumgarten Betriebssysteme Oldenbourg 2007 ISBN 3 486 58211 9 S 270 James E Smith Ravi Nair Virtual Machines Versatile Platforms For Systems And Processes Morgan Kaufmann Mai 2005 ISBN 1 55860 910 5 S 8 1 2 Vorlage Toter Link electures informatik uni freiburg de Vorlesung Systeme I Kapitel 2 Seite 2 eLecture Uni Freiburg Seite nicht mehr abrufbar festgestellt im Marz 2018 Suche in Webarchiven a b Gerald J Popek Robert P Goldberg Formal Requirements for Virtualizable Third Generation Architectures In Communications of the ACM 17 Jahrgang Nr 7 1974 S 412 421 doi 10 1145 361011 361073 James E Smith Ravi Nair Virtual Machines Versatile Platforms For Systems And Processes Morgan Kaufmann 2005 ISBN 1 55860 910 5 S 10 R J Creasy The origin of the VM 370 time sharing system PDF 900 kB In IBM Journal of Research amp Development Vol 25 No 5 September 1981 S 483 490 perspective on CP CMS and VM history by the CP 40 project lead also a CTSS author Ferenc Bator Virtuelle Maschinen Memento vom 25 April 2014 im Internet Archive 2005 Abgerufen von https de wikipedia org w index php title Virtuelle Maschine amp oldid 217786126