POSIX (ang. Portable Operating System Interface) - dosłownie przenośny interfejs systemu operacyjnego.
Jego powstanie wiąże się z próbą standaryzacji różnych odmian systemu UNIX. Prace nad POSIX-em rozpoczęto około roku 1985, a kierowało nimi stowarzyszenie IEEE. Dlatego POSIX 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 przez The Open Group noszą nazwy Single UNIX Specification, Version x, gdzie x 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.
POSIX standaryzuje:
- interfejs programistyczny (API)
- interfejs użytkownika, czyli polecenia systemowe takie jak między innymi: awk, echo, ed
- właściwości powłoki systemu.
Zasady te ujęte są w około piętnastu różnych dokumentach.
[edytuj] Koszty
Ponieważ IEEE pobierało bardzo wysokie opłaty za dokumentację POSIX i nie zezwalało na jej publikację w Internecie, powstał standard Single UNIX Specification. Jest on otwarty, uwzględnia uwagi od każdego i jest wolnodostępny w Internecie. Procedury standaryzacyjne i związane z nimi testy PCTS (ang. POSIX Conformance Test Suite - Zestaw Testów Zgodności z POSIX-em) są obecnie kosztowne. Implementacja, która przejdzie testy, może uzyskać certyfikat "zgodności z POSIX-em".
[edytuj] Implementacje POSIX-a
POSIX dotyczy przede wszystkim systemów klasy UNIX. Implementacje POSIX zawarte zostały w systemach takich jak QNX, BeOS i AtheOS / Syllable. GNU/Linux oraz FreeBSD są w znacznym stopniu lub często nawet w pełni zgodne z tym standardem. Niektóre z dystrybucji Linuksa przeszły pomyślnie procedury testowe i uzyskały certyfikat. Dla użytkowników Microsoft Windows dostępne są środowiska Cygwin i Interix, które umożliwiają w tym systemie korzystanie z POSIX-owego interfejsu programistycznego.
[edytuj] Rodzina standardów POSIX
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 (poprzednio POSIX.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 (poprzednio POSIX.4a)
- Dodanie funkcji wspierajÄ…cych wÄ…tki (lekkie procesy).
P1003.1d (poprzednio POSIX.4b)
- Kolejne rozszerzenia wspierajÄ…ce systemy czasu rzeczywistego.
P1003.1e (poprzednio POSIX 6)
- Rozszerzenia dotyczące bezpieczeństwa systemu spełniające kryteria bezpieczeństwa opublikowane przez Departament Obrony USA w 'Trusted Computer System Evaluation Criteria' (TCSEC).
P1003.1f (poprzednio POSIX.8), P1003.1g (poprzednio POSIX.12), P1003.1h, P1003.2, P1003.2b, P1003.2c, P1003.2d (poprzednio POSIX.15), P1003.3, P1003.5, P1387 (poprzednio POSIX.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
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- Strona stowarzyszenia The Open Group
- "Strona domowa" systemu UNIX rozumianego jako standard (prowadzona przez The Open Group)