encyklopedia.space

Unix

Unix – rodzina wielozadaniowych, wieloużytkownikowych systemów operacyjnych, które po raz pierwszy zostały opracowane w latach 60. i 70. XX wieku w Bell Labs. System ten stał się podstawą dla wielu współczesnych systemów, w tym Linux, BSD oraz komercyjnych wersji, takich jak AIX, Solaris czy HP‑UX.

Historia

Pierwsza wersja Uniksa została napisana w języku asemblera w 1969 roku przez Kena Thompsona i Dennis’a Ritchie’ego. Pierwszy system nosił nazwę Unics (skrót od Uniplexed Information and Computing Service), a później, po wprowadzeniu kolejnych zmian, przybrał nazwę Unix. W 1973 r. został przepisany na język C, co znacznie ułatwiło jego przenoszenie na różne platformy sprzętowe.

Architektura

Uniksowa architektura opiera się na kilku kluczowych koncepcjach:

  • Jądro (kernel) – centralna część systemu zarządzająca pamięcią, procesorami, systemem plików oraz obsługą urządzeń.
  • System wywołań (system calls) – interfejs programistyczny, umożliwiający aplikacjom dostęp do zasobów jądra. Typowe wywołania to fork(), exec(), read(), write(), open() i close().
  • System plików – hierarchiczna struktura zaczynająca się od katalogu /. Wszystkie elementy, w tym urządzenia, są reprezentowane jako pliki, co upraszcza dostęp i manipulację.
  • Powłoka (shell) – program interfejsu tekstowego, najczęściej Bourne shell (sh), C shell (csh), Korn shell (ksh) lub Bash. Powłocki umożliwiają tworzenie skryptów automatyzujących zadania.

Standardy

W latach 80. powstała inicjatywa ujednolicenia różnych wersji Uniksa w ramach POSIX (Portable Operating System Interface). Standard ten definiuje zestaw interfejsów API, zachowań powłok oraz formatów plików, co umożliwia przenoszenie aplikacji pomiędzy różnymi implementacjami Uniksa.

Warianty

Od czasu powstania pierwotnego systemu powstało wiele odmian, które można podzielić na dwie główne grupy:

  • BSD (Berkeley Software Distribution) – rozwijany na Uniwersytecie Kalifornijskim w Berkeley. Najważniejsze wersje to FreeBSD, OpenBSD i NetBSD.
  • Systemy komercyjne – m.in. AIX (IBM), Solaris (Sun/Oracle), HP‑UX (Hewlett‑Packard) oraz IRIX (Silicon Graphics).

Znaczenie i wpływ

Unix odegrał kluczową rolę w rozwoju systemów operacyjnych, komputerów oraz programowania. Jego filozofia projektowa – prostota, modularność i użycie małych, jednofunkcyjnych programów łączonych potokami (pipes) – stała się fundamentem nowoczesnego oprogramowania.

Systemy oparte na Uniksie dominują w serwerach internetowych, superkomputerach, systemach wbudowanych oraz smartfonach (np. Android oparty jest na jądrze Linux). Ponadto wiele narzędzi i języków programowania (np. C, Perl, Python) zostało pierwotnie opracowanych dla środowiska Unix.

Podstawowe elementy systemu

Element Opis
Jądro (kernel) Odpowiada za zarządzanie zasobami sprzętowymi i procesami.
Powłoka (shell) Interfejs użytkownika do wprowadzania poleceń i uruchamiania skryptów.
System plików Hierarchiczna struktura plików rozpoczynająca się od katalogu głównego /.
Usługi (daemony) Programy działające w tle, np. cron, sshd, syslogd.

Przykładowe polecenia

# wyświetlenie bieżącego katalogu
pwd

# lista plików w katalogu
ls -l

# kopiowanie pliku
cp plik1.txt plik2.txt

# zmiana uprawnień
chmod 755 skrypt.sh

# uruchomienie programu w tle
nohup program &

Współczesne zastosowania

Dziś Unix i jego pochodne są wykorzystywane w:

  • centrach danych i chmurach obliczeniowych,
  • systemach sterowania w przemyśle,
  • urządzeniach mobilnych (Android),
  • systemach operacyjnych macOS (pochodzących od NeXTSTEP, który bazował na BSD).

Patrzenie w przyszłość

Rozwój Uniksa nie ustaje. Projekty takie jak OpenBSD kładą nacisk na bezpieczeństwo, a inicjatywy typu FreeBSD rozwijają nowoczesne funkcje sieciowe i wirtualizację. Jednocześnie społeczność open‑source nieustannie udoskonala jądro Linux, które pozostaje najpopularniejszą implementacją uniksowego modelu.

Podsumowując, Unix jest nie tylko systemem operacyjnym, ale także kulturowym i technologicznym fundamentem współczesnej informatyki, którego wpływ jest widoczny w praktycznie każdej dziedzinie związanej z komputerami.