Différence entre les spécifications POSIX, Single UNIX et Open Group Base?

Réponses:

9

Une "différence" importante est le groupe d'options XSI (XOPEN), qui spécifie un certain nombre d'interfaces Unix traditionnelles susceptibles de ne pas être applicables à un nouveau système d'exploitation qui n'est pas "Unix". Les gens vont souvent utiliser "SUS" pour faire référence à la norme complète, y compris l'option XSI, et "POSIX" pour faire référence à la norme de base et éventuellement aux groupes d'options non centrés sur Unix.

Les versions successives de SUS semblent déprécier progressivement des parties de l'option XSI qui n'étaient pas vraiment utiles pour écrire des applications portables et qui reflétaient simplement des implémentations héritées, et qui transféraient certaines des parties les plus utiles au standard de base.

R ..
la source
Vous vous trompez, XSI est (si jamais) rendu obligatoire dans les nouvelles versions de la norme. Notez également que, selon l'auteur de la suite de tests de validation POSIX, la conformité XSI est obligatoire, sauf si vous souhaitez uniquement valider une plate-forme UNIX intégrée.
Schily
1
@schily: Citation?
R ..
La documentation actuelle pour lesunistd.h lectures: "L'en-tête <unistd.h> ne doit définir la constante symbolique suivante que si l'implémentation prend en charge l'option XSI; voir Conformité XSI. Si définie, sa valeur doit être utilisée dans les directives de pré-traitement #if. _XOPEN_VERSION "
R ..
25

Aujourd'hui, POSIX et SUS sont fondamentalement la même chose; SUS englobe un peu plus .

Citant ici :

À partir de 1998, un groupe de travail mixte connu sous le nom de groupe Austin a commencé à élaborer la norme combinée qui serait connue sous le nom de Single UNIX Specification Version 3 et POSIX: 2001 (anciennement: IEEE Std 1003.1-2001). Il a été libéré le 30 janvier 2002.

et

En décembre 2008, le groupe Austin a publié une nouvelle révision majeure appelée POSIX: 2008 (anciennement: IEEE Std 1003.1-2008). C’est le cœur de la spécification Single UNIX, version 4

Daniel Beck
la source
POSIX.1-2008 n'est pas la version 4, mais plutôt le NUMÉRO 7 de la norme.
Schily
@schily Ai-je mal choisi où terminer la deuxième citation? Pour moi, la source et la citation semblent clairement relier la version 4 au SUS, pas à POSIX.
Daniel Beck
Le terme "numéro 7" s'applique à Opengroup. Voir: pubs.opengroup.org/onlinepubs/9699919799 J'ai peut-être été confus. Donc je suppose que UNIX95 est SUSv1, UNIX98 est SUSv2, POSIX.1-2001 est SUSv3 et POSIX.1-2008 est SUSv4
schily
@schily À droite, voir la page Wikipedia où la source de la citation mentionne le numéro 7.
Daniel Beck
11

En haut des spécifications de base d'Open Group , vous verrez l'identificateur standard IEEE Std 1003.1-2008. La norme IEEE 1003.1 est connue sous le nom de POSIX.1, 2008 étant la dernière incarnation. En regardant POSIX sur Wikipedia, vous verrez que la norme contient trois parties, à savoir:

  • Définitions de base, numéro 7
  • Interfaces système et en-têtes, numéro 7
  • Commandes et utilitaires, numéro 7

POSIX n’est en fait que le nom de la norme développée par IEEE avec la version initiale réalisée en 1988. POSIX n’est pas officiellement UNIX ™ simplement parce que IEEE n’est pas propriétaire de la marque, mais c’est l’environnement et l’interface du système d’exploitation sous UNIX ™. systèmes. Plus tard, Open Group, qui contrôle la marque UNIX ™, s'est impliqué dans la création d'une norme basée sur POSIX appelée Single UNIX Specification version 2 ou SUSv2. Maintenant, ces deux spécifications sont développées conjointement en tant que groupe Austin. La dernière version est SUSv4. Pour résumer:

POSIX: 2008 = IEEE Std. 1003.1-2008 = SUSv4 = Spécification de groupe ouvert, numéro 7.

Aussi, lisez ma réponse à Qu'est-ce que POSIX?

pingouin359
la source
1
C'est aussi ISO / IEC 9945-2009
fpmurphy du
Ah oui, comme c'est beau d'avoir autant de normes. J'ai encore du mal à comprendre les différences entre ISO / CEI 10646 et Unicode, qui, bien que représentant des jeux de caractères identiques et strictement synchronisés entre eux, restent deux normes distinctes et différentes. Je ne suis pas sûr de savoir pourquoi ils ne peuvent pas simplement s'entendre et les déclarer complètement synonymes.
penguin359
1
Dans le cas spécifique de POSIX vs SUS, la raison est liée aux licences et à la marque. POSIX est générique, peut être implémenté sur n'importe quel système d'exploitation. SUS est le standard pour définir UNIX. Même s'ils sont identiques, POSIX est nécessaire pour tout ce qui est * nix ou compatible. SUS doit être rempli pour même tenter de s'appeler UNIX. Si SUS n'existait pas, alors au minimum, la marque UNIX pourrait être affaiblie. Je ne justifie aucune action entreprise, je ne fais que spéculer sur leur position.
JM Becker
La version IEEE de la norme actuelle est à 100% identique à la version SUS, à l'exception des premières pages et du fait que la version IEEE apparaît généralement env. 6 mois plus tard.
Schily