RSTS/E - RSTS/E

RSTS
Rsts Spike.png
Rstse-10 1.png
RSTS/E 10.1, der kører DCL CLI
Udvikler Digital Equipment Corporation , senere Mentec
Skrevet i MACRO-11 montagesprog, BASIC-PLUS -2, DCL , Forth
Arbejdstilstand Ingen udvikling, stadig tilgængelig
Kildemodel Lukket kilde
Første udgivelse 1970 ; 51 år siden ( 1970 )
Seneste udgivelse RSTS V10.1 / 1992 ; 29 år siden ( 1992 )
Tilgængelig i engelsk
Opdateringsmetode Binære patches, komplette binære filer
Pakke manager BACKUP
Platforme PDP-11
Kernel type Tidsdelende operativsystemer
Standard
brugergrænseflade
Kommandolinjegrænseflade : DCL (Digital Command Language)
Licens Proprietære
Forud af TSS/8

RSTS ( / r ɪ s t ɪ s / ) er en multi-bruger tid-deling operativsystem , der oprindeligt er udviklet af Evans Griffiths & Hart of Boston, og erhvervet af Digital Equipment Corporation (DEC, nu en del af Hewlett Packard ) til PDP-11 serie af 16-bit minicomputere . Den første version af RSTS (RSTS-11, Version 1 ) blev implementeret i 1970 af DEC- softwareingeniører, der udviklede TSS-8 -tidsdelingsoperativsystemet til PDP-8 . Den sidste version af RSTS (RSTS/E, version 10.1 ) blev udgivet i september 1992. RSTS-11 og RSTS/E kaldes normalt "RSTS", og denne artikel vil generelt bruge den kortere form.

Akronymer og forkortelser

  • BTSS (Basic Time Sharing System - aldrig markedsført) - Fornavnet for RSTS.
  • CCL ( Concise Command Language ) - svarende til en kommando til at køre et program, der opbevares i kommandolinjetolken .
  • CIL (Core Image Library) - Ligner et delt bibliotek (.so) på Linux eller .DLLMicrosoft Windows .
  • CILUS (Core Image Library Update and Save) - Program til manipulation af en CIL -fil.
  • CLI (Command Line Interpreter)-Se kommandolinjegrænseflade .
  • CUSP'er (ofte anvendte systemprogrammer) - Systemstyringsprogrammer som Task Manager eller RegistreringseditorMicrosoft Windows . På RSTS-11 blev CUSP'er skrevet i BASIC-Plus ligesom brugerprogrammer.
  • DCL (Digital Command Language) - Se DIGITAL Command Language .
  • DTR (DATATRIEVE) - programmeringssprog
  • FIP (File Information Processing) - hjemmehørende område til udsendelse af filanmodninger
  • FIRQB (filinformationsanmodningskøblok) - En datastruktur, der indeholder oplysninger om filanmodninger .
  • KBM (Keyboard Monitor) - Analog til kommandolinjetolker.
  • LAT (Local Area Transport) - Digitals forgænger til TCP/IP
  • MFD (Master File Directory) - rodmappe i filsystemet.
  • PBS (Print Batch Services)
  • PIP ( Peripheral Interchange Program )
  • PPN (Project Programmer Number) - Analogt med GID og UID i Unix.
  • RDC (Remote Diagnostics Console)-Et erstatningsfrontpanel til en PDP-11, der brugte en seriel forbindelse til konsolterminalen eller et modem i stedet for lys og vippekontakter til at styre CPU'en.
  • RSTS-11 (Resource Sharing Time Sharing System)-Det første kommercielle produktnavn for RSTS
  • RSTS/E (Resource Sharing Timesharing System Extended) - Den nuværende implementering af RSTS.
  • RTS (Run Time System)-Kun læsesegment af kode leveret af leverandøren, som ville blive kortlagt til den høje ende af et 32K, 16-bit ordadresserum, som et brugerprogram ville bruge til at interface med operativsystemet. Kun en kopi af en RTS ville blive indlæst i RAM, men ville blive kortlagt til adresserummet for ethvert brugerprogram, der krævede det. I det væsentlige delt, genindtrængende kode for at reducere RAM-kravene ved at dele koden mellem alle programmer, der krævede den.
  • RTSS (Resource Time Sharing System - aldrig markedsført) - Det andet navn for RSTS
  • SATT (Storage Allocation Truth Table) en række på 512 KB blokke på hver disk, der angav, om blokken eller klyngen på hele disken blev allokeret på disken. Bitvis angav en 1, at en klynge var i brug; en 0 angav, at den ikke var i brug.
  • SIL (Save Image Library) -Det nye navn for en CIL-fil efter DEC begyndte at sælge PDP-11-systemer med al Semiconductor-hukommelse og ingen Magnetic-core-hukommelse, f.eks. PDP-11T55.
  • SILUS (Save Image Library Update and Save) - Det nye navn for CILUS, efter at CIL -filer blev omdøbt til SIL -filer.
  • UFD (User File Directory) - En brugers hjemmemappe. Rodmappe i et filsystem.
  • XRB (Transfer Request Block) - En datastruktur, der indeholder oplysninger om andre typer systemanmodninger, der ikke bruger FIRQB'er til at formidle oplysningerne

Udvikling

1970'erne

Den kerne af RSTS blev programmeret i assembler MACRO-11 , kompileret og installeret på en disk ved hjælp af CILUS programmet , der kører på en DOS-11 operativsystem. RSTS startede op i en udvidet version af det BASIC programmeringssprog, som DEC kaldte " BASIC-PLUS ". Alle systemsoftware CUSPS til operativsystemet, inklusive programmerne til ressourceregnskab, login , logout og administration af systemet, blev skrevet i BASIC-PLUS. Fra 1970 til 1973 RSTS løb på kun 56K bytes af ferritkernelager (64 kilobyte herunder hukommelse-kortlagt I / O plads). Dette ville tillade et system at have op til 16 terminaler med maksimalt 17 job. Den maksimale programstørrelse var 16K bytes. Ved udgangen af ​​1973 anslog DEC, at der var 150 licenserede systemer, der kører RSTS.

I 1973 blev understøttelse af hukommelsesstyring inkluderet i RSTS (nu RSTS/E) til de nyere DEC PDP-11/40 og PDP-11/45 minicomputere ( PDP-11/20 blev kun understøttet under RSTS-11). Indførelsen af ​​hukommelsesstyring i de nyere PDP-11-computere betød ikke kun, at disse maskiner kunne adressere fire gange mængden af ​​hukommelse (18-bit adressering, 256K bytes), det banede også vejen for udviklerne for at adskille processer i brugertilstand fra kernen af ​​kernen.

I 1975 blev support til hukommelsesstyring igen opdateret til den nyere 22-bit adresserbare PDP-11/70 . RSTS -systemer kunne nu udvides til at bruge op til to megabyte hukommelse, der kører op til 63 job. De RTS og CCL begreber blev introduceret selv om de havde skal udarbejdes i løbet af " SYSGEN ". Multi-terminal service blev introduceret, hvilket ville give et enkelt job mulighed for at styre flere terminaler (128 i alt). Send/modtagelse med stor besked og kommunikation mellem processer blev meget sofistikeret og effektiv. I august er der 1.200 licenserede systemer.

I 1977 var installationsprocessen for RSTS ikke længere afhængig af DOS-11. RSTS-kernen kunne nu kompileres under RT-11 RTS , formateres som en kernefil med RT-11 SILUS og kopieres til systemet eller andre diske, mens computeren delte tid. BASIC-PLUS RTS (samt RT-11, RSX-11 , Teco og tredjeparts RTS er) alle løb som bruger tilstand processer, er uafhængige af de RSTS kerne. En systemadministrator kunne nu i bootstrap -fasen beslutte, hvilken RTS der skulle køres som systemets standard KBM . På nuværende tidspunkt var der omkring 3.100 licenserede systemer.

I 1978 blev den endelige hukommelsesstyringsopdatering inkluderet for alle maskiner, der kunne understøtte 22bit adressering. RSTS kunne nu bruge den maksimale mængde hukommelse, der er tilgængelig for en PDP-11 (4 megabyte). Support var også inkluderet i SUPERVISORY -tilstand, hvilket gjorde RSTS til det første DEC -operativsystem med denne funktion. DECnet blev også understøttet samt fjerndiagnostik fra feltserviceteknikere ved RDC i Colorado Springs, Colorado (en DEC -abonnementstjeneste). Ved udgangen af årtiet er der over 5.000 licenserede systemer.

1980'erne

I 1981 understøttede separat instruktion og datarum for brugere med Unibus- maskiner ( PDP-11/44 , PDP-11/45, PDP-11/55 og PDP-11/70) en forlængelse af hukommelsesbegrænsningerne i et individuelt program . Kompilering af programmer til brug af separat instruktion og datarum vil snart give et program op til 64 kB til instruktioner og op til 64 kB til buffering af data. Den DCL RTS er inkluderet samt støtte til den nyere revision af DECnet III.

I 1983 inkluderede V8.0-06 med anslået 15.000 DEC-maskiner, der kører RSTS/E, understøttelse af den mindste 18-bit PDP-11, der blev solgt af DEC ( MicroPDP-11 ). En forud genereret kerne og CUSPS blev inkluderet i denne distribution for at gøre installationen på MicroPDP-11 lettere. DEC solgte den præ-genererede version på MicroPDP-11 som MicroRSTS til en reduceret pris, men brugere skulle købe den fulde version, hvis de havde behov for at generere deres egen kerne. Filsystemet blev opgraderet og fik betegnelsen RSTS Directory Structure 1 (RDS1). Alle tidligere versioner af RSTS -filsystemet får betegnelsen RDS0. Det nyere filsystem er designet til at understøtte mere end 1700 brugerkonti. "Det menes nu, at der er langt over 10.000 licenserede brugere og mindst et lige antal ulicenserede brugere!".

Fra 1985 til 1989 blev RSTS et modent produkt i version 9 -revisionerne . DCL blev installeret som den primære RTS, og filsystemet blev igen opgraderet (nu RDS1.2) for at understøtte nye brugerkontofunktioner. Adgangskoder blev nu krypteret ved hjælp af en modificeret DES-algoritme i stedet for begrænset til seks (6) tegn, der er gemt i DEC Radix-50- format. Før version 9 var der en ikke-bruger systemkonto i projektet (gruppe) nul (betegnelsen er [0,1]), og alle konti i projekt nummer 1 var privilegerede (ikke ulig rodkontoen på Unix- systemer). Efter version 9 blev frigivet, kunne der oprettes yderligere konti til projekt nul, og flere privilegier kunne indstilles individuelt for enhver konto. Understøttelse af LAT -protokollen var inkluderet samt muligheden for at køre den nyeste version af DECnet IV. Disse netværksforbedringer gav enhver bruger, der er forbundet til en terminal via en DEC -server, mulighed for at kommunikere med en RSTS -maskine, lige så let som de kunne med en VAX, der kører VMS . Den DCL kommandostruktur mellem DEC operativsystemer også bidraget til det velkendte udseende:

"Dette er ikke bare endnu en pseudokommandofilprocessor; den er baseret på VMS -funktioner. DCL -kommandofilprocessoren understøttes fuldt ud og integreres i RSTS gennem omfattende ændringer af DCL og skærmen. DCL udfører kommandofiler som en del af dit job; derfor , intet pseudotastatur eller tvang af kommandoer til dit tastatur er nødvendig (som med ATPK). "

1990'erne

I 1994 solgte DEC det meste af sin PDP-11-softwareforretning til Mentec. Digital fortsatte med at støtte sine egne PDP-11-kunder i en kort periode efter med bistand fra Mentec-personale.

I 1997 gav Digital og Mentec enhver, der ønsker at bruge RSTS 9.6 eller tidligere til ikke-kommercielle hobbyformål, en licens uden omkostninger. Licensen er kun gyldig på SIMH PDP-11-emulatoren. Licensen dækker også nogle andre digitale operativsystemer. Kopier af licensen er inkluderet i det autoriserede softwarekit, der kan downloades på SIMH -emulatorens officielle websted .

Dokumentation

Standardkomplementet af dokumentationsmanualer, der følger med en RSTS-distribution, består af mindst 11 store bindinger med tre ringe (samlet kendt som "Den orange væg"), et lille tre-ringbind, der indeholder RSTS/E Quick Reference Guide og en paperback-kopi af introduktion til BASIC AA-0155B-TK . Hver af de 11 tre-ringbind indeholder:

Eksempel på en RSTS/E dokumenthylde

Bind 1: Generel information og installation

  • Dokumentationsoversigt
  • Udgivelses noter
  • Vedligeholdelses notesbog
  • Systeminstallations- og opdateringsvejledning

Bind 2: Systemstyring

  • Systemmanagers vejledning

Bind 3: Systembrug

  • Systembrugervejledning
  • Guide til at skrive kommandoprocedurer

Bind 4: Hjælpeprogrammer

  • Hjælpeprogrammer Reference Manual
  • Introduktion til EDT Editor
  • SORT/MERGE Brugervejledning
  • RUNOFF Brugervejledning

Bind 4A: Hjælpeprogrammer

  • EDT Editor Manual


Bind 4B: Hjælpeprogrammer

  • Opgavebygger Reference Manual
  • Manual til programmeringsværktøjer
  • RT11 Utilities Manual
  • TECO Brugervejledning

Bind 5: BASIC-PLUS

  • BASIC-PLUS sprogmanual

Bind 6: Systemprogrammering

  • Programmeringsmanual

Bind 7: MACRO -programmering

  • Systemdirektiver Manual
  • ODT Reference Manual

Bind 7A: MACRO -programmering

  • MACRO-11 sprogmanual
  • RMS-11 MACRO Programmeringsguide

Bind 8: RMS

  • RMS-11: En introduktion
  • RMS11 Brugervejledning
  • RMS-11 hjælpeprogrammer

Operation

Meddelelse

RSTS bruger en seriel kommunikationsforbindelse til at interagere med operatøren. Forbindelsen kan være en lokal computerterminal med en 20 mA strømsløjfe- grænseflade, en RS-232- grænseflade (enten lokal seriel port eller fjernforbindelse via modem ) eller af en ethernetforbindelse, der anvender DECnet eller LAT. Hele 128 terminaler (ved hjælp af multi-terminal service) kunne oprette forbindelse til et RSTS-system, der kører under maksimalt 63 job (afhængigt af den anvendte processor , mængden af ​​hukommelse og diskplads og systembelastning). De fleste RSTS -systemer havde ikke nær så mange terminaler. Brugere kan også indsende job, der skal køres i batch -tilstand. Der var også et batchprogram kaldet "ATPK", der tillod brugere at køre en række kommandoer på en imaginær terminal (pseudo-terminal) i semi-interaktiv tilstand, der ligner batchkommandoer i MS-DOS .

Login [projekt, programmerer]

Brugere, der er tilsluttet systemet, ved at skrive kommandoen LOGIN (eller HELLO) på en logget terminal og trykke på retur. Faktisk startede LOGIN-programmet simpelthen ved at skrive en kommando på en udlogget terminal, som derefter fortolkede kommandoen. Hvis det var en af ​​kommandoerne, der måtte bruges af en bruger, der endnu ikke er logget ind ("Logget af"), blev det tilknyttede program for den kommando KÆDET til, ellers blev meddelelsen "Sig HELLO" udskrevet på terminalen. Før version 9 kunne en bruger også starte et 1 -linjes login, men dette efterlod brugerens adgangskode på skærmen for alle andre i rummet at se (eksempler følger):

RSTS/E login og logout med BASIC som standard RTS
Bye

HELLO 1,2;SECRET

Ready

eller

I 1,2;SECRET

Ready

eller

LOGIN 1,2;SECRET

Ready

Man kunne bestemme status for en terminal ud fra kommandosvarene, udskrevet af kommandotolken. En logget bruger, der kommunikerer med BASIC-PLUS KBM, fik prompten "Ready", og en bruger, der er logget ud, får prompten "Bye".

En bruger ville logge ind ved at angive sit PPN -nummer og adgangskode. Brugernumre bestod af et projektnummer (dette ville svare til et gruppetal i Unix), et komma og et programmeringsnummer. Begge tal lå i området 0 til 254, med særlige undtagelser. Ved angivelse af en konto blev projekt- og programmørnummer angivet i parentes. Et typisk brugernummer kan være [10,5] (projekt 10, programmerer 5), [2.146], [254,31] eller [200.220] osv. Når en bruger kørte et systemprogram, mens han var logget af (fordi systemmanager havde aktiveret det) deres PPN -nummer var [0,0], og ville blive vist i SYSTAT CUSP som **, **. Det er således ikke et gyldigt kontonummer.

System- og brugerkonti

I hvert projekt var programmerer nummer 0 normalt reserveret som en gruppekonto, da det kunne henvises til med det særlige symbol #. Hvis ens brugernummer var [20,103], ville en henvisning til et filnavn, der begynder med "#", referere til en fil, der er gemt på kontoen for brugernummeret [20,0]. Denne funktion ville være nyttig i uddannelsesmiljøer, da programmerer nummer 0 kunne udstedes til instruktøren i en klasse, og de enkeltpersoner, eleverne gav konti med det samme projektnummer, og instruktøren kunne gemme i sine kontofiler, der kun var markeret som delt for det projektnummer (som kun er elever i denne klasse og ingen andre).

To særlige klasser af projektnumre fandtes. Projektnummer 0 er generelt forbeholdt systemsoftware, og før version 9 var der kun 1 projekt 0 -konto (navngivet [0,1]). Programmører i projektnummer 1 var privilegerede konti, svarende til den enkelte konto "root" på Unix -systemer, bortset fra at kontonumrene [1,0] til [1.254] alle var privilegerede konti. Efter version 9 blev frigivet, kunne enhver konto tildeles specifikke privilegier af systemadministratoren.

Kontoen [0,1] bruges til at gemme selve operativsystemfilen, alle kørselsbibliotekssystemer og visse systemfiler vedrørende opstart af systemet (forfatterkommentarer vises med fed skrift til højre):

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.)

Den DIR kommando er et installeret CCL svarende til en RUN-kommando til DIREKTE program. [0,1] er kontonummeret (og biblioteksnavnet) på operativsystemets lagerkonto. Det vil blive omtalt som "projektnummer 0, programmeringsnummer 1".

Tallene vist efter hver fil repræsenterer dens størrelse i diskblokke, en blok er 512 bytes eller 1/2 kilobyte (K). "C" angiver, at filen er sammenhængende (gemmes som en fil uden at blive adskilt i stykker, svarende til filer på et Microsoft Windows -system, efter at et drev er blevet defragmenteret ), mens "P" angiver, at den er specielt beskyttet (kan ikke slettes, selv af en privilegeret bruger, medmindre P -bit ryddes ved separat kommando). Tallene i parentes (som "<40>") repræsenterer beskyttelsen af ​​filen, som altid vises i decimal. Beskyttelse angiver, om filen kan ses af en anden bruger, af andre brugere med det samme programmeringsnummer, hvis filen kun er læst, eller om den kan ændres af en anden bruger, og om filen kan eksekveres af en almindelig bruger, der giver dem yderligere privilegier. Disse beskyttelseskoder ligner meget r, w og x -beskyttelsen i Unix og lignende operativsystemer som BSD og Linux . Kode 60 svarer til en privat fil, kode 63 er en privat ikke-sletbar fil, og 40 er en offentlig fil.

Biblioteksfiler opbevares [1, 1], og det refereres normalt til det logiske navn LB :. Kontoen [1,2] er systemstartkontoen (omtrent som et unix -system, der starter under root), og indeholder systemet CUSPS, der kan refereres til ved at præfiksere CUSP -navnet med et dollartegn ($). "!" bruges til konto [1,3], "%" for [1,4] og "&" til [1,5]. Kontoen [1,1] havde også det særlige privilegium at være den eneste konto, hvor en bruger, der er logget ind under denne konto, har tilladelse til at udføre POKE -systemopkaldet for at sætte værdier i enhver hukommelse i systemet. Kontonummeret [1,1] er således det nærmeste svar til "root" på Unix-baserede systemer.

Run-time miljøer

En af funktionerne i RSTS er midlerne til udførelse af programmer og det miljø, der bruges til at køre dem. De forskellige miljøer tillod programmering i BASIC-PLUS, den forbedrede BASIC-Plus-2 og i mere traditionelle programmeringssprog som COBOL og FORTRAN . Disse miljøer var adskilt fra hinanden, så man kunne starte et program fra ét miljø, og systemet ville skifte til et andet miljø, mens man kørte et andet program, og derefter returnere brugeren til det oprindelige miljø, de startede med. Disse miljøer blev omtalt som en RTS . Betegnelsen for kommandolinjegrænsefladen, som de fleste af disse RTS'er havde, var KBM . Før version 9 skulle systemadministratoren definere, hvilket RTS systemet ville starte under, og det skulle være en, der ville udføre kompilerede programmer.

En systemadministrator kan også installere særlige CCL -kommandoer, som har forrang for alle KBM -kommandoer (med undtagelse af DCL ). En CCL er analog med en genvej til et program på et Windows-system eller et symbolsk link på Unix-baserede systemer. CCL'er installeres som en hukommelsesbaseret kommando enten under opstart eller dynamisk, mens systemet kører af systemets manager (dvs. det er ikke permanent som en diskfil).

Når den er logget ind, kan en bruger "SKIFTE" til et hvilket som helst af disse miljøer, skrive sprogudtalelser i programmeringssproget BASIC-PLUS, udstede RUN-kommandoer til bestemte programmer eller udstede en særlig kommando kaldet en CCL for at udføre et program med kommandoindstillinger. De fleste RSTS-systemadministratorer genererede kernen til at omfatte "Control-T" en linje statusindstilling, der kunne fortælle brugeren, hvilket program de kørte, under hvilken RTS programmet brugte, hvor meget hukommelse programmet tog, hvor meget det kunne udvide til, og hvor meget hukommelse RTS brugte.

BASIC-PLUS

Programmer skrevet i BASIC-PLUS kørte under BASIC RTS , hvilket tillod dem op til 32K byte hukommelse (ud af 64K i alt). Sproget blev fortolket, idet hvert forskellige søgeord blev internt konverteret til en unik byte -kode, og variablerne og dataene blev indekseret og lagret separat i hukommelsesrummet. Det interne byte -kodeformat blev kendt som PCODE - da den interaktive SAVE -kommando blev udsendt, gemte BASIC Plus RTS simpelthen arbejdshukommelsesområdet til en diskfil med en ".BAC" -udvidelse. Selvom dette format var udokumenteret, udviklede to elektroniske ingeniørstudenter fra Southampton University i Storbritannien ( Nick de Smith og David Garrod ) en dekompilerer, der kunne reverse BAC -filer til deres originale BASIC Plus -kilde, komplet med originale linjenumre og variabelnavne (begge efterfølgende arbejdet for DEC). Resten af ​​hukommelsen blev brugt af BASIC RTS selv. Hvis man skrev programmer på et sprog, der tillod ægte binære eksekverbare filer som BASIC-Plus-2, FORTRAN-IV eller Macro Assembler, ville mængden af ​​tilgængelig hukommelse være 56K (8K allokeret til RTS ). Standard BASIC-PLUS-prompten er "Ready" -svaret (eksempel):

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 (Digital Command Language)

Fra og med version 9 blev DCL den primære opstart -RTS , selvom den ikke har mulighed for at udføre binære programmer. Dette blev muligt med fremkomsten af ​​den forsvindende RSX RTS (se nedenfor). DCL blev indarbejdet i alle de seneste versioner af DECs operativsystemer (RSX-11, RT-11, VMS og senere OpenVMS ) for kompatibilitet. Standard DCL -prompten er dollar "$" -tegnet (eksempel):

$ 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)

Programmer, der blev skrevet til RSX RTS såsom COBOL, Macro Assembler eller senere udgivelser af BASIC-Plus-2, kunne udnytte den maksimale mængde hukommelse, der er tilgængelig for et binært program (56K på grund af kravene til en RTS, der har brug for top 8K at bruge til sig selv). RSTS version 7 og senere tillod RSX RTS at blive inkluderet i kernen, hvilket gjorde det helt "forsvundet" fra brugeradresserummet, hvilket tillod 64K byte hukommelse til brugerprogrammer.

Programmer kom uden om begrænsningerne i mængden af ​​tilgængelig hukommelse ved at bruge biblioteker (når det er tilladt), ved komplicerede overlejringsstrategier eller ved at kalde andre programmer ("Chaining") og sende dem kommandoer i et delt hukommelsesområde kaldet "Core Common" blandt anden praksis. Når RSX er standard KBM , er standard RSX -prompten (både logget ind og logget ud) ">" (eller MCR "Monitor Console Routine") -tegnet (eksempel):

>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

RT-11 RTS emulerede Single Job-versionen af ​​RT-11-distributionen. Ligesom RSX-emuleringen besatte RT-11 de øverste 8K hukommelse og efterlod de nederste 56K til CUSPS , programmer skrevet i FORTRAN-IV eller Macro Assembler. Når RT-11 er standard KBM , er standard RT-11-prompten (både logget ind og logget af) "." tegn (eksempel):

.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 (Teksteditor og COrrector)

Den TECO redaktør var selv implementeret som en RTS at maksimere mængden af hukommelse til rådighed for redigering buffer, og også fordi det blev først implementeret i RSTS V5B, før udgivelsen af de generelle formål runtime systemer (RSX og RT11). TECO var den eneste RTS distribueret med RSTS, der ikke indeholdt en indbygget KBM. Brugeren ville starte TECO (som ethvert andet program) ved at køre et TECO -program (TECO.TEC). TECO og det affine QEDIT var de direkte forfædre til den første UNIX-baserede tekstredaktør, ED. De fleste RSTS -systemer brugte CCL'er til at oprette en fil (MAKE filespec), redigere en fil (TECO filespec) eller køre et TECO -program (MUNG filespec, data). Følgende program er et eksempel på, hvordan TECO kan bruges til at beregne pi (aktuelt indstillet til 20 cifre):

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 påskeæg

Systemstart (INIT.SYS)

Hvis en bruger skrev en ikke -genkendt kommando ved systemstart til prompten "Option:" i INIT.SYS, startværktøjet, blev meddelelsen "Type 'HELP' for hjælp" vist. Hvis brugeren efterfølgende skrev 'HJÆLP' (inklusive citater) til prompten, var svaret "Hvor sjovt alligevel ..." efterfulgt af den faktiske hjælpemeddelelse.

PDP-11 konsollamper

En af de flotte funktioner, som en systemadministrator kunne kompilere ind i kernen, var et roterende displaymønster, der gav illusionen af ​​2 slanger, der jagtede hinanden rundt om konsollamperne. Den normale kerne ville give en illusion om, at 1 slange bevæger sig fra højre til venstre i datalyserne på tværs af bunden. Hvis systemadministratoren også kompilerede objektmodulet "lys", ville brugeren se en ekstra slange bevæge sig fra venstre mod højre i adresselamperne på toppen. Dette blev opnået ved at bruge overvågningstilstand i versionerne før 9.0. RSX havde også et lignende displaymønster, der ville se ud som om 2 slanger spillede kylling og ville støde på hinanden i midten af ​​konsollen.

Teco påskeæg

Kommandoen 'make' gav en bruger mulighed for at lave en tekstfil og automatisk gå ind i TECO -teksteditor. Hvis en bruger skrev 'make love', oprettede systemet en fil kaldet 'love' og skrev tilbage, 'Not War?'

Åbn filliste

Kevin Herbert, der senere arbejdede for DEC, tilføjede en udokumenteret funktion i 90'erne for at give en bruger adgang til ^F for at se en liste over åbne filer, brugerprocessen havde, komplet med blokke i brug og filstørrelser

Stardat

Fra og med version 9.0 ville en udokumenteret funktion give systemadministratoren mulighed for at ændre visningen af ​​systemdatoen. RSTS blev nu det første operativsystem, der ville vise systemdatoen som et sæt tal, der repræsenterer en stardate som almindeligt kendt fra tv -serien Star Trek .

Tilføjelser fra andre virksomheder

System Industries købte den eneste kildelicens for RSTS til at implementere en forbedring kaldetSIMACS (SImultaneous Machine ACceSs), som tillod deres specielle diskcontroller at indstille et semaforeflag til diskadgang, hvilket tillod flere SKRIFTER til de samme filer på et RSTS-system, hvor disken deles af flere PDP-11 RSTS-systemer. Denne funktion blev implementeret i System Industries -controllere, der var knyttet til mange DEC -computere og designet af Dr. Albert Chu, mens han arbejdede hos System Industries.

Den vigtigste nyskabelse var brugen af ​​en semafor , et flag for at angive, hvilken processor, ved kooperativ deling, der har eksklusiv skriveadgang.

Dette krævede mange ændringer i måden, hvorpå adgang til diske blev udført af RSTS -operativsystemet. FIPS-systemet (File Information Processing System), der håndterede i/o-adgang, var enkeltrådet i RSTS. For at give en disk adgang til at gå i stå, mens en anden maskine havde aktiv adgang til en blok, krævede det, at FIPS kunne timeout en anmodning, gå til den næste anmodning og 'kom tilbage' til den standset i en runde robin måde. Koden til at tillade dette blev skrevet af Philip Hunt, mens han arbejdede hos System Industries i Milipitas, CA. Til sidst arbejdede han for digitalt udstyr i New England -området i slutningen af ​​1980'erne og begyndelsen af ​​90'erne.

SIMACS var ikke begrænset til produktserien PDP-11 ; VAXen kunne også bruge det.

RSTS -emuleringer

ROSS/V

I 1981 markedsførte Evans Griffiths & Hart ROSS/V -produktet. ROSS/V tillod alle brugertilstandsprocesser for RSTS ( CUSPS , RTS s og brugerprogrammer) muligheden for at køre uændret under VMS på VAX-11-maskiner. Koden for denne emulering håndterede alle de kerneprocesser, der normalt ville blive håndteret af en RSTS-kerne, der kører på en PDP-11. Det originale BASIC-PLUS-sprog, der har gennemført alle versioner af RSTS, blev underleveret af Evans Griffiths & Hart, Inc. til en fast pris på $ 10.500.

Andre PDP-11 emulatorer

RSTS og dets applikationer kan køre under enhver PDP-11-emulator. For mere information, se PDP-11

RSTS maskot

Spike og Albert

Versioner

RSTS blev oprindeligt kaldt BTSS (Basic Time Sharing System). Inden forsendelsen faktisk begyndte, blev navnet ændret fra BTSS til RTSS, fordi et produkt kaldet BTSS allerede blev markedsført af Honeywell . En simpel tastefejl ændrede navnet fra RTSS til RSTS.

Version Udgivelses dato Noter
1 Aldrig frigivet
2A-19 1971 Installeret på Carleton College og Seattle Pacific College.
2B Juni 1971 Installeret hos Delaware School Auxiliary Association.
2C Oktober 1971 Forbedret softwaresupport (optag I/O)
3A-19 Januar 1972
3B Maj 1972
3C Juni 1972 Forbedret softwaresupport (UPDATE -tilstand)
4A-12 Oktober 1972 Ny hardware understøttes.
4B Juli 1975 En patchet version af V4A uden nye funktioner

Tilføjelsen af ​​ny hukommelsesstyringsstøtte og muligheden for at installere mere hukommelse i PDP-11/40 og PDP-11/45 førte til en anden navneskift: RSTS-11 blev nu til RSTS/E.

Version Udgivelses dato Noter
5A-21 Juli 1973 Hukommelsesstyringsudvidelser fra 64KB til 256KB.
5B-24 November 1974 Flere SWAP -filer, RTS og CCL introduceret.
5C-01 Marts 1975 En patched version af V5B uden nye funktioner.
6A-02 August 1975 Ny hardware, 22 bit adressering (2 MB), 63 job.
6B-02 Februar 1977 Ny hardware, SYSGEN under RT-11, CCL ved runtime.
6C-03 Februar 1978 DECnet Phase II, DTR, DIBOL understøttet. SUPERVISOR -tilstand.
7,0 August 1978 Ny hardware, (4 MB), RDC -understøttelse.
7.1 Februar 1981 Kernel mode Instruction & Data space support, DECnet Phase III.
7.2 August 1982 Ny hardware (UDA50 -drev).
8.0-06 April 1983 Ny hardware (MicroPDP-11).
9,0-14 Maj 1985 Ny hardware, DCL -standard, PBS, flere privs, hashed -adgangskoder, nyt backup -værktøj og Stardate.
9.1-05 Oktober 1985 Forbedret hardware support, multi-threaded FIP, LOAD INDEX.
9,2-10 Juni 1986 Ny hardware understøttes.
9,3-20 Januar 1987 Forbedret hardware support, DECnet fase IV.
9.4 Juli 1987 Ny hardware, forbedringer af Scheduler og Terminal Service.
9.5-08 December 1987 Klyngestørrelse steg til 64, BACKUP/DIR tilføjet.
9.6 September 1988 LAT støtte, HJÆLP SPIKE.
9.7 Juli 1989 Ny hardware, DV0: ved runtime, ANSI PDP-11C tilgængelig.
10,0 Maj 1990 Kommandolinjehistorik i TTDRV.
10.1 September 1992 Y2K rettelser.

Kloner i Sovjetunionen

Ansøgninger

Computer bureauer undertiden indsat Bruger-11 til RSTS / E-baserede data management .

Se også

Referencer

eksterne links