RSTS/E - RSTS/E

RSTS
Rsts Spike.png
Rstse-10 1.png
RSTS/E 10.1, auf dem die DCL-CLI ausgeführt wird
Entwickler Digital Equipment Corporation , später Mentec
Geschrieben in MACRO-11 Assemblersprache, BASIC-PLUS -2, DCL , Forth
Arbeitszustand Keine Entwicklung, noch verfügbar
Quellmodell Geschlossene Quelle
Erstveröffentlichung 1970 ; Vor 51 Jahren ( 1970 )
Neueste Erscheinung RSTS V10.1/1992 ; vor 29 Jahren ( 1992 )
Verfügbar in Englisch
Update-Methode Binäre Patches, komplette Binärdateien
Paket-Manager BACKUP
Plattformen PDP-11
Kernel- Typ Timesharing- Betriebssysteme
Standard -
Benutzeroberfläche
Befehlszeilenschnittstelle : DCL (Digital Command Language)
Lizenz Proprietär
Vorangestellt TSS/8

RSTS ( / r ɪ s t ɪ s / ) ist ein Multi-User - Time-Sharing - Betriebssystem , ursprünglich entwickelt von Evans Griffiths & Hart von Boston und von erworbenen Digital Equipment Corporation (DEC, jetzt Teil von Hewlett Packard ) für die 16-Bit- Minicomputer der PDP-11- Serie . Die erste Version von RSTS (RSTS-11, Version 1 ) wurde 1970 von DEC- Softwareingenieuren implementiert , die das Timesharing- Betriebssystem TSS-8 für den PDP-8 entwickelten . Die letzte Version von RSTS (RSTS/E, Version 10.1 ) wurde im September 1992 veröffentlicht. RSTS-11 und RSTS/E werden normalerweise nur als "RSTS" bezeichnet und in diesem Artikel wird im Allgemeinen die kürzere Form verwendet.

Akronyme und Abkürzungen

  • BTSS (Basic Time Sharing System – nie vermarktet) – Der Vorname für RSTS.
  • CCL ( Concise Command Language ) – entspricht einem Befehl zum Ausführen eines Programms, das im Command Line Interpreter gespeichert ist .
  • CIL (Core Image Library) – Ähnlich einer gemeinsam genutzten Bibliothek (.so) unter Linux oder .DLL unter Microsoft Windows .
  • CILUS (Core Image Library Update and Save) – Programm zum Bearbeiten einer CIL-Datei.
  • CLI (Befehlszeileninterpreter) – Siehe Befehlszeilenschnittstelle .
  • CUSPs (Commonly Used System Programs) – Systemverwaltungsanwendungen wie Task-Manager oder Registrierungseditor unter Microsoft Windows . Auf RSTS-11 wurden CUSPs wie Benutzerprogramme in BASIC-Plus geschrieben.
  • DCL (Digitale Befehlssprache) – Siehe DIGITALE Befehlssprache .
  • DTR (DATATRIEVE) – Programmiersprache
  • FIP (File Information Processing) – residenter Bereich für die Ausgabe von Dateianfragen
  • FIRQB (File Information Request Queue Block) – Eine Datenstruktur, die Informationen über Dateianforderungen enthält.
  • KBM (Keyboard Monitor) – Analog zum Command Line Interpreter.
  • LAT (Local Area Transport) – Digitals Vorgänger von TCP/IP
  • MFD (Master File Directory) – Stammverzeichnis des Dateisystems.
  • PBS (Druckstapeldienste)
  • PIP ( Peripherieaustauschprogramm )
  • PPN (Project Programmer Number) – Analog zu GID und UID in Unix.
  • RDC (Remote Diagnostics Console) – Eine Ersatzfrontplatte für eine PDP-11, die eine serielle Verbindung zum Konsolenterminal oder ein Modem anstelle von Lichtern und Kippschaltern verwendet, um die CPU zu steuern.
  • RSTS-11 (Resource Sharing Time Sharing System) – Der erste kommerzielle Produktname für RSTS
  • RSTS/E (Resource Sharing Timesharing System Extended) – Die aktuelle Implementierung von RSTS.
  • RTS (Run Time System) – Nur vom Anbieter bereitgestelltes Codesegment lesen, das in das obere Ende eines 32K, 16-Bit-Wortadressraums abgebildet wird, den ein Benutzerprogramm als Schnittstelle mit dem Betriebssystem verwenden würde. Nur eine Kopie eines RTS würde in den RAM geladen, aber in den Adressraum eines beliebigen Benutzerprogramms abgebildet, das dies benötigt. Im Wesentlichen gemeinsam genutzter, wiedereintretender Code, um die RAM-Anforderungen zu reduzieren, indem der Code zwischen allen Programmen geteilt wird, die ihn benötigen.
  • RTSS (Resource Time Sharing System – nie vermarktet) – Der zweite Name für RSTS
  • SATT (Storage Allocation Truth Table) eine Reihe von 512 KB Blöcken auf jeder Platte, die angibt, ob der Block oder Cluster auf der gesamten Platte auf der Platte zugewiesen wurde. Bitweise zeigte eine 1 an, dass ein Cluster verwendet wurde; eine 0 zeigt an, dass es nicht verwendet wird.
  • SIL (Save Image Library) – Der neue Name für eine CIL-Datei, nachdem DEC mit dem Verkauf von PDP-11-Systemen mit reinem Halbleiterspeicher und ohne Magnetkernspeicher wie dem PDP-11T55 begann.
  • SILUS (Save Image Library Update and Save) – Der neue Name für CILUS, nachdem CIL-Dateien in SIL-Dateien umbenannt wurden.
  • UFD (User File Directory) – Das Home-Verzeichnis eines Benutzers. Root-Verzeichnis eines Dateisystems.
  • XRB (Transfer Request Block) – Eine Datenstruktur, die Informationen über andere Arten von Systemanforderungen enthält, die keine FIRQBs verwenden, um die Informationen zu übermitteln

Entwicklung

1970er

Der Kernel von RSTS wurde in der Assemblersprache MACRO-11 programmiert , kompiliert und mit dem CILUS- Programm auf einer Festplatte installiert , das auf einem DOS-11- Betriebssystem läuft. RSTS bootete in eine erweiterte Version der BASIC- Programmiersprache, die DEC " BASIC-PLUS " nannte. Die gesamte Systemsoftware CUSPS für das Betriebssystem, einschließlich der Programme zur Ressourcenabrechnung, Anmeldung , Abmeldung und Verwaltung des Systems, wurde in BASIC-PLUS geschrieben. Von 1970 bis 1973 lief RSTS in nur 56K Bytes von Magnetkernspeicher (64 Kilobyte einschließlich der Memory-Mapped - I / O - Raum). Damit könnte ein System bis zu 16 Terminals mit maximal 17 Jobs haben. Die maximale Programmgröße betrug 16 KB. Ende 1973 schätzte DEC 150 lizenzierte Systeme, auf denen RSTS ausgeführt wurde.

1973 wurde die Speicherverwaltungsunterstützung in RSTS (jetzt RSTS/E) für die neueren DEC - Minicomputer PDP-11/40 und PDP-11/45 aufgenommen (der PDP-11/20 wurde nur unter RSTS-11 unterstützt). Die Einführung der Speicherverwaltung in den neueren PDP-11-Computern bedeutete nicht nur, dass diese Maschinen viermal so viel Speicher adressieren konnten (18-Bit-Adressierung, 256 KByte), sondern auch den Entwicklern den Weg ebnete, Prozesse im Benutzermodus zu trennen aus dem Kern des Kernels.

1975 wurde die Speicherverwaltungsunterstützung für die neuere 22-Bit-adressierbare PDP-11/70 erneut aktualisiert . RSTS-Systeme könnten nun auf bis zu zwei Megabyte Speicher für bis zu 63 Jobs erweitert werden. Die RTS- und CCL- Konzepte wurden eingeführt, obwohl sie während " SYSGEN " einkompiliert werden mussten . Ein Multi-Terminal-Dienst wurde eingeführt, der es einem einzelnen Job ermöglicht, mehrere Terminals (insgesamt 128) zu steuern. Das Senden/Empfangen großer Nachrichten und die Kommunikation zwischen Prozessen wurden sehr ausgefeilt und effizient. Bis August gibt es 1.200 lizenzierte Systeme.

1977 war der Installationsprozess für RSTS nicht mehr von DOS-11 abhängig. Der RSTS-Kernel konnte nun unter dem RT-11 RTS kompiliert , mit RT-11 SILUS als Kernel-Datei formatiert und auf das System oder andere Platten kopiert werden, während der Computer im Timesharing war. Das BASIC-PLUS RTS (sowie RT-11, RSX-11 , TECO und RTS von Drittanbietern ) liefen alle als Benutzermodus-Prozesse, unabhängig vom RSTS-Kernel. Ein Systemmanager könnte nun während der Bootstrap-Phase entscheiden, welches RTS als Standard- KBM des Systems ausgeführt werden soll . Inzwischen gab es rund 3.100 lizenzierte Systeme.

1978 wurde das letzte Update für die Speicherverwaltung für alle Maschinen hinzugefügt, die die 22-Bit-Adressierung unterstützen konnten. RSTS konnte nun die maximale Speichermenge nutzen, die einem PDP-11 (4 Megabyte) zur Verfügung steht. Auch der SUPERVISORY-Modus wurde unterstützt, was RSTS zum ersten DEC-Betriebssystem mit dieser Fähigkeit machte. DECnet wurde ebenso unterstützt wie die Ferndiagnose durch Außendiensttechniker des RDC in Colorado Springs, Colorado (ein DEC-Abonnementservice). Bis zum Ende des Jahrzehnts gibt es über 5.000 lizenzierte Systeme.

1980er Jahre

1981 bot die Unterstützung für getrennten Befehls- und Datenraum für Benutzer mit Unibus- Maschinen ( PDP-11/44 , PDP-11/45, PDP-11/55 und PDP-11/70) eine Erweiterung der Speicherbeschränkungen eines einzelnen Programms . Das Kompilieren von Programmen, um getrennten Befehls- und Datenraum zu verwenden, würde einem Programm bald bis zu 64 kB für Befehle und bis zu 64 kB für das Puffern von Daten ergeben. Das DCL RTS ist ebenso enthalten wie die Unterstützung für die neuere Revision von DECnet III.

1983, mit geschätzten 15.000 DEC-Rechnern, auf denen RSTS/E ausgeführt wurde, enthielt V8.0-06 Unterstützung für die kleinste von DEC verkaufte 18-Bit-PDP-11 (die MicroPDP-11 ). Ein vorgenerierter Kernel und CUSPS wurden in dieser Distribution enthalten, um die Installation auf der MicroPDP-11 zu vereinfachen. DEC verkaufte die vorgenerierte Version auf dem MicroPDP-11 als MicroRSTS zu einem reduzierten Preis, jedoch mussten Benutzer die Vollversion erwerben, wenn sie ihren eigenen Kernel generieren mussten. Das Dateisystem wurde aktualisiert und erhielt die Bezeichnung RSTS Directory Structure 1 (RDS1). Alle früheren Versionen des RSTS-Dateisystems tragen die Bezeichnung RDS0. Das neuere Dateisystem unterstützt mehr als 1700 Benutzerkonten. "Man geht mittlerweile von weit über 10.000 lizenzierten Benutzern und mindestens ebenso vielen nicht lizenzierten Benutzern aus!".

Von 1985 bis 1989 wurde RSTS in den Revisionen der Version 9 zu einem ausgereiften Produkt . DCL wurde als primäres RTS installiert und das Dateisystem wurde erneut aktualisiert (jetzt RDS1.2), um neue Benutzerkontofunktionen zu unterstützen. Passwörter wurden jetzt mit einem modifizierten DES-Algorithmus verschlüsselt, anstatt auf sechs (6) Zeichen beschränkt zu sein, die im DEC Radix-50- Format gespeichert wurden. Vor Version 9 gab es ein Nicht-Benutzer-Systemkonto im Projekt (Gruppe) null (die Bezeichnung ist [0,1]), und alle Konten in Projektnummer 1 waren privilegiert (ähnlich dem Root-Konto auf Unix- Systemen). Nach der Veröffentlichung von Version 9 konnten zusätzliche Konten für das Projekt Null erstellt und mehrere Berechtigungen für jedes Konto einzeln festgelegt werden. Die Unterstützung für das LAT- Protokoll war ebenso enthalten wie die Möglichkeit, die neueste Version von DECnet IV auszuführen. Diese Netzwerkverbesserungen gaben jedem Benutzer, der über einen DEC-Server mit einem Terminal verbunden war, die Möglichkeit, mit einem RSTS-Rechner genauso einfach wie mit einem VAX mit VMS zu kommunizieren . Auch die DCL- Befehlsstruktur zwischen DEC-Betriebssystemen trug zum gewohnten Look and Feel bei:

"Dies ist nicht nur ein weiterer Pseudo-Befehlsdateiprozessor; er basiert auf VMS-Funktionen. Der DCL-Befehlsdateiprozessor wird vollständig unterstützt und durch umfangreiche Änderungen an DCL und dem Monitor in RSTS integriert. DCL führt Befehlsdateien als Teil Ihrer Arbeit aus; daher , ist keine Pseudo-Tastatur oder das Erzwingen von Befehlen an Ihre Tastatur erforderlich (wie bei ATPK)."

1990er Jahre

1994 verkaufte DEC den Großteil seines PDP-11-Softwaregeschäfts an Mentec. Digital unterstützte seine eigenen PDP-11-Kunden für kurze Zeit weiterhin mit Unterstützung von Mentec-Mitarbeitern.

1997 erteilten Digital und Mentec jedem, der RSTS 9.6 oder früher für nicht-kommerzielle Hobbyzwecke nutzen wollte, eine kostenlose Lizenz. Die Lizenz ist nur auf dem SIMH PDP-11 Emulator gültig . Die Lizenz deckt auch einige andere digitale Betriebssysteme ab. Kopien der Lizenz sind im autorisierten Software-Kit enthalten, das auf der offiziellen Website des SIMH- Emulators heruntergeladen werden kann .

Dokumentation

Die Standarddokumentation, die einer RSTS-Distribution beiliegt, besteht aus mindestens 11 großen Ordnern mit drei Ringen (gemeinsam bekannt als "Die orangefarbene Wand"), einem kleinen Ordner mit drei Ringen, der die RSTS/E-Kurzanleitung enthält, und einem Taschenbuch von Einführung in BASIC AA-0155B-TK . Jeder der 11 Drei-Ringordner enthält:

Beispiel für ein RSTS/E-Dokumentenregal

Band 1: Allgemeine Informationen und Installation

  • Dokumentationsverzeichnis
  • Versionshinweise
  • Wartungsnotizbuch
  • Handbuch zur Systeminstallation und -aktualisierung

Band 2: Systemverwaltung

  • Handbuch für Systemmanager

Band 3: Systemnutzung

  • Systemhandbuch
  • Anleitung zum Schreiben von Befehlsprozeduren

Band 4: Dienstprogramme

  • Dienstprogramme-Referenzhandbuch
  • Einführung in den EDT-Editor
  • Benutzerhandbuch SORT/MERGE
  • RUNOFF-Benutzerhandbuch

Band 4A: Dienstprogramme

  • Handbuch zum EDT-Editor


Band 4B: Dienstprogramme

  • Task Builder-Referenzhandbuch
  • Utilities-Handbuch für Programmierer
  • RT11 Utilities-Handbuch
  • TECO-Benutzerhandbuch

Band 5: BASIC-PLUS

  • BASIC-PLUS Sprachhandbuch

Band 6: Systemprogrammierung

  • Programmierhandbuch

Band 7: MAKRO-Programmierung

  • Handbuch für Systemrichtlinien
  • ODT-Referenzhandbuch

Band 7A: MAKRO-Programmierung

  • MACRO-11 Sprachhandbuch
  • RMS-11 MACRO Programmierhandbuch

Band 8: RMS

  • RMS-11: Eine Einführung
  • RMS11-Benutzerhandbuch
  • RMS-11-Dienstprogramme

Betrieb

Kommunikation

RSTS verwendet eine serielle Kommunikationsverbindung , um mit dem Operator zu interagieren. Die Verbindung kann ein lokales Computerterminal mit einer 20- mA- Stromschleifenschnittstelle , eine RS-232- Schnittstelle (entweder lokale serielle Schnittstelle oder Remote-Verbindung über Modem ) oder eine Ethernet- Verbindung mit DECnet oder LAT sein. Bis zu 128 Terminals (bei Verwendung des Multi-Terminal-Dienstes) können sich mit einem RSTS-System verbinden, das unter maximal 63 Jobs ausgeführt wird (abhängig vom verwendeten Prozessor , der Menge an Arbeitsspeicher und Plattenplatz und der Systemlast). Die meisten RSTS-Systeme hatten nicht annähernd so viele Terminals. Benutzer können auch Jobs senden, die im Batch- Modus ausgeführt werden sollen. Es gab auch ein Batch-Programm namens "ATPK", mit dem Benutzer eine Reihe von Befehlen auf einem imaginären Terminal (Pseudo-Terminal) im semi-interaktiven Modus ausführen konnten, ähnlich den Batch-Befehlen in MS-DOS .

Anmelden [Projekt, Programmierer]

Benutzer, die sich mit dem System verbinden, indem sie den LOGIN- Befehl (oder HALLO) an einem abgemeldeten Terminal eingeben und die Eingabetaste drücken. Tatsächlich startete die Eingabe eines beliebigen Befehls an einem abgemeldeten Terminal einfach das LOGIN-Programm, das dann den Befehl interpretierte. Wenn es sich um einen der Befehle handelte, die von einem noch nicht eingeloggten Benutzer verwendet werden durften ("Logged Out"), dann wurde das zugehörige Programm zu diesem Befehl verkettet, ansonsten wurde die Meldung "Please say HELLO" ausgegeben auf dem Endgerät. Vor Version 9 konnte ein Benutzer auch eine 1-Zeilen-Anmeldung initiieren, jedoch blieb das Passwort des Benutzers auf dem Bildschirm für alle anderen im Raum sichtbar (Beispiele folgen):

RSTS/E-An- und Abmeldung mit BASIC als Standard-RTS
Bye

HELLO 1,2;SECRET

Ready

oder

I 1,2;SECRET

Ready

oder

LOGIN 1,2;SECRET

Ready

Aus den Befehlsantworten, die der Befehlsinterpreter ausgibt, könnte man den Status eines Terminals ermitteln. Ein eingeloggter Benutzer, der mit dem BASIC-PLUS KBM kommuniziert, erhält die Aufforderung „Bereit“ und ein abgemeldeter Benutzer erhält die Aufforderung „Bye“.

Ein Benutzer würde sich anmelden, indem er seine PPN- Nummer und sein Passwort angibt. Benutzernummern bestanden aus einer Projektnummer (dies entspräche einer Gruppennummer in Unix), einem Komma und einer Programmiernummer. Beide Zahlen lagen im Bereich von 0 bis 254, mit besonderen Ausnahmen. Bei der Angabe eines Kontos wurden die Projekt- und Programmiernummer in Klammern eingeschlossen. Eine typische Benutzernummer könnte [10,5] (Projekt 10, Programmierer 5), [2,146], [254,31] oder [200,220] usw. sein. Wenn ein Benutzer ein Systemprogramm ausführte, während er abgemeldet war (weil die Systemmanager hatte es aktiviert) ihre PPN- Nummer war [0,0] und würde im SYSTAT CUSP als **,** erscheinen. Das ist also keine gültige Kontonummer.

System- und Benutzerkonten

In jedem Projekt war die Programmierernummer 0 meist als Gruppenkonto reserviert, da sie durch das Sonderzeichen # referenziert werden konnte. Wenn die Benutzernummer [20,103] wäre, würde ein Verweis auf einen Dateinamen, der mit "#" beginnt, auf eine Datei verweisen, die im Konto der Benutzernummer [20,0] gespeichert ist. Diese Funktion wäre in Bildungsumgebungen nützlich, da dem Dozenten einer Klasse die Programmierernummer 0 zugewiesen werden könnte und den einzelnen Schülern Konten mit derselben Projektnummer zugewiesen werden könnten und der Dozent in seinem Konto Dateien speichern könnte, die nur dafür als freigegeben gekennzeichnet sind Projektnummer (das wären nur Schüler dieser Klasse und keine andere).

Es gab zwei spezielle Klassen von Projektnummern. Die Projektnummer 0 ist im Allgemeinen für Systemsoftware reserviert, und vor Version 9 gab es nur 1 Projekt 0-Konto (mit dem Namen [0,1]). Programmierer im Projekt Nummer 1 waren privilegierte Konten, die dem einzelnen Konto "root" auf Unix-Systemen äquivalent waren, außer dass die Kontonummern [1,0] bis [1,254] ​​alle privilegierte Konten waren. Nach der Veröffentlichung von Version 9 konnte der Systemmanager jedem Konto bestimmte Berechtigungen gewähren.

Das Konto [0,1] wird verwendet, um die Betriebssystemdatei selbst, alle Laufzeitbibliothekssysteme und bestimmte Systemdateien zum Booten des Systems zu speichern (Kommentare des Autors erscheinen rechts in Fettdruck):

DIR [0,1]
 Name .Ext    Size   Prot    Date       SY:[0,1]
BADB  .SYS       0P  < 63> 06-Jun-98         List of bad blocks
SATT  .SYS       3CP < 63> 06-Jun-98         Bitmap of allocated disk storage
INIT  .SYS     419P  < 40> 06-Jun-98         Operating system loader program
ERR   .ERR      16CP < 40> 06-Jun-98         System error messages
RSTS  .SIL     307CP < 60> 06-Jun-98         Operating system itself
BASIC .RTS      73CP < 60> 06-Jun-98         BASIC-PLUS run time system
RT11  .RTS      20C  < 60> 06-Jun-98         RT-11 run time system
SWAP  .SYS    1024CP < 63> 06-Jun-98         System swap file
CRASH .SYS      35CP < 63> 06-Jun-98         System crash dump
RSX   .RTS      16C  < 60> 23-Sep-79         RSX-11 run-time system
TECO  .RTS      39C  < 60> 24-Sep-79         TECO text editor

Total of 1952 blocks in 11 files in SY:[0,1]

(Editor's note: This directory listing is previous to Version 9.)

Der DIR- Befehl ist ein installiertes CCL-Äquivalent zu einem RUN-Befehl für das DIRECT-Programm. [0,1] ist die Kontonummer (und der Verzeichnisname) des Betriebssystemspeicherkontos. Es würde als "Projektnummer 0, Programmierernummer 1" bezeichnet.

Die nach jeder Datei angezeigten Zahlen stellen ihre Größe in Plattenblöcken dar, wobei ein Block 512 Byte oder 1/2 Kilobyte (K) umfasst. "C" zeigt an, dass die Datei zusammenhängend ist (wird als eine Datei gespeichert, ohne in Teile zerlegt zu werden, ähnlich wie Dateien auf einem Microsoft Windows- System, nachdem ein Laufwerk defragmentiert wurde ), während "P" darauf hinweist, dass sie besonders geschützt ist (kann nicht gelöscht werden, auch von einem privilegierten Benutzer, es sei denn, das P-Bit wird durch einen separaten Befehl gelöscht). Die Zahlen in Klammern (wie "< 40>") stellen den Schutz für die Datei dar, die immer dezimal angezeigt wird. Der Schutz gibt an, ob die Datei von anderen Benutzern oder anderen Benutzern mit derselben Programmiernummer gesehen werden kann, ob die Datei schreibgeschützt ist oder von einem anderen Benutzer geändert werden kann und ob die Datei von einem normalen Benutzer ausgeführt werden kann ihnen zusätzliche Privilegien. Diese Schutzcodes sind den r-, w- und x-Schutzmaßnahmen in Unix und ähnlichen Betriebssystemen wie BSD und Linux sehr ähnlich . Code 60 entspricht einer privaten Datei, Code 63 ist eine private, nicht löschbare Datei und 40 ist eine öffentliche Datei.

Bibliotheksdateien werden im Konto [1,1] geführt und normalerweise mit dem logischen Namen LB: referenziert. Das Konto [1,2] ist das Systemstartkonto (ähnlich wie ein Unix-System, das unter Root gestartet wird ) und enthält die System- CUSPS , auf die verwiesen werden könnte, indem dem CUSP- Namen ein Dollarzeichen ($) vorangestellt wird . "!" wird für Konto [1,3] verwendet, "%" für [1,4] und "&" für [1,5]. Das Konto [1,1] hatte auch das besondere Privileg, das einzige Konto zu sein, bei dem ein unter diesem Konto angemeldeter Benutzer den POKE-Systemaufruf ausführen darf, um Werte in einen beliebigen Speicher im System zu übertragen. Somit ist die Kontonummer [1,1] das nächste Äquivalent zu "root" auf Unix-basierten Systemen.

Laufzeitumgebungen

Eines der Merkmale von RSTS sind die Mittel zur Ausführung von Programmen und die Umgebung, in der sie ausgeführt werden. Die verschiedenen Umgebungen ermöglichten die Programmierung in BASIC-PLUS, dem erweiterten BASIC-Plus-2 und in traditionelleren Programmiersprachen wie COBOL und FORTRAN . Diese Umgebungen waren voneinander getrennt, sodass man ein Programm aus einer Umgebung starten konnte und das System zu einer anderen Umgebung wechseln konnte, während ein anderes Programm ausgeführt wurde, und dann den Benutzer zu der ursprünglichen Umgebung zurückführte, mit der er gestartet wurde. Diese Umgebungen wurden als RTS bezeichnet . Der Begriff für die Befehlszeilenschnittstelle , die die meisten dieser RTS hatten, war KBM . Vor Version 9 musste der Systemmanager definieren, unter welchem ​​RTS das System starten würde, und es musste eines sein, das kompilierte Programme ausführte.

Ein Systemmanager kann auch spezielle CCL- Befehle installieren , die Vorrang vor allen KBM-Befehlen (mit Ausnahme von DCL ) haben. Eine CCL entspricht einer Verknüpfung zu einem Programm auf einem Windows-System oder einem symbolischen Link auf Unix-basierten Systemen. CCLs werden als speicherresidenter Befehl entweder während des Startvorgangs oder dynamisch während des Betriebs des Systems von einem Systemmanager installiert (dh sie sind nicht permanent wie eine Plattendatei).

Wenn ein Benutzer angemeldet ist, kann er zu jeder dieser Umgebungen "WECHSELN", Sprachanweisungen in der Programmiersprache BASIC-PLUS eingeben, RUN-Befehle an bestimmte Programme ausgeben oder einen speziellen Befehl namens CCL ausgeben , um ein Programm mit Befehlsoptionen auszuführen. Die meisten RSTS-Systemmanager generierten den Kernel so, dass er die einzeilige Statusoption "Control-T" enthielt, die dem Benutzer sagen konnte, welches Programm er lief, unter welchem RTS das Programm verwendet wurde, wie viel Speicher das Programm beanspruchte, wie viel es konnte erweitern und wie viel Speicher das RTS verwendet.

BASIC-PLUS

Programme, die in BASIC-PLUS geschrieben wurden, liefen unter BASIC RTS , was ihnen bis zu 32 KB Speicher (von insgesamt 64 KB) zuließ. Die Sprache wurde interpretiert, jedes unterschiedliche Schlüsselwort wurde intern in einen eindeutigen Byte-Code umgewandelt und die Variablen und Daten wurden indiziert und separat innerhalb des Speicherplatzes gespeichert. Das interne Byte-Code-Format wurde als PCODE bezeichnet - bei der Ausgabe des interaktiven SAVE-Befehls speicherte das BASIC Plus RTS einfach den Arbeitsspeicherbereich in einer Diskettendatei mit der Erweiterung ".BAC". Obwohl dieses Format undokumentiert war, entwickelten zwei Elektrotechnik-Studenten der Southampton University in Großbritannien ( Nick de Smith und David Garrod ) einen Decompiler, der BAC-Dateien in ihre ursprüngliche BASIC Plus-Quelle zurückentwickeln konnte, komplett mit Originalzeilennummern und Variablennamen (beide arbeitete anschließend für DEC). Der Rest des Speichers wurde vom BASIC RTS selbst verwendet. Wenn man Programme in einer Sprache schreiben würde, die echte binäre ausführbare Dateien wie BASIC-Plus-2, FORTRAN-IV oder Macro Assembler zulässt, dann würde der verfügbare Speicher 56K betragen (8K, die dem RTS zugewiesen sind ). Die Standard-BASIC-PLUS-Eingabeaufforderung ist die Antwort "Bereit" (Beispiel):

new
New file name--HWORLD

Ready

10 Print "Hello World"
20 Input "Press Control-T for 1 line status: ";a$
30 End
run
HWORLD  10:17 PM        01-Jan-08
Hello World
Press Control-T for 1 line status: ?
1       KB0     HWORLD+BASIC    KB(0R)  2(16)K+14K      0.2(+0.0) +0

Ready

save

Ready

compile

Ready

DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS       1   < 60>
HWORLD.BAC       7C  <124>

Total of 8 blocks in 2 files in SY:[1,2]

Ready

DCL (Digitale Befehlssprache)

Ab Version 9 wurde DCL das primäre Start- RTS , obwohl es keine Möglichkeit zum Ausführen von Binärprogrammen hat. Dies wurde mit dem Aufkommen des verschwindenden RSX RTS möglich (siehe unten). DCL wurde aus Kompatibilitätsgründen in alle neueren Versionen der Betriebssysteme von DEC (RSX-11, RT-11, VMS und später OpenVMS ) integriert. Die Standard- DCL- Eingabeaufforderung ist das Dollarzeichen "$" (Beispiel):

$ write 0 "Hello World, it is "+F$TIME()
Hello World, it is 01-Jan-08 10:20 PM
$ inquire p1 "Press Control-T for 1 line status:"
Press Control-T for 1 line status:
1       KB0      DCL+DCL       KB(0R)       4(8)K+24K       0.1(+0.1) -8
$ set verify/debug/watch
$ show memory
(show memory)
(SYSTAT/C)

Memory allocation table:
 Start   End  Length  Permanent   Temporary
   0K -   85K (  86K) MONITOR
  86K - 1737K (1652K)   (User)
1738K - 1747K (  10K)   (User)    DAPRES LIB
1748K - 1751K (   4K)   (User)    RMSRES LIB
1752K - 2043K ( 292K) ** XBUF **
2044K -  *** END ***
$

RSX (Realtime System Executive)

Programme, die für RSX RTS geschrieben wurden, wie COBOL, Macro Assembler oder spätere Versionen von BASIC-Plus-2, konnten die maximal verfügbare Speichermenge für ein Binärprogramm nutzen (56 KB aufgrund der Anforderungen eines RTS , das die oberen 8 KB benötigt). für sich selbst verwenden). Mit RSTS Version 7 und höher konnte RSX RTS in den Kernel integriert werden, wodurch es vollständig aus dem Benutzeradressraum "verschwindet" und somit 64 KB Speicher für Benutzerprogramme ermöglicht wurde.

Programme umgehen die Beschränkungen des verfügbaren Speichers, indem sie Bibliotheken verwenden (sofern zulässig), durch komplizierte Überlagerungsstrategien oder indem sie andere Programme aufrufen ("Chaining") und ihnen Befehle in einem gemeinsam genutzten Speicherbereich namens "Core Common" übergeben andere Praktiken. Wenn RSX das Standard- KBM ist , ist die Standard-RSX-Eingabeaufforderung (sowohl angemeldet als auch abgemeldet) das Zeichen ">" (oder MCR "Monitor Console Routine") (Beispiel):

>run
Please type HELLO
>HELLO 1,2;SECRET
>run
?What?
>help
Valid keyboard commands are:

ASSIGN    DISMOUNT  HELP      RUN     UNSAVE
BYE       EXIT      MOUNT     SHUTUP
DEASSIGN  HELLO     REASSIGN  SWITCH

>run CSPCOM
CSP>HWORLD=HWORLD
CSP>^Z
>RUN TKB
TKB>HWORLD=HWORLD,LB:CSPCOM.OLB/LB
TKB>//
>run HWORLD.TSK
Hello World
Press Control-T for 1 line status: ?
1       KB0     HWORLD+...RSX   KB(0R)  7(32)K+0K       0.8(+0.2) +0

>DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS       1   < 60>
HWORLD.BAC       7C  <124>
HWORLD.OBJ       2   < 60>
HWORLD.TSK      25C  <124>

Total of 35 blocks in 4 files in SY:[1,2]

>

RT-11

Der RT-11 RTS emulierte die Single Job-Version der RT-11-Distribution. Wie die RSX-Emulation belegte RT-11 die oberen 8 KB des Speichers, während die unteren 56 KB für CUSPS übrig blieben , Programme, die in FORTRAN-IV oder Macro Assembler geschrieben wurden. Wenn RT-11 das Standard- KBM ist , ist die Standard-RT-11-Eingabeaufforderung (sowohl angemeldet als auch abgemeldet) das "." Zeichen (Beispiel):

.VERSION
Please type HELLO

.HELLO 1,2;SECRET

.VERSION
RT-11SJ V3-03; RSTS/E V8.0

.R PIP
*HWORLD.MAC=KB:
        .MCALL .TTYIN,.PRINT,.EXIT
HWORLD: .ASCII /Hello World/<15><12>
        .ASCIZ /Press Control-T for 1 line status:/
        .EVEN

Start:  .PRINT #HWORLD
        .TTYIN
        .EXIT
        .END    START
^Z
*^Z

.R MACRO
HWORLD=HWORLD
*^Z

.R LINK
*HWORLD=HWORLD
*^Z

.R HWORLD.SAV
Hello World
Press Control-T for 1 line status:
1       KB0     HWORLD+RT11     KB(0R)  2(28)K+4K       0.6(+0.2) +0

..DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS       1   < 60>
HWORLD.BAC       7C  <124>
HWORLD.TSK      25C  <124>
HWORLD.MAC       1   < 60>
HWORLD.OBJ       1   < 60>
HWORLD.SAV       2C  <124>

Total of 37 blocks in 6 files in SY:[1,2]

.

TECO (Texteditor und Korrektor)

Der TECO-Editor wurde selbst als RTS implementiert, um die Menge an verfügbarem Speicher für den Bearbeitungspuffer zu maximieren, und auch, weil er erstmals in RSTS V5B implementiert wurde, bevor die universellen Laufzeitsysteme (RSX und RT11) veröffentlicht wurden. TECO war das einzige mit RSTS vertriebene RTS, das kein integriertes KBM enthielt. Der Benutzer würde TECO (wie jedes andere Programm) starten, indem er ein TECO-Programm (TECO.TEC) ausführt. TECO und das affine QEDIT waren die direkten Vorfahren des ersten UNIX-basierten Texteditors ED. Die meisten RSTS-Systeme verwenden CCLs, um eine Datei zu erstellen (MAKE filespec), eine Datei zu bearbeiten (TECO filespec) oder ein TECO-Programm (MUNG filespec, data) auszuführen. Das folgende Programm ist ein Beispiel dafür, wie TECO verwendet werden könnte, um pi zu berechnen (derzeit auf 20 Stellen eingestellt):

Ready

run TECO
*GZ0J\UNQN"E 20UN '
BUH BUV HK
QN< J BUQ QN*10/3UI
QI< \ +2*10+(QQ*QI)UA
B L K QI*2-1UJ QA/QJUQ
QA-(QQ*QJ)-2\ 10@I// -1%I >
QQ/10UT QH+QT+48UW QW-58"E 48UW %V ' QV"N QV^T '
QWUV QQ-(QT*10)UH >
QV^T @^A/
/HKEX$$
31415926535897932384

Ready

RSTS Ostereier

Systemstart (INIT.SYS)

Wenn ein Benutzer beim Systemstart einen unbekannten Befehl in die "Option:"-Eingabeaufforderung von INIT.SYS, dem Startdienstprogramm, eingab, wurde die Meldung "Hilfe 'HELP' eingeben" angezeigt. Wenn der Benutzer anschließend 'HELP' (einschließlich der Anführungszeichen) in die Eingabeaufforderung eintippte, war die Antwort "Wie amüsant, trotzdem..." gefolgt von der eigentlichen Hilfenachricht.

PDP-11 Konsolenbeleuchtung

Eine der netten Funktionen, die ein Systemmanager in den Kernel kompilieren konnte, war ein rotierendes Anzeigemuster, das die Illusion von zwei Schlangen erweckte, die sich um die Konsolenlichter herum jagen. Der normale Kernel würde die Illusion von 1 Schlange erwecken, die sich in den Datenlichtern unten von rechts nach links bewegt. Wenn der Systemmanager auch das Objektmodul "Lichter" kompilierte, würde der Benutzer eine zusätzliche Schlange sehen, die sich in den Adresslichtern oben von links nach rechts bewegt. Dies wurde durch die Verwendung des Überwachungsmodus in den Versionen vor 9.0 erreicht. RSX hatte auch ein ähnliches Anzeigemuster, das so aussehen würde, als ob 2 Schlangen Hühnchen spielten und in der Mitte der Konsole ineinander liefen.

Teco Osterei

Der Befehl 'make' ermöglichte es einem Benutzer, eine Textdatei zu erstellen und automatisch in den TECO-Texteditor zu gelangen. Wenn ein Benutzer „make love“ eintippte, erstellte das System eine Datei namens „love“ und tippte „Not War?“ zurück.

Dateiliste öffnen

Kevin Herbert, der später für DEC arbeitete, fügte in den 90er Jahren eine undokumentierte Funktion hinzu, die es einem Benutzer ermöglichte, ^F einzugeben, um eine Liste der geöffneten Dateien des Benutzerprozesses anzuzeigen, komplett mit verwendeten Blöcken und Dateigrößen

Sterne-Datum

Ab Version 9.0 würde eine nicht dokumentierte Funktion es dem Systemmanager ermöglichen, die Anzeige des Systemdatums zu ändern. RSTS war nun das erste Betriebssystem, das das Systemdatum als eine Reihe von Zahlen anzeigt, die ein Sterndatum darstellen, wie es allgemein aus der TV-Serie Star Trek bekannt ist .

Add-ons anderer Unternehmen

System Industries kaufte die einzige Quelllizenz für RSTS, um eine Erweiterung namens . zu implementierenSIMACS (SImultaneous Machine ACCeSs), die es ihrem speziellen Plattencontroller ermöglichte, ein Semaphor-Flag für den Plattenzugriff zu setzen, wodurch mehrere WRITES auf dieselben Dateien auf einem RSTS-System ermöglicht werden, bei dem die Platte von mehreren PDP-11-RSTS-Systemen gemeinsam genutzt wird. Diese Funktion wurde in System Industries-Controllern implementiert, die an viele DEC-Computer angeschlossen und von Dr. Albert Chu entworfen wurden, während er bei System Industries arbeitete.

Die Hauptinnovation war die Verwendung eines Semaphors , eines Flags, um anzuzeigen, welcher Prozessor durch kooperatives Teilen exklusiven Schreibzugriff hat.

Dies erforderte viele Änderungen an der Art und Weise, wie der Zugriff auf Datenträger durch das RSTS-Betriebssystem durchgeführt wurde. Das FIPS-System (File Information Processing System), das den E/A-Zugriff abwickelte, war in RSTS Single-Threaded. Um zuzulassen, dass ein Plattenzugriff blockiert wird, während eine andere Maschine aktiven Zugriff auf einen Block hat, muss der FIPS eine Anforderung abbrechen, zur nächsten Anforderung gehen und im Round-Robin-Verfahren zu der blockierten zurückkehren. Der Code, um dies zu ermöglichen, wurde von Philip Hunt während seiner Arbeit bei System Industries in Milipitas, CA, geschrieben. Ende der 1980er und Anfang der 90er Jahre arbeitete er schließlich für Digital Equipment in der Region Neuengland.

SIMACS war nicht auf die Produktlinie PDP-11 beschränkt ; VAXen könnte es auch verwenden.

RSTS-Emulationen

ROSS/V

1981 vermarktete Evans Griffiths & Hart das Produkt ROSS/V . ROSS/V ermöglichte allen Benutzermodusprozessen von RSTS ( CUSPS , RTS s und Benutzerprogramme) die Möglichkeit, unverändert unter VMS auf den VAX-11-Rechnern zu laufen. Der Code für diese Emulation verarbeitete alle Kernel-Prozesse, die normalerweise von einem RSTS-Kernel verarbeitet würden, der auf einem PDP-11 läuft. Die ursprüngliche BASIC-PLUS-Sprache, die alle Versionen von RSTS verwendet hat, wurde von Evans Griffiths & Hart, Inc. zu einem Festpreis von 10.500 USD untervergeben.

Andere PDP-11-Emulatoren

RSTS und seine Anwendungen können unter jedem PDP-11-Emulator ausgeführt werden. Weitere Informationen finden Sie unter PDP-11

RSTS-Maskottchen

Spike und Albert

Versionen

RSTS hieß ursprünglich BTSS (Basic Time Sharing System). Vor dem eigentlichen Versand wurde der Name von BTSS in RTSS geändert, da bereits ein Produkt namens BTSS von Honeywell vermarktet wurde . Ein einfacher Tippfehler änderte den Namen von RTSS in RSTS.

Ausführung Veröffentlichungsdatum Anmerkungen
1 Nie veröffentlicht
2A-19 1971 Am Carleton College und am Seattle Pacific College installiert.
2B Juni 1971 Installiert bei der Delaware School Auxiliary Association.
2C Oktober 1971 Erweiterte Softwareunterstützung (Record I/O)
3A-19 Januar 1972
3B Mai 1972
3C Juni 1972 Erweiterte Softwareunterstützung (UPDATE-Modus)
4A-12 Oktober 1972 Neue Hardware unterstützt.
4B Juli 1975 Eine gepatchte Version von V4A ohne neue Funktionen

Das Hinzufügen neuer Speicherverwaltungsunterstützung und die Möglichkeit, mehr Speicher in den PDP-11/40 und PDP-11/45 zu installieren, führten zu einer weiteren Namensänderung: RSTS-11 wurde jetzt RSTS/E.

Ausführung Veröffentlichungsdatum Anmerkungen
5A-21 Juli 1973 Speicherverwaltungserweiterungen von 64 KB bis 256 KB.
5B-24 November 1974 Mehrere SWAP-Dateien, RTS und CCL eingeführt.
5C-01 März 1975 Eine gepatchte Version von V5B ohne neue Funktionen.
6A-02 August 1975 Neue Hardware, 22 Bit Adressierung (2 MB), 63 Jobs.
6B-02 Februar 1977 Neue Hardware, SYSGEN unter RT-11, CCL zur Laufzeit.
6C-03 Februar 1978 DECnet Phase II, DTR, DIBOL unterstützt. SUPERVISOR-Modus.
7,0 August 1978 Neue Hardware (4 MB), RDC-Unterstützung.
7.1 Februar 1981 Kernel-Modus Instruction & Data Space-Unterstützung, DECnet Phase III.
7.2 August 1982 Neue Hardware (UDA50-Laufwerke).
8.0-06 April 1983 Neue Hardware (MicroPDP-11).
9,0-14 Mai 1985 Neue Hardware, DCL-Standard, PBS, mehrere privs, gehashte Passwörter, neues Backup-Dienstprogramm und Stardate.
9.1-05 Oktober 1985 Verbesserte Hardwareunterstützung, Multithread-FIP, LOAD INDEX.
9,2-10 Juni 1986 Neue Hardware unterstützt.
9,3-20 Januar 1987 Verbesserte Hardwareunterstützung, DECnet Phase IV.
9,4 Juli 1987 Neue Hardware-, Scheduler- und Terminaldienst-Verbesserungen.
9.5-08 Dezember 1987 Clustergröße auf 64 erhöht, BACKUP/DIR hinzugefügt.
9,6 September 1988 LAT-Unterstützung, HILFE SPIKE.
9.7 Juli 1989 Neue Hardware, DV0: zur Laufzeit ANSI PDP-11C verfügbar.
10,0 Mai 1990 Befehlszeilenverlauf in TTDRV.
10.1 September 1992 Y2K-Korrekturen.

Klone in der UdSSR

Anwendungen

Computer Büros manchmal eingesetzt Benutzer-11 für RSTS / E-basierten Datenmanagement .

Siehe auch

Verweise

Externe Links