Co to jest Unix?

Autor: Opublikowano

W skrócie: Unix to system operacyjny powstały w Bell Labs, którego rozwiązania stały się podstawą całej rodziny systemów i wpłynęły na wiele innych. Zaprojektowano go do pracy wielu użytkowników i wykonywania wielu zadań jednocześnie. Linux jest systemem uniksopodobnym, a nie po prostu inną nazwą Uniksa; macOS ma uniksowe fundamenty, a jego określone wersje i konfiguracje uzyskały certyfikację UNIX.

Czym jest Unix i skąd się wziął?

System operacyjny to oprogramowanie, które zarządza sprzętem i umożliwia uruchamianie programów. Przydziela im pamięć i czas procesora, obsługuje pliki oraz kontroluje dostęp do zasobów. Unix pełni właśnie taką funkcję — nie jest językiem programowania ani pojedynczą aplikacją.

Jego początki sięgają końca lat 60. XX wieku i prac w Bell Labs. Do najważniejszych twórców należeli Ken Thompson i Dennis Ritchie. Przepisanie znacznej części systemu w języku C ułatwiło przenoszenie go na różne komputery, zamiast budowania każdej wersji niemal od podstaw dla konkretnego sprzętu.

Z czasem powstały różne odmiany Uniksa. Dlatego dziś słowo „Unix” może oznaczać historyczny system, rodzinę systemów lub zestaw charakterystycznych zasad ich działania. Nie należy traktować go jako nazwy jednego produktu, który zawsze wygląda i działa identycznie.

Jak działa system uniksowy?

Centralnym elementem systemu jest jądro, czyli część zarządzająca procesorem, pamięcią, urządzeniami i procesami. Proces to uruchomiony program wraz z zasobami potrzebnymi do jego działania. Wokół jądra funkcjonują narzędzia użytkowe, usługi i interfejsy, z których korzysta użytkownik.

Typowe dla systemów uniksowych są:

Na przykład na serwerze firmowym konto aplikacji może mieć prawo zapisu w katalogu z przesłanymi dokumentami, ale nie do zmiany plików systemowych. Taki podział ogranicza skutki błędu lub przejęcia aplikacji. Same uprawnienia nie zapewniają jednak pełnego bezpieczeństwa — potrzebne są również aktualizacje i poprawna konfiguracja.

Z Uniksem wiąże się też zasada budowania niewielkich narzędzi, które wykonują konkretne zadania i mogą ze sobą współpracować. Zamiast jednego rozbudowanego programu można połączyć kilka prostszych, przekazując wynik jednego do następnego.

Unix, Linux i macOS — najważniejsze różnice

UNIX jest również znakiem towarowym związanym z certyfikacją prowadzoną przez The Open Group. Certyfikacja potwierdza zgodność określonego produktu z wymaganiami standardu. Podobne działanie albo historyczne pokrewieństwo nie wystarczają, by automatycznie uznać każdy system za certyfikowany UNIX.

NazwaCo oznacza w praktyce?
Unix / UNIXHistoryczny system i jego rodzina, a w kontekście certyfikacji — system spełniający wymagania odpowiedniego standardu.
LinuxŚciśle: jądro systemu. Potocznie: system operacyjny z tym jądrem, rozpowszechniany jako dystrybucja, np. Debian lub Ubuntu.
macOSSystem Apple z uniksowymi fundamentami i graficznym interfejsem; certyfikacja dotyczy konkretnych wydań i konfiguracji.
FreeBSDSystem uniksopodobny wywodzący się z linii BSD, odrębny od Linuksa.

Linux powstał niezależnie od oryginalnego jądra Uniksa, ale nawiązuje do jego modelu działania. Dlatego wiele poleceń i umiejętności można przenosić między Linuksem, macOS i innymi systemami uniksopodobnymi. Nie oznacza to pełnej zamienności: mogą różnić się opcje narzędzi, zarządzanie usługami, instalowanie pakietów i obsługiwane aplikacje.

Jeśli certyfikacja jest wymogiem zakupu lub projektu, należy sprawdzić konkretną wersję i platformę w oficjalnym rejestrze The Open Group, zamiast polegać na ogólnej nazwie systemu.

Czy Unix oznacza pracę wyłącznie w terminalu?

Nie. System uniksowy może mieć środowisko graficzne, czego codziennym przykładem jest macOS. Terminal jest aplikacją dającą dostęp do interfejsu tekstowego, a powłoka, taka jak Bash lub Zsh, interpretuje wpisywane polecenia. Terminal, powłoka i system operacyjny to różne elementy.

Przykładowo w typowym środowisku uniksowym polecenie:

ls /etc

wyświetla nazwy widocznych plików i katalogów w /etc, gdzie zwykle znajdują się ustawienia systemu i usług. Samo polecenie nie zmienia tych plików.

Narzędzia można też łączyć potokiem, oznaczanym znakiem |:

printf 'kot\npies\nkot\n' | sort | uniq

Pierwsze polecenie tworzy trzy wiersze tekstu, sort je porządkuje, a uniq usuwa sąsiadujące powtórzenia. Wynikiem są dwa wiersze: kot i pies. To prosty przykład uniksowej zasady współpracy małych programów.

Po co poznawać Uniksa?

Znajomość uniksowego modelu pomaga w administracji serwerami, programowaniu, automatyzacji i pracy z usługami chmurowymi. Przydaje się także właścicielowi strony, który korzysta z hostingu opartego na Linuksie: ułatwia rozumienie ścieżek, uprawnień i poleceń wykonywanych przez SSH, czyli szyfrowane połączenie zdalne.

Do nauki nie potrzebujesz komercyjnego Uniksa. Możesz użyć terminala macOS, dystrybucji Linuksa w maszynie wirtualnej albo środowiska Linux w Windows przez WSL. Zacznij od poruszania się po katalogach i tworzenia plików w osobnym katalogu ćwiczeniowym, bez uprawnień administratora.

Zobacz też: Co to jest Linux?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.