Unterschied zwischen POSIX-, Single UNIX-Spezifikation und Open Group Base-Spezifikation?

Antworten:

9

Ein wichtiger "Unterschied" ist die Optionsgruppe XSI (XOPEN), die eine Reihe traditioneller Unix-Schnittstellen angibt, die auf einem neuen Betriebssystem, das kein "Unix" ist, wahrscheinlich nicht anwendbar sind. Häufig wird "SUS" verwendet, um auf den vollständigen Standard einschließlich der XSI-Option zu verweisen, und "POSIX", um auf den Basisstandard und möglicherweise auf die nicht auf Unix ausgerichteten Optionsgruppen zu verweisen.

Aufeinanderfolgende Versionen von SUS scheinen Teile der XSI-Option allmählich zu verwerfen, die für das Schreiben von tragbaren Anwendungen nicht wirklich nützlich waren und stattdessen nur ältere Implementierungen widerspiegelten, und einige der nützlicheren Teile auf den Basisstandard zu verschieben.

R ..
quelle
Sie täuschen sich, XSI ist in neueren Versionen des Standards (wenn überhaupt) obligatorisch. Beachten Sie auch, dass laut Autor der POSIX-Validierungstestsuite die XSI-Konformität obligatorisch ist, es sei denn, Sie möchten nur eine eingebettete UNIX-Plattform validieren.
Schily
1
@schily: Zitieren?
R ..
In der aktuellen Dokumentationunistd.h heißt es: "Der Header <unistd.h> darf die folgende symbolische Konstante nur definieren, wenn die Implementierung die XSI-Option unterstützt. Siehe XSI-Konformität. Wenn definiert, muss der Wert für die Verwendung in #if-Vorverarbeitungsdirektiven geeignet sein. _XOPEN_VERSION "
R ..
25

Heute sind POSIX und SUS im Grunde dasselbe. SUS umfasst etwas mehr .

Zitiert hier :

Ab 1998 begann eine gemeinsame Arbeitsgruppe namens Austin Group mit der Entwicklung des kombinierten Standards, der als Single UNIX Specification Version 3 und als POSIX: 2001 (offiziell: IEEE Std 1003.1-2001) bezeichnet werden sollte. Es wurde am 30. Januar 2002 veröffentlicht

und

Im Dezember 2008 veröffentlichte die Austin Group eine neue wichtige Revision mit dem Namen POSIX: 2008 (offiziell: IEEE Std 1003.1-2008). Dies ist der Kern der Single UNIX-Spezifikation, Version 4

Daniel Beck
quelle
POSIX.1-2008 ist nicht Version 4, sondern ISSUE 7 des Standards.
Schily
@schily Habe ich schlecht gewählt, wo das zweite Zitat enden soll? Für mich scheinen sowohl Quelle als auch Zitat eindeutig 'Version 4' und nicht POSIX zuzuordnen.
Daniel Beck
Der Begriff "Problem 7" gilt für Opengroup. Siehe: pubs.opengroup.org/onlinepubs/9699919799 Ich war möglicherweise verwirrt. Ich denke also, UNIX95 ist SUSv1, UNIX98 ist SUSv2, POSIX.1-2001 ist SUSv3 und POSIX.1-2008 ist SUSv4
schily
@schily Richtig, siehe die Wikipedia-Seite, auf der in der Quelle des Zitats Ausgabe 7 erwähnt wird.
Daniel Beck,
11

Wenn Sie oben in den Open Group Base-Spezifikationen nachsehen , sehen Sie die Standardkennung IEEE Std 1003.1-2008. IEEE Std 1003.1 ist das, was als POSIX.1 bezeichnet wird, wobei 2008 die neueste Inkarnation ist. Wenn Sie sich POSIX auf Wikipedia ansehen, werden Sie feststellen, dass der Standard drei Teile enthält, darunter:

  • Basisdefinitionen, Ausgabe 7
  • Systemschnittstellen und Header, Ausgabe 7
  • Befehle und Dienstprogramme, Ausgabe 7

Grundsätzlich ist POSIX nur der Name des Standards, der vom IEEE mit der anfänglichen Version von 1988 entwickelt wurde. POSIX ist offiziell nicht UNIX ™, nur weil IEEE nicht das Warenzeichen besitzt, sondern die Betriebssystemumgebung und die Schnittstelle, die unter UNIX ™ zu finden sind systeme. Später befasste sich die Open Group, die die Marke UNIX ™ kontrolliert, mit der Erstellung eines auf POSIX basierenden Standards namens Single UNIX Specification Version 2 oder SUSv2. Jetzt werden diese beiden Spezifikationen gemeinsam als The Austin Group entwickelt. Die neueste Version ist SUSv4. Also, um zusammenzufassen:

POSIX: 2008 = IEEE Std. 1003.1-2008 = SUSv4 = Das offene Gruppenspezifikationsproblem 7.

Lesen Sie auch meine Antwort auf Was genau ist POSIX?

penguin359
quelle
1
Es ist auch ISO / IEC 9945-2009
fpmurphy
Ach ja, wie schön ist es, so viele Maßstäbe zu haben. Ich kämpfe immer noch darum, die Unterschiede zwischen ISO / IEC 10646 und Unicode herauszufinden, die zwar identische, streng synchronisierte Zeichensätze darstellen, aber immer noch zwei separate und unterschiedliche Standards sind. Ich bin mir nicht sicher, warum sie nicht einfach miteinander auskommen und sie auch komplett deklarieren können.
Pinguin359
1
Im speziellen Fall von POSIX vs SUS hat der Grund mit Lizenzierung und Marke zu tun. POSIX ist generisch und kann auf jedem Betriebssystem implementiert werden. SUS ist der Standard zur Definition von UNIX. Auch wenn sie identisch sind, wird POSIX für alles benötigt, was * nix. Oder * nix-kompatibel ist. SUS muss erfüllt sein, um überhaupt versuchen zu können, UNIX genannt zu werden. Wenn es SUS nicht gäbe, könnte zumindest das UNIX-Warenzeichen geschwächt werden. Ich rechtfertige keine Kapitalmaßnahme, sondern spekuliere nur über ihre Position.
JM Becker
Die heutige IEEE-Version des Standards ist bis auf die ersten paar Seiten und die Tatsache, dass die IEEE-Version in der Regel ca. 100% identisch mit der SUS-Version ist. 6 Monate später.
Schily