Kompatibles Time-Sharing-System – Enzyklopädie

Das kompatible Time-Sharing-System ( CTSS ) war eines der ersten Time-Sharing-Betriebssysteme. Es wurde am MIT Computation Center entwickelt. CTSS wurde erstmals im November 1961 auf der IBM 709 des MIT demonstriert. Der Dienst für MIT-Benutzer begann im Sommer 1963 und wurde bis 1973 betrieben [1]. Während eines Teils dieser Zeit betrieb das einflussreiche Projekt MAC des MIT auch einen CTSS-Dienst, aber das System breitete sich nicht über diese beiden Standorte hinaus aus.

CTSS wurde in einem Artikel beschrieben, der auf der Frühjahrs-Computerkonferenz 1962 vorgestellt wurde, und beeinflusste den Entwurf anderer früher Systeme zur gemeinsamen Nutzung von Zeit erheblich.

Experimentelles Timesharing-System

John Backus sagte in der Sommersitzung 1954 am MIT: "Durch Timesharing kann ein großer Computer als mehrere kleine Computer verwendet werden. es müsste für jeden Benutzer eine Lesestation geben. "[2] Computer wie IBM 704 waren zu dieser Zeit nicht leistungsfähig genug, um ein solches System zu implementieren. Ende 1958 fügte das MIT-Rechenzentrum jedoch eine Schreibmaschineneingabe hinzu 704 mit der Absicht, dass ein Programmierer oder Bediener "zusätzliche Antworten von der Maschine erhalten kann, wenn andere Programme die Maschine gleichzeitig verwenden". [3]

Im Juni 1959, Christopher Strachey veröffentlichte auf der UNESCO-Konferenz für Informationsverarbeitung in Paris einen Artikel über die gemeinsame Nutzung von Zeit in großen schnellen Computern, in dem er einen Programmierer vorstellte, der ein Programm an einer Konsole (wie einem Teletyp) debuggt, die mit dem Computer verbunden ist, während ein anderes Programm auf dem Computer ausgeführt wird im sa me time. [4][5] Das Debuggen von Programmen war zu dieser Zeit ein wichtiges Problem, da es bei der Stapelverarbeitung oft einen Tag dauerte, bis ein geänderter Code übermittelt und die Ergebnisse abgerufen wurden. John McCarthy schrieb ein Memo darüber am MIT, woraufhin ein vorläufiger Studienausschuss und ein Arbeitsausschuss am MIT eingerichtet wurden, um die gemeinsame Zeitnutzung zu entwickeln. Die Ausschüsse sahen vor, dass viele Benutzer gleichzeitig den Computer benutzen, beschlossen die Einzelheiten der Implementierung eines solchen Systems am MIT und begannen mit der Entwicklung des Systems.

Im Juli 1961 [6] waren auf der IBM 709 des Computation Centers einige Befehle für die gemeinsame Nutzung von Zeit ausgeführt worden, und im November 1961 demonstrierte Fernando J. Corbató am MIT, was als "experimentelles Zeitteilungssystem" bezeichnet wurde. Am 3. Mai 1962 veröffentlichten FJ Corbató, MM Daggett und RC Daley auf der Spring Joint Computer Conference einen Artikel über dieses System. [7] Robert C. Daley, Peter R. Bos und mindestens 6 andere Programmierer implementierten das Betriebssystem. teilweise basierend auf dem Fortran Monitor System.

Das System verwendete eine von Herbert M. Teager modifizierte IBM 7090 mit drei zusätzlichen Flexowritern für Benutzerkonsolen und möglicherweise einem Timer. Jeder der drei Benutzer verfügte über zwei Bandeinheiten, eine für das Dateiverzeichnis des Benutzers und eine zum Speichern des Kerns (Programm im Speicher). Es gab auch eine Bandeinheit für die Systembefehle, es gab keine Plattenlaufwerke. Der Speicher war 27 k Wörter (36-Bit-Wörter) für Benutzer und 5 k Wörter für den Supervisor (Betriebssystem). Die Eingabe von den Konsolen wurde durch Interrupts in die Puffer im Supervisor geschrieben, und wenn ein Rückkehrzeichen empfangen wurde, wurde die Steuerung dem Supervisor übergeben, der den laufenden Code auf das Band ablegte und entschied, was als nächstes ausgeführt werden sollte. Die damals implementierten Konsolenbefehle waren Anmelden, Abmelden, Eingeben, Bearbeiten, Fap, Verrückt, Verrückt, Laden, Verwenden, Starten, Überspringen, Listf, Printf, XDump und Xundump .

Dies war die erste Version des kompatiblen Time-Sharing-Systems. Dies war anscheinend die erste öffentliche Demonstration von Timesharing; Es gibt andere Ansprüche, aber sie beziehen sich auf Spezialsysteme oder es wurden keine bekannten Veröffentlichungen veröffentlicht. Die "Kompatibilität" von CTSS bestand in Hintergrundjobs, die auf demselben Computer ausgeführt wurden und in der Regel mehr Rechenressourcen als die Timesharing-Funktionen verwendeten.

Funktionen Bearbeiten

  • CTSS verfügte über eines der ersten Dienstprogramme zur computergestützten Textformatierung, RUNOFF (der Nachfolger von DITTO).
  • CTSS verfügte über eines der ersten Benutzer-Messaging-Implementierungen, die möglicherweise E-Mails erfinden. [8]
  • Louis Pouzin, Mitarbeiter des MIT Computation Center, erstellte für CTSS einen Befehl namens RUNCOM, der eine Liste der in einer Datei enthaltenen Befehle ausführte. (Später erstellte er ein Design für die von Glenda Schroeder implementierte Multics-Shell, das wiederum Unix-Shell-Skripte inspirierte.) RUNCOM ermöglichte auch die Ersetzung von Parametern.
  • CTSS verfügte über den Texteditor QED, den Vorgänger von ed, vi und vim , mit regulären Ausdrücken, die von Ken Thompson hinzugefügt wurden.
  • CTSS war das erste Computersystem, das die Passwortanmeldung implementierte. [9][10]

Implementierung Bearbeiten

Kernel edit ]

CTSS verwendete einen modifizierten IBM 7090-Mainframe-Computer mit zwei 32.768 (32K) 36-Bit-Wort-Bänken mit Kernspeicher anstelle des normalen. [11] Eine Bank war für die gemeinsame Zeitnutzung reserviert Überwachungsprogramm, das andere für Anwenderprogramme. CTSS hatte einen Protected-Mode-Kernel, dessen Supervisor-Funktionen im A-Core (Speicherbank A) nur durch Software-Interrupts aufgerufen werden konnten, wie in den modernen Betriebssystemen. Für Software-Interrupts wurden speicherschutzbedingte Interrupts verwendet. [4] Die Prozessorzuordnungsplanung mit einer Quantenzeiteinheit von 200 ms wurde von einer mehrstufigen Rückmeldungswarteschlange gesteuert die Fähigkeit, bestimmte Anweisungen abzufangen.

Supervisor-Subroutinen [ Bearbeiten ]

  • RDFLXA – Lese eine Eingabezeile von der Konsole
  • WRFLX – Schreibe eine Ausgabezeile zur Konsole
  • DEAD – Versetze den Benutzer in einen toten Zustand , ohne Programm im Speicher
  • DORMNT – Den Benutzer in den Ruhezustand versetzen, mit Programm im Speicher
  • GETMEM – Größe der Speicherzuordnung ermitteln
  • SETMEM – Größe der Speicherzuordnung festlegen
  • TSSFIL – Erhalten Sie Zugriff auf die CTSS-Systemdateien auf der Festplatte.
  • USRFIL – Wechseln Sie zurück in das eigene Verzeichnis.
  • GETBRK – Holen Sie sich den Befehlsstandortzähler beim Beenden.

Programmiersprachen Bearbeiten ]

CTSS hatte zunächst nur einen Assembler FAP und einen Compiler MAD. Fortran II-Code könnte auch in einen MAD-Code übersetzt werden. Später wurde die Hälfte des Systems in MAD geschrieben. Später gab es andere Programmiersprachen wie LISP und eine Version von ALGOL.

Dateisystem [ Bearbeiten ]

Jeder Benutzer hatte ein eigenes Verzeichnis, und es gab auch Verzeichnisse für Personengruppen, die dieselbe "Problemnummer" hatten. Jede Datei hatte zwei Namen, der zweite Name ähnelte der heutigen Erweiterung. Zu Beginn konnte jede Datei einen von vier Modi haben: Temporär, Permanent, Nur-Lese-Klasse 1 und Nur-Lese-Klasse 2. Die Nur-Lese-Klasse 2 unterschied sich darin, dass der Benutzer den Modus dieser Dateien nicht ändern konnte. Dateien können auch aus anderen Verzeichnissen als dem Benutzerverzeichnis verlinkt werden. Eine Verzeichnisliste von listf :

	 10 DATEIEN 20 VERWENDETE SPUREN
DATUM NAME MODUS NR. SPUREN
20.05.63 MAIN MAD P 15
5/17/63 DPFA SYMTB P 1
17.05.63 DPFA BSS P 1
17.05.63 DPFA FAP P 2

Disk-Control-Subroutinen [ edit ]

  • .DUMP – Einen fortlaufenden Block in die Datei schreiben
  • .LOAD – Einen fortlaufenden Block aus der Datei laden
  • .ASIGN – Prepares Datei zum Schreiben
  • .APEND – Bereitet Datei zum Anhängen vor
  • .SEEK – Bereitet Datei zum Lesen vor
  • .RELRW – Bereitet Datei zum Lesen und Schreiben vor
  • .WRITE – Schreiben von Daten an eine relative Position in Datei [19659018] .READK – Daten von einer relativen Position in der Datei lesen
  • .FILE – Schreiben der Datei beenden
  • .ENDRD – Lesen der Datei beenden
  • .DLETE – Datei löschen
  • .RENAM – Umbenennen a file and change its mode
  • .FILDR – Kopie des Benutzerdateiverzeichnisses abrufen
  • .FSTAT – Informationen zu einer Datei abrufen

Konsolenbefehle bearbeiten

  • login – Beim System anmelden
  • logout – Vom System abmelden
  • listf – Dateien im Verzeichnis auflisten
  • input – Input sourc e code, fixed size lines
  • edit – Quellcode im BASIC-Stil mit Zeilennummern bearbeiten
  • printf – Datei ab Zeilennummer drucken
  • fap – FAP-Assembler
  • mad – MAD-Compiler
  • madtrn – Fortran II to MAD-Übersetzer
  • Laden – Laden von Binärdateien (Verknüpfung im Speicher)
  • Verwenden – Laden fehlender Binärdateien
  • Starten – Programm ausführen, das in den Speicher geladen wurde
  • Speichern – Programm im Speicher in Datei speichern [19659018] resume – Lädt das gespeicherte Programm und setzt dessen Ausführung fort
  • pm – Abrufen von Post-Mortem-Informationen des Programms im Speicher
  • patch – Bearbeiten des Speichers
  • tra – Erstellen einer Übertragung an eine relative Position in einem Programm
  • stopat – Übertragung erstellen, um das Programm an einem Speicherort anzuhalten
  • . umbenennen – Datei umbenennen
  • . chmode – Modus der Datei ändern
  • . delete – Datei löschen, hatte * Wildcards
  • . split – Datei teilen
  • . combin – Fügt Dateien, auch Binärdateien, zu Bibliotheken zusammen
  • Abrufen der aktuellen Maschinenzustände
  • octlk – Druckspeicher
  • memo – Eingeben von Textdateien mit variabler Zeilengröße
  • modify – Bearbeiten von Textdateien, ähnlich wie edit
  • ditto – Drucken von Textdateien mit Formatierung (Fußnoten, Seiten) )

Peripheriegeräte [ ]

Bei der Eingabe / Ausgabe-Hardware handelte es sich hauptsächlich um Standard-IBM-Peripheriegeräte. Dazu gehörten sechs Datenkanäle, die Folgendes verbinden:

  • Drucker, Lochkartenleser und Locher
  • IBM 729-Bandlaufwerke, ein IBM 1301-Plattenspeicher, der später auf IBM 1302 mit einer Kapazität von 38 Millionen Wörtern aufgerüstet wurde
  • Ein IBM 7320-Trommelspeicher mit 186.000 Wörtern, der geladen werden konnte 32-K-Wort-Speicherbank in einer Sekunde (später auf 0,25 Sekunden aufgerüstet)
  • Zwei benutzerdefinierte Hochgeschwindigkeits-Vektorgrafikanzeigen
  • Eine IBM 7750-Übertragungssteuereinheit, die bis zu 112 Fernschreiberterminals unterstützen kann, einschließlich IBM 1050 Selectrics und Teletyp Modell 35s. Einige der Terminals befanden sich fern und auf das System konnte über die öffentlichen Telex- und TWX-Netze zugegriffen werden.

Einflüsse edit

Multics, das ebenfalls von Project MAC entwickelt wurde , wurde in den 1960er Jahren als Nachfolger von CTSS gestartet – und inspirierte wiederum die Entwicklung von Unix im Jahr 1969. Einer der technischen Begriffe, die diese Systeme von CTSS übernommen haben, ist daemon .

Inkompatibles Timesharing-System (ITS), ein weiteres frühes, revolutionäres und einflussreiches MIT-Timesharing-System, wurde von Personen entwickelt, die mit der Anweisung von CTSS und später von Multics nicht einverstanden waren. der Name war eine Parodie auf "CTSS", später war der Name "Unix" eine Parodie auf "Multics". [12]

Siehe auch [ bearbeiten ]

Referenzen edit ]

  1. ^ Kompatibles Timesharing-System (1961-1973): Festschrift zum fünfzigsten Jahrestag, David Walden und Tom Van Vleck (Herausgeber), IEEE Computer Society, 2011
  2. ^ Backus, John, Computer Advanced Coding Techniques MIT 1954, Seite 16-2. Die erste bekannte Beschreibung von Computer-Time-Sharing.
  3. ^ Fortschrittsbericht Nr. 4 der Forschungs- und Bildungsaktivitäten in der Maschinenberechnung durch die kooperierenden Colleges von New England Dezember 1958, [19659116] ^ a b F. J. Corbató et al. Das kompatible Time-Sharing-System A Programmer's Guide (MIT Press, 1963) ISBN 978-0-262-03008-3. Beschreiben Sie das System und seine Befehle.
  4. ^ John McCarthy, Erinnerungen an die Geschichte des Timesharing, archiviert am 20.10.2007 auf der Wayback-Maschine (Stanford University 1983).
  5. ^ [19659111] Fortschrittsbericht Nummer 9 der Forschungs- und Bildungsaktivitäten in der Maschinenberechnung durch die kooperierenden Colleges von New England Juli 1961
  6. ^ F. J. Corbató, MM Daggett, RC Daley, Ein experimentelles Time-Sharing-System (IFIPS 1962).
  7. ^ Tom Van Vlecks Memoir der Geschichte der elektronischen Post
  8. ^ [19659111] McMillan, Robert (27. Januar 2012). "Das weltweit erste Computer-Passwort? Es war auch nutzlos". Kabelmagazin . Abgerufen am 22. März 2019 .
  9. ^ Hunt, Troy (26. Juli 2017). "Passwörter entwickelt: Authentifizierungsanleitung für die Neuzeit" . Abgerufen am 22. März 2019 .
  10. ^ a b Silberschatz, Abraham; Peterson, James L. (Juni 1988). "13: Historische Perspektive". Betriebssystemkonzepte . p. 514. ISBN 0-201-18760-4 .
  11. ^ Levy, Steven (2010). "Gewinner und Verlierer". Hacker: Helden der Computerrevolution – 25th Anniversary Edition (1. Aufl.). Sebastopol, Kalifornien: O'Reilly Media. S. 85–102. ISBN 978-1449388393 .

Weiterführende Literatur [ Bearbeiten

Externe Links Bearbeiten

  • Ein Experimental Timesharing-System, Fernando J. Corbato, Marjorie Merwin Daggett, Robert C. Daley, Rechenzentrum, Massachusetts Institute of Technology, Cambridge, Massachusetts
  • Kompatibles Timesharing-System (1961-1973): Festschrift zum fünfzigsten Jahrestag
  • Oral History Interview mit John McCarthy vom Charles Babbage Institute der University of Minnesota. Erläutert Computerentwicklungen am MIT, einschließlich Timesharing.
  • IBM 7094 und CTSS: Persönliche Erinnerungen von Tom Van Vleck, einem Systemprogrammierer auf CTSS.
  • Der Ursprung der Shell beschreibt die Entwicklung von RUNCOM zur modernen Shell.
  • CTSS-Quelle in Paul Pierces Sammlung.
  • CIO: 40 Jahre Multics, 1969-2009: Interview mit CTSS und Multics-Entwickler Fernando J. Corbato.
  • Interview mit Fernando J. Corbató, Charles Babbage Institute, University of Minnesota. Erläutert zahlreiche Computerentwicklungen am MIT, darunter CTSS.
  • Interview mit Robert M. Fano vom Charles Babbage Institute der University of Minnesota zur Oral History. Erläutert Computerentwicklungen am MIT, einschließlich CTSS.
  • Dave Pitts 'IBM 7094-Unterstützung – Enthält einen Simulator, einen Cross-Assembler und einen Linker, mit denen CTSS erstellt und ausgeführt werden kann. Die Site enthält auch eine CTSS-Quelle. Das CTSS funktioniert vollständig auf dem Simulator.


Leave a Reply

Your email address will not be published. Required fields are marked *