Unix

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Unix
System operacyjny
Producent Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, Joe Ossanna oraz Bell Labs
Platforma sprzętowa wieloplatformowy
Napisane w C
Pierwsze wydanie 1969
Licencja oryginalnie zamknięte oprogramowanie; obecnie część projektów uniksowych (w szczególności BSD) posiada otwarte źródła.
www.unix.org

Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrót – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – system operacyjny rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność, co zaowocowało powstaniem wielu odmian i implementacji. Część z nich, w szczególności Linux oraz OS X, jest w użyciu do dziś. UNIX jest zarejestrowanym znakiem towarowym The Open Group.

Unix miał duży wkład w rozwój systemów operacyjnych, wprowadzając wiele koncepcji będących w powszechnym użyciu do dziś. Do najbardziej znaczących należy idea hierarchicznego systemu plików oraz reprezentacji niemal wszystkich składników systemu jako plików (również urządzeń peryferyjnych). Twórcy systemu zastosowali podczas jego tworzenia wiele nowatorskich rozwiązań oraz założeń projektowych. Wbrew panującemu wówczas trendowi, kod Uniksa został napisany w języku wysokopoziomowym, co umożliwiało jego łatwą migrację na kolejne platformy sprzętowe. Narzędzia systemowe zostały zaprojektowane zgodnie z regułą KISS mówiącą, że programy powinny być proste i realizować dobrze jedną rzecz.

Historia[edytuj | edytuj kod]

W latach 60. XX wieku Massachusetts Institute of Technology, AT&T Bell Labs oraz General Electric zaprojektowały eksperymentalny system operacyjny zwany Multics i przeznaczony dla komputerów GE-645[1]. Zawierał on wiele innowacyjnych rozwiązań, lecz także wiele wad.

Bell Labs, niezadowolone z wyników, lecz nie z założeń projektowych, powoli wycofało się z projektu. Ostatnimi pracownikami tej firmy pracującymi nad Multicsem byli Ken Thompson, Dennis Ritchie, M. D. McIlroy oraz J. F. Ossanna[2]. Zdecydowali się oni na rozpoczęcie pracy od nowa, lecz na znacznie mniejszą skalę. Ritchie napisał o tym: „To, co chcieliśmy zachować, nie było tylko dobrym środowiskiem do programowania, lecz systemem wokół którego można było zbudować społeczność. Wiedzieliśmy z doświadczenia, że istotą pracy grupowej wspomaganej przez zdalny dostęp i systemy z podziałem czasu, było nie tylko wprowadzanie programów przy pomocy terminala, zamiast kart perforowanych, lecz zachęcanie użytkowników do komunikowania się“.[2].

Kiedy Ken Thompson wciąż posiadał dostęp do środowiska Multics, stworzył kilka symulacji nowego systemu plików oraz zbudowanego na nim systemu stronicowania. Napisał również grę Space Travel, lecz wymagała ona do działania wydajniejszej i tańszej maszyny. Ostatecznie gra została zainstalowana na rzadko używanym komputerze PDP-7 w laboratoriach Bella. Zespół naukowców kierowany przez Thompsona i Ritchiego, w skład którego wchodził również Rudd Canaday, zbudowali także na nim hierarchiczny system plików, zalążek mechanizmu procesów i plików urządzeń, interpreter wiersza poleceń oraz kilka małych programów narzędziowych.

Lata 70.[edytuj | edytuj kod]

Uniksa po raz pierwszy uruchomiono na komputerze PDP-7.

W latach 70. Brian Kernighan nadał projektowi nazwę Unics będącą kalamburem nazwy Multics (Multiplexing Information and Computer Services). Po pewnym czasie do systemu dodano w końcu możliwość jednoczesnej pracy większej liczby użytkowników, a on sam został przemianowany na Unix. Do tego momentu projekt nie miał żadnego wsparcia finansowego ze strony Bell Labs. Kiedy Computer Science Research Group chciała wykorzystać Uniksa na znacznie większej maszynie, niż PDP-7, Thompson i Ritchie zdołali wynegocjować obietnicę dodania narzędzi przetwarzania tekstu do wersji na komputery PDP-11/20, dzięki czemu udało się uzyskać pewne fundusze na dalszy rozwój. Wersja ta została wzbogacona o procesor tekstu roff oraz o edytor tekstowy. Wszystkie elementy systemu zostały napisane w asemblerze komputera PDP-11/20. Firma Bell Labs użyła tej pierwszej oficjalnej dystrybucji do pisania swoich zgłoszeń patentowych. Roff szybko ewoluował, zmieniając nazwę na troff i zostając pierwszym programem DTP z pełnym zestawem narzędzi do składu tekstu. Podręcznik programisty UNIX został opublikowany po raz pierwszy 3 listopada 1971 roku.

W 1972 roku Unix został przepisany na język C wbrew panującemu wówczas przekonaniu, że „coś tak złożonego, jak system operacyjny, które musi radzić sobie z szybką obsługą krytycznych zdarzeń, powinno być tworzone wyłącznie w assemblerze“[3]. Migracja znacznie poprawiła przenośność systemu – uruchomienie go na nowej platformie wymagało przepisania jedynie stosunkowo niewielkiego fragmentu kodu zależnego od sprzętu.

Zgodnie z wyrokiem sądu w postępowaniu antymonopolowym przeciwko firmie AT&T będącej właścicielem Bell Labs, miała ona zakaz wchodzenia na rynek komputerowy. Unix nie mógł być z tego powodu wydany jako produkt – firma miała obowiązek udostępnienia swoich niezwiązanych z telefonami technologii każdemu zainteresowanemu podmiotowi. W przypadku Uniksa systemem zainteresowały się organizacje akademickie po opublikowaniu w Communications of the ACM artykułu mu poświęconemu. Ken Thompson po cichu zaczął odpowiadać na prośby, wysyłając kasety i paczki dyskietek. Legenda mówi, że każda z nich zawierała dopisek „love, ken“.[4].

Licencje, na których firma AT&T udostępniała system uniwersytetom, firmom komercyjnym oraz rządowi Stanów Zjednoczonych, obejmowały pełen kod źródłowy wraz fragmentami zależnymi od sprzętu napisanymi w asemblerze PDP-11. Kopie jądra systemu krążyły pod koniec lat 70. po społeczności informatyków w postaci książki „Lions' Commentary on UNIX 6th Edition, with Source Code“ autorstwa Johna Lionsa z Uniwersytetu Nowej Południowej Walii, dzięki czemu zyskał on popularność jako system edukacyjny.

Numery wersji Uniksa nadawano na podstawie wydań podręczników użytkownika. W 1975 roku wydano wersje 4, 5 i 6. Wprowadziły one pojęcie przetwarzania potokowego, co zaowocowało pojawieniem się bardziej modularnego kodu i przyspieszenia rozwoju. Ponadto pojawiły się pierwsze rozbieżności między wersjami używane w Bell Labs i poza nim, jako że w tym samym czasie pojawiły się też dwie pierwsze dystrybucje zewnętrzne: PWB/UNIX oraz komercyjny IS/1. W miarę przepisywania coraz większej części systemu na język C, wzrastała przenośność. Grupa programistów z Uniwersytetu w Wollongong uruchomiła Uniksa na komputerze Interdata 7/32, zaś Bell Labs opracował kilka portów na wewnętrzne potrzeby AT&T oraz w ramach eksperymentu. Lista maszyn obejmowała także komputer na bazie procesora Intel 8086 z autorską jednostką zarządzania pamięcią, oraz UNIVAC 1100[5].

W maju 1975 roku ARPA opisała w dokumencie RFC 681 zalety użycia Uniksa jako hosta sieci ARPANET. W 1978 roku ukazał się UNIX/32V na nowy komputer VAX stworzony przez firmę DEC. Do tego czasu pod kontrolą różnych odmian tego systemu pracowało około 600 maszyn. Wersja 7 Uniksa wydana w 1979 roku była ostatnią dostępną dla szerokiego grona odbiorców. Kolejne wersje 8, 9 i 10 były opracowywane przez lata 80. i zostały udostępnione tylko kilku uniwersytetom, aczkolwiek tworzono publikacje opisujące nowe rozwiązania. Prace badawcze doprowadziły do stworzenia w Bell Labs nowego przenośnego systemu o nazwie Plan 9.

Lata 80.[edytuj | edytuj kod]

System Unix z uruchomionym graficznym interfejsem użytkownika X Window System. Na ilustracji widocznych jest kilka aplikacji typowych dla dystrybucji MIT X Consortium, m.in. Tom's Window Manager, X Terminal, xbiff, xload oraz graficzna przeglądarka podręcznika systemowego

W 1982 roku AT&T wydało oparty na wersji 7 UNIX System III przeznaczony do użytku komercyjnego. Licencja obejmowała również wsparcie dla VAX. Firma kontynuowała wydawanie licencji na starsze wersje systemu. Aby zakończyć zamieszanie z istnieniem wielu różnych wewnętrznych wersji, połączyła je w pierwsze wydanie UNIX System V. Zawierało ono kilka nowości takich, jak edytor tekstu vi oraz curses pochodzących z Berkeley Software Distribution rozwijanego na Uniwersytecie Kalifornijskim w Berkeley, a także wsparcie dla komputerów z serii Western Electric 3B.

W roku 1982 zakończył się trwający od 1974 roku proces antymonopolowy wytoczony przez Departament Sprawiedliwości USA, którego wynikiem był podział AT&T na 7 regionalnych przedsiębiorstw. Nowy wyrok anulował poprzednie zarządzenia, które zabraniały firmie wydania Uniksa jako produktu, dzięki czemu UNIX System V mógł zostać wydany na licencji komercyjnej. Krok ten omal nie doprowadził do śmierci projektu[4].

Nowe warunki licencji Uniksa nie były korzystne dla instytucji akademickich, dlatego naukowcy w Berkeley kontynuowali rozwój swojego systemu BSD jako alternatywy dla produktów AT&T. BSD wprowadził do świata Uniksów sporo nowych rozwiązań takich, jak C shell z kontrolą zadań, jednak największym wkładem było stworzenie implementacji stosu TCP/IP. Wysiłki twórców zaowocowały wydaniem kilku znaczących wersji z dołączonym kodem sieciowym: 4.1cBSD, 4.2BSD, 4.3BSD, 4.3BSD-Tahoe, Net/2, 4.4BSD i 4.4BSD-lite. Opracowana wtedy implementacja jest przodkiem większości modułów obsługi protokołów TCP/IP używanych współcześnie, wliczając w to implementacje w UNIX System V oraz we wczesnych wersjach systemu Microsoft Windows. Interfejs programistyczny gniazd opracowany w Berkeley stał się de facto standardem dla obsługi sieci, który został powielony na wielu platformach.

Inne firmy rozpoczęły sprzedaż własnych komercyjnych wersji Uniksa dla własnych komputerów oraz stacji roboczych. Część z nich bazowała na Systemie V licencjonowanym przez AT&T, inne były oparte na dystrybucji BSD. Jeden z czołowych twórców BSD, Bill Joy, przeniósł się do nowozałożonego Sun Microsystems w 1982 roku i pomógł stworzyć SunOS dla pierwszych maszyn tej firmy. W roku 1980 Microsoft wydał swój pierwszy klon Uniksa dla 16-bitowych mikrokomputerów zwany Xenix, który został przeportowany na platformę Intel 8086 przez Santa Cruz Operation w 1983 roku, by ostatecznie przekształcić się w SCO UNIX w roku 1989.

W pierwszej połowie lat 80., zanim komputery PC z systemem MS-DOS zdominowały rynek, obserwatorzy przewidywali, że UNIX z uwagi na swoją przenośność i duże możliwości stanie się standardowym systemem operacyjnym dla mikrokomputerów[6]. W 1984 roku kilka przedsiębiorstw powołało do życia konsorcjum X/Open, którego celem było stworzenie otwartej specyfikacji bazującej na Uniksie. Pomimo początkowych postępów, standaryzacja zmieniła się w „wojny uniksowe“, w których powstało kilka rywalizujących ze sobą grup standaryzacyjnych. Najbardziej udanym standardem dotyczącym Uniksa była sygnowana przez IEEE specyfikacja POSIX, zaprojektowana jako kompromisowy interfejs programistyczny zaimplementowany zarówno w BSD, jak i Systemie V. Opublikowano ją w roku 1988.

AT&T dodało szereg nowych funkcjonalności do swojej odmiany Uniksa takich, jak blokowanie plików, narzędzia administracyjne, STREAMS, nowe formy komunikacji międzyprocesowej, Remote File System oraz TLI. Firma współpracowała z Sun Microsystems i pomiędzy 1987 a 1989 rokiem dokonała integracji funkcjonalności z Xeniksa, BSD, SunOS-a i Systemu V, tworząc System V Release 4 (SVR4), niezależnie od konsorcjum X/Open. Wydanie to integrowało wszystkie dotychczasowe dodatki w jednym pakiecie, kończąc tym samym wojny między różnymi dystrybucjami. Podniesiona została także opłata licencyjna.

Lata 90.[edytuj | edytuj kod]

Ewolucja systemów uniksowych oraz uniksopodobnych.

W roku 1990 Open Software Foundation wydała OSF/1, swoją własną implementację Uniksa bazującą na systemach Mach i BSD. Została ona założona w 1988 roku i była finansowana przez kilka firm związanych z rynkiem Uniksa, które chciały przeciwstawić się AT&T oraz Sun Microsystems. W odpowiedzi, AT&T wraz z inną grupą przedsiębiorstw powołały „Unix International“, co było powodem wybuchu nowych „wojen uniksowych“.

W roku 1991 grupa programistów BSD (Donn Seeley, Mike Karels, Bill Jolitz oraz Trent Hein) opuściła Uniwersytet Kalifornijski, aby założyć firmę Berkeley Software Design, Inc. Udało jej się stworzyć w pełni funkcjonalną komercyjną wersję BSD na niedrogą platformę Intela, co zaowocowało wzrostem zainteresowania wykorzystaniem taniego sprzętu do obliczeń komputerowych. Krótko po powstaniu, grono założycielskie opuścił Bill Jolitz, aby rozwijać dystrybucję 386BSD będącą przodkiem wolnych FreeBSD, OpenBSD oraz NetBSD. W tym samym roku fiński student Linus Torvalds rozpoczął pracę nad Linuksem, klonem Uniksa na komputery IBM PC.

Do roku 1993 większość komercyjnych dostawców Uniksa dostosowała swoje odmiany systemu do Systemu V, dodając do nich sporo funkcjonalności systemu BSD. Powstanie COSE w tym samym roku oznaczało koniec wojen uniksowych. Rok później, Open Software Foundation oraz Unix International zostały połączone, zachowując nazwę pierwszej z grup, kończąc także prace nad OSF/1. Do tego momentu jedynym dostawcą, który z niego korzystał, był DEC, który ostatecznie zdecydował się na samodzielny rozwój tej dystrybucji, przemianowując ją na Digital UNIX na początku 1995 roku.

Krótko po ukazaniu się UNIX System V Release 4, firma AT&T sprzedała wszystkie swoje prawa do systemu Novellowi. Nowy właściciel zaprojektował własną wersję UnixWare poprzez połączenie swojego wcześniejszego produktu NetWare z Systemem V. Próbował wykorzystać go w bitwie przeciwko systemowi Windows NT, lecz poniósł porażkę.

W roku 1993 Novell zdecydował się na transfer znaku towarowego UNIX oraz innych praw na konsorcjum X/Open[7], które trzy lata później połączyło się z OSF, tworząc The Open Group. Nowej inicjatywie udało się po raz pierwszy ustandaryzować Uniksa, głównie poprzez Single UNIX Specification.

W roku 1995 prawa do dalszego rozwoju kodu Systemu V oraz obsługa wsparcia dla istniejących wersji systemu zostały sprzedane firmie Santa Cruz Operation[8]. Kwestia sprzedaży praw autorskich jest obecnie przedmiotem sporu sądowego.

W roku 1997 firma Apple Computer zaczęła opracowywać nowe wcielenie swojego systemu operacyjnego Macintosh, wybierając NEXTSTEP jako punkt wyjściowy do dalszych prac. Jądro nowego systemu bazujące na BSD oraz Mach zostało przemianowane na Darwin po jego zakupie przez Apple'a. Wdrożenie Darwina w systemie OS X sprawiło według producenta, że stał się on najpowszechniej wykorzystywanym uniksowym systemem na rynku komputerów desktopowych.

Dekada 2001-2010[edytuj | edytuj kod]

W roku 2000 SCO sprzedało cały swój oddział odpowiedzialny za rozwój Uniksa firmie Caldera Systems, która później zmieniła swą nazwę na The SCO Group. Jednocześnie krach na rynku dot-comów doprowadził do znaczącej konsolidacji rozmaitych wersji Uniksa. Spośród wielu odmian komercyjnych narodzonych w latach 80. jedynie Solaris, HP-UX oraz AIX radziły sobie nieźle, choć rozwijany przez SGI system IRIX także przetrwał nieco czasu. Spośród nich największy udział w rynku w roku 2005 miał Solaris.

W roku 2003 The SCO Group wszczęło postępowanie sądowe przeciwko rozmaitym użytkownikom i dostawcom Linuksa. Firma argumentowała, że Linux zawiera chronione prawami autorskimi fragmenty kodu Uniksa będące jej własnością. Wśród innych zarzutów znalazło się naruszenie tajemnicy handlowej przez IBM czy naruszenie warunków umowy przez wcześniejszych klientów Santa Cruz Operation, którzy dokonali migracji na Linuksa. Novell podważał roszczenia SCO do praw autorskich kodu źródłowego Uniksa. Według Novella, SCO, a później The SCO Group są jedynie wykonawcami franczyzy Uniksa będącej jego własnością, a która obejmuje m.in. prawa autorskie oraz prawo weta w stosunku do późniejszych działań licencyjnych SCO. The SCO Group nie zgodziło się z taką interpretacją, wytaczając pozew przeciwko Novellowi. 10 sierpnia 2007 roku wyrok sądu uznał większość racji Novella, potwierdzając, że jest on właścicielem praw autorskich do Uniksa oraz że The Sco Group niewłaściwie naliczała należne Novellowi opłaty licencyjne. Po ogłoszeniu wyroku Novell wydał oświadczenie prasowe, w którym stwierdzał, że nie ma żadnego interesu w pozywaniu użytkowników Uniksa oraz że nie wierzy, że Linux zawiera fragmenty kodu źródłowego tego systemu. SCO udało się złożyć apelację, w wyniku której sprawa trafiła ponownie na wokandę. 30 marca 2010 roku sąd jednoznacznie potwierdził, że to firma Novell jest właścicielem praw autorskich do Uniksa oraz systemu UnixWare.

W 2005 roku firma Sun wydała część kodu źródłowego Solarisa na licencji open-source, przemianowując projekt na OpenSolaris. Zaowocowało to pojawieniem się kilku niezależnych od tej firmy dystrybucji. Po przejęciu firmy przez korporację Oracle oficjalne prace nad dalszym rozwojem systemu zawieszono, lecz mimo to jego rozwój jest kontynuowany przez niezależne przedsiębiorstwa.

Dziedzictwo w informatyce[edytuj | edytuj kod]

Unix wywarł duży wpływ na dzisiejszą informatykę, tak bezpośredni, jak i pośredni. To jemu zawdzięczają swoją popularność język C i reguła KISS.

Współcześnie Unix – choć jest nazwą zastrzeżoną dla The Open Group – stał się synonimem całej rodziny systemów wywodzących się od pierwotnego pnia lub klonów zgodnych z zestandaryzowanymi normami POSIX lub Single UNIX Specification. W obrębie systemów UNIX wywodzących się z oryginalnego kodu AT&T wyróżnia się pochodne: Systemu V lub BSD. Współcześnie ze względu na liczne wzajemne powiązania i zapożyczenia taki podział stracił na aktualności.

Unix był prekursorem nowych technologii takich jak rekursywny system plików i NFS.

Sytuacja formalno-prawna[edytuj | edytuj kod]

Sytuacja formalno-prawna jest obecnie złożona i nie w pełni ustalona, co wynika z jego długiej historii oraz burzliwego rozwoju w postaci wielu osobnych, nieskoordynowanych pomiędzy sobą wersji wydawanych przez różne firmy. Na trudną sytuację składają się głównie kwestie praw do nazwy, posiadania kodu źródłowego oraz praw autorskich i patentowych, rozsiane między wiele podmiotów i często zmieniające właścicieli, i dlatego będące przedmiotem różnych sporów prawnych.

Oryginalny kod źródłowy opracowany w AT&T długo krążył między kolejnymi właścicielami. W 1993 r. został kupiony przez Novella, a od 1995 r. należy do firmy Santa Cruz Operations (SCO), kupionej w 2000 r. przez dystrybutora Linuksa, Calderę. SCO przegrało z Novellem proces, w którym samo starało się o przyznanie praw do systemu operacyjnego Unix i oprogramowania UnixWare. Według sądu SCO powinno zapłacić Novellowi 2,5 miliona dolarów, SCO złożyło apelację (więc sprawa jest jeszcze nie zakończona) procesu w sprawie Linuksa, jaki SCO/Caldera nieoczekiwanie wytoczyło IBM-owi 6 marca 2003 r., Novell oświadczył, że umowa nie obejmowała przekazania praw autorskich, których pozostaje dysponentem. Zdają się to potwierdzać późniejsze próby ich uzyskania od Novella przez SCO. Dodatkową komplikację w sprawie stanowi fakt, że różne części kodu Uniksa były nieraz publikowane na różnych licencjach.

W czerwcu 1994 r. ugodą zakończony został spór między AT&T (a później Novellem), a Uniwersytetem Kalifornijskim w Berkeley, na mocy której BSD (wówczas w wersji 4.4BSD Lite) zostało uznane za wolne od roszczeń. Rozwiązanie to było bardzo istotne dla rozwoju systemów UNIX korzystających z licencji BSD (tzw. freenix).

Obecnie nazwa UNIX jest zastrzeżonym znakiem handlowym The Open Group, przemysłowego konsorcjum zajmującego się standaryzacją rodziny kompatybilnych systemów. UNIX System Laboratories stanowią dziś część Lucent Technologies (wcześniej należały także do HP).

Polecenia systemu UNIX[edytuj | edytuj kod]

Systemy z rodziny UNIX obsługiwane są zazwyczaj poprzez wiersz poleceń. Nie jest to wprawdzie wygodne dla mało zaawansowanych użytkowników, jednak po jego poznaniu wiele osób uznaje go za niezastąpiony sposób komunikacji człowieka z komputerem.

Rodzina systemów UNIX[edytuj | edytuj kod]

Legenda: B – pochodne BSD, V – pochodne Systemu V lub jego poprzedników z AT&T, x – klony (niezależnie napisane od podstaw), S – System V Release 4

Przypisy

  1. Brian L. Stuart: Principles of operating systems: design & applications. Boston: Thompson Learning, 2009, s. 23. ISBN 1-4188-3769-5. (ang.)
  2. 2,0 2,1 Dennis Ritchie: The Evolution of the Unix Time-sharing System (ang.). [dostęp 2011-01-28].
  3. William Stallings: Operating Systems: Internals and Design Principles. Wyd. 5. Pearson Education, Inc., 2005, s. 91. (ang.)
  4. 4,0 4,1 Eric Steven Raymond: Origins and History of Unix, 1969-1995 (ang.). The art of Unix programming. [dostęp 2011-01-28].
  5. D. E. Bodenstab, T. F. Houghton, K. A. Kelleman, G. Ronkin i inni. UNIX Operating System Porting Experiences. „AT&T Bell Laboratories Technical Journal”. 63 (8), s. 9, październik 1984. [dostęp 2011-01-28]. 
  6. Unix. The Computer Chronicles, 1985.
  7. Chuck Karish: „The name "UNIX" is now the property of X/Open. comp.std.unix. [dostęp 2011-01-28].
  8. HP, Novell and SCO To Deliver High-Volume UNIX OS With Advanced Network And Enterprise Services (ang.). 1995-09-20. [dostęp 2011-01-28].

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]