
Czasami wydaje się, że Unix istnieje od zawsze, przynajmniej dla użytkowników, którzy używają Linuksa lub BSD w jakiejkolwiek formie od dekady lub dłużej.
Jego ideały położyły podwaliny pod Linuksa i stanowią podstawę systemu macOS. Nowoczesna wersja (FreeBSD) jest używana na tysiącach serwerów, podczas gdy Linux rządzi przestrzenią serwerów wraz z przemysłem superkomputerów.
Mimo że jego pierwotna forma jest historią, pozostaje znaczącym osiągnięciem, które pomogło w uruchomieniu Linuksa i nie tylko.
Początkowo miał jednak trudny start i musiał być rozwijany w tajemnicy.
Karty Perforowane i Multics

W czasach, gdy komputery zajmowały całe pomieszczenia, główną metodą korzystania z komputerów był interfejs kart dziurkowanych. Komputery nie były wyposażone w system operacyjny, miały wbudowany język programowania. Jeśli chciałeś uruchomić program, musiałeś użyć urządzenia, aby wprowadzić swój program i dane na serię kart dziurkowanych.
Według wywiadu z Brianem Kernighanem, jednym z twórców Uniksa – cytuję:
„Jeśli więc miałbyś program składający się z 1000 wierszy, miałbyś 1000 kart. Nie było ekranów, nie było interaktywnego wyjścia. Dawałeś swoje karty operatorowi komputera i czekałeś na wydruk, który był wynikiem twojego programu”.

W tamtym czasie wszystkie dane wyjściowe z tych komputerów były pisane wielkimi literami. Kernighan napisał aplikację do obsługi formatowania swojej pracy dyplomowej.
„I tak praca dyplomowa składała się zasadniczo z trzech pudełek kart, po 6000 kart w każdym pudełku, prawdopodobnie ważył 10, 12 funtów, pięć kilogramów. I tak brałeś te trzy pudełka, 1000 kart, z których pierwsza połowa pierwszego pudełka to program, a pozostałe 5000 kart to praca dyplomowa. I brałeś te trzy pudełka i wręczałeś je operatorowi. A godzinę, dwie lub trzy później wracała wydrukowana wersja pracy dyplomowej”.
Nie trzeba dodawać, że dzięki temu pisanie współczesnych prac dyplomowych wydaje się bezwysiłkowe, prawda?
Pod koniec lat 50. AT&T, Massachusetts Institute of Technology i General Electric stworzyły projekt mający na celu zrewolucjonizowanie informatyki i wysunięcie jej poza karty perforowane.
Projekt nazwano Multics lub „Multiplexed Information and Computing Service”. Zgodnie z dokumentem, w którym przedstawiono plany projektu, istniało dziewięć głównych celów:
- Wygodne korzystanie ze zdalnego terminala.
- Ciągła praca analogiczna do usług zasilania i telefonii.
- Szeroki zakres konfiguracji systemu, z możliwością zmiany bez reorganizacji systemu lub programu użytkownika.
- Wewnętrzny system plików o wysokiej niezawodności.
- Obsługa selektywnego udostępniania informacji.
- Hierarchiczne struktury informacji do administrowania systemem i decentralizacji działań użytkowników.
- Obsługa szerokiej gamy aplikacji.
- Obsługa wielu środowisk programistycznych i interfejsów użytkownika.
- Możliwość rozwijania systemu wraz ze zmianami technologii i aspiracji użytkowników.

Multics byłby komputerem z podziałem czasu, zamiast polegać na kartach perforowanych. Oznacza to, że użytkownicy mogliby się zalogować do systemu za pomocą terminala i korzystać z niego przez określony czas. To zmieniłoby komputer z systemu zarządzanego przez klasę arcykapłanów (Steven Levy wspomniał o tej koncepcji w swojej książce Hackers.) w coś, do czego dostęp mógłby uzyskać każdy, kto posiadałby odpowiednią wiedzę.
Projekt był bardzo ambitny. Niestety, przekształcenie pomysłów w rzeczywistość wymaga czasu. Bell Labs wycofało się z projektu w 1969 roku. Dołączyli do projektu, aby uzyskać system operacyjny z podziałem czasu dla swoich pracowników, ale postęp był niewielki.
Lekcje wyciągnięte z Multics ostatecznie pomogły w stworzeniu Uniksa, więcej na ten temat poniżej.
Poza granice kosmosu!

Inżynierowie Bell, którzy pracowali nad Multics (w tym Ken Thompson i Dennis Ritchie) zostali bez systemu operacyjnego, ale z mnóstwem pomysłów. Pod koniec swojego zaangażowania w Multics zaczęli pisać system operacyjny na komputerze GE-645. Ale potem projekt się zakończył i nie potrzebowali już komputera.
Lobbowali u swoich szefów, aby kupili minikomputer, aby rozpocząć własny projekt systemu operacyjnego, ale im odmówiono. Kontynuowali pracę nad projektem w tajemnicy. Często spotykali się i omawiali, czego chcieliby od systemu operacyjnego, i szkicowali pomysły na architekturę.
W tym czasie Thompson zaczął pracować nad małym projektem pobocznym. Napisał grę na GE-645 o nazwie Space Travel. Gra „symulowała wszystkie główne ciała niebieskie w Układzie Słonecznym wraz ze statkiem kosmicznym, który mógł latać wokół nich”.
Niestety, uruchomienie gry na komputerze mainframe było drogie. Każda gra kosztowała 75 dolarów. Thompson zaczął więc szukać innego, tańszego komputera. Odkrył minikomputer PDP-7, który pozostał mu po poprzednim projekcie. Przepisał grę, aby działała na PDP-7.

Latem 1969 roku żona Thompsona zabrała nowonarodzonego syna do rodziców. Thompson wykorzystał ten czas i nowo nabyte umiejętności programowania, aby zacząć pisać system operacyjny dla PDP-7, ponieważ zobaczył ten nowy projekt.
Do projektu dołączyli inni pracownicy Bell Labs. Zespół szybko napotkał ograniczenia związane z samym sprzętem. PDP-7 był na wczesnym etapie, więc musieli wymyślić, jak zdobyć nowszy komputer. Wiedzieli, że ich szefowie nigdy nie kupią nowego systemu, ponieważ „kierownictwo laboratorium nie zamierzało zezwolić na dalsze badania nad systemami operacyjnymi”.
W tamtym czasie Bell Labs wygenerowało wiele patentów. Według Kernighana „zwykle jeden lub dwa dziennie w tamtym momencie”. Tworzenie wniosków o te patenty było czasochłonne, ponieważ formatowanie wymagane przez rząd było bardzo specyficzne.
W tamtym czasie nie było komercyjnych programów do przetwarzania tekstu, które mogłyby obsłużyć formatowanie. Grupa Unix zaproponowała napisanie programu dla działu patentowego, który działałby na lśniącym nowym PDP-11. Obiecali również, że zrobią to, zanim będzie dostępne jakiekolwiek komercyjne oprogramowanie do tego samego. Oczywiście nie wspomnieli, że będą musieli napisać system operacyjny, na którym oprogramowanie będzie działać.
Ich szefowie przystali na propozycję i złożyli zamówienie na PDP-11 w maju 1970 r. Komputer szybko dotarł, ale dostarczenie napędów zajęło sześć miesięcy.

W międzyczasie zespół kontynuował pisanie Uniksa na PDP-7, co uczyniło go pierwszą platformą, na której rozwinęła się pierwsza wersja Uniksa. Gdy PDP-11 był już gotowy i działał, zespół przeniósł to, co miał, na nowy system. W krótkim czasie nowe oprogramowanie do składania wniosków patentowych zostało zaprezentowane w dziale patentowym. Odniosło sukces. Kierownictwo było tak zadowolone z wyników, że kupiło zespołowi Uniksa jego własnego PDP-11.
Rosnące prawne problemy

Posiadając mocniejszy komputer, kontynuowano prace nad Unixem. W 1971 roku zespół wydał swój pierwszy oficjalny podręcznik: UNIX Programmer’s Manual. System operacyjny został oficjalnie zaprezentowany światu w artykule przedstawionym na sympozjum Association for Computing Machinery w 1973 roku. Następnie nastąpiła fala próśb o kopie.
To wywołało nowe problemy. AT&T, firma, która finansowała Bell Labs, nie mogła sprzedać systemu operacyjnego. W 1956 roku AT&T zostało zmuszone przez rząd USA do wyrażenia zgody na dekret.
Dekret zgody zabraniał AT&T „sprzedaży produktów niezwiązanych bezpośrednio z telefonami i telekomunikacją w zamian za jej prawny monopol na prowadzenie krajowej usługi telefonii międzymiastowej”. Rozwiązaniem było udostępnienie „kodu źródłowego Unix na licencji każdemu, kto o to poprosi, pobierając jedynie symboliczną opłatę”.
Dekret zgody zabraniał również AT&T świadczenia pomocy technicznej. Kod był więc zasadniczo dostępny w stanie takim, jaki jest. Doprowadziło to do powstania pierwszych grup użytkowników, gdy użytkownicy Uniksa połączyli siły, aby zapewnić sobie wzajemną pomoc.
Programowanie w C, niezbędny katalizator
Stworzenie języka programowania C przez Dennisa Ritchiego w Bell Labs pomogło Uniksowi w rozwoju jego przyszłych wersji i pośrednio wpłynęło na możliwość stworzenia BSD i Linuxa.
A teraz mamy wiele języków programowania, systemów operacyjnych, w tym kilka wariantów Linuksa, BSD i systemów operacyjnych podobnych do Uniksa.