Różnica między POSIX, pojedynczą specyfikacją UNIX i specyfikacjami otwartej grupy bazowej?


Odpowiedzi:


9

Jedną ważną „różnicą” jest grupa opcji XSI (XOPEN), która określa szereg tradycyjnych interfejsów uniksowych, które prawdopodobnie nie będą miały zastosowania w nowym systemie operacyjnym, który nie jest „uniksowy”. Często ludzie używają „SUS”, aby odnieść się do pełnego standardu, w tym opcji XSI, oraz „POSIX”, aby odnieść się do standardu podstawowego i ewentualnie nie-uniksowych grup opcji.

Kolejne wersje SUS wydają się stopniowo wycofywać części opcji XSI, które tak naprawdę nie były przydatne do pisania aplikacji przenośnych, a zamiast tego odzwierciedlały tylko starsze implementacje i przenoszą kilka bardziej przydatnych części do standardu podstawowego.


Mylisz się, XSI jest (jeśli w ogóle) obowiązkowe w nowszych wersjach standardu. Należy również pamiętać, że według autora zestawu testów sprawdzających poprawność POSIX zgodność XSI jest obowiązkowa, chyba że użytkownik chce zweryfikować tylko wbudowaną platformę UNIX.
schily

1
@schily: Cytowanie?
R ..

Aktualna dokumentacjaunistd.h brzmi: „The <unistd.h> Nagłówek określa następujące stałą symboliczną tylko wtedy, gdy implementacja wspiera opcję XSI, patrz XSI zgodności Jeśli zdefiniowany, jego wartość powinna być odpowiednia do stosowania w dyrektywach preprocesora _XOPEN_VERSION #if.. „
R ..


25

Dzisiaj POSIX i SUS są w zasadzie tym samym; SUS obejmuje trochę więcej .

Cytując tutaj :

Począwszy od 1998 r., Wspólna grupa robocza znana jako Austin Group zaczęła opracowywać połączony standard, który będzie znany jako Single UNIX Specification Version 3 i POSIX: 2001 (formalnie: IEEE Std 1003.1-2001). Został wydany 30 stycznia 2002 r

i

W grudniu 2008 r. Austin Group opublikowała nową poważną wersję, znaną jako POSIX: 2008 (formalnie: IEEE Std 1003.1-2008). Jest to rdzeń specyfikacji Single UNIX, wersja 4


POSIX.1-2008 nie jest wersją 4, ale WYDANIE 7 standardu.
schily,

@schily Czy źle wybrałem, gdzie zakończyć drugi cytat? Wydaje mi się, że zarówno źródło, jak i cytat wyraźnie odnoszą się do „wersji 4” do SUS, a nie POSIX.
Daniel Beck

Termin „problem 7” dotyczy Opengroup. Zobacz: pubs.opengroup.org/onlinepubs/9699919799 Mogłem się pomylić. Sądzę więc, że UNIX95 to SUSv1, UNIX98 to SUSv2, POSIX.1-2001 to SUSv3, a POSIX.1-2008 to SUSv4
schily,

@schily Racja, patrz strona Wikipedii, gdzie źródło cytatu wspomina o numerze 7
Daniel Beck

11

Patrząc na górę specyfikacji podstawowej grupy otwartej , zobaczysz standardowy identyfikator IEEE Std 1003.1-2008. IEEE Std 1003.1 jest znany jako POSIX.1, a 2008 jest po prostu najnowszym wcieleniem. Patrząc na POSIX na Wikipedii, zobaczysz, że standard składa się z trzech części, w tym:

  • Podstawowe definicje, wydanie 7
  • Interfejsy systemowe i nagłówki, wydanie 7
  • Polecenia i narzędzia, wydanie 7

Zasadniczo POSIX to tylko nazwa standardu opracowanego przez IEEE z pierwotną wersją wykonaną w 1988 r. POSIX nie jest oficjalnie UNIX ™ po prostu dlatego, że IEEE nie jest właścicielem znaku towarowego, ale jest to środowisko systemu operacyjnego i interfejs systemu UNIX ™ systemy. Później grupa Open Group, która kontroluje znak towarowy UNIX ™, zaangażowała się w tworzenie standardu opartego na POSIX o nazwie Single UNIX Specification wersja 2 lub SUSv2. Teraz te dwie specyfikacje zostały opracowane wspólnie jako The Austin Group. Najnowsza wersja to SUSv4. Więc by podsumować:

POSIX: 2008 = IEEE Std. 1003.1-2008 = SUSv4 = Otwarta specyfikacja grupy, wydanie 7.

Przeczytaj także moją odpowiedź na temat Czym dokładnie jest POSIX?


1
Jest to również ISO / IEC 9945-2009
fpmurphy

Ach, tak, jak cudownie jest mieć tyle standardów. Wciąż staram się zrozumieć różnice między ISO / IEC 10646 a Unicode, które, mimo że reprezentują identyczne zestawy znaków, ściśle zsynchronizowane ze sobą, wciąż są dwoma oddzielnymi i różnymi standardami. Nie jestem pewien, dlaczego nie mogą się dogadać i ogłosić, że są całkowicie synonimami.
penguin359,

1
W konkretnym przypadku POSIX vs. SUS powodem jest licencjonowanie i znak towarowy. POSIX jest ogólny, można go zaimplementować w dowolnym systemie operacyjnym. SUS to standard definiujący system UNIX. Nawet jeśli są identyczne, POSIX jest potrzebny do czegokolwiek * nix. Lub * nix kompatybilnego. SUS musi zostać spełniony, aby nawet spróbować uzyskać nazwę UNIX. Gdyby SUS nie istniał, to przynajmniej znak towarowy UNIX mógłby zostać osłabiony. Nie usprawiedliwiam żadnych działań korporacyjnych, po prostu spekuluję na temat ich pozycji.
JM Becker,

Wersja standardu IEEE jest dziś w 100% identyczna z wersją SUS, z wyjątkiem kilku pierwszych stron i faktu, że wersja IEEE zwykle pojawia się w przybliżeniu. 6 miesięcy później.
schily
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.