Co to jest POSIX?
Interfejs przenośnego systemu operacyjnego dla środowisk obliczeniowych (POSIX®) to zestaw standardów i specyfikacji, które określają sposoby interakcji programów komputerowych z systemem operacyjnym. Aplikacje zgodne z tymi standardami można łatwiej przenosić na inne platformy, które również obsługują specyfikacje. Specyfikacje te zostały oficjalnie przyjęte na arenie międzynarodowej i stały się wymagane przez niektórych specjalnych klientów z sektora rządowego, obronnego i lotniczego. Istnieją różne poziomy zgodności z rodziną standardów, na które duży wpływ wywarła konstrukcja platformy UNIX®.
Podjęto wiele prób złagodzenia trudności w tworzeniu oprogramowania dla więcej niż jednej platformy komputerowej. Różnice w projekcie systemu operacyjnego, dostępnych językach programów i sprzęcie powodują problemy ze zgodnością, których nie można łatwo pokonać. Istnieje wiele różnych opinii na temat tego, jak najlepiej sprostać wyzwaniom obliczeń wieloplatformowych. POSIX® stosuje podejście oparte na regułach, które reguluje sposób interakcji aplikacji z ich platformą bazową, a także nakazuje włączenie kilku narzędzi. Reguły te dotyczą zarówno aplikacji, jak i systemów operacyjnych i zapewniają standardowy sposób komunikacji między nimi.
Celem POSIX® jest zapewnienie możliwości przenoszenia kodu źródłowego. Kod źródłowy, czytelna dla człowieka wersja programu komputerowego służącego do tworzenia aplikacji, jest „kompilowana” w kod maszynowy, który może być zrozumiany przez mikroprocesory we wszystkich komputerach. Różne procesory zawierają różne typy kodu maszynowego; oznacza to, że program musi być napisany nie tylko z myślą o systemie operacyjnym, ale ze szczególnym sprzętem, na którym program będzie działał. Przenośność kodu źródłowego oznacza, że kod źródłowy programu można skompilować dla różnych platform przy niewielkim wysiłku lub bez wysiłku, dzięki czemu bardziej efektywne jest ponowne wykorzystanie istniejącego kodu niż odtwarzanie programu od zera.
Wiele dużych organizacji, które kupują szeroką gamę sprzętu i oprogramowania, zaczęło postrzegać rodzinę standardów POSIX® jako ważną, a nawet niezbędną funkcję dla kupowanych produktów. Instytut Inżynierów Elektryków i Elektroników (IEEE), Międzynarodowa Organizacja Normalizacyjna (ISO) oraz Międzynarodowa Komisja Elektrotechniczna (IEC) poparli standardy POSIX® jako IEEE 1003 i ISO / IEC 9945. To międzynarodowe przyjęcie upowszechniło standardy wśród klienci rządowi. Niektórzy klienci wojskowi i kosmiczni wymagają standardów, aby ułatwić dostosowanie aplikacji do specjalistycznych platform obliczeniowych wykorzystywanych w tych dziedzinach. Na przykład amerykańska marynarka wojenna włączyła standardy do Open Architecture Computing Environment, inicjatywy mającej na celu utrzymanie interoperacyjności oprogramowania, które zasila okręty wojenne, bezzałogowe statki powietrzne i okręty podwodne.
POSIX® to rodzina powiązanych standardów, a nie pojedyncza specyfikacja. Niektóre są dobrze obsługiwane, a inne nie. Istnieją również różne poziomy wsparcia, przy czym „zgodne” oprogramowanie ściśle przestrzega standardów, a „zgodne” produkty obsługują tylko niektóre z nich. Wiele specyfikacji POSIX® było opartych na systemach operacyjnych UNIX®, więc wiele platform UNIX® i podobnych do UNIX® obsługuje standardy od razu po wyjęciu z pudełka. Niektóre inne platformy obsługują IEEE 1003 za pomocą dodatkowego oprogramowania.