Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrótowiec – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – wielodostępny, wielozadaniowy 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, BSD oraz macOS, 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 upowszechnienie 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. Narzędzia systemowe zostały zaprojektowane zgodnie z regułą KISS mówiącą, że programy powinny być proste i realizować dobrze jedną rzecz.
Historia W latach 60. XX wieku Massachusetts Institute of Technology, AT&T Bell Labs oraz General Electric projektowały eksperymentalny system operacyjny zwany Multics (ang. Multiplexing Information and Computer Services) przeznaczony dla komputerów . Zawierał on szereg innowacyjnych rozwiązań (np. biblioteki dynamiczne, wymienność urządzeń w trakcie pracy, hierarchiczny system plików), jednak prace nad nim przeciągały się.
thumb|Uniksa po raz pierwszy uruchomiono na komputerze PDP-7 Bell Labs, niezadowolone z wyników, lecz nie z założeń projektowych, wycofało się z projektu w 1969. Ostatnimi pracownikami tej firmy pracującymi nad Multicsem byli: Ken Thompson, Dennis Ritchie, M.D. McIlroy i J.F. Ossanna. 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 także zachęcanie użytkowników do komunikowania się”.
Kiedy Ken Thompson wciąż miał 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 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ż , zbudował także na nim hierarchiczny system plików, zalążek mechanizmu procesów i plików urządzeń, interpreter wiersza poleceń oraz kilka programów narzędziowych.
System początkowo nazwano Unics. Był to żart jednego z kolegów Thompsona – Briana Kernighana. Ponieważ system obsługiwał tylko jednego użytkownika Thomsona nazwano go Un-multiplexed Information and Computing Service. Był to żart słowny nawiązujący do systemu Multics.
Lata 70. mały|Twórcy systemu Unix Ken Thompson (po lewej) oraz Dennis Ritchie (po prawej) W latach 70. do systemu dodano możliwość jednoczesnej pracy większej liczby użytkowników, a sposób zapisu zmieniono 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”. Migracja poprawiła przenośność systemu – uruchomienie go na nowej platformie wymagało przepisania 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”.
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 z fragmentami zależnymi od sprzętu napisanymi w asemblerze PDP-11. Kopie jądra systemu z komentarzem krążyły od 1977 roku w społeczności informatyków w postaci książki „Lions’ Commentary on UNIX 6th Edition, with Source Code” autorstwa profesora Uniwersytetu Nowej Południowej Walii, Johna Lionsa – 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: oraz komercyjny IS/1. W miarę przepisywania coraz większej części systemu na język C, wzrastała przenośność systemu. Grupa programistów z Uniwersytetu w Wollongong uruchomiła system na komputerze , zaś Bell Labs opracował kilka portów na wewnętrzne potrzeby AT&T oraz w ramach eksperymentów. Lista maszyn obejmowała także komputer na bazie procesora Intel 8086 z autorską jednostką zarządzania pamięcią, oraz UNIVAC 1100.
W maju 1975 roku ARPA opisała w dokumencie RFC 681 zalet użycia Uniksa jako hosta sieci ARPANET. W 1978 roku ukazał się 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 oparte na tych rozwiązaniach finalnie doprowadziły do stworzenia w Bell Labs nowego przenośnego systemu o nazwie Plan 9.
Lata 80. thumb|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 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.
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 Cshell 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 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 nowo zał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. W 1984 roku kilka przedsiębiorstw powołało do życia konsorcjum , 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 , narzędzia administracyjne, , nowe formy komunikacji międzyprocesowej, oraz . 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. thumb|Ewolucja systemów uniksowych oraz uniksopodobnych. na licencji open source na licencji shared source i mieszanej na licencji zamkniętej
W roku 1990 Open Software Foundation wydała OSF/1, swoją własną implementację Uniksa bazującą na systemach Mach i BSD. Fundacja ta została założona w 1988 roku i była finansowana przez kilka firm związanych z rynkiem Uniksa, które chciały przeciwstawić się dominacji AT&T i 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”.