POSIX (ang. Portable Operating System Interface for UNIX) – przenośny interfejs dlasystemu operacyjnegoUnix.
POSIX to odpowiedź na próby standaryzacji różnych odmian systemu operacyjnegoUnix. Prace nad tym standardem rozpoczęto ok. roku1985, a kierowało nimi stowarzyszenieIEEE, dlategoPOSIX znany jest również pod nazwąIEEE 1003. Nad dalszym rozwojem standardu sprawuje pieczęThe Open Group we współpracy z IEEE i firmami komputerowymi takimi jak:IBM,Sun Microsystems,Hewlett-Packard,NEC Corporation,Fujitsu,Hitachi. Kolejne edycje standardu wydawane przezThe Open Group noszą nazwySingle UNIX Specification, Versionx, gdziex to kolejny numer wersji. Aktualna wersja jest trzecią, a pojawiła się w roku 2001. Od roku 2003 jest to norma międzynarodowa ISO/IEC 9945:2003.
Nazwę „POSIX” zaproponowałRichard Stallman[1].
POSIX standaryzuje:
Zasady te ujęte są w około piętnastu różnych dokumentach.
POSIX dotyczy przede wszystkim systemów klasyUNIX. ImplementacjePOSIX zawarte zostały w systemach takich jakMac OS X 10.5,QNX,BeOS iAtheOS /Syllable.GNU/Linux orazFreeBSD są w znacznym stopniu lub często nawet w pełni zgodne z tym standardem. Niektóre zdystrybucji Linuksa, np. Linux-FT[2] czy Unifix Linux[3], przeszły pomyślnie procedury testowe i uzyskały świadectwo zgodności. Dla użytkownikówMicrosoft Windows dostępne są środowiskaCygwin iInterix, które umożliwiają w tym systemie korzystanie z POSIX-owego interfejsu programistycznego.
P1003.1
- Definiuje interfejs aplikacji tak, aby była ona w pełni przenośna pomiędzy różnymi systemami operacyjnymi.
- Interfejs ten bazuje na modelach systemu UNIX.
- Zawiera zbiór funkcji które są często implementowane jako wywołania systemowe.
P1003.1a
- Zestaw różnych interpretacji, wyjaśnień i rozszerzeń (linki symboliczne).
P1003.1b(poprzednioPOSIX.4)
- Rozszerzenia dotyczące systemów czasu rzeczywistego.
- semafory (binarne),
- proces blokowania pamięci,
- pliki mapowane w pamięci i współdzielona pamięć,
- kolejkowanie priorytetowe,
- sygnały w czasie rzeczywistym,
- liczniki czasu (timers),
- komunikacja międzyprocesowa
- synchroniczne operacje wejścia/wyjścia (I/O),
- asynchroniczne operacje wejścia/wyjścia (I/O),
P1003.1c(poprzednioPOSIX.4a)
- Dodanie funkcji wspierających wątki (lekkie procesy).
P1003.1d(poprzednioPOSIX.4b)
- Kolejne rozszerzenia wspierającesystemy czasu rzeczywistego.
P1003.1e(poprzednioPOSIX 6)
- Rozszerzenia dotyczące bezpieczeństwa systemu spełniające kryteria bezpieczeństwa opublikowane przez Departament ObronyUSA w 'Trusted Computer System Evaluation Criteria' (TCSEC).
P1003.1f(poprzednioPOSIX.8), P1003.1g(poprzednioPOSIX.12), P1003.1h, P1003.2, P1003.2b, P1003.2c, P1003.2d(poprzednioPOSIX.15), P1003.3, P1003.5, P1387(poprzednioPOSIX.7), P1003.9, P1003.10, P1003.11, P1003.13, P1003.14, P1003.16, P1224.2(poprzednio POSIX.17),POSIX.18,POSIX.19,POSIX.20,POSIX.21,POSIX.0
Bezpłatna kopiaonline[4]
PonieważIEEE wymaga wysokich opłat zadokumentacjęPOSIX i nie zezwala na jej publikację wInternecie, powstał standardSingle UNIX Specification. Jest on otwarty, uwzględnia uwagi od każdego i jestwolnodostępny. Procedury standaryzacyjne i związane z nimi testy PCTS (ang.POSIX Conformance Test Suite czyli „Zestaw testów zgodności zPOSIX”), są obecnie kosztowne, aimplementacja, która przejdzie testy, może uzyskaćświadectwo zgodności ze standardemPOSIX.