Podstawy – Historia Uniksa. AT&T UNIX, BSD, GNU i Linux

Programiści należących wówczas do AT&T Laboratoriów Bella (wśród nich m. in. Dennis Ritchie) stworzyli pod koniec lat sześćdziesiątych (latem 1969 r.) system operacyjny dla komputerów PDP-7, który nazwali UNIX. Założyli oni, że system powinien być prosty i elegancki, napisany w języku wysokiego poziomu, ma także pozwalać na wielokrotne wykorzystanie tego samego kodu. W tamtych czasach systemy operacyjne były duże objętościowo i napisane w języku assemblera. UNIX miał stosunkowo mało kodu assemblerowego – jądro systemu, pozostałe części zostały napisane w języku B. W latach 1972-1973 przepisano cały kod z języka B do nowo powstałego języka C.

W roku 1979 udostępnione zostało Wydanie Siódme (V7) Uniksa, uznawane za “dziadka” współczesnych systemów uniksowych.

Twórcy Uniksa od początku współpracowali ze środowiskiem akademickim. W pewnym momencie jednak ich drogi się rozeszły: na Uniwersytecie Kalifornijskim w Berkeley został stworzony nowy wariant Uniksa nazwany Berkeley Software Distribution
(BSD), podczas gdy AT&T kontynuowała prace nad własną wersją (tzw. “System V”). Wersje te konkurowały ze sobą w latach osiemdziesiątych. Wydawać się mogło, że ostatecznie zwyciężył System V, gdyż większość jego architektury została uznana za standard. Niemniej jednak, SysV przejął z czasem wiele cech BSD. AT&T udzielało licencji na swojego Uniksa wielu producentom sprzętu, pojawiły się więc takie systemy jak HP-UX Hewletta-Packarda czy Sun Solaris, będące wariantami Systemu V. Wszystkie one stanowiły komercyjne i zamknięte rozwiązania.

Proces komercjalizacji i utajniania kodu źródłowego nie podobał się wielu osobom. Jedną z nich był Richard Stallman z Politechniki w Massachusetts (MIT), twórca bardzo popularnego wśród programistów uniksowych edytora tekstu Emacs. W roku 1984 Stallman wpadł na pomysł stworzenia otwartej i dostępnej dla każdego wersji Uniksa, którą nazwał GNU (co jest rekursywnym akronimem od „GNU’s Not Unix”). Prace nad GNU miała prowadzić założona przez Stallmana Fundacja na rzecz Swobodnego Oprogramowania (Free Software Foundation). Za „swobodne oprogramowanie” Stallman uważał takie programy, które można bez ograniczeń używać, modyfikować, kopiować i rozpowszechniać. Do początku lat 90. FSF miała już gotowe prawie wszystkie swobodne odpowiedniki zamkniętych narzędzi oryginalnego Uniksa. W skład GNU wchodził wspomniany wcześniej edytor Emacs, kompilator języka C (GCC, GNU C Compiler, obecnie pod nazwą GNU Compiler Collection) oraz podstawowe narzędzia linii poleceń (ulepszona powłoka Bourne’a – „Bourne-Again Shell” czyli bash, fileutils, binutils, textutils i inne). Jedynym brakującym elementem GNU było jądro, którego FSF nie udało się doprowadzić do pełnej funkcjonalności (z powodu przyjęcia zbyt ambitnych założeń projektowych).

W roku 1991 student informatyki na Uniwesytecie Helsińskim Linus Torvalds opracował jądro systemu podobnego do Uniksa, które nazwał „Linux”. To przeznaczone dla komputerów PC 386 jądro dobrze współpracowało z elementami stworzonymi przez GNU oraz pochodzącymi z BSD. Torvalds rozpowszechnił swoje dzieło stosując warunki licencyjne projektu GNU – tzw. Ogólną Licencję Publiczną GNU. W ten sposób projekt GNU uzyskał ostatni brakujący element – jądro.

Od tej chwili można mówić o systemie GNU z jądrem Linux (GNU/Linux). Często potocznie określa się ten system po prostu mianem „Linux”, choć warto pamiętać, że w typowej instalacji GNU/Linuksa więcej kodu pochodzi od twórców projektu GNU.
Popularność GNU/Linuksa od początku lat 90 nieustannie wzrasta. Dystrybucje tego systemu wypierają z rynku komercyjne i drogie wersje Uniksa, od kilku lat GNU/Linux jest także najgroźniejszą konkurencją dla Windows Microsoftu, a także podstawą dla najpopularniejszego smartphone-owego systemu Android. Warto też wspomnieć, że z systemu BSD równolegle do rozwoju Linuksa wykiełkowały FreeBSD, NetBSD i OpenBSD, będące również darmowymi i swobodnymi odmianami Uniksa.

Największą popularność swobodne oprogramowanie przeżywa od kilku lat. Coraz więcej firm zaczyna otwierać źródła swojego software’u i wykorzystywać inne otwarte programy. Firma Apple pod koniec lat dziewięćdziesiątych praktycznie porzuciła rozwijany przez siebie system Mac OS Classic na rzecz zmodyfikowanej wersji FreeBSD z jądrem Mach. W ten sposób powstał Mac OS X – system łączący najlepsze cechy Uniksa z łatwością obsługi Mac OS. Dziesiąta wersja systemu operacyjnego Macintoshy jest więc jak najbardziej pełnoprawnym wariantem Uniksa.

Współcześnie do zastosowań domowych z systemów uniksowych używa się głównie GNU/Linuksa i właśnie Mac OS X, choć liczba domowych użytkowników tego rodzaju systemów jest znacznie niższa niż Windows. Na serwerach systemy uniksowe (GNU/Linux,
*BSD, Solaris, HP-UX, IRIX, AIX, UnixWare) mają olbrzymią przewagę nad produktami Microsoftu.

Wiele elementów systemów uniksowych zostało ustandaryzowane normą IEEE – POSIX (Portable Operating System Interface). Środowisko linii poleceń w pewnym stopniu zgodnym z normą POSIX jest wykorzystywane także w systemach nieuniksowych. Jeśli ktoś posiada umiejętności poruszania się w Uniksie, nie będzie dla niego problemem odnalezienie się np. w dwóch systemach czasu rzeczywistego (QNX i BeOS). Środowisko GNU zostało także sportowane na platformę Windows (Cygwin), tak więc także pod Windows można sobie stworzyć „namiastkę Uniksa”.

Autor: Marek Stępień (http://blog.marcoos.com/)
Tekst został pierwotnie opublikowany tutaj: http://piast.pertus.com.pl/~marcoos/unix/unix.pdf


Wszystkie części serii: