CP/CMS - CP/CMS

CP/CMS
IBM logo.svg
Entwickler IBM Cambridge Scientific Center
Geschrieben in Monteur (F)
Betriebssystemfamilie VM
Arbeitszustand Historisch
Quellmodell Quellcode (siehe Text für Details)
Erstveröffentlichung Mai 1968 ; Vor 53 Jahren ( 1968-05 )
Neueste Erscheinung 3.2 / 1972 ; Vor 49 Jahren ( 1972 )
Verfügbar in Englisch
Plattformen IBM-System/360-67 ; auch System/370 mit virtueller Speicherhardware (nicht vorhanden in originalen S/370 Modellen); auch auf experimenteller Hardware verwendet
Standard - Benutzeroberfläche Befehlszeilenschnittstelle
Lizenz IBM Type-III Library (kostenlos in Quellcodeform für IBM Kunden kostenlos, ohne Support)

CP/CMS ( Control Program/Cambridge Monitor System ) ist ein eingestelltes Time-Sharing- Betriebssystem der späten 60er und frühen 70er Jahre, das für seine hervorragende Leistung und fortschrittlichen Funktionen bekannt ist. Es hatte drei verschiedene Versionen:

  • CP-40 /CMS, ein wichtiges "einmaliges" Forschungssystem, das die CP/CMS- Virtual-Machine- Architektur etablierte
  • CP-67 /CMS, eine Neuimplementierung von CP-40/CMS für das IBM System/360-67 und der Hauptfokus dieses Artikels
  • CP-370 /CMS, eine Neuimplementierung von CP-67/CMS für das System/370 – wurde nie als solche veröffentlicht, wurde aber die Grundlage von IBMs VM/370- Betriebssystem, das 1972 angekündigt wurde.

Jede Implementierung war eine wesentliche Neugestaltung ihres Vorgängers und ein evolutionärer Schritt nach vorne. CP-67/CMS war die erste weit verbreitete Architektur virtueller Maschinen. IBM führte diese Idee mit ihren Forschungssystemen M44 / 44X (die verwendeten Teil Virtualisierung ) und CP-40 (die verwendete vollständige Virtualisierung ).

Neben seiner Rolle als Vorgänger der VM-Familie spielte CP/CMS eine wichtige Rolle bei der Entwicklung der Betriebssystemtheorie , dem Design von IBMs System/370, der Time-Sharing- Branche und der Schaffung eines a selbsttragende Benutzergemeinschaft, die die heutige Bewegung freier Software vorweggenommen hat .

Geschichte

Grundlegende architektonische und strategische Parameter für CP/CMS wurden in CP-40 festgelegt, das Anfang 1967 im Cambridge Scientific Center von IBM in Produktion ging. Diese Bemühungen fanden in einem komplexen politischen und technischen Umfeld statt , wurden ausführlich diskutiert und durch Zitate aus erster Hand unterstützt im Wikipedia-Artikel Geschichte von CP/CMS .

In einer Nussschale:

  • In den frühen 1960er Jahren versuchte IBM, die Vorherrschaft über das wissenschaftliche Rechnen zu behaupten, wo Timesharing-Bemühungen wie CTSS und das MIT- Projekt MAC in den Mittelpunkt rückten . Aber IBM hatte sich zu einem riesigen Projekt verpflichtet, dem System/360 , das das Unternehmen in eine andere Richtung führte.
  • Die Timesharing-Community war enttäuscht von den fehlenden Timesharing-Funktionen des S/360. Dies führte zu erheblichen IBM-Verkaufsverlusten bei Project MAC und Bell Laboratories . Das Cambridge Scientific Center (CSC) von IBM, das ursprünglich zur Unterstützung des Projekts MAC gegründet wurde, begann mit dem Versuch, die Glaubwürdigkeit von IBM im Time-Sharing zurückzugewinnen, indem es ein Time-Sharing-Betriebssystem für S/360 entwickelte. Dieses System würde schließlich CP/CMS werden. Im gleichen Sinne entwarf und veröffentlichte IBM ein S/360-Modell mit Time-Sharing-Funktionen, das IBM System/360-67, und ein Time-Sharing-Betriebssystem, TSS/360 . TSS fehlgeschlagen; aber die 360-67 und CP/CMS waren erfolgreich, trotz interner politischer Kämpfe um Time-Sharing und konzertierter Bemühungen bei IBM, die CP/CMS-Bemühungen abzuschaffen.
  • Im Jahr 1967 begann der Einsatz von CP/CMS in der Produktion, zuerst auf dem CP-40 von CSC, später auf dem CP-67 in Lincoln Laboratories und anderen Standorten. Es wurde 1968 über die IBM Type-III Library zur Verfügung gestellt. Bis 1972 hatte CP/CMS mehrere Releases durchlaufen; es war ein robustes, stabiles System, das auf 44 Systemen lief; es könnte 60 Timesharing-Benutzer auf einem S/360-67 unterstützen; und mindestens zwei kommerzielle Timesharing-Anbieter ( National CSS und IDC ) verkauften S/360-67-Zeit unter Verwendung der CP/CMS-Technologie weiter.
  • 1972 kündigte IBM die Erweiterung der S/370-Serie um virtuellen Speicher an, zusammen mit dem VM/370-Betriebssystem, einer Neuimplementierung von CP/CMS für den S/370. Dies markierte das Ende der CP/CMS-Releases, obwohl das System noch einige Zeit seine eigenständige Existenz fortsetzte. VM-Releases enthielten noch einige Zeit Quellcode und Mitglieder der VM-Community blieben lange aktive Mitwirkende.

Überblick

 CTSS 
> IBM M44/44X
>> CP-40/CMSCP[-67]/CMS  VM/370 → VM/SE-Versionen → VM/SP-Versionen → VM/XA-Versionen → VM/ESAz/VM
VP/CSS
> TSS/360
> TSO für MVT → für OS/VS2 → für MVS → ... → für z/OS
>> MULTICS und die meisten anderen Timesharing - Plattformen

CP / CMS wurde durch eingebaut IBM ‚s Cambridge Scientific - Center (CSC), ein Forschungs- und Entwicklungslabor mit Verbindungen zu MIT , unter der Leitung von Robert Creasy . Die Ziele des Systems, der Entwicklungsprozess, die Veröffentlichung und das Erbe bahnbrechender Technologie heben dieses System von anderen Betriebssystemen seiner Zeit und von anderen großen IBM-Projekten ab. Es war ein Open-Source- System, das allen IBM-Kunden kostenlos im Quellcode zur Verfügung gestellt wurde – als Teil der nicht unterstützten IBM Type-III-Bibliothek . CP/CMS-Benutzer unterstützten sich und einander. Ungewöhnliche Umstände, die im Abschnitt Historie unten beschrieben werden, haben zu dieser Situation geführt.

CP/CMS bestand aus zwei Hauptkomponenten:

  • CP , das Steuerungsprogramm , hat die virtuelle Maschinenumgebung erstellt. Die weit verbreitete Version war CP-67, die auf der S/360-67 lief. (Das Forschungssystem CP-40 etablierte die Architektur. Eine dritte Version, CP-370, wurde zu VM/370.) Anstatt Speicher und andere Ressourcen explizit unter den Benutzern aufzuteilen, wie es der traditionelle Ansatz war, stellte CP jedem Benutzer eine simuliertes eigenständiges System/360- Computer. Jedes System war in der Lage, jede S/360-Software auszuführen, die auf dem nackten Computer lief, und gab jedem Benutzer ein privates Computersystem.
  • CMS , das Cambridge Monitor System (und auch Console Monitor System – aber in VM in Conversational Monitor System umbenannt) war ein leichtgewichtiges Einzelbenutzer-Betriebssystem für die interaktive Time-Sharing-Nutzung. Durch die Ausführung vieler CMS-Kopien in den virtuellen Maschinen von CP – anstelle mehrerer Kopien großer, traditioneller Multitasking-Betriebssysteme – war der Overhead pro Benutzer geringer. Dies ermöglichte es einer großen Anzahl gleichzeitiger Benutzer, sich einen einzigen S/360 zu teilen.

Das Konzept der virtuellen CP/CMS-Maschine war ein wichtiger Schritt nach vorn im Betriebssystemdesign.

  • Durch die Isolierung der Benutzer voneinander hat CP/CMS die Systemzuverlässigkeit und -sicherheit erheblich verbessert.
  • Durch die Simulation eines vollständigen, eigenständigen Computers für jeden Benutzer kann CP/CMS jede S/360-Software in einer Time-Sharing-Umgebung ausführen , nicht nur Anwendungen, die speziell für Time-Sharing entwickelt wurden.
  • Durch die Verwendung von leichtgewichtigem CMS als primäre Benutzeroberfläche erreichte CP/CMS eine beispiellose Time-Sharing-Leistung. Darüber hinaus machte es die Einfachheit des CMS einfacher, Verbesserungen der Benutzeroberfläche zu implementieren als bei herkömmlichen Betriebssystemen.

IBM hat CP/CMS als seine VM/370-Produktlinie neu implementiert, die 1972 veröffentlicht wurde, als der S/370- Serie virtueller Speicher hinzugefügt wurde . Die Nachfolger von VM/370 (wie z/VM ) sind auch heute noch weit verbreitet. (Es ist wichtig anzumerken, dass IBM CP-67 neu implementiert hat , wie es CP-40 hatte, und es nicht einfach umbenannte und neu verpackte. VM existierte viele Jahre lang neben CP/CMS und seinen Nachfolgern. Es ist daher angemessen, CP/ CMS als unabhängiges Betriebssystem, das sich von der VM-Familie unterscheidet.)

CP/CMS als freie Software

CP/CMS wurde in Quellcodeform verteilt , und viele CP/CMS-Benutzer waren aktiv daran beteiligt, diesen Quellcode zu studieren und zu modifizieren. Eine solche direkte Beteiligung des Benutzers an einem vom Hersteller bereitgestellten Betriebssystem war ungewöhnlich.

In der CP/CMS-Ära verteilten viele Anbieter Betriebssysteme in maschinenlesbarem Quellcode. IBM lieferte optionalen Quellcode für zB OS/360 , DOS/360 und für mehrere spätere Mainstream-IBM-Betriebssysteme. Bei all diesen Systemen war auch ein gewisses Bewusstsein für den Systemquellcode in den SYSGEN- Prozess eingebunden, vergleichbar mit einem Kernel-Build in modernen Systemen auch bei der Installation eines Starter-Sets . (Vierzig Jahre später kann der Hercules-Emulator verwendet werden, um versteinerte Versionen dieser Systeme auszuführen, die auf Quellcode basieren, der jetzt als Teil der Public Domain behandelt wird .)

Die Bedeutung des Betriebssystemquellcodes hat sich im Laufe der Zeit geändert. Bevor IBM 1969 Software von Hardware entbündelte , war das Betriebssystem (und die meisten anderen Software) in den Hardwarekosten enthalten. Jeder Anbieter hatte die volle Verantwortung für das gesamte System, die Hard- und Software. Dadurch war das Verbreitungsmedium relativ unwichtig. Nach der Entbündelung von IBM wurde die Betriebssystemsoftware als IBM System Control Program (SCP)-Software geliefert , schließlich in Form von nur Objektcode (OCO).

Aus komplizierten Gründen wurde CP/CMS nicht wie gewohnt freigegeben. Es wurde nicht von IBM unterstützt, wurde aber Teil der nicht unterstützten IBM Type-III Library , einer Sammlung von Software, die von IBM-Mitarbeitern beigesteuert wurde (ähnlich der von Kunden beigesteuerten Software bildete die Type-IV Library). IBM verteilte diese Bibliothek an seine Kunden zur Verwendung 'wie besehen'. Das Fehlen direkter IBM-Unterstützung für solche Produkte zwang aktive Benutzer dazu, sich selbst zu unterstützen, und förderte Modifikationen und gegenseitige Unterstützung. CP/CMS und andere Typ-III-Produkte waren frühe Formen freier Software .

Die Quellcode-Verteilung anderer IBM-Betriebssysteme kann für einige Zeit fortgesetzt worden sein (z. B. OS/360 , DOS/360 , DOS/VSE , MVS und sogar TSS/370 , die alle heute allgemein als gemeinfrei gelten ), da sie wurden wohl vor 1978 ohne Copyright-Vermerk veröffentlicht. Der nicht unterstützte Status von CP/CMS übte jedoch einen anderen Druck auf die Benutzergemeinschaft aus und machte die Verteilung des Quellcodes erforderlich.

Seltsamerweise wurde CP/CMS vom Lincoln Laboratory des MIT und nicht von IBM zur Type-III-Bibliothek beigetragen , obwohl das System vom Cambridge Scientific Center von IBM gebaut wurde . Diese überraschende Entscheidung wurde als eine Form der Absprache beschrieben, um die politischen Kräfte von IBM, die gegen Timesharing sind, auszumanövrieren. Es kann auch die Menge an formellen und informellen Beiträgen von MIT und Union Carbide widerspiegeln, die zum Design und zur Implementierung von CP-40, S/360-67, CP-67 und CMS beigetragen haben. Siehe Geschichte von CP/CMS (historische Notizen) für weitere Einblicke und Referenzen zu diesem Thema.

Viele CP/CMS-Benutzer haben umfangreiche Änderungen an ihren eigenen Kopien des Quellcodes vorgenommen. Ein Großteil dieser Arbeit wurde zwischen den Standorten geteilt und wichtige Änderungen fanden ihren Weg zurück in das Kernsystem. Andere Benutzer, wie National CSS und einige akademische Sites, setzten die unabhängige Entwicklung von CP/CMS fort, anstatt zu VM/370 zu wechseln, als es verfügbar wurde. Diese Bemühungen gingen von der Community ab, was heute als Software-Fork bezeichnet wird .

Nachdem IBM VM/370 veröffentlicht hatte, wurde die Quellcodeverteilung von VM für mehrere Releases fortgesetzt. (Das VM-Projekt hat die Verwendung von PL/S nicht übernommen , einer internen Systemprogrammiersprache, die für viele vergleichbare Projekte innerhalb von IBM vorgeschrieben ist. Die Verwendung von PL/S hätte die Verteilung des Quellcodes unmöglich gemacht. IBM versuchte, sich von der Assemblierung abzuwenden bereits 1965 in höhere Sprachen überführt und nutzte PL/S bis 1969, zB in MVS. PL/S galt damals als Betriebsgeheimnis und war für Kunden nicht verfügbar. IBM machte hier offenbar Ausnahmen Richtlinie viel später.) Die VM-Benutzergemeinschaft leistete weiterhin wichtige Beiträge zur Software, wie sie es während der CP/CMS-Typ-III-Periode getan hatte. Nur wenige OS- oder DOS-Sites zeigten eine aktive Beteiligung der Benutzer an tiefen Betriebssystem-Interna, aber dies wurde an vielen VM-Sites festgestellt. Diese umgekehrte Unterstützung half CP/CMS-Konzepten, trotz des Bürgerstatus zweiter Klasse von VM bei IBM zu überleben und sich weiterzuentwickeln.

Die Architektur

Die CP/CMS-Architektur war für ihre Zeit revolutionär. Das System bestand aus einem virtualisierenden Steuerungsprogramm (CP), das mehrere unabhängige virtuelle Maschinen (VMs) erstellte. Die Plattformvirtualisierung war aufgrund von zwei Elementen des IBM System/360-67 möglich:

  • Trennung von privilegierten Anweisungen des „Supervisor State“ von normalen Anweisungen des „Problem State“
  • Adressübersetzungshardware

Wenn ein Programm im "Problemzustand" lief, würde die Verwendung eines privilegierten Befehls oder einer ungültigen Speicheradresse dazu führen, dass die Hardware eine Ausnahmebedingung auslöste. Durch das Einfangen dieser Bedingungen könnte CP das geeignete Verhalten simulieren, z. B. Durchführen von E/A- oder Paging-Operationen. Ein Gastbetriebssystem, das auf einer nackten Maschine im 'Supervisor-Zustand' laufen würde, wurde unter CP im 'Problem-Zustand' ausgeführt.

Das Ergebnis war eine vollständig virtualisierte Umgebung. Jede virtuelle Maschine hatte ihren eigenen Satz virtueller Geräte, die von der realen Hardwareumgebung des Systems abgebildet wurden. Auf diese Weise wurde ein bestimmter DFÜ-Teletyp seiner VM-Instanz als seine virtuelle Konsole präsentiert .

Beachten Sie, dass in CP-67 bestimmte modellabhängige und Diagnosebefehle nicht virtualisiert wurden, insbesondere der DIAG-Befehl. Letztendlich wurden in der späteren Entwicklung bei IBM und anderswo DIAG-Anweisungen verwendet, um eine nicht virtualisierte Schnittstelle zu einem sogenannten Hypervisor zu erstellen . Client-Betriebssysteme könnten diesen Mechanismus verwenden, um direkt mit dem Steuerungsprogramm zu kommunizieren; dies bot dramatische Leistungsverbesserungen.

Jedes S/360-Betriebssystem konnte tatsächlich unter CP ausgeführt werden, aber normale Benutzer nutzten das Cambridge Monitor System (CMS), ein einfaches Einzelbenutzer-Betriebssystem. CMS ermöglichte es Benutzern, Programme auszuführen und ihre virtuellen Geräte zu verwalten. CP-67-Versionen 1 und 2 unterstützten keinen virtuellen Speicher in einer virtuellen Maschine. Dies wurde in Version 3 hinzugefügt. Zu diesem Zeitpunkt konnten Tests und Entwicklung von CP selbst durchgeführt werden, indem eine vollständige Kopie von CP/CMS in einer einzigen virtuellen Maschine ausgeführt wurde. Einige CP/CMS-Betriebssysteme, wie die Entwicklung von CP-370 und MVS-Tests, führten tiefe Stapel von Hardware- und Betriebssystemsimulationen auf vier oder fünf Ebenen aus.

Das CP/CMS-Design unterscheidet sich von den bisherigen monolithischen Betriebssystemen von IBM , es trennt komplexes "großes System" (Dispatching, Hardware-Management, Massenspeicher) von "kleinem System" (Anwendungsprogrammausführung, Datei-I/O, Konsolen-Ein-/Ausgabe) . Die Neukategorisierung beider Systeme in ihre eigenen Entitäten verhindert, dass ein Fehler im System eines Benutzers beide betrifft. Dies ist eine Modellfunktion in Mikrokernel- Betriebssystemen.

Die Entscheidung von IBM, Virtualisierungs- und virtuelle Speicherfunktionen im nachfolgenden S/370-Design zu implementieren (obwohl sie in der ersten S/370-Serie fehlten), spiegelt zumindest teilweise den Erfolg des CP/CMS-Ansatzes wider. Das Überleben und der Erfolg der VM-Betriebssystemfamilie von IBM und der Virtualisierungstechnologie im Allgemeinen verdanken wiederum dem S/360-67 viel.

In vielerlei Hinsicht haben die CP-67- und CP/CMS-Produkte von IBM moderne Virtualisierungssoftware wie VMware Workstation, Xen und Microsoft Virtual PC vorweggenommen (und stark beeinflusst) .

Verwandte Terminologie

  • CP : Steuerungsprogramm . CP-40 und CP-67 waren Implementierungen für CSCs angepassten S/360-40 bzw. den Standard S/360-67.
  • CMS : Cambridge Monitor-System . Dieser Teil des CP/CMS-Systems wurde in Conversational Monitor System umbenannt, als IBM VM/370 veröffentlichte. Im Gegensatz zum Übergang von CP zu VM, bei dem es sich jedoch um eine Neuimplementierung handelte, wurde ein Großteil des CMS ohne Änderungen von CP/CMS in VM/370 verschoben.
  • VM : Virtuelle Maschine , anfangs wurde der Begriff Pseudo-Maschine verwendet, aber bald wurde virtuelle Maschine aus dem IBM M44/44X- Projekt ausgeliehen. Es war in CP/CMS bereits gut etabliert, als IBM VM/370 einführte.
  • Hypervisor : ein Mechanismus zur Paravirtualisierung . Dieser Begriff wurde in IBMs Neuimplementierung von CP-67 als VM/370 geprägt.

Siehe auch

Fußnoten

Zitate

Primäre CP/CMS-Quellen

Zusätzliche CP/CMS-Quellen

  • RJ Adair, RU Bayles, LW Comeau und RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (Mai 1966)
    ein wegweisendes Papier, das die Implementierung des virtuellen Maschinenkonzepts beschreibt, mit Beschreibungen des kundenspezifischen CSC S/360-40 und des CP-40 Designs
  • International Business Machines Corporation, CP-67/CMS , Programm 360D-05.2.005, IBM Program Information Department (Juni 1969)
    ― Referenzhandbuch von IBM
  • RA Meyer und LH Seawright, "A Virtual Machine Timesharing System", IBM Systems Journal, Vol. 9, Nr. 3, S. 199–218 (September 1970)
    ― beschreibt das CP-67/CMS-System, umreißt Merkmale und Anwendungen
  • RP Parmelee, TI Peterson, CC Tillman und DJ Hatfield, „Virtual Storage and Virtual Machine Concepts“, IBM Systems Journal, Bd. 11, Nr. 2 (Juni 1972)

Hintergrund-CP/CMS-Quellen

  • FJ Corbató et al., The Compatible Time-Sharing System, A Programmer's Guide, MIT Press, 1963
  • FJ Corbató, M. Merwin-Daggett und RC Daley, „Ein experimentelles Time-Sharing-System“, Proc. Spring Joint Computer Conference (AFIPS) 21, S. 335–44 (1962) — Beschreibung von CTSS
  • FJ Corbató und VA Vyssotsky, "Einführung und Überblick über das MULTICS-System", Proc. Fall Joint Computer Conference (AFIPS) 27, S. 185–96 (1965)
  • PJ Denning, "Virtual Memory", Computing Surveys Vol. 2 , No. 2, S. 153–89 (1970)
  • JB Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems", JACM Vol. 2 , No. 12, S. 589–602 (1965)
    ― Anforderungen an virtuellen Speicher für Project MAC, bestimmt für GE 645
  • CAR Hoare und RH Perrott, Hrsg., Operating Systems Techniques , Academic Press, Inc., New York (1972)
  • T. Kilburn, DBG Edwards, MJ Lanigan und FH Sumner, "One-Level Storage System", IRE Trans. Elektron. Computers EC-11, S. 223–35 (1962)
    ― Manchester/Ferranti Atlas
  • RA Nelson, "Mapping Devices and the M44 Data Processing System", Research Report RC 1303 , IBM Thomas J. Watson Research Center (1964)
    über den IBM M44/44X
  • RP Parmelee, TI Peterson, CC Tillman und DJ Hatfield, "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal , Vol. 2, No. 11, S. 99–130 (1972)

Zusätzliche Online-CP/CMS-Ressourcen

Detaillierte Zitate zu den in diesem Artikel gemachten Punkten finden Sie in der Geschichte von CP/CMS .

Externe Links