POSIX
POSIX (ang. Portable Operating System Interface) – zestaw standardów definiujących interfejsy programistyczne oraz zachowanie systemów operacyjnych, które mają być przenośne pomiędzy różnymi ich implementacjami. Standardy POSIX zostały opracowane w ramach IEEE jako seria dokumentów IEEE 1003 i są utrzymywane przez ISO w ramach normy ISO/IEC 9945.
Historia
Początki POSIX sięgają końca lat 1984, kiedy to w odpowiedzi na rosnącą fragmentację systemów operacyjnych i potrzebę przenośności aplikacji utworzono grupę roboczą IEEE 1003. Pierwszy dokument, znany jako POSIX.1, został opublikowany w 1988 roku i obejmował podstawowe funkcje systemowe (pliki, procesy, sygnały). W kolejnych latach rozbudowano go o kolejne części, m.in. POSIX.2 (shell i narzędzia) w 1990 oraz POSIX.1b (czas rzeczywisty) w 1993.
Zakres standardu
POSIX definiuje trzy główne obszary:
- Interfejsy programistyczne (API) dostępne w języku C, znane jako POSIX API. Obejmują one m.in. operacje na plikach (
open,read,write), zarządzanie procesami (fork,exec), obsługę sygnałów i wątków (pthread). - Środowisko runtime – zachowanie powłoki (sh), narzędzi linii poleceń (awk, sed, grep) oraz formaty plików (np. tar, cksum).
- Standaryzacja zachowań systemowych, takich jak obsługa błędów, kodowanie znaków (UTF‑8), formaty czasu i daty oraz zasady przydzielania numerów sygnałów.
Implementacje
Wiele współczesnych systemów operacyjnych spełnia wymagania POSIX, w tym:
- Linux – najpopularniejsza otwartoźródłowa implementacja, zapewniająca zgodność z POSIX 1 oraz rozszerzenia z POSIX.1b i POSIX.1c (wątki).
- BSD (np. FreeBSD, OpenBSD) – tradycyjnie zgodny z POSIX i jednocześnie wprowadzający własne rozszerzenia.
- macOS – oparty na jądrze XNU, który implementuje interfejsy POSIX oraz API zgodne z Darwin.
- Windows – choć nie jest natywnie zgodny z POSIX, udostępnia warstwę POSIX Subsystem (np. Windows Subsystem for Linux) oraz zestaw narzędzi Cygwin, które implementują POSIX API.
Zgodność i certyfikacja
Systemy mogą uzyskać certyfikat POSIX po przejściu testów POSIX Test Suite. Certyfikacja jest podzielona na poziomy:
- Conformance – podstawowy poziom zapewniający zgodność z POSIX.1.
- Extended – dodatkowe wymagania obejmujące rozszerzenia takie jak wątki (POSIX.1c) i real‑time (POSIX.1b).
Wpływ na rozwój oprogramowania
Dzięki POSIX programiści mogą pisać aplikacje, które uruchomią się bez zmian na wielu platformach, co przyspiesza rozwój oprogramowania i zmniejsza koszty utrzymania. Standard ten stał się podstawą dla wielu innych specyfikacji, m.in. POSIX Threads (pthreads) oraz Single UNIX Specification, a także wpływa na projektowanie języków programowania i bibliotek (np. glibc).