Obsah
POSIX: Standard pro přenositelnost systémů
POSIX (zkratka pro Portable Operating System Interface, přičemž „X“ bylo přidáno pro „unixový nádech“) definuje rozhraní mezi aplikací a operačním systémem. Pokud je systém „POSIX-compliant“, znamená to, že program napsaný podle těchto pravidel se zkompiluje a spustí na jakémkoli jiném systému splňujícím tento standard.
1. Historický kontext a vznik
V 80. letech existovalo mnoho verzí Unixu (System V, BSD, AIX atd.), které se od sebe mírně lišily. Vývojáři museli pro každou platformu kód upravovat, což bylo nákladné.
- Richard Stallman: Navrhl název POSIX na žádost IEEE.
- Cíl: Vytvořit společného jmenovatele pro systémová volání, správu procesů a práci se soubory.
2. Co POSIX definuje?
Standard pokrývá širokou škálu oblastí, které považujeme za samozřejmé, ale dříve byly nejednotné:
Systémová volání (System Calls)
Definuje, jak program žádá jádro o služby. Například:
open(),read(),write(),close()pro práci se soubory.fork()aexec()pro vytváření a spouštění nových procesů.
Shell a utility
Určuje standardní chování příkazového řádku (Bash, Sh) a základních nástrojů jako ls, grep, awk nebo sed. To zaručuje, že skripty napsané na jednom systému poběží i na druhém.
Vlákna (Pthreads)
Standard POSIX Threads (Pthreads) definuje API pro vícevláknové programování. Umožňuje programům v C++ nebo C využívat více jader CPU jednotným způsobem.
Regulární výrazy
Definuje syntaxi pro vyhledávání textu (Basic a Extended Regular Expressions), kterou používá většina unixových nástrojů.
3. Úrovně shody (Compliance)
- Certifikované systémy: Oficiálně splňují standard a zaplatily za certifikaci. Patří sem macOS, Solaris, AIX nebo HP-UX.
- Ne-POSIX systémy: Microsoft Windows není POSIXový systém, ale nabízí vrstvy jako WSL (Windows Subsystem for Linux), které kompatibilitu simulují.
4. Proč je POSIX důležitý pro vývojáře?
Díky POSIXu může vývojář použít například Clang k sestavení webového serveru na macOS a následně tentýž kód (bez změn v systémových voláních) nasadit na Linuxový server v cloudu.
| Oblast | Výhoda POSIXu |
|---|---|
| Souborový systém | Cesta se vždy odděluje lomítkem (/). |
| Chybové stavy | Standardní chybové kódy jako EACCES (přístup odepřen). |
| Signály | Standardizované signály jako SIGKILL nebo SIGTERM. |
—
Zajímavost: Ačkoliv se Windows snaží od POSIXu distancovat, jeho síťový stack a některé vnitřní mechanismy historicky vycházely z BSD kódu, aby bylo snazší portovat síťové aplikace.
