TENEX (system operacyjny)

TENEX
Deweloper BBN
Napisane w język programowania
Stan roboczy Historyczny
Pierwsze wydanie 1969 ; 54 lata temu ( 1969 )
Cel marketingowy Komputery mainframe
Platformy PDP-10
Wpływem TOPY-10

Domyślny interfejs użytkownika
Interfejs linii komend
Licencja Prawnie zastrzeżony
zastąpiony przez TOPY-20

TENEX to system operacyjny opracowany w 1969 roku przez BBN dla PDP-10 , który później stał się podstawą systemu operacyjnego TOPS-20 firmy Digital Equipment Corporation .

Tło

W latach sześćdziesiątych BBN był zaangażowany w wiele projektów sztucznej inteligencji opartych na LISP dla DARPA , z których wiele miało bardzo duże (jak na tamte czasy) wymagania dotyczące pamięci. Jednym z rozwiązań tego problemu było dodanie stronicującego do języka LISP , umożliwiającego zapisywanie nieużywanych części pamięci na dysk w celu późniejszego przywołania w razie potrzeby. Jeden taki system został opracowany dla PDP-1 w MIT przez Daniela Murphy'ego , zanim dołączył do BBN. Wczesny grudzień maszyny były oparte na 18-bitowym słowie, co pozwalało na kodowanie adresów w pamięci o pojemności 256 kilosłów . Maszyny były oparte na drogiej pamięci rdzeniowej i nie zawierały wymaganej ilości. Pager używał najbardziej znaczących bitów adresu do indeksowania tabeli bloków na bębnie magnetycznym , który działał jako magazyn zapasowy pagera . W razie potrzeby oprogramowanie pobierze strony, a następnie przyporządkuje adres do odpowiedniego obszaru pamięci RAM .

W 1964 DEC ogłosił PDP-6 . DEC był nadal mocno zaangażowany w AI Lab MIT, a wiele żądań funkcji od hakerów LISP zostało przeniesionych do tej maszyny. Przetwarzanie 36-bitowe było szczególnie przydatne w programowaniu LISP, ponieważ przy 18-bitowej przestrzeni adresowej słowo pamięci w tych systemach zawierało dwa adresy, idealnie pasujące do wspólnego LISP CAR i CDR operacje. BBN zainteresowało się kupnem jednego do swojej pracy w zakresie sztucznej inteligencji, kiedy stały się dostępne, ale chciał, aby DEC dodał sprzętową wersję pagera Murphy'ego bezpośrednio do systemu. Dzięki takiemu dodatkowi każdy program w systemie miałby niewidoczną obsługę stronicowania, co znacznie ułatwiłoby programowanie na maszynie. DEC był początkowo zainteresowany, ale wkrótce (1966) ogłosił, że faktycznie porzuca PDP-6 i koncentruje się wyłącznie na swoich mniejszych liniach 18-bitowych i nowych 16-bitowych. PDP-6 był drogi i złożony iz tych powodów nie sprzedawał się dobrze.

Nie minęło dużo czasu, zanim stało się jasne, że DEC ponownie wkracza do branży 36-bitowej z tym, co stanie się PDP-10 . BBN rozpoczął rozmowy z DEC, aby uzyskać podsystem przywoławczy w nowej maszynie, znanej wówczas pod nazwą procesora, KA-10. DEC nie był specjalnie zainteresowany. Jednak jednym z rozwinięć tych rozmów była obsługa drugiego segmentu pamięci wirtualnej, umożliwiająca mapowanie połowy przestrzeni adresowej użytkownika na oddzielny (potencjalnie tylko do odczytu) region pamięci fizycznej. Ponadto DEC był zdecydowany utrzymać koszt maszyny na jak najniższym poziomie, na przykład wspierając systemy bare-bone z minimum 16 000 słów rdzenia i pomijając opcję szybkiego rejestru półprzewodnikowego (zastępując rdzeń) , kosztem znaczny spadek wydajności.

BBN i PDP-10

Pager BBN, około 1970 r

Mimo to BBN zdecydowało się na zakup kilku PDP-10 i zdecydowało się zbudować własny pager sprzętowy. W tym okresie rozpoczęła się debata na temat tego, jaki system operacyjny uruchomić na nowych maszynach. Przedstawiono silne argumenty przemawiające za dalszym korzystaniem z TOPS-10 w celu utrzymania działania istniejącego oprogramowania przy minimalnym wysiłku. Wymagałoby to ponownego napisania TOPS-10 w celu obsługi systemu przywoławczego, a to wydawało się poważnym problemem. Jednocześnie TOPS-10 nie obsługiwał wielu funkcji, których chcieli programiści. W końcu zdecydowali się stworzyć nowy system, ale z biblioteką emulacji, która pozwoliłaby na uruchomienie istniejącego oprogramowania TOPS-10 przy niewielkim wysiłku.

Zespół programistów — wśród nich Daniel Murphy i Daniel G. Bobrow — wybrał dla nowego systemu nazwę TENEX (TEN-EXtended). Zawierał pełny pamięci wirtualnej — to znaczy programy nie tylko mogły uzyskiwać dostęp do pełnej 18-bitowej przestrzeni adresowej 262144 słów pamięci wirtualnej, co program mógł to zrobić w tym samym czasie. System pagera poradziłby sobie z mapowaniem tak jak zawsze, kopiując dane do iz magazynu zapasowego w razie potrzeby. Jedyną potrzebną zmianą było to, aby pager mógł przechowywać kilka zestawów mapowań między pamięcią RAM a magazynem, po jednym dla każdego programu korzystającego z systemu. Pager zawierał również informacje o czasie dostępu w celu dostrojenia wydajności. Powstały pager był dość złożony i wypełniał 19-calową obudowę do montażu w stojaku o pełnej wysokości.

Jedną z godnych uwagi cech TENEX był zorientowany na użytkownika interpreter wiersza poleceń . W przeciwieństwie do typowych systemów tamtej epoki, TENEX celowo używał długich nazw poleceń, a nawet zawierał nieznaczące szumy , aby jeszcze bardziej rozszerzyć polecenia dla przejrzystości. Na przykład Unix używa ls do drukowania listy plików w katalogu, podczas gdy TENEX używa DIRECTORY (OF FILES) . „ KATALOG ” był słowem rozkazu „ (PLIKÓW) „ został dodany szum, aby wyjaśnić cel polecenia. Aby uwolnić użytkowników od konieczności wpisywania tych długich poleceń, TENEX zastosował system uzupełniania poleceń, który rozumiał jednoznacznie skrócone słowa poleceń i rozszerzał częściowe słowa poleceń na całe słowa lub frazy. na przykład użytkownik mógł wpisać DIR i klawisz Escape, w którym to momencie TENEX zastąpił DIR pełną komendą.Funkcja uzupełniania działała również z nazwami plików, co wymagało trochę wysiłku ze strony tłumacza, a system pozwalał na długie nazwy plików z opisami czytelnymi dla człowieka. TENEX zawierał również rozpoznawania poleceń : wpisanie znaku zapytania ( ? ), wydrukowanie listy możliwych pasujących poleceń, a następnie powrót użytkownika do wiersza poleceń z usuniętym znakiem zapytania. Uzupełnianie wiersza poleceń i pomoc w obecnych interfejsach CLI, takich jak tcsh .

Od TENEX-u do TOPS-20

TENEX stał się dość popularny na małym rynku PDP-10, a sprzęt do zewnętrznego pagera rozwinął się w małą, samodzielną firmę. Na początku 1970 roku DEC rozpoczął prace nad ulepszeniem procesora PDP-10, KI-10. BBN po raz kolejny próbował nakłonić DEC do obsługi złożonego pagera z pośrednimi tablicami stron, ale zamiast tego DEC zdecydował się na znacznie prostszy jednopoziomowy system mapowania stron. Ten kompromis wpłynął na sprzedaż systemu; do tego momentu TENEX był najpopularniejszym systemem operacyjnym PDP-10 napisanym przez klientów, ale nie działałby na nowych, szybszych KI-10.

Aby rozwiązać ten problem, kierownik sprzedaży DEC PDP-10 zakupił prawa do TENEX od BBN i stworzył projekt przeniesienia go na nową maszynę. Mniej więcej w tym czasie Murphy również przeniósł się z BBN do DEC, pomagając w projekcie przenoszenia. Większość prac koncentrowała się na emulacji sprzętu pagera BBN w połączeniu oprogramowania i prostszego sprzętu KI-10. Szybkość KI-10 w porównaniu do PDP-6 umożliwiła to. Ponadto przenoszenie wymagało wielu nowych sterowników urządzeń do obsługi nowszych używanych urządzeń magazynu zapasowego.

Gdy nowy TENEX był wysyłany, DEC rozpoczął prace nad KL-10, który miał być niedrogą wersją KI-10. W tym czasie z Uniwersytetu Stanforda , z których wielu było absolwentami MIT , pracowali nad własnym projektem budowy PDP-10, który byłby dziesięć razy szybszy niż oryginalny KA-10. Projekt przekształcił się w Foonly linia komputerów. DEC odwiedził ich i wiele z ich pomysłów zostało następnie włączonych do projektu KL-10. W tym samym roku IBM ogłosił również własną maszynę z pamięcią wirtualną, co czyni ją standardowym wymaganiem dla każdego komputera. Ostatecznie KL zintegrował szereg poważnych zmian w systemie, ale ostatecznie nie obniżył kosztów. Od samego początku nowy DECSYSTEM-20 działałby jako domyślny system operacyjny w wersji TENEX.

Ulepszenia funkcjonalne architektury procesora KL-10 były ograniczone. Najbardziej znaczącą nową funkcją (zwaną adresowaniem rozszerzonym ) był zmodyfikowany mikrokod pagera działający na wersji sprzętowej Modelu B w celu powiększenia wirtualnej przestrzeni adresowej użytkownika. Niektóre efektywne obliczenia adresu za pomocą instrukcji znajdujących się poza oryginalną 18-bitową przestrzenią adresową zostały wykonane z dokładnością do 30 bitów znaczących, chociaż obsługiwana była tylko 23-bitowa wirtualna przestrzeń adresowa. Kod programu umieszczony w oryginalnej 18-bitowej przestrzeni adresowej miał niezmienioną semantykę, aby zapewnić kompatybilność wsteczną .

Pierwszą wewnętrzną nazwą kodową systemu operacyjnego był VIROS (Virtual memory Operating System); kiedy klienci zaczęli zadawać pytania, nazwa została zmieniona na SNARK, aby DEC mógł zgodnie z prawdą zaprzeczyć, że istniał jakikolwiek projekt o nazwie VIROS. Kiedy nazwa SNARK stała się znana, nazwa została na krótko odwrócona i stała się KRANS; szybko porzucono to, gdy ktoś sprzeciwił się, że „ krans ” oznacza po szwedzku „wieniec pogrzebowy” (chociaż oznacza to po prostu „wieniec”; ta część historii może być apokryficzna).

Ostatecznie DEC wybrał TOPS-20 jako nazwę systemu operacyjnego i jako TOPS-20 został wprowadzony na rynek. Społeczność hakerów , pamiętając o swoim pochodzeniu, szybko nazwała go TWENEX ( połączenie „dwadzieścia TENEX”), mimo że do tego momentu pozostało bardzo niewiele z oryginalnego kodu TENEX (analogicznie do różnic między AT&T V7 Unix i BSD ). Ludzie z DEC skulili się, gdy usłyszeli „TWENEX”, ale mimo to termin ten przyjął się (używano również pisanego skrótu „20x”).

TWENEX odniósł sukces i był bardzo popularny; w rzeczywistości był okres na początku lat 80., kiedy dowodził równie żarliwą kulturą partyzantów, jak Unix czy ITS – ale decyzja DEC o usunięciu wszystkich wewnętrznych rywali z architekturą VAX i jego systemem operacyjnym VMS zabiła DEC-20 i postawiła koniec krótkiego okresu popularności TWENEX. DEC próbował przekonać użytkowników TOPS-20 do przejścia na VMS, ale zamiast tego pod koniec lat 80. większość użytkowników TOPS-20 przeniosła się na Uniksa. Mark Crispin , pracowała nad różnymi projektami mającymi na celu zachowanie i rozszerzenie TOPS-20 oraz dystrybucja Panda TOPS-20.

Zobacz też

Dalsza lektura