Komentarz do systemu operacyjnego UNIX
Autor | Jan Lwy |
---|---|
Kraj |
|
Język | Język angielski; dostępne również w języku chińskim i japońskim |
Temat | System operacyjny Unix |
Gatunek muzyczny | Informatyka |
Wydawca | Uniwersytet Nowej Południowej Walii |
Data publikacji |
1976 |
OCLC | 36099640 |
005.43 | |
Klasa LC | QA 76,76 .O63 L56 |
A Commentary on the UNIX Operating System autorstwa Johna Lionsa (później wznowiony jako Lions' Commentary on UNIX 6th Edition ) to bardzo wpływowa publikacja z 1976 roku zawierająca komentarz analityczny na temat kodu źródłowego 6th Edition komputerowego systemu operacyjnego Unix „jądro rezydentne” (tj . kernel ) wraz z kopią sformatowaną i zindeksowaną przez Lions wspomnianego kodu źródłowego uzyskaną od autorów z AT&T Bell Labs . Jest również powszechnie nazywana Księgą Lwów . [ potrzebne źródło ]
Będąc przykładem wczesnego sukcesu UNIX-a jako przenośnego kodu dla platformy wydawniczej, praca Lions została złożona przy użyciu narzędzi UNIX-owych, na systemach z kodem przeniesionym na Uniwersytet, podobnym do tego, który udokumentowano, patrz strona vi .
Powszechnie uważano, że jest to najczęściej kopiowana książka w informatyce . [ potrzebne źródło ] Pomimo swojego wieku, książka Lionsa jest nadal uważana za doskonały komentarz do prostego, wysokiej jakości kodu.
Praca Lionsa została ostatnio przedrukowana w 1996 roku przez Peer-To-Peer Communications i była rozpowszechniana, odtwarzana lub rekonstruowana w różny sposób w wielu mediach przez inne strony, np. patrz strona internetowa Grega Leheya.
Streszczenie
Kod źródłowy systemu operacyjnego UNIX Level Six to kod źródłowy jądra, lekko zredagowany przez Lions w celu lepszego oddzielenia funkcjonalności — inicjalizacja systemu i zarządzanie procesami, przerwania i wywołania systemowe, podstawowe wejścia/wyjścia, systemy plików, potoki i urządzenia znakowe. Wszystkie procedury i symbole są wymienione alfabetycznie z odsyłaczami.
Przedstawiony kod będzie działał na PDP-11 /40 z napędem dyskietek RK-05, interfejsem drukarki liniowej LP-11, nagrywarką taśmy papierowej PCL-11 i interfejsem terminala KL-11 lub odpowiednim emulatorem PDP-11, takim jak SIMH .
Komentarz na temat systemu operacyjnego UNIX zaczyna się od uwag na temat systemu UNIX i innej przydatnej dokumentacji (stron podręcznika UNIX, instrukcji sprzętu DEC itd.), rozdziału o architekturze PDP-11 i rozdziału o tym, jak czytać programy C. Poniżej znajduje się komentarz źródłowy, podzielony na te same sekcje co kod. Książkę kończą propozycje ćwiczeń dla ucznia.
Jak wyjaśnia Lions, ten komentarz uzupełnia komentarze w źródle. Możliwe jest zrozumienie kodu bez dodatkowego komentarza, a czytelnikowi zaleca się, aby to zrobił i czytał uwagi tylko w razie potrzeby. Komentarz zawiera również uwagi dotyczące możliwości ulepszenia kodu.
Historia
informatyki Lions (6.602B i 6.657G, wspomniane we wstępie do książki) na Uniwersytecie Nowej Południowej Walii .
UNSW faktycznie uzyskał kod źródłowy UNIX w 1975 roku, w odpowiedzi na zapytanie z 1974 roku skierowane do Dennisa Ritchiego z Bell. Bell Labs była spółką zależną AT&T, podlegającą ograniczeniom ze względu na jej monopolistyczny charakter jako krajowego dostawcy infrastruktury telekomunikacyjnej i nie miała pozwolenia na prowadzenie działalności w żadnej innej dziedzinie, [potrzebne źródło], a więc nie mogła czerpać zysków ze sprzedaży oprogramowania , [ potrzebne źródło ] jednak UNIX był dostarczany na licencji przez inną spółkę zależną AT&T, Western Electric, co najmniej do 1977 roku . [ potrzebne wyjaśnienie ]
Grupa użytkowników UNIX, biuletyn USENIX , UNIX News , z marca 1977 r., ogłosiła dostępność książki dla licencjobiorców UNIX. Należy zauważyć, że własne mocno sformułowane zawiadomienie o ograniczeniu rozpowszechniania biuletynu mogło mieć zastosowanie tylko w ramach istniejących licencji do licencjobiorców posiadających umowy zawarte z wymienionymi organizacjami, a nie do osób niebędących licencjobiorcami, w ramach umowy cywilnej - biuletyn nie wyświetla żadnych dowód organu rządowego typu, który mógłby pozwolić na ogólne powstrzymanie obiegu, taki jak ściśle tajnego bezpieczeństwa narodowego ).
Trudność w dotrzymaniu kroku popularności książki sprawiła, że do 1978 roku była dostępna tylko w AT&T Bell Labs . [ potrzebne źródło ]
Przez wiele lat książka Lions była jedyną dokumentacją jądra systemu UNIX dostępną poza Bell Labs. [ potrzebne źródło ] Chociaż licencja 6. edycji [ potrzebne źródło ] zezwalała na użycie kodu źródłowego w klasie, licencja 7. wydania [ potrzebne źródło ] wyraźnie wykluczała takie użycie, więc później książka, oparta na bardziej liberalnej licencji wersja, szeroko rozpowszechniona poprzez reprodukcje maszynowe, prawdopodobnie pod różnymi wymówkami, w tym (między innymi!) hojnymi warunkami licencji edukacyjnej udzielonymi instytucji wydawniczej przez właściciela kodu źródłowego [ potrzebne źródło ] , a także różne zwolnienia z praw autorskich chroniące dyskusję na temat prac matematycznych, choć w cieniu rosnącej presji politycznej mającej na celu erozję takich praw, ponieważ technologiczne środki do „samokopiowania” — a nawet samodzielnego publikowania — prac stały się tańsze , wydajniejsze i wydajniejsze. [ potrzebne źródło ] Sam UNIX był jednym z nich, ponieważ był udaną innowacją finansowaną przez firmę Bell w celu ułatwienia publikowania instrukcji technicznych we własnym zakresie. [ potrzebne źródło ]
Kiedy AT&T ogłosiło UNIX Version 7 na USENIX w czerwcu 1979 r., Licencja akademicka/badawcza nie pozwalała już automatycznie na użycie w klasie.
Jednak tysiące studentów informatyki na całym świecie rozpowszechnia kserokopie. Ponieważ nie uczono ich tego na lekcjach, czasami spotykali się po godzinach, aby omówić książkę. Wielu pionierów UNIX-a i open source posiadało cenną wielopokoleniową kserokopię.
Inne dalsze skutki zmiany licencji obejmowały stworzenie Minix przez Andrew S. Tanenbauma . Jak napisał Tanenbaum w Systemach operacyjnych (1987):
Kiedy AT&T wypuściło wersję 7, zaczęło zdawać sobie sprawę, że UNIX jest cennym produktem komercyjnym, więc wydało wersję 7 z licencją, która zabrania studiowania kodu źródłowego na kursach, aby uniknąć narażenia jego statusu jako tajemnicy handlowej. Wiele uniwersytetów zastosowało się, po prostu porzucając naukę o systemie UNIX i nauczając wyłącznie teorii.
Różni ludzie UNIX, zwłaszcza Peter H. Salus , Dennis Ritchie i Berny Goodheart, przez wiele lat lobbowali różnych właścicieli Uniksa (AT&T, Novell , Santa Cruz Operation ), aby zezwolili na oficjalne opublikowanie książki. W 1996 roku Operacja Santa Cruz ostatecznie zezwoliła na wydanie dwudziestoletniego kodu źródłowego szóstego wydania (wraz z kodem źródłowym innych wersji „ Ancient UNIX ”), a pełny kod wraz z wersją komentarza z 1977 roku został opublikowane przez Peer-to-Peer Communications ( ISBN 1-57398-013-7 ). Wznowienie zawiera komentarze Michaela Tilsona (SCO), Petera Salusa, Dennisa Ritchiego, Kena Thompsona , Petera Collinsona, Grega Rose, Mike'a O'Della, Berny'ego Goodhearta i Petera Reintjesa.
„Nie oczekuje się, że to zrozumiesz”
Niesławny komentarz programu „Nie oczekuje się, że to zrozumiesz” pojawia się w linii 2238 kodu źródłowego ( Komentarz lwów , s. 22) na końcu komentarza wyjaśniającego mechanizm wymiany procesów. Dotyczy to wiersza 325 pliku slp.c. Kod źródłowy brzmi:
/* * Jeśli nowy proces został wstrzymany, ponieważ został * zamieniony, ustaw poziom stosu na ostatnie wywołanie * savu(u_ssav). Oznacza to, że powrót *, który jest wykonywany natychmiast po wywołaniu aretu * faktycznie powraca z ostatniej procedury, która * wykonała savu. * * Nie oczekuje się, że to zrozumiesz. */ if ( rp -> p_flag & SSWAP ) { rp -> p_flag
=& ~ SWAP ; aretu ( u . u_ssav ); }
Głównym powodem, dla którego ten fragment kodu był trudny do zrozumienia, było to, że zależał od dziwactwa sposobu, w jaki kompilator C dla PDP -11 zapisywał rejestry w wywołaniach procedur. Ten kod nie powiódł się po przeniesieniu na inne maszyny i musiał zostać przeprojektowany w wersji 7 UNIX . Dennis Ritchie wyjaśnił później znaczenie tej uwagi:
„Nie oczekuje się, że to zrozumiesz” miało być uwagą w duchu „Tego nie będzie na egzaminie”, a nie bezczelnym wyzwaniem.
Zobacz też
- xv6 , nowoczesna reimplementacja Sixth Edition UNIX w ANSI C dla wieloprocesorowych systemów x86 i RISC-V .
Dalsza lektura
- Andrew S. Tanenbaum , Systemy operacyjne: projektowanie i wdrażanie ( Prentice Hall , ISBN 0-13-637331-3 , czerwiec 1987)
- Code Critic (Rachel Chalmers, Salon , 30 listopada 1999)
- Demon, GNU i pingwin - rozdz. 6: 1979 ( Peter H. Salus )
- Brian W. Kernighan i Dennis Ritchie , Język programowania C , ISBN 0-13-110362-8