Betriebssystem/8 - OS/8

Betriebssystem/8
Entwickler Digital Equipment Corporation
Arbeitszustand Abgesetzt
Quellmodell Geschlossene Quelle
Erstveröffentlichung 1971 ; vor 50 Jahren ( 1971 )
Plattformen PDP-8
Standard - Benutzeroberfläche Concise Command Language (CCL)
( Befehlszeilenschnittstelle )
Lizenz Proprietär
Vorangestellt PS/8

O / 8 war das primäre Betriebssystem auf der verwendete Digital Equipment Corporation ‚s PDP-8 Mini - Computer .

Vor OS/8 gab es frühere PDP-8-Betriebssysteme:

Andere/verwandte DEC-Betriebssysteme waren: OS/78 , OS/278, OS/12. Letzteres ist eine praktisch identische Version von OS/8 und wurde mit Digitals PDP-12- Computer verwendet.

Digital freigegebene OS/8-Images für nicht-kommerzielle Zwecke, die über SIMH emuliert werden können .

Überblick

OS/8 bot eine einfache Betriebsumgebung, die in Komplexität und Skalierbarkeit den PDP-8-Computern entsprach, auf denen es lief. I/O wurde über eine Reihe von mitgelieferten Treibern unterstützt, die abgefragte (nicht Interrupt-gesteuerte) Techniken verwendeten. Die Gerätetreiber mussten geschickt geschrieben werden, da sie nur eine oder zwei Speicherseiten mit 128 12-Bit- Wörtern belegen konnten und auf jeder beliebigen Seite im Feld 0 laufen können. Dies erforderte oft erhebliche Geschicklichkeit, wie z die OPR-Anweisung (7XXX) für kleine negative Konstanten.

Der speicherresidente "Footprint" von OS/8 betrug nur 256 Wörter; 128 Wörter oben in Feld 0 und 128 Wörter oben in Feld 1. Der Rest des Betriebssystems (die USR, "User Service Routines") wurde transparent in und aus dem Speicher ausgelagert (in Bezug auf das Benutzerprogramm) wie benötigt.

Die prägnante Befehlssprache

Frühe Versionen von OS/8 hatten einen sehr rudimentären Befehlszeilen-Interpreter mit sehr wenigen grundlegenden Befehlen : GET, SAVE, RUN, ASSIGN, DEASSIGN und ODT . Mit Version 3 fügten sie ein ausgefeilteres Overlay namens CCL ( Concise Command Language ) hinzu, das viele weitere Befehle implementierte. Die CCL von OS/8 wurde direkt nach der CCL gemustert, die auf Digitals PDP-10- Systemen mit TOPS-10 gefunden wurde . Tatsächlich wurde ein Großteil des OS/8-Softwaresystems absichtlich so entworfen, dass es die TOPS-10-Betriebsumgebung so genau wie möglich nachahmt. (Die CCL-Befehlssprache wurde später auf PDP-11- Computern mit RT-11 , RSX-11 und RSTS/E verwendet und bietet eine ähnliche Benutzerbetriebsumgebung für alle drei Architekturen: PDP-8s, PDP-10s und PDP-11s .)

Das grundlegende Betriebssystem und CCL implementierten viele ziemlich ausgeklügelte Befehle, von denen viele in modernen Befehlssprachen noch nicht existieren, nicht einmal in MS-DOS , Windows oder Unix-ähnlichen Betriebssystemen.

Beispielsweise würde der Befehl COMPILE automatisch den richtigen Compiler für eine gegebene Quelldatei finden und den Compile/Assembly/Link-Zyklus starten.

Die Befehle ASSIGN und DEASSIGN ermöglichten die Verwendung von logischen Gerätenamen in einem Programm anstelle von physischen Namen (wie in MS-DOS erforderlich). Beispielsweise könnte Ihr Programm auf das Gerät FLOP:AAA.TXT schreiben, und wenn Sie zuerst ein "ASSIGN FLOP: RXA2:" ausführen, wird die Datei auf dem physischen Gerät RXA2 (dem zweiten Diskettenlaufwerk) erstellt. VAX / VMS und das Betriebssystem AmigaOS des Commodore Amiga (und andere Betriebssysteme, die um Tripos herum gebaut wurden ) machten von dieser sehr flexiblen Funktion erheblichen Gebrauch.

Der SET-Befehl war in der Lage, viele Systemoptionen einzustellen, wenn auch mit der groben Methode des Patchens von Positionen im System-Binärcode. Einer von ihnen, ein Befehl unter OS-78, war SET SYS OS8, und er aktivierte die MONITOR-Befehle, die nicht Teil von OS-78 waren.

Der Befehl BUILD könnte das Betriebssystem im Handumdrehen neu konfigurieren und sogar Gerätetreiber hinzufügen , oft ohne das Betriebssystem neu starten zu müssen.

Das Betriebssystem kann von einer Festplatte booten und die Eingabeaufforderung in weniger als einer halben Sekunde anzeigen .

Das OS/8-Dateisystem

OS/8 unterstützt ein einfaches, flaches Dateisystem auf einer Vielzahl von Massenspeichergeräten , darunter:

Dateinamen auf der PDP-8 die Form von FFFFFF.XX nahm wobei „F“ ein repräsentiert Großbuchstaben , alphanumerische Zeichen des Dateinamens und „X“ steht für eine Großschreibung, alphanumerischen Zeichen der Erweiterung (Dateityp).

  • .PA : Assemblersprache
  • .SV : gespeicherte Core-Images (ausführbare Programme)
  • .FT : Fortran-Quelldateien
  • .DA : Datendateien

Der Inhalt jeder gegebenen Datei wurde zusammenhängend in einem einzigen "Extent" gespeichert. PIP enthielt eine Option zum Komprimieren ("Squeeze") des Dateisystems, so dass der gesamte nicht zugewiesene Speicherplatz am Ende der Platte auf ein einziges Extent verschoben wurde. Dies könnte durch den SQuish CCL- Befehl aufgerufen werden , ähnlich wie MUNG verwendet werden könnte, um ein TECO- Makro auszuführen .

OS/8-Volumes hatten eine sehr begrenzte maximale Speichergröße (4096 Blöcke mit 256 12-Bit-Wörtern) und die RK05 (2,4 MB) Moving-Head-Disk überstieg diese Größe: "1,6 Millionen Speicherwörter". Aus diesem Grund wurden RK05-Kassetten in zwei Partitionen unterteilt. Beispielsweise wäre der erste RK05 auf einem System sowohl als RKA0: (SY:) als auch als RKB0: bekannt. Diese Unterteilung wurde allgemein als "die obere Oberfläche" und "die untere Oberfläche" angesehen, aber dies war falsch; es waren tatsächlich "die äußeren Zylinder" und "die inneren Zylinder".

ASCII-Dateien

ASCII-Dateien wurden als 3 8-Bit-Zeichen pro Paar von 12-Bit-Wörtern gespeichert: Zeichen 1 und 2 rechts von den Wörtern 1 und 2, wobei die Bits 0-3 und 4-7 des 3. Zeichens in den Bits ganz links von gespeichert sind das Wortpaar.

  • WORT 1: c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
  • WORT 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7
    ASCII-Dateien enden mit STRG/Z (ASCII 232).

OS/8-Datumsformat

OS/8 hat die 12-Bit-Wörter des PDP-8 zum Speichern von Daten wie folgt zugewiesen:

  • 4 Bit für den Monat
  • 5 Bits für das Datum darin
  • 3 Bit für das Jahr.

Y3B! Dies wurde erkannt, als COS-310 entwickelt wurde.

OS/8 CUSPs (Dienstprogramme)

Die mit OS/8 gelieferten CUSPs (Commonly-Used System Programs, dh Dienstprogramme) enthalten:

  • BUILD (das Programm zum Installieren eines konfigurierten OS/8-Systems auf einem Massenspeicher)
  • DIR (das Programm zum Auflisten von Verzeichnissen)
  • EDIT (Ein zeilenorientierter Editor)
  • MACREL (Ein Relocating-Assembler, der im Gegensatz zu PAL Makros implementiert. Geschrieben von Stanley Rabinowitz von DECs Small Systems Group. Stan hatte ein ASCII-Artwork-Bild eines Fisches in seinem Büro, auf dem "MACREL IS A FISH" stand.)
  • FLAP (ein von RALF abgeleiteter absoluter Assembler)
  • FORTRAN- II.
  • FOTP (File-Oriented Transfer Program, eine Alternative zu PIP)
  • PAL (Der Assembler)
  • PIP (das Peripheral Interchange Program, das zum Kopieren von Dateien verwendet wird)
  • PIP10 (eine Version von PIP zum Kopieren von Dateien von PDP-10 DECtapes)
  • RALF (Ein weiterer umziehender Assembler für das FPP)
  • TECO (Text Editor and COrrector, ein viel ausgereifterer Editor). Der MUNG-Befehl führte TECO-Makros aus.
  • CCL, der Kommandozeilen-Interpreter , wurde in Quellform geliefert und konnte vom Benutzer erweitert werden.

Programmiersprachen

BASIC

Optional standen ein Single-User- BASIC und zwei Multi-User-Versionen von BASIC zur Verfügung.

Das Single-User-BASIC verwendet mehrere Overlays, um die volle Funktionalität der Sprache bereitzustellen; Wenn OS/8 von einem DECtape gebootet wurde, trat jedes Mal eine deutliche Verzögerung auf, wenn BASIC die Overlays wechseln musste, da sie vom Band gelesen werden mussten.

Die Mehrbenutzerversionen von BASIC (EDU20 und EDU25) unterschieden sich nur darin, ob sie blockersetzbare Geräte (DECtape oder Disk) unterstützten. Aufgrund von Kostenbeschränkungen hatten viele PDP-8-Lesegeräte für gestanzte Papierstreifen als einziges Massenspeicher-E/A-Gerät. EDU20 wurde von Papierband geladen und konnte auf einem Papierbandschreiber ausgeben, wenn die Maschine einen hatte, während EDU25 die Struktur eines Dateisystems verstand, von DECtape oder Diskette laden und Dateien auf DECtape oder Diskette erstellen konnte. Beide könnten mehrere BASIC-Programme gleichzeitig ausführen, indem sie einen primitiven Task-Scheduler verwenden, der zwischen den angeschlossenen Terminals herumläuft. Der Speicher war immer sehr knapp, da die PDP-8 Kernspeicher verwendete, der im Vergleich zur RAM-Technologie, die einige Jahre später auf den Markt kam, extrem teuer war. In nur 8K 12-Bit-Worten konnte EDU20 bis zu 4 Terminals gleichzeitig unterstützen, obwohl mehr Speicher empfohlen wurde. EDU25 erforderte eine zusätzliche 4K-Speicherbank (für mindestens 12K), da der Code einen Plattengerätetreiber und einen Dateisystem-Handler enthielt. Während der Ausführung waren EDU20 und EDU25 eigenständige Programme, die keine OS/8-Systemaufrufe verwendeten. Sobald sie vom OS/8-Befehlsinterpreter aufgerufen wurden, überschrieben sie den gesamten residenten Teil von OS/8 - alle 256 Wörter davon. Beim Start speichert EDU25 den Inhalt des Speichers auf DECtape oder Diskette und stellt ihn beim Beenden wieder her. EDU20 konnte dies jedoch nicht, da es auf Hardwarekonfigurationen ohne blockaustauschbares Gerät ausgerichtet war.

FORTRAN

Neben einem frei erhältlichen FORTRAN II Compiler gab es gegen Aufpreis auch einen ziemlich kompletten FORTRAN IV Compiler . Dieser Compiler generierte Code für den optionalen FPP-8-Gleitkommaprozessor, der im Wesentlichen eine separate CPU war und sich nur den Speicher mit der PDP-8-CPU teilte. Wenn Sie die FPP-8-Option installiert hätten, würde der FORTRAN-Laufzeitcode dies erkennen und das FPP-8 verwenden, um den Hauptprogrammcode auszuführen, und die PDP-8-CPU würde als E/A-Prozessor laufen. Wenn Sie das FPP-8 nicht hätten, würde der Laufzeitcode stattdessen einen FPP-8-Interpreter aufrufen, der auf der PDP-8-CPU läuft, sodass das Programm weiterhin ausgeführt würde, jedoch mit erheblich reduzierter Geschwindigkeit.

Dieser FORTRAN IV Compiler in Version 1 hatte den interessanten Fehler, dass DO-Schleifen falsch gezählt wurden: DO-Schleifen würden 1,2,3,5,6,7,… zählen (überspringen 4). Ein schneller Patch wurde veröffentlicht, um dies zu beheben.

Siehe auch

Verweise

Externe Links