- Z/VM
-
z/VM (früher VM/CMS) ist ein Betriebssystem der Firma IBM für Großrechnersysteme. Es dient dazu, eine (fast) beliebige Anzahl von virtuellen Maschinen auf einem Großrechnersystem zu erzeugen, zu verwalten und parallel zu betreiben. z/VM ist mit seinen Wurzeln aus den 1950er Jahren der Urahn der PC-basierten Virtualisierungssysteme.
z/VM ist für ein breites Nutzungsspektrum sehr gut geeignet:
- Endanwender mit einem textorientieren Arbeitsplatz;
- Systementwickler mit einer breiten Palette von Entwicklungswerkzeugen von Assembler bis zu Hochsprachen;
- Dienstleister, da die heutigen Großrechner ein paar hundert bis tausend virtuelle Maschinen gleichzeitig bereitstellen können. Gerade unter z/VM kann eine (fast) beliebige Anzahl von Linux-Instanzen auf einem Großrechner betrieben werden.
Inhaltsverzeichnis
Konzept von VM
VM (ein Akronym für Virtual Machine) hat bereits 1964 konzeptionell eine vollständige Emulation der Hardware in eben dieser VM das Konzept heutiger virtueller Maschinen vorweggenommen (Varian)[1] In einer VM kann jedes Betriebssystem emuliert werden (damals z.B MVS, DOS/360, UNIX). Sie konnten damals wie heute daher einen Personalcomputer (zunächst CMS) oder einen Server (zunächst RSCS, VTAM/VSCS, TCPIP, UNIX) bereitstellen. Virtuelle Kommunikation konnte auf reale Kommunikation abgebildet werden und somit reale Kommunikation ermöglichen. Wenn VMs Informationen austauschen sollten, wurden virtuelle Kanäle geschaltet. Mit der Emulation Hercules kann eine 360/370/390/z-Emulation auf jedem Windows/Linux-PC installiert werden.
In der Auslieferung des Systems VM/370 war das Entwicklungssystem CMS (Conversational Monitoring System) als Standard mitgeliefert. Die meisten übrigen Systeme (RSCS, VTAM/VSCS, SQL, etc) waren lizenziert.
Die Entwicklung von VM im akademischen Umfeld brachte Konkurrenz zum etablierten DOS/360 (später MVS) mit sich und führte auch innerhalb der IBM zu Konkurrenz im Geschäft mit Grosskunden, sodass das Konzept der virtuellen Maschine nicht von IBM propagiert wurde.
VM und Open Source
VM wurde bis ca. Mitte der 1980er Jahre komplett im Quelltext (fast durchweg Assembler) ausgeliefert. Bedeutende Teile dieses Systems wurden zudem aus Verbesserungen der Benutzergemeinschaft übernommen. Bis zumindest Ende der 1990er Jahre hat sich daran nichts geändert, wenn auch einige wenige Teile von VM nicht mehr im Quellcode ausgeliefert wurden (das begann mit den Komponenten GCS (Group Control System) sowie VTAM (Virtual Telecommunications Access Method) der für IBMs Netzwerkarchitektur SNA (Systems Network Architecture) erforderliche Teil von VM.
Geschichte von VM
- ca Ende 1950er bis Anfang der 1960er Jahre: Das Compatible Time-Sharing System (CTSS) wird am MIT konzipiert und implementiert. Der Zentralrechner war von mehreren Benutzern interaktiv bedienbar (Time-Sharing).
Das steht damals in starkem Gegensatz zu der so genannten Stapelverarbeitung, bei der man einen Stapel Lochkarten mit Programmanweisungen im Rechenzentrum abgibt und nach deren Abarbeitung die Ergebnisse – meist in langen Papierlisten – wieder abholt.
- ca 1965: Das CTSS wird für die IBM/360 Modell 40 umgeschrieben. Dabei wird der Hypervisor für die Steuerung und Bereitstellung der virtuellen Maschinen von dem interaktiv bedienbaren Betriebssystem dieser virtuellen Maschinen getrennt.
Der Hypervisor wurde fortan CP (Control Program) genannt. Das interaktive Betriebssystem für die virtuelle Maschine wurde als CMS (Conversational Monitor System oder Cambridge Monitor System) bezeichnet.
- ca 1968: CP-67 wird für die IBM/360-67 umgeschrieben. VM ist zu dieser Zeit ein zwar von der IBM unterstütztes, aber immer noch auf dem Engagement der University of Cambridge basierendes Produkt.
- ca 1970/71: IBM benutzt VM als Entwicklungsplattform für OS/370, da VM die IBM/370 als Emulation auf einer IBM/360 darstellen kann. Seit dieser Zeit wird VM von IBM auch vermarktet, jedoch zu keiner Zeit als Primärsystem, sondern immer nur als Trägersystem für andere Betriebssysteme.
- bis ca 1985: Umstellung von Fernschreiberkonsolen auf Bildschirmterminals, Erweiterung der Netzwerkfähigkeiten, Einführung eines vollständig programmierbaren Full-Screen-Editors und einer daraus abgeleiteten rudimentären Menüunterstützung, Einführung der Prozedursprachen EXEC-2 und REXX, etc.
Ableitung der „hardwarebasierten" logischen Partitionierung von Großrechnern aus VM.
- bis ca 1990: Erweiterungen an VM und der IBM/370 mit deren Nachfolger IBM/370-XA mit der Erweiterung von 24-Bit-Adressen zu 31-Bit-Adressen führen zu zueinander inkompatiblen VM-Versionen (VM/SP, VM/HPO und VM/XA).
Die 370/ESA-Architektur wird zum Nachfolger der gesamten IBM/370- und IBM/370-XA-Linien. VM wird einer Konsolidierung und Generalüberholung unterzogen und zu VM/ESA.
- bis ca 2005: Weitere Änderungen und Erweiterungen der Großrechnerarchitektur zu Serie Z erfordern auch Anpassungen an VM, das zu z/VM wird. Etwa 1998 wurde – eher aus Übermut als einer ökonomischen Vision folgend – versucht, auch Linux unter VM zum Laufen zu bringen. Das stellte sich als unerwartet einfach heraus und wird inzwischen auch vermarktet.
Nähere Informationen zu CP und CMS
- CP/Control Program stellt als Hypervisorprogramm virtuelle Maschinen bereit. Es ist selbst nur über eine virtuelle Maschine zu steuern. Die virtuellen Maschinen erhalten bei ihrer Definition unter anderem bestimmte Rechte gegenüber dem CP. Durch konstruktive Eigenschaften der IBM-Großrechner auf Hardwareebene sind diese Berechtigungen praktisch auch nicht zu umgehen.
- CMS/Conversational Monitor System hatte bereits in der ersten Implementation in der Mitte der 1960er Jahre folgende Eigenschaften:
- Dateinamen mit je 8-stelligen Dateinamen und Dateitypen
- So genannte Dateimodi (Filemodes) von A bis Z, die jeweils eine Festplatte im Direktzugriff halten. Diese Festplatten werden unter VM als MiniDisk bezeichnet und sind mit den heutigen Laufwerksbuchstaben unter PC-Betriebssystemen vergleichbar.
- Ein Dateisystem (OS/360 und DOS, die zur selben Zeit für den Großrechner entstanden, hatten so etwas nicht in diesem Umfang, dort musste man den Plattenplatz für Dateien weitgehend manuell zuweisen).
- eine zeilenorientierte Oberfläche, auf der über Fernschreibkonsolen gearbeitet wird, z. B. IBM-3270-Terminals – im Gegensatz zu den bis in die 1980er stark verbreiteten Lochkarten.
- Zudem verfügt der Editor XEDIT schon in den 1970er Jahren über ein sehr leistungsfähiges System zur Änderungsverfolgung von Programmquelltexten.
Mehr als 10 Jahre später übernahmen die Vorläufer der heutigen PC-Betriebssysteme viele dieser Konzepte, die heute als selbstverständlich gelten.
Leistungsfähigkeit und typische Nutzungsszenarien für VM
Die typische Nutzung von VM ist
- Als Online-System mit E-Mail und weiteren Informationsanwendungen für bis zu mehrere tausend Benutzer.
- Als Trägersystem für Online-Verarbeitung unter z/VSE oder z/OS mit Datenbanken.
- Als Entwicklungs- und Testsystem für VM selbst, z/VSE, zLinux, z/OS und TPF.
- Als Trägersystem für bis zu mehreren tausend Linux-Server auf einem einzigen Großrechner.
- Als quelloffenes Ausbildungssystem für Programmierer und Informatiker.
All diese Anwendungsszenarien können auch nebeneinander beim selben Anwender vorhanden sein. Hierbei ist VM sehr effizient bei der Verwendung der vorhandenen Ressourcen. Speziell die Bereitstellung des virtuellen Hauptspeichers kann aus Erfahrung leicht bis zum achtfachen des real vorhandenen Speichers getrieben werden. Ein auch im Jahr 2006 kaum von anderen Systemen erreichbarer Wert.
Copyrights und Markennamen
Die hier verwendeten Firmen- und Markennamen werden nur verwendet, um eine klare Darstellung der Zusammenhänge zu erreichen. Die Nennung bedeutet keinesfalls, dass diese frei sind.
Einzelnachweise
Weblinks
Wikimedia Foundation.