Schröder-Preikschat, WolfgangHorbach, Matthias2019-03-072019-03-072013978-3-88579-614-5https://dl.gi.de/handle/20.500.12116/20720Eine virtuelle Maschine ist eine „gedachte“ Maschine – sie ist nicht echt, existiert nicht wirklich, erscheint aber echt. In der Informatikfolklore wird dieser Begriff sehr häufig und viel zu pauschal gleichgesetzt mit einem Rechner, der nicht direkt auf der Hardware ausgeführt und durch einen Hypervisor bereitgestellt wird. Dabei wirft sich hier bereits die Frage auf, wie denn ein Rechner, der ja selbst Hardware ist, auf Hardware ausgeführt werden kann oder wie er denn überhaupt anders ausgeführt werden könnte, wenn nicht durch Hardware. Auch ist es nicht zwingend erforderlich, von einem Hypervisor als Grundlage auszugehen, um eine virtuelle Maschine überhaupt bereitstellen zu können. Zu jeder virtuellen Maschine gibt es einen Prozessor, der das Programmiermodell dieser Maschine implementiert und insbesondere die diesem Modell zugeschriebenen Maschinenbefehle interpretiert. So werden virtuelle Maschinen durch Interpretierer bereitgestellt, die die Maschinenbefehle vollständig oder nur teilweise (partiell) ausführen können. Ein Betriebssystem ist ein solcher Interpretierer, ebenso ein Hypervisor oder Makro-, Mikro- oder Exokern. Nicht zu vergessen CPU und JVM, zwei weitere Prozessoren, die mit einem Betriebssystem zusammen typischerweise in einer Schichtanordnung (sandwich) organisiert sind. Letztlich hängt es dann eben von der jeweils betrachteten Abstraktionsebene ab, um Eigenschaften, Fähigkeiten und Funktionsweise einer virtuellen Maschine einzuordnen und zu beurteilen. Ohne die Fähigkeit eines (abstrakten/realen) Prozessors zur partiellen Interpretation von Maschinenbefehlen, wäre der vielschichtige Aufbau von Rechensystemen in Form einer wohldefinierten Hierarchie von virtuellen Maschinen jedenfalls nicht möglich. Im Beitrag werden virtuelle Maschinen aus verschiedenen Blickwinkeln betrachtet. Ausgehend von der aus der Rechnerorganisation her bekannten Sicht von Mehrebenenmaschinen, wird die virtuelle Maschine „Betriebssystem“ herausgegriffen und verfeinert dargestellt sowie diskutiert als eine funktionale Hierarchie abstrakter Prozessoren, wie sie die Softwaretechnik so auch bezeichnen wu ̈rde. Dabei werden ebenfalls die von Popek und Goldberg (1974) aufgestellten Anforderungen zur Unterstu ̈tzung von Virtualisierungssystemen beru ̈cksichtigt, entsprechend eingeordnet und in ihrer Bedeutung für die hier vorgenommene Hierarchiebildung untersucht. Aber nicht nur die Virtualität ganzer Maschinen kommt zur Sprache, auch die einzelner Maschinenbestandteile beziehungsweise Betriebsmittel wie etwa Adressraum, Speicher, CPU und Peripherie. Diese zuweilen stark grundsätzlichen Betrachtungen werden mit einem Brückenschlag zur Virtualisierung vielkerniger Prozessoren abgeschlossen. Im Vordergrund des Beitrags stehen konstruktive, architektonische Belange von Rechensystemen, die ein Ensemble von problemspezifischen virtuellen Maschinen bilden. Analytische Belange werden, wenn überhaupt, nachrangig behandelt.deVirtuelle MaschinenText/Conference Paper1617-5468