TENEX (system operacyjny) - TENEX (operating system)

TENEX
Deweloper BBN
Napisane w język programowania
Stan pracy Historyczny
Pierwsze wydanie 1969 ; 52 lata temu ( 1969 )
Cel marketingowy Komputery typu 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 był system operacyjny opracowane w 1969 przez BBN dla PDP-10 , które następnie stanowiła podstawę Digital Equipment Corporation jest TOPS-20 systemu operacyjnego.

Tło

W latach 60. BBN był zaangażowany w szereg 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 oprogramowania stronicowania do języka LISP , pozwalającego na zapisywanie nieużywanych części pamięci na dysku w celu późniejszego przywołania w razie potrzeby. Jeden z takich systemów został opracowany dla PDP-1 w MIT przez Daniela Murphy'ego, zanim dołączył do BBN. Wczesne maszyny DEC były oparte na 18-bitowym słowie, co pozwalało adresom na kodowanie w pamięci 256 kilosłów . Maszyny były oparte na drogiej pamięci rdzeniowej i nie zawierały nigdzie w pobliżu wymaganej ilości. Pager użył najbardziej znaczących bitów adresu do zindeksowania tablicy bloków na bębnie magnetycznym, który pełnił funkcję magazynu zapasowego pagera . Oprogramowanie w razie potrzeby pobierze strony, a następnie przekształci adres w odpowiedni obszar pamięci RAM .

W 1964 DEC ogłosił PDP-6 . DEC nadal był mocno zaangażowany w AI Lab MIT, a wiele żądań funkcji od hakerów LISP zostało przeniesionych na tę maszynę. 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, co idealnie pasowało do typowych operacji LISP CAR i CDR . BBN zainteresowało się kupnem jednego do pracy nad sztuczną inteligencją, kiedy stały się dostępne, ale chciał, aby DEC dodało 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 wykonywanie dowolnego rodzaju programowania na maszynie. DEC był początkowo zainteresowany, ale wkrótce (1966) ogłosił, że w rzeczywistości porzuca PDP-6 i koncentruje się wyłącznie na swoich mniejszych 18-bitowych i nowych 16-bitowych liniach. PDP-6 był drogi i skomplikowany iz tych powodów nie sprzedawał się dobrze.

Nie trwało długo, zanim stało się jasne, że DEC ponownie wkroczył w 36-bitowy biznes z czymś, co miało stać się PDP-10 . BBN rozpoczął rozmowy z firmą DEC, aby uzyskać podsystem stronicowania w nowej maszynie, znanej wówczas pod nazwą procesora KA-10. DEC nie był specjalnie zainteresowany. Jednak jednym z rozwinięć tych rozmów było wsparcie dla drugiego segmentu pamięci wirtualnej, umożliwiającego mapowanie połowy przestrzeni adresowej użytkownika do oddzielnego (potencjalnie tylko do odczytu) regionu pamięci fizycznej. Dodatkowo, DEC był mocno na utrzymaniu kosztu maszyny tak niskie jak to możliwe, na przykład systemów wspomagających goły z minimum 16K słów rdzeń z pominięciem szybko półprzewodnikowy rejestru opcji (rdzeń zastępując), na koszt znaczny spadek wydajności.

BBN i PDP-10s

Pager BBN, około 1970

Mimo to BBN kupił kilka PDP-10 i zdecydował 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 mocne argumenty za dalszym korzystaniem z TOPS-10, aby utrzymać istniejące oprogramowanie działające przy minimalnym wysiłku. Wymagałoby to przepisania TOPS w celu obsługi systemu przywoławczego, a to wydawało się poważnym problemem. Jednocześnie TOPS nie wspierał wielu funkcji, których chcieli twórcy. W końcu postanowili stworzyć nowy system, ale zawierający 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ł nazwę TENEX (TEN-EXtended) dla nowego systemu. Zawierał pełny system pamięci wirtualnej — co oznacza, że ​​nie tylko programy mogły uzyskać dostęp do pełnej 18-bitowej przestrzeni adresowej składającej się z 262144 słów pamięci wirtualnej, ale każdy program mógł to robić w tym samym czasie. System stronicowania obsługiwałby mapowanie 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 przechowywał również informacje o czasie dostępu w celu dostrojenia wydajności. Powstały pager był dość skomplikowany, wypełniając 19-calową obudowę rackową o pełnej wysokości.

Jedną z godnych uwagi funkcji TENEX był zorientowany na użytkownika interpreter wiersza poleceń . W przeciwieństwie do typowych systemów tamtych czasów, TENEX celowo używał długich nazw poleceń, a nawet zawierał nieznaczące słowa dźwiękowe, aby jeszcze bardziej zwiększyć przejrzystość poleceń. Na przykład Unix używa lsdo drukowania listy plików w katalogu, podczas gdy TENEX używa DIRECTORY (OF FILES). „ DIRECTORY” było słowem polecenia, „ (OF FILES)” było dodanym szumem, 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 rozszerzył częściowe słowa poleceń do pełnych słów lub fraz. Na przykład użytkownik może wpisać DIRi klawisz Escape, w którym to momencie TENEX zamieni DIRsię na pełne polecenie. Funkcja uzupełniania działała również z nazwami plików, co wymagało pewnego wysiłku ze strony interpretera, a system pozwalał na długie nazwy plików z opisami czytelnymi dla człowieka. TENEX zawierał również system pomocy w rozpoznawaniu 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łnienie wiersza poleceń i pomoc żyć w bieżących CLI, takich jak tcsh .

Od TENEX do TOPS-20

TENEX stał się dość popularny na małym rynku PDP-10, a zewnętrzny pager rozwinął się we własną małą firmę. Na początku 1970 roku DEC rozpoczął prace nad modernizacją procesora PDP-10, KI-10. BBN po raz kolejny próbował sprawić, by DEC obsługiwał złożony pager z pośrednimi tabelami stron, ale zamiast tego DEC zdecydował się na znacznie prostszy, jednopoziomowy system mapowania stron. Ten kompromis wpłynął na sprzedaż systemu; w tym momencie TENEX był najpopularniejszym pisanym przez klientów systemem operacyjnym PDP-10, 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 przygotował projekt przeniesienia ich na nową maszynę. Mniej więcej w tym czasie Murphy również przeniósł się z BBN do DEC, pomagając w projekcie przeniesienia. Większość prac koncentrowała się na emulacji sprzętu pagera BBN w połączeniu oprogramowania i prostszego sprzętu KI-10. Umożliwiła to szybkość KI-10 w porównaniu z PDP-6. Ponadto wysiłek związany z przeniesieniem wymagał wielu nowych sterowników urządzeń do obsługi nowszych używanych urządzeń magazynu kopii zapasowych.

W momencie, gdy pojawił się nowy TENEX, DEC rozpoczął prace nad KL-10, mającym być tanią wersją KI-10. W tym czasie programiści AI na Uniwersytecie Stanforda , wielu z nich absolwentów MIT , pracowali nad własnym projektem, aby zbudować PDP-10, który był dziesięć razy szybszy niż oryginalny KA-10. Projekt przekształcił się w linię komputerów Foonly . DEC odwiedził ich i wiele 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. W końcu KL wprowadziła do systemu kilka poważnych zmian, ale koszt nie był niższy. Od samego początku nowy DECSYSTEM-20 będzie uruchamiał wersję TENEX jako domyślny system operacyjny.

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

Pierwsza wewnętrzna nazwa kodowa systemu operacyjnego to VIROS (VIRtual memory Operating System); kiedy klienci zaczęli zadawać pytania, nazwa została zmieniona na SNARK, aby DEC mógł szczerze zaprzeczyć, że istnieje jakikolwiek projekt o nazwie VIROS. Kiedy nazwa SNARK stała się znana, nazwa została na krótko odwrócona do KRANS; ten został szybko porzucony, gdy ktoś zarzut, że „ Krans ” oznaczało „wieniec pogrzebowy” w języku szwedzkim (choć to po prostu oznacza „wieniec”; ta część tej historii może być apokryficzny).

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 swoich początkach, szybko nazwała go TWENEX ( portmanteau "dwadzieścia TENEX"), mimo że do tego momentu pozostało bardzo niewiele oryginalnego kodu TENEX (analogicznie do różnic między AT&T V7 Unix i BSD ). Ludzie z DEC wzdrygali się, słysząc „TWENEX”, ale termin ten jednak się przyjął (używano również pisanego skrótu „20x”).

TWENEX odniósł sukces i cieszył się dużą popularnością; w rzeczywistości był okres na początku lat 80., kiedy dowodził tak gorącą kulturą partyzancką jak Unix czy ITS – ale decyzja DEC o pozbyciu się wszystkich wewnętrznych rywali dla architektury VAX i jej systemu operacyjnego VAX/VMS zabiła DEC-20 i położyć kres krótkiemu okresowi popularności TWENEX-u. DEC próbował przekonać użytkowników TOPS-20 do konwersji na VMS, ale zamiast tego pod koniec lat 80. większość użytkowników TOPS-20 przeszła na Uniksa. Lojalna grupa entuzjastów TOPS-20 nadal pracowała nad różnymi projektami mającymi na celu zachowanie i rozszerzenie TOPS-20, w szczególności Mark Crispin i dystrybucję Panda TOPS-20.

Zobacz też

Bibliografia

  • Część tekstu w tym artykule została zaczerpnięta z wpisu w The Jargon File na „ TWENEX ”, który jest w domenie publicznej .

Dalsza lektura