RSTS/E - RSTS/E

RSTS
Rsts Spike.png
Rstse-10 1.png
RSTS/E 10.1, uruchamianie DCL CLI
Deweloper Digital Equipment Corporation , później Mentec
Napisane w język asemblera MACRO-11 , BASIC-PLUS -2, DCL , Forth
Stan pracy Brak rozwoju, nadal dostępny
Model źródłowy Zamknięte źródło
Pierwsze wydanie 1970 ; 51 lat temu ( 1970 )
Najnowsze wydanie RSTS 10.1 / 1992 ; 29 lat temu ( 1992 )
Dostępne w język angielski
Metoda aktualizacji Łaty binarne, kompletne pliki binarne
Menedżer pakietów UTWORZYĆ KOPIĘ ZAPASOWĄ
Platformy PDP-11
Typ jądra Systemy operacyjne z podziałem czasu
Domyślny
interfejs użytkownika
Interfejs wiersza poleceń : DCL (Digital Command Language)
Licencja Prawnie zastrzeżony
Poprzedzony TSS/8

RSTS ( / r ɪ s t ɪ s / ) jest dla wielu użytkowników w czasie dzielenia systemu operacyjnego , pierwotnie opracowany przez Evansa Griffiths & Hart Bostonu, a nabyte przez Digital Equipment Corporation (DEC, obecnie część Hewlett Packard ) dla Seria PDP-11 16-bitowych minikomputerów . Pierwsza wersja RSTS (RSTS-11, wersja 1 ) została wdrożona w 1970 roku przez inżynierów oprogramowania DEC , którzy opracowali system operacyjny z podziałem czasu TSS-8 dla PDP-8 . Ostatnia wersja RSTS (RSTS/E, wersja 10.1 ) została wydana we wrześniu 1992 roku. RSTS-11 i RSTS/E są zwykle określane jako „RSTS” i ten artykuł będzie zazwyczaj używał krótszej formy.

Akronimy i skróty

  • BTSS (Basic Time Sharing System – nigdy nie sprzedawany) – Imię RSTS.
  • CCL ( Concise Command Language ) – odpowiednik polecenia uruchomienia programu przechowywanego w interpreterze wiersza poleceń .
  • CIL (Core Image Library) — podobna do biblioteki współdzielonej (.so) w systemie Linux lub .DLL w systemie Microsoft Windows .
  • CILUS (Core Image Library Update and Save) – Program do manipulowania plikiem CIL.
  • CLI (Interpreter wiersza poleceń) — zobacz Interfejs wiersza poleceń .
  • CUSPs (Commonly Used System Programs) — aplikacje do zarządzania systemem, takie jak Menedżer zadań lub Edytor rejestru w systemie Microsoft Windows . W RSTS-11 programy CUSP zostały napisane w BASIC-Plus, podobnie jak programy użytkownika.
  • DCL (Digital Command Language) — patrz DIGITAL Command Language .
  • DTR (DATATRIEVE) – język programowania
  • FIP (File Information Processing) – obszar zamieszkania do wydawania wniosków o plik
  • FIRQB (File Information Request Queue Block) — struktura danych zawierająca informacje o żądaniach plików.
  • KBM (Monitor klawiatury) – analogiczny do interpretera wiersza poleceń.
  • LAT (Local Area Transport) – poprzednik technologii cyfrowej TCP/IP
  • MFD (Master File Directory) – Katalog główny systemu plików.
  • PBS (usługi wsadowe drukowania)
  • PIP ( program wymiany urządzeń peryferyjnych )
  • PPN (Project Programmer Number) – Analogicznie do GID i UID w Uniksie.
  • RDC (Remote Diagnostics Console) – Zamienny panel przedni dla PDP-11, który wykorzystywał połączenie szeregowe z terminalem konsoli lub modemem zamiast świateł i przełączników do sterowania procesorem.
  • RSTS-11 (Resource Sharing Time Sharing System) – Pierwsza komercyjna nazwa produktu dla RSTS
  • RSTS/E (Resource Sharing Timesharing System Extended) – Obecna implementacja RSTS.
  • RTS (Run Time System) — segment kodu tylko do odczytu dostarczony przez dostawcę, który byłby mapowany do górnej części 16-bitowej przestrzeni adresowej słowa 32 KB, której program użytkownika używałby do łączenia się z systemem operacyjnym. Tylko jedna kopia RTS byłaby ładowana do pamięci RAM, ale byłaby mapowana do przestrzeni adresowej dowolnego programu użytkownika, który tego wymagał. W istocie, współdzielony, ponownie wchodzący kod, aby zmniejszyć wymagania dotyczące pamięci RAM, poprzez współdzielenie kodu między dowolnymi programami, które go wymagały.
  • RTSS (Resource Time Sharing System – nigdy nie sprzedawany) – Druga nazwa RSTS
  • SATT (Storage Allocation Truth Table) seria bloków 512 KB na każdym dysku, które wskazują, czy blok lub klaster na całym dysku został przydzielony na dysku. Bitowo, 1 wskazuje, że klaster był w użyciu; 0 oznaczało, że nie był używany.
  • SIL (Save Image Library) – nowa nazwa pliku CIL po tym, jak firma DEC zaczęła sprzedawać systemy PDP-11 z całą pamięcią półprzewodnikową i bez pamięci z rdzeniem magnetycznym, taką jak PDP-11T55.
  • SILUS (Save Image Library Update and Save) — nowa nazwa CILUS po zmianie nazw plików CIL na pliki SIL.
  • UFD (Katalog plików użytkownika) — katalog domowy użytkownika. Katalog główny systemu plików.
  • XRB (Transfer Request Block) – Struktura danych zawierająca informacje o innych typach żądań systemowych, które nie wykorzystują FIRQB do przekazywania informacji

Rozwój

lata 70.

Jądro z RSTS został zaprogramowany w asemblerze MACRO-11 , skompilowany i zainstalowany na dysku przy użyciu CILUS programu , który działa w DOS-11 systemu operacyjnego. RSTS uruchomił rozszerzoną wersję języka programowania BASIC , który DEC nazwał „ BASIC-PLUS ”. Całe oprogramowanie systemowe CUSPS dla systemu operacyjnego, w tym programy do rozliczania zasobów, logowania , wylogowania i zarządzania systemem, zostały napisane w języku BASIC-PLUS. Od 1970 do 1973 roku RSTS ran w tylko 56K bajtów z pamięci rdzenia magnetycznego (64 kilobajtów w tym pamięci odwzorowany I / O przestrzeni). Dzięki temu system może mieć do 16 terminali z maksymalnie 17 miejscami pracy. Maksymalny rozmiar programu to 16 KB. Szacuje się, że do końca 1973 roku z RSTS działa 150 licencjonowanych systemów.

W 1973 roku w RSTS (obecnie RSTS/E) dołączono obsługę zarządzania pamięcią dla nowszych minikomputerów DEC PDP-11/40 i PDP-11/45 ( PDP-11/20 był obsługiwany tylko przez RSTS-11). Wprowadzenie zarządzania pamięcią w nowszych komputerach PDP-11 nie tylko oznaczało, że maszyny te były w stanie zaadresować czterokrotnie więcej pamięci (adresowanie 18-bitowe, 256K bajtów), ale także utorowało drogę programistom do oddzielenia procesów trybu użytkownika z rdzenia jądra.

W 1975 roku obsługa zarządzania pamięcią została ponownie zaktualizowana dla nowszego 22-bitowego adresowalnego PDP-11/70 . Systemy RSTS można teraz rozszerzyć tak, aby wykorzystywały nawet dwa megabajty pamięci, obsługując do 63 zadań. Koncepcje RTS i CCL zostały wprowadzone, chociaż musiały zostać skompilowane podczas „ SYSGEN ”. Wprowadzono usługę wieloterminalową, która umożliwiłaby pojedynczemu zadaniu możliwość kontrolowania wielu terminali (łącznie 128). Wysyłanie/odbieranie dużych wiadomości oraz komunikacja międzyprocesowa stała się bardzo wyrafinowana i wydajna. Do sierpnia jest 1200 licencjonowanych systemów.

W 1977 proces instalacji RSTS nie był już zależny od DOS-11. Jądro RSTS mogło być teraz skompilowane pod RT-11 RTS , sformatowane jako plik jądra z RT-11 SILUS i skopiowane do systemu lub innych dysków, podczas gdy komputer był współdzielony w czasie. BASIC-PLUS RTS (a także RT-11, RSX-11 , TECO i RTS innych firm ) działały jako procesy w trybie użytkownika, niezależnie od jądra RSTS. Menedżer systemy mogłyby zdecydować na etapie bootstrap który RTS uruchomić jako domyślny system KBM . Do tej pory istniało około 3100 licencjonowanych systemów.

W 1978 roku dołączono ostateczną aktualizację zarządzania pamięcią dla wszystkich maszyn, które mogły obsługiwać adresowanie 22-bitowe. RSTS może teraz używać maksymalnej ilości pamięci dostępnej dla PDP-11 (4 megabajty). Dodano również obsługę trybu NADZÓR, dzięki któremu RSTS stał się pierwszym systemem operacyjnym DEC z tą funkcją. DECnet był również wspierany, a także zdalna diagnostyka przez techników serwisu terenowego w RDC w Colorado Springs, Colorado (usługa subskrypcji DEC). Do końca dekady istnieje ponad 5000 licencjonowanych systemów.

lata 80.

W 1981 roku wsparcie dla oddzielnej przestrzeni instrukcji i danych dla użytkowników z maszynami Unibus ( PDP-11/44 , PDP-11/45, PDP-11/55 i PDP-11/70) rozszerzyło ograniczenia pamięci pojedynczego programu . Kompilowanie programów do używania oddzielnych przestrzeni instrukcji i danych wkrótce da programowi do 64 kB na instrukcje i do 64 kB na buforowanie danych. DCL RTS jest zawarte, jak również wsparcie dla nowszych rewizji DECNet III.

Do 1983 roku, przy około 15 000 maszynach DEC z RSTS/E, wersja 8.0-06 zawierała obsługę najmniejszego 18-bitowego PDP-11 sprzedawanego przez DEC ( MicroPDP-11 ). Wstępnie wygenerowane jądro i CUSPS zostały dołączone do tej dystrybucji, aby ułatwić instalację na MicroPDP-11. DEC sprzedał wstępnie wygenerowaną wersję na MicroPDP-11 jako MicroRSTS po obniżonej cenie, jednak użytkownicy musieli kupić pełną wersję, jeśli mieli potrzebę wygenerowania własnego jądra. System plików został zaktualizowany i otrzymał oznaczenie RSTS Directory Structure 1 (RDS1). Wszystkie poprzednie wersje systemu plików RSTS otrzymują oznaczenie RDS0. Nowszy system plików został zaprojektowany do obsługi ponad 1700 kont użytkowników. „Obecnie uważa się, że istnieje ponad 10 000 licencjonowanych użytkowników i co najmniej taka sama liczba nielicencjonowanych użytkowników!”.

Od 1985 do 1989 RSTS stał się dojrzałym produktem w wersji 9 . DCL został zainstalowany jako podstawowy RTS, a system plików został ponownie zaktualizowany (teraz RDS1.2) w celu obsługi nowych funkcji kont użytkowników. Hasła były teraz szyfrowane przy użyciu zmodyfikowanego algorytmu DES zamiast ograniczonego do sześciu (6) znaków przechowywanych w formacie DEC Radix-50 . Przed wersją 9 istniało konto systemowe niebędące użytkownikiem w projekcie (grupie) zero (oznaczenie to [0,1]), a wszystkie konta w projekcie numer 1 były uprzywilejowane (podobnie jak konto root w systemach uniksowych). Po wydaniu wersji 9 można było utworzyć dodatkowe konta dla projektu zero, a wiele uprawnień można było indywidualnie ustawić dla dowolnego konta. Dodano obsługę protokołu LAT oraz możliwość uruchomienia najnowszej wersji DECnet IV. Te ulepszenia sieci dały każdemu użytkownikowi podłączonemu do terminala za pośrednictwem DECserver możliwość komunikowania się z maszyną RSTS równie łatwo, jak w przypadku VAX z systemem VMS . Struktura poleceń DCL między systemami operacyjnymi DEC również przyczyniła się do znajomego wyglądu i działania:

„To nie jest kolejny procesor plików pseudo-polecenia; jest on oparty na funkcjach VMS. Procesor plików poleceń DCL jest w pełni obsługiwany i zintegrowany z RSTS poprzez obszerne zmiany w DCL i monitorze. DCL wykonuje pliki poleceń w ramach twojego zadania; dlatego , nie jest wymagana żadna pseudo klawiatura ani wymuszanie poleceń na klawiaturze (jak w przypadku ATPK)."

1990

W 1994 roku DEC sprzedał firmie Mentec większość swojego oprogramowania PDP-11. Firma Digital nadal wspierała własnych klientów PDP-11 przez krótki okres później z pomocą personelu Mentec.

W 1997 roku Digital i Mentec udzielili bezpłatnej licencji każdemu, kto chciałby używać RSTS 9.6 lub wcześniejszego do niekomercyjnych celów hobbystycznych. Licencja jest ważna tylko na emulator SIMH PDP-11. Licencja obejmuje również niektóre inne cyfrowe systemy operacyjne. Kopie licencji znajdują się w autoryzowanym zestawie oprogramowania dostępnym do pobrania na oficjalnej stronie emulatora SIMH .

Dokumentacja

Standardowe uzupełnienie podręczników dokumentacji, które towarzyszą dystrybucji RSTS, składa się z co najmniej 11 dużych trójpierścieniowych segregatorów (zwanych łącznie „pomarańczową ścianą”), jednego małego trójpierścieniowego segregatora zawierającego skróconą instrukcję RSTS/E oraz kopię w miękkiej oprawie o Wprowadzenie do podstawowych AA-0155B-TK . Każdy z 11 segregatorów trójkołowych zawiera:

Przykład półki na dokumenty RSTS/E

Tom 1: Ogólne informacje i instalacja

  • Katalog dokumentacji
  • Informacje o wydaniu
  • Notatnik konserwacyjny
  • Instrukcja instalacji i aktualizacji systemu

Tom 2: Zarządzanie systemem

  • Przewodnik menedżera systemu

Tom 3: Wykorzystanie systemu

  • Podręcznik użytkownika systemu
  • Przewodnik po procedurach pisania poleceń

Tom 4: Narzędzia

  • Instrukcja obsługi narzędzi
  • Wprowadzenie do edytora EDT
  • Podręcznik użytkownika SORT/MERGE
  • Instrukcja użytkownika RUNOFF

Tom 4A: Narzędzia

  • Podręcznik edytora EDT


Tom 4B: Narzędzia

  • Podręcznik konstruktora zadań
  • Podręcznik narzędzi programisty
  • Instrukcja obsługi RT11
  • Podręcznik użytkownika TECO

Tom 5: PODSTAWOWY-PLUS

  • Podręcznik językowy BASIC-PLUS

Tom 6: Programowanie systemu

  • Instrukcja programowania

Tom 7: Programowanie MAKRO

  • Podręcznik dyrektyw systemowych
  • Instrukcja obsługi ODT

Tom 7A: Programowanie MAKRO

  • Instrukcja językowa MACRO-11
  • Przewodnik programisty MAKRO RMS-11

Tom 8: RMS

  • RMS-11: Wprowadzenie
  • Podręcznik użytkownika RMS11
  • RMS-11 Narzędzia

Operacja

Komunikacja

RSTS wykorzystuje połączenie komunikacji szeregowej do interakcji z operatorem. Połączeniem może być lokalny terminal komputerowy z interfejsem pętli prądowej 20 mA, interfejs RS-232 (albo lokalny port szeregowy, albo połączenie zdalne przez modem ) lub połączenie ethernetowe wykorzystujące DECnet lub LAT. Aż 128 terminali (przy użyciu usługi wieloterminalowej) może połączyć się z systemem RSTS, wykonując maksymalnie 63 zadania (w zależności od używanego procesora , ilości pamięci i miejsca na dysku oraz obciążenia systemu). Większość systemów RSTS nie miała tylu terminali. Użytkownicy mogą również przesyłać zadania do uruchomienia w trybie wsadowym . Istniał również program wsadowy o nazwie „ATPK”, który umożliwiał użytkownikom uruchamianie serii poleceń na wyimaginowanym terminalu (pseudo-terminalu) w trybie półinteraktywnym, podobnym do poleceń wsadowych w MS-DOS .

Logowanie [Projekt, Programista]

Użytkownicy połączyli się z systemem, wpisując polecenie LOGIN (lub HELLO) na wylogowanym terminalu i naciskając klawisz powrotu. Właściwie, wpisanie dowolnego polecenia na wylogowanym terminalu po prostu uruchamiało program LOGIN, który następnie interpretował polecenie. Jeśli było to jedno z poleceń, które mogły być użyte przez użytkownika, który nie jest jeszcze zalogowany ("Wylogowany"), wówczas program powiązany z tym poleceniem był ŁĄCZONY, w przeciwnym razie wyświetlany był komunikat "Proszę powiedzieć HELLO" na terminalu. Przed wersją 9 użytkownik mógł również zainicjować logowanie 1-wierszowe, ale to pozostawiało hasło użytkownika na ekranie, aby każdy inny w pokoju mógł je zobaczyć (przykłady poniżej):

Logowanie i wylogowanie RSTS/E z BASIC jako domyślnym RTS
Bye

HELLO 1,2;SECRET

Ready

lub

I 1,2;SECRET

Ready

lub

LOGIN 1,2;SECRET

Ready

Status terminala można było określić na podstawie odpowiedzi na komendy, wydrukowanych przez interpreter komend. Zalogowany użytkownik komunikujący się z BASIC-PLUS KBM otrzymał komunikat „Gotowy”, a wylogowany użytkownik otrzymał komunikat „Pamiętaj”.

Użytkownik logował się, podając swój numer PPN i hasło. Numery użytkowników składały się z numeru projektu (jest to odpowiednik numeru grupy w systemie Unix), przecinka i numeru programisty. Obie liczby mieściły się w zakresie od 0 do 254, ze specjalnymi wyjątkami. Przy określaniu konta w nawiasach podano numer projektu i programisty. Typowym numerem użytkownika może być [10,5] (projekt 10, programista 5), ​​[2,146], [254,31] lub [200,220] itd. Gdy użytkownik uruchamiał program systemowy po wylogowaniu się (ponieważ Administrator systemu pozwoliła go) ich PPN liczba była [0,0], a wydaje w SYSTAT zakręcie jak **, **. Dlatego nie jest to prawidłowy numer konta.

Konta systemowe i użytkowników

W każdym projekcie programista numer 0 był zwykle zarezerwowany jako konto grupowe, ponieważ mógł się do niego odnosić specjalny symbol #. Gdyby czyjś numer użytkownika wynosił [20 103], odwołanie do nazwy pliku zaczynającej się od „#” odnosiłoby się do pliku przechowywanego na koncie o numerze użytkownika [20,0]. Ta funkcja byłaby przydatna w środowiskach edukacyjnych, ponieważ programista numer 0 mógłby być nadany instruktorowi zajęć, a poszczególnym studentom nadawałyby konta o tym samym numerze projektu, a instruktor mógłby przechowywać na swoim koncie pliki oznaczone jako udostępnione tylko w tym celu numer projektu (którym byliby tylko uczniowie z tej klasy, a nie z innych).

Istniały dwie specjalne klasy numerów projektów. Numer projektu 0 jest ogólnie zarezerwowany dla oprogramowania systemowego, a przed wersją 9 istniało tylko 1 konto projektu 0 (o nazwie [0,1]). Programiści w projekcie numer 1 byli kontami uprzywilejowanymi, co odpowiada pojedynczemu kontu „root” w systemach Unix, z tym wyjątkiem, że wszystkie konta o numerach od [1,0] do [1,254] ​​były kontami uprzywilejowanymi. Po wydaniu wersji 9 każdemu kontu można było nadać określone uprawnienia przez menedżera systemów.

Konto [0,1] służy do przechowywania samego pliku systemu operacyjnego, wszystkich systemów bibliotek uruchomieniowych oraz niektórych plików systemowych związanych z uruchamianiem systemu (komentarz autora jest pogrubiony po prawej stronie):

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

Polecenie DIR jest zainstalowanym CCL odpowiednikiem polecenia RUN dla programu DIRECT. [0,1] to numer konta (i nazwa katalogu) konta magazynu systemu operacyjnego. Byłoby to określane jako "projekt numer 0, programista numer 1".

Liczby pokazane po każdym pliku reprezentują jego rozmiar w blokach dyskowych, przy czym blok ma 512 bajtów lub 1/2 kilobajta (K). „C” oznacza, że ​​plik jest ciągły (jest przechowywany jako jeden plik bez dzielenia na części, podobnie jak pliki w systemie Microsoft Windows po defragmentacji dysku ), natomiast „P” oznacza, że ​​jest on specjalnie chroniony (nie można go usunąć, nawet przez uprzywilejowanego użytkownika, chyba że bit P jest skasowany oddzielnym poleceniem). Liczby w nawiasach (np. "< 40>") reprezentują ochronę pliku, który jest zawsze wyświetlany w postaci dziesiętnej. Zabezpieczenia wskazują, czy plik może zobaczyć dowolny inny użytkownik, przez innych użytkowników o tym samym numerze programisty, czy plik jest tylko do odczytu, czy może zostać zmieniony przez innego użytkownika oraz czy plik może zostać wykonany przez zwykłego użytkownika podając im dodatkowe przywileje. Te kody ochrony są bardzo podobne do zabezpieczeń r, w i x w systemach Unix i podobnych systemach operacyjnych, takich jak BSD i Linux . Kod 60 jest odpowiednikiem pliku prywatnego, kod 63 jest plikiem prywatnym, którego nie można usunąć, a 40 jest plikiem publicznym.

Zbiory biblioteczne są przechowywane na koncie [1,1] i zwykle określane jest logiczną nazwą LB:. Konto [1,2] jest konto uruchamiania systemu (podobnie jak w systemie UNIX Uruchamianie pod root), i zawiera system guzków , które mogłyby się odwoływać poprzedzając zakręcie nazwę ze znakiem dolara ($). "!" jest używany dla konta [1,3], "%" dla [1,4] i "&" dla [1,5]. Konto [1,1] miało również specjalny przywilej bycia jedynym kontem, na którym użytkownik zalogowany na to konto może wykonać wywołanie systemowe POKE w celu wprowadzenia wartości do dowolnej pamięci w systemie. W ten sposób numer konta [1,1] jest najbliższym odpowiednikiem „root” w systemach uniksowych.

Środowiska wykonawcze

Jedną z cech RSTS jest sposób wykonywania programów i środowisko używane do ich uruchamiania. Różne środowiska pozwoliły na programowanie w BASIC-PLUS, ulepszonym BASIC-Plus-2 oraz w bardziej tradycyjnych językach programowania, takich jak COBOL i FORTRAN . Środowiska te były oddzielone od siebie, tak że można było uruchomić program z jednego środowiska, a system przełączał się do innego środowiska podczas uruchamiania innego programu, a następnie przywracał użytkownika do oryginalnego środowiska, w którym zaczął. Środowiska te były określane jako RTS . Terminem dla interfejsu wiersza poleceń, który posiadała większość tych RTS-ów, był KBM . Przed wersją 9 menedżer systemu musiał określić, pod którym RTS będzie uruchamiany system, i musiał to być taki, który będzie wykonywał skompilowane programy.

Menedżer systemów może również zainstalować specjalne polecenia CCL , które mają pierwszeństwo przed wszystkimi poleceniami KBM (z wyjątkiem DCL ). CCL jest analogiczna do skrótu do programu w systemie Windows lub dowiązania symbolicznego w systemach opartych na systemie Unix. Listy CCL są instalowane jako polecenie rezydentne w pamięci albo podczas uruchamiania, albo dynamicznie, gdy system jest uruchomiony przez menedżera systemu (tj. nie są trwałe jak plik na dysku).

Po zalogowaniu użytkownik może "PRZEŁĄCZYĆ" się do dowolnego z tych środowisk, wpisać instrukcje języka w języku programowania BASIC-PLUS, wydać polecenia URUCHOM dla określonych programów lub wydać specjalne polecenie zwane CCL w celu wykonania programu z opcjami poleceń. Większość menedżerów systemów RSTS generowała jądro tak, aby zawierało jednowierszową opcję statusu „Control-T”, która informowała użytkownika, jaki program jest uruchomiony, z jakiego RTS program korzysta, ile pamięci zabiera program, ile może rozwiń i ile pamięci używał RTS .

BASIC-PLUS

Programy napisane w BASIC-PLUS działały pod BASIC RTS , co pozwoliło im do 32K bajtów pamięci (z 64K łącznie). Język został zinterpretowany, każde inne słowo kluczowe zostało wewnętrznie przekonwertowane na unikalny kod bajtowy, a zmienne i dane były indeksowane i przechowywane oddzielnie w przestrzeni pamięci. Wewnętrzny format kodu bajtowego był znany jako PCODE - kiedy wydano interaktywne polecenie SAVE, BASIC Plus RTS po prostu zapisywał obszar pamięci roboczej do pliku dyskowego z rozszerzeniem ".BAC". Chociaż ten format był nieudokumentowany, dwóch studentów inżynierii elektronicznej z Southampton University w Wielkiej Brytanii ( Nick de Smith i David Garrod ) opracowali dekompilator, który może odtwarzać pliki BAC do oryginalnego źródła BASIC Plus, wraz z oryginalnymi numerami wierszy i nazwami zmiennych (zarówno następnie pracował dla DEC). Reszta pamięci została wykorzystana przez sam BASIC RTS . Gdyby ktoś napisał programy w języku, który zezwalał na prawdziwe pliki wykonywalne, takie jak BASIC-Plus-2, FORTRAN-IV lub Macro Assembler, to ilość dostępnej pamięci wynosiłaby 56K (8K przydzielone do RTS ). Standardowy monit BASIC-PLUS to odpowiedź „Gotowy” (przykład):

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 (cyfrowy język poleceń)

Począwszy od wersji 9, DCL stał się podstawowym startowym systemem RTS, mimo że nie ma możliwości wykonywania programów binarnych. Stało się to możliwe wraz z pojawieniem się znikającego RSX RTS (patrz poniżej). DCL zostało włączone do wszystkich najnowszych wersji systemów operacyjnych DEC (RSX-11, RT-11, VMS i później OpenVMS ) w celu zapewnienia zgodności. Standardowym monitem DCL jest znak dolara „$” (przykład):

$ 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 (wykonanie systemu czasu rzeczywistego)

Programy napisane dla RSX RTS, takie jak COBOL, Macro Assembler lub późniejsze wersje BASIC-Plus-2, mogą wykorzystywać maksymalną ilość pamięci dostępnej dla programu binarnego (56K ze względu na wymagania RTS wymagającego 8K używać dla siebie). RSTS w wersji 7 i późniejszych pozwalał na włączenie RSX RTS do jądra, dzięki czemu całkowicie „znikał” z przestrzeni adresowej użytkownika, umożliwiając w ten sposób 64 KB pamięci dla programów użytkownika.

Programy ominęły ograniczenia ilości dostępnej pamięci, używając bibliotek (jeśli jest to dozwolone), stosując skomplikowane strategie nakładek lub wywołując inne programy ("Łańcuch") i przekazując im polecenia w obszarze pamięci współdzielonej o nazwie "Core Common", między innymi inne praktyki. Gdy RSX jest domyślnym KBM , standardowym monitem RSX (zarówno po zalogowaniu, jak i wylogowaniu) jest znak ">" (lub MCR "Procedura konsoli monitora") (przykład):

>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 emulował wersję Single Job dystrybucji RT-11. Podobnie jak emulacja RSX, RT-11 zajmował górne 8K pamięci, pozostawiając dolne 56K dla CUSPS , programów napisanych w FORTRAN-IV lub Macro Assembler. Gdy RT-11 jest domyślnym KBM , standardowym monitem RT-11 (zarówno po zalogowaniu, jak i wylogowaniu) jest "." znak (przykład):

.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 (edytor tekstu i korektor)

Sam edytor TECO został zaimplementowany jako RTS, aby zmaksymalizować ilość pamięci dostępnej dla bufora edycji, a także dlatego, że został po raz pierwszy zaimplementowany w RSTS V5B, przed wydaniem systemów wykonawczych ogólnego przeznaczenia (RSX i RT11). TECO był jedynym RTS dystrybuowanym z RSTS, który nie zawierał wbudowanego KBM. Użytkownik może uruchomić TECO (jak każdy inny program) uruchamiając program TECO (TECO.TEC). TECO i pokrewny QEDIT byli bezpośrednimi przodkami pierwszego edytora tekstu opartego na systemie UNIX, ED. Większość systemów RSTS używała CCL do tworzenia pliku (MAKE specyfikacja pliku), edytowania pliku (TECO specyfikacja pliku) lub uruchamiania programu TECO (MUNG specyfikacja pliku, dane). Poniższy program jest przykładem tego, jak można użyć TECO do obliczenia liczby pi (obecnie ustawionej na 20 cyfr):

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

Pisanki RSTS

Uruchomienie systemu (INIT.SYS)

Jeśli użytkownik wpisze nierozpoznane polecenie podczas uruchamiania systemu w wierszu „Opcja:” narzędzia startowego INIT.SYS, zostanie wyświetlony komunikat „Wpisz „POMOC”, aby uzyskać pomoc. Jeśli użytkownik następnie wpisze „POMOC” (wraz z cudzysłowami), odpowiedź brzmiała „Jak zabawnie, w każdym razie...”, po której następowała rzeczywista wiadomość pomocy.

Kontrolki konsoli PDP-11

Jedną z fajnych funkcji, które menedżer systemu mógł wkompilować w jądro, był obracający się wzór wyświetlania, który dawał iluzję 2 węży goniących się nawzajem wokół świateł konsoli. Normalne jądro dałoby iluzję 1 węża poruszającego się od prawej do lewej na wskaźnikach danych na dole. Jeśli menedżer systemu skompilowałby również moduł obiektu „światła”, użytkownik zobaczyłby dodatkowy wąż poruszający się od lewej do prawej w diodach adresu u góry. Udało się to osiągnąć za pomocą trybu nadzorczego w wersjach wcześniejszych niż 9.0. RSX miał również podobny wzór wyświetlania, który wyglądałby tak, jakby 2 węże bawiły się w kurczaka i wpadały na siebie na środku konsoli.

Teco pisanka

Polecenie „make” pozwalało użytkownikowi na utworzenie pliku tekstowego i automatyczne wejście do edytora tekstu TECO. Jeśli użytkownik wpisał „kochać się”, system utworzył plik o nazwie „miłość” i odpisał „Nie wojna?”.

Otwórz listę plików

Kevin Herbert, później pracujący dla firmy DEC, dodał w latach 90. nieudokumentowaną funkcję umożliwiającą użytkownikowi wpisanie ^F, aby zobaczyć listę otwartych plików, które posiadał proces użytkownika, wraz z używanymi blokami i rozmiarami plików

Data gwiezdna

Począwszy od wersji 9.0, nieudokumentowana funkcja umożliwiałaby menedżerowi systemu zmianę sposobu wyświetlania daty systemowej. RSTS stał się teraz pierwszym systemem operacyjnym, który wyświetlał datę systemową jako zestaw liczb reprezentujących datę gwiezdną, powszechnie znaną z serialu telewizyjnego Star Trek .

Dodatki innych firm

System Industries kupił jedyną licencję źródłową dla RSTS, aby wdrożyć ulepszenie o nazwieSIMACS (SImultaneous Machine ACceSs), który umożliwił ich specjalnemu kontrolerowi dysków ustawienie flagi semafora dla dostępu do dysku, umożliwiając wiele ZAPISÓW do tych samych plików w systemie RSTS, w którym dysk jest współdzielony przez wiele systemów PDP-11 RSTS. Ta funkcja została zaimplementowana w kontrolerach System Industries, które były podłączone do wielu komputerów DEC i zostały zaprojektowane przez dr Alberta Chu podczas pracy w System Industries.

Główną innowacją było użycie semafora , flagi wskazującej, który procesor dzięki współdzieleniu kooperacyjnemu ma wyłączny dostęp do zapisu.

Wymagało to wielu zmian w sposobie uzyskiwania dostępu do dysków przez system operacyjny RSTS. System FIPS (File Information Processing System), obsługujący dostęp we/wy, był w RSTS jednowątkowy. Aby umożliwić zatrzymanie dostępu do dysku, gdy inna maszyna miała aktywny dostęp do bloku, wymagało to, aby FIPS mógł przekroczyć limit czasu żądania, przejść do następnego żądania i „powrócić” do zablokowanego w sposób okrężny. Kod umożliwiający to został napisany przez Philipa Hunta podczas pracy w firmie System Industries w Milipitas w Kalifornii. Ostatecznie pracował dla Digital Equipment w rejonie Nowej Anglii pod koniec lat 80. i na początku lat 90.

SIMACS nie ograniczał się do linii produktów PDP-11 ; VAXen też mógłby z tego skorzystać.

Emulacje RSTS

ROSS/V

W 1981 roku Evans Griffiths & Hart wprowadził na rynek produkt ROSS/V . ROSS/V umożliwił wszystkim procesom trybu użytkownika RSTS ( CUSPS , RTS i programy użytkownika) możliwość uruchamiania niezmodyfikowanych pod VMS na maszynach VAX-11. Kod tej emulacji obsługiwał wszystkie procesy jądra, które normalnie byłyby obsługiwane przez jądro RSTS działające na PDP-11. Oryginalny język BASIC-PLUS, który przeszedł przez wszystkie wersje RSTS, został podzlecony przez Evans Griffiths & Hart, Inc. za stałą cenę 10 500 USD.

Inne emulatory PDP-11

RSTS i jego aplikacje mogą działać pod dowolnym emulatorem PDP-11. Aby uzyskać więcej informacji, zobacz PDP-11

maskotka RSTS

Spike i Albert

Wersje

RSTS był pierwotnie nazywany BTSS (Basic Time Sharing System). Przed rozpoczęciem wysyłki nazwa została zmieniona z BTSS na RTSS, ponieważ produkt o nazwie BTSS był już sprzedawany przez Honeywell . Prosty błąd w pisowni zmienił nazwę z RTSS na RSTS.

Wersja Data wydania Uwagi
1 Nigdy nie wydany
2A-19 1971 Zainstalowany w Carleton College i Seattle Pacific College.
2B Czerwiec 1971 Zainstalowany w Stowarzyszeniu Pomocniczym Szkoły Delaware.
2C Październik 1971 Rozszerzona obsługa oprogramowania (zapis we/wy)
3A-19 Styczeń 1972
3B maj 1972
3C Czerwiec 1972 Rozszerzona obsługa oprogramowania (tryb UPDATE)
4A-12 Październik 1972 Obsługiwany nowy sprzęt.
4B lipiec 1975 Poprawiona wersja V4A bez nowych funkcji

Dodanie nowej obsługi zarządzania pamięcią i możliwość zainstalowania większej ilości pamięci w PDP-11/40 i PDP-11/45 doprowadziło do kolejnej zmiany nazwy: RSTS-11 teraz stał się RSTS/E.

Wersja Data wydania Uwagi
5A-21 lipiec 1973 Rozszerzenia zarządzania pamięcią od 64 KB do 256 KB.
5B-24 Listopad 1974 Wprowadzono wiele plików SWAP, RTS i CCL.
5C-01 Marzec 1975 Poprawiona wersja V5B bez nowych funkcji.
6A-02 Sierpień 1975 Nowy sprzęt, adresowanie 22-bitowe (2 MB), 63 zadania.
6B-02 Luty 1977 Nowy sprzęt, SYSGEN pod RT-11, CCL w czasie wykonywania.
6C-03 Luty 1978 Obsługa DECnet Phase II, DTR, DIBOL. Tryb SUPERVISORA.
7,0 Sierpień 1978 Nowy sprzęt (4 MB), obsługa RDC.
7,1 Luty 1981 Obsługa instrukcji i przestrzeni danych trybu jądra, DECnet Phase III.
7,2 Sierpień 1982 Nowy sprzęt (napędy UDA50).
8.0-06 Kwiecień 1983 Nowy sprzęt (MicroPDP-11).
9,0-14 maj 1985 Nowy sprzęt, domyślne DCL, PBS, wiele uprawnień, zaszyfrowane hasła, nowe narzędzie do tworzenia kopii zapasowych i Stardate.
9.1-05 Październik 1985 Ulepszona obsługa sprzętu, wielowątkowy FIP, LOAD INDEX.
9,2-10 Czerwiec 1986 Obsługiwany nowy sprzęt.
9,3-20 Styczeń 1987 Ulepszona obsługa sprzętu, DECnet Phase IV.
9,4 lipiec 1987 Nowy sprzęt, harmonogram i ulepszenia usług terminalowych.
9,5-08 grudzień 1987 Zwiększono rozmiar klastra do 64, dodano BACKUP/DIR.
9,6 Wrzesień 1988 Wsparcie LAT, POMOC SPIKE.
9,7 Lipiec 1989 Nowy sprzęt, DV0: dostępny w czasie pracy, ANSI PDP-11C.
10,0 maj 1990 Historia wiersza poleceń w TTDRV.
10.1 wrzesień 1992 Poprawki Y2K.

Klony w ZSRR

Aplikacje

Biura komputerowe czasami wdrażały User-11 do zarządzania danymi w oparciu o RSTS/E .

Zobacz też

Bibliografia

Zewnętrzne linki