encyklopedia.space

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:

  1. 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).
  2. Środowisko runtime – zachowanie powłoki (sh), narzędzi linii poleceń (awk, sed, grep) oraz formaty plików (np. tar, cksum).
  3. 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).

Zobacz także