GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Gilt Linux als Xsi-konform oder weitgehend so?

Von APUE

Die Single UNIX-Spezifikation, eine Obermenge des POSIX.1-Standards,
spezifiziert zusätzliche Schnittstellen, die die von der POSIX.1-Spezifikation bereitgestellte
Funktionalität erweitern. POSIX.1 entspricht dem Abschnitt Base
Specifications der Single UNIX Specification.

Die Option X/Open System Interfaces (XSI) in POSIX.1 beschreibt
optionale Schnittstellen und definiert, welche optionalen Teile von
POSIX.1 unterstützt werden müssen, damit eine Implementierung als
XSI-konform gilt. Dazu gehören Dateisynchronisierung,
Thread-Stack-Adresse und Größenattribute, Thread-Prozess-geteilte Synchronisation
und die
symbolische Konstante _XOPEN_UNIX (in Abbildung 2.5 mit „SUS obligatorisch“ gekennzeichnet). Nur XSI-konforme Implementierungen können als UNIX-Systeme bezeichnet werden.

Stimmt es, dass SUS genau aus POSIX und XSI besteht?

Stimmt es, dass Linux (oder insbesondere Ubuntu, Debian) POSIX-kompatibel ist?

Gilt Linux (oder insbesondere Ubuntu, Debian) als XSI-kompatibel oder weitgehend?
Ich frage das, weil ich dann weiß, ob die Teile in APUE, die für XSI gekennzeichnet sind, auf Linux (oder insbesondere Ubuntu, Debian) zutreffen.

Ich interessiere mich hauptsächlich für API, also reicht der Linux-Kernel aus?

Akzeptierte Antwort:

Linux ist nicht vollständig POSIX-kompatibel. Es gibt z. Systemaufrufe, die sich anders verhalten (sorry, ich erinnere mich derzeit nicht, was genau die Unterschiede sind; ich werde sie hier beschreiben, wenn ich mich wieder erinnere).

Ein Problem ist z.B. dass Linux keine korrekte waitid() enthält Systemaufruf (der alle 32 Bits vom exit() liefert). -Parameter) und die Linux-Kernel-Leute beheben dies nicht gerne. (waitid() existiert seit AT&T System V Release 4..)

Einige der XSI Funktionen sind in Linux implementiert, aber nicht alle.

bash (so wie es für Linux-Distributionen kompiliert ist) kommt z.B. mit einem Nicht-XSI konformes echo eingebaut, dash unterstützt keine multi byte chars was von XSI benötigt wird . Dies geschah nach einiger Zeit der Einführung von POSIX, nachdem Linux das Angebot erhalten hatte, eine unterstützte Zertifizierung für einen Dollar zu erhalten.

Wenn Sie sich einen korrekten Überblick verschaffen möchten, könnten Sie daran interessiert sein, im Netz nach dem endgültigen Papier der POSIX-Nichtkonformitäten in Linux von Andrew Josey zu suchen, das geschrieben wurde, nachdem die Linux-Leute der Opengroup mitgeteilt hatten, dass sie nicht mehr daran interessiert sind, zu werden POSIX-konform.

Siehe:http://www.opengroup.org/personal/ajosey/tr20-08-2005.txt

Übrigens:Es gibt Gerüchte, dass Red Hat kürzlich eine Kopie der POSIX-Testsuite erhalten hat, also könnte es sein, dass es eine versteckte laufende Zertifizierung gibt …

Verwandt:Ausführen einer benutzerdefinierten Funktion in einem find -exec-Aufruf?
Linux
  1. Was ist POSIX? Warum ist es für Linux/UNIX-Benutzer wichtig?

  2. Linux – Standard- und/oder gemeinsame Verzeichnisse auf Unix/Linux-Betriebssystemen?

  3. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

  4. Linux-mv-Befehl

  5. Linux-Du-Befehl

W-Befehl unter Linux

Bei Befehl unter Linux

So installieren Sie Erlang auf Rocky Linux/Alma Linux/CentOS 8

Posix-Programmierhandbuch vs. Linux-Programmierhandbuch?

Linux gegen Unix

Gibt es eine UNIX-zertifizierte Linux-Distribution?