¿Diferencia entre POSIX, Single UNIX Specification y Open Group Base Especificaciones?

Respuestas:

9

Una "diferencia" importante es el grupo de opciones XSI (XOPEN), que especifica una serie de interfaces Unix tradicionales que es poco probable que sean aplicables a un nuevo sistema operativo que no sea "Unix". A menudo, las personas usarán "SUS" para referirse al estándar completo, incluida la opción XSI, y "POSIX" para referirse al estándar base y posiblemente a los grupos de opciones no centrados en Unix.

Las versiones sucesivas de SUS parecen estar desaprobando gradualmente partes de la opción XSI que no fueron realmente útiles para escribir aplicaciones portátiles y que, en cambio, solo reflejaron implementaciones heredadas y movieron algunas de las partes más útiles al estándar base.

R ..
fuente
Se equivoca, XSI se hace (si alguna vez) obligatorio en las versiones más nuevas del estándar. También tenga en cuenta que, según el autor del conjunto de pruebas de validación POSIX, el cumplimiento de XSI es obligatorio a menos que solo desee validar una plataforma UNIX integrada.
schily
1
@schily: ¿Cita?
R ..
La documentación actual paraunistd.h lecturas: "El encabezado <unistd.h> definirá la siguiente constante simbólica solo si la implementación admite la opción XSI; consulte Conformidad XSI. Si se define, su valor será adecuado para su uso en #if directivas de preprocesamiento. _XOPEN_VERSION "
R ..
25

Hoy, POSIX y SUS son básicamente lo mismo; SUS abarca un poco más .

Citando aquí :

A partir de 1998, un grupo de trabajo conjunto conocido como Austin Group comenzó a desarrollar el estándar combinado que se conocería como Single UNIX Specification Version 3 y POSIX: 2001 (formalmente: IEEE Std 1003.1-2001). Fue lanzado el 30 de enero de 2002.

y

En diciembre de 2008, el Grupo Austin publicó una nueva revisión importante, conocida como POSIX: 2008 (formalmente: IEEE Std 1003.1-2008). Este es el núcleo de la especificación Single UNIX, Versión 4

Daniel Beck
fuente
POSIX.1-2008 no es la versión 4, sino el NÚMERO 7 del estándar.
schily
@schily ¿Elegí mal dónde terminar la segunda cita? Para mí, tanto la fuente como la cita parecen relacionar claramente la 'versión 4' con SUS, no con POSIX.
Daniel Beck
El término "problema 7" se aplica a Opengroup. Ver: pubs.opengroup.org/onlinepubs/9699919799 Puede que me haya confundido. Así que supongo que UNIX95 es SUSv1, UNIX98 es SUSv2, POSIX.1-2001 es SUSv3 y POSIX.1-2008 es SUSv4
schily
@Schily Correcto, vea la página de Wikipedia donde la fuente de la cita continúa para mencionar el tema 7.
Daniel Beck
11

Mirando la parte superior de las Especificaciones de base de grupo abierto , verá el identificador estándar IEEE Std 1003.1-2008. IEEE Std 1003.1 es lo que se conoce como POSIX.1, siendo 2008 la última encarnación. Al mirar POSIX en Wikipedia, verá que el estándar contiene tres partes que incluyen:

  • Definiciones básicas, número 7
  • Interfaces y encabezados del sistema, número 7
  • Comandos y utilidades, número 7

Básicamente, POSIX es solo el nombre del estándar desarrollado por IEEE con la versión inicial realizada en 1988. POSIX no es UNIX ™ oficialmente simplemente porque IEEE no posee la marca registrada, sino que es el entorno del sistema operativo y la interfaz que se encuentra en UNIX ™ sistemas. Más tarde, The Open Group, que controla la marca registrada UNIX ™, se involucró en la creación de un estándar basado en POSIX llamado Single UNIX Specification versión 2 o SUSv2. Ahora estas dos especificaciones se desarrollan conjuntamente como The Austin Group. La última versión es SUSv4. Así que para resumir:

POSIX: 2008 = IEEE Std. 1003.1-2008 = SUSv4 = El problema de especificación de grupo abierto 7.

Además, lea mi respuesta a ¿Qué es exactamente POSIX?

pingüino359
fuente
1
También es ISO / IEC 9945-2009
fpmurphy
Ah, sí, qué lindo es tener tantos estándares. Todavía estoy luchando por descubrir las diferencias entre ISO / IEC 10646 y Unicode que, si bien representan conjuntos de caracteres idénticos mantenidos estrictamente sincronizados entre sí, siguen siendo dos estándares separados y diferentes. No estoy seguro de por qué no pueden llevarse bien y declararlos completamente.
penguin359
1
En el caso específico de POSIX vs SUS, la razón tiene que ver con la licencia y la marca registrada. POSIX es genérico, se puede implementar en cualquier sistema operativo. SUS es el estándar para definir UNIX. Incluso si son idénticos, POSIX es necesario para cualquier cosa * nix. O * nix compatible. SUS debe cumplirse incluso para intentar ser llamado UNIX. Si el SUS no existiera, entonces, como mínimo, la marca registrada UNIX podría debilitarse. No estoy justificando ninguna acción corporativa, solo especulando sobre su posición.
JM Becker
La versión IEEE del estándar actual es 100% idéntica a la versión SUS excepto por las primeras páginas y el hecho de que la versión IEEE generalmente aparece aprox. 6 meses despues.
schily