Especificación única de UNIX

Ajustar Compartir Imprimir Citar

La Especificación Única de UNIX (SUS) es un estándar para los sistemas operativos informáticos, cuyo cumplimiento es obligatorio para calificar para el uso de "UNIX" marca comercial. El estándar especifica interfaces de programación para el lenguaje C, un shell de línea de comandos y comandos de usuario. Las especificaciones básicas del SUS conocidas como Especificaciones básicas son desarrolladas y mantenidas por Austin Group, que es un grupo de trabajo conjunto de IEEE, ISO/IEC JTC 1/SC 22/WG 15 y The Open Group.. Si un sistema operativo se envía a The Open Group para su certificación y pasa las pruebas de conformidad, se considera que cumple con un estándar UNIX como UNIX 98 o UNIX 03.

Muy pocos sistemas operativos basados en BSD y Linux se presentan para cumplir con la especificación UNIX única, aunque los desarrolladores de sistemas generalmente buscan cumplir con los estándares POSIX, que forman el núcleo de la especificación UNIX única.

El último SUS consta de dos partes: las especificaciones básicas técnicamente idénticas a POSIX y la especificación X/Open Curses.

Algunas partes del SUS son opcionales.

Historia

1980: Motivación

El SUS surgió de varios esfuerzos de la década de 1980 para estandarizar las interfaces del sistema operativo para software diseñado para variantes del sistema operativo Unix. La necesidad de estandarización surgió porque las empresas que usaban computadoras querían poder desarrollar programas que pudieran usarse en los sistemas informáticos de diferentes fabricantes sin volver a implementar los programas. Se seleccionó Unix como base para una interfaz de sistema estándar en parte porque era independiente del fabricante.

En 1984, el grupo de usuarios de UNIX llamado /usr/group publicó los resultados de su esfuerzo de estandarización para las interfaces de programación en su estándar /usr/group de 1984, que se convirtió en la base de lo que se convertiría en el estándar POSIX.1-1988.

En 1985, AT&T publicó System V Interface Definition (SVID), una especificación de las interfaces de programación UNIX System V.

1988: POSIX

En 1988, los esfuerzos de estandarización dieron como resultado IEEE 1003 (también registrado como ISO/IEC 9945), o POSIX.1-1988, que vagamente significa Interfaz de sistema operativo portátil.

Décadas de 1980 y 1990: Guía de portabilidad X/Open

X/Open Portability Guide (XPG) fue un precursor del SUS, publicado por X/Open Company, un consorcio de empresas establecido en 1984. Las guías se publicaron en los años siguientes.

XPG4 Base incluye los siguientes documentos:

1990: especificación 1170

A principios de la década de 1990, varios proveedores importantes iniciaron un esfuerzo separado conocido como Common API Specification o Spec 1170, que formaron la alianza COSE a raíz de las guerras de Unix. En 1993, COSE asignó la especificación 1170 a X/Open para vía rápida. En octubre de 1993, se anunció una transferencia planificada de la marca UNIX de Novell a X/Open; se finalizó en el segundo trimestre de 1994. La especificación 1170 eventualmente se convertiría en la especificación única de Unix.

1994: Especificación única de UNIX

En 1994, X/Open Company lanzó la Especificación única de UNIX. El SUS estaba compuesto por documentos que formaban parte del entorno de aplicaciones comunes (CAE) de X/Open:

Este fue un reempaquetado de la Guía de portabilidad de X/Open (XPG), número 4, versión 2.

Las fuentes difieren sobre si X/Open Curses, número 4, versión 2 formaba parte de este SUS; su fecha de copyright es 1996. X/Open Curses, número 4 se publicó en 1995.

En octubre de 1994, X/Open indicó que se referirían a la especificación 1170 como '"Single-Unix" especificación'.

El SUS estaba en el centro de la marca UNIX 95.

Esta versión tenía 1168 interfaces de programación.

Esta versión de SUS se extrajo de las siguientes fuentes:

1997: Especificación única de UNIX, versión 2

En 1996, X/Open se fusionó con Open Software Foundation (OSF) para formar The Open Group.

En 1997, Open Group lanzó la Especificación única de UNIX, versión 2.

Esta especificación constaba de:

y estaba en el centro de la marca UNIX 98.

Esta versión tenía 1434 interfaces de programación.

2001: Especificación única de UNIX, versión 3, POSIX.1-2001

A partir de 1998, un grupo de trabajo conjunto de IEEE, ISO JTC 1 SC22 y The Open Group conocido como Austin Group comenzó a desarrollar el estándar combinado que se conocería como el núcleo de Especificación UNIX única, versión 3 y como POSIX.1-2001. Fue lanzado el 30 de enero de 2002.

Este SUS consistió en:

y es el núcleo de la marca UNIX 03.

Las especificaciones básicas son técnicamente idénticas a POSIX.1-2001, que es IEEE Std 1003.1-2001.

Esta versión tenía 1742 interfaces de programación.

Una guía autorizada está disponible para la versión.

Edición 2004

En 2004, se publicó una nueva edición del estándar POSIX.1-2001, que incorpora dos correcciones técnicas. Se llama IEEE Std 1003.1, edición de 2004. Algunos lo llaman informalmente POSIX.1-2004, pero esta no es una identificación oficial.

2008: Especificación única de UNIX, versión 4, POSIX.1-2008

En diciembre de 2008, Austin Group publicó una nueva revisión importante de SUS y POSIX. Esta es la especificación única de UNIX, versión 4 (SUSv4).

Este SUS consta de:

Las especificaciones básicas son técnicamente idénticas a POSIX.1-2008, que es IEEE Std 1003.1-2008.

Esta versión tenía 1833 interfaces, de las cuales 1191 estaban en la sección Interfaces del sistema.

Edición 2013

El Corrección técnica 1 apunta principalmente a la internacionalización e introduce un modelo de acceso basado en funciones. Se ha creado una marca comercial UNIX V7 (que no debe confundirse con V7 UNIX, la versión de Research Unix de 1979) para marcar el cumplimiento de la versión 4 de SUS.

Edición 2016

El Corrección técnica 2 se publicó en septiembre de 2016, lo que lleva a IEEE Std 1003.1-2008, edición de 2016 y Especificación única de UNIX, versión 4, edición de 2016.

Edición 2018, POSIX.1-2017

En enero de 2018, un "resumen administrativo" se lanzó la edición. Incorpora Single UNIX Specification versión 4 TC1 y TC2, y es técnicamente idéntico a la edición de 2016.

Las especificaciones básicas son técnicamente idénticas a POSIX.1-2017, que es IEEE Std 1003.1-2017.

Especificación

SUSv3 tiene un total de unas 3700 páginas, que se dividen en cuatro partes principales:

La línea de comandos de usuario estándar y la interfaz de secuencias de comandos es el shell POSIX, una extensión de Bourne Shell basada en una versión anterior de Korn Shell. Otros programas, servicios y utilidades a nivel de usuario incluyen awk, echo, ed, vi y cientos de otros. Los servicios de nivel de programa requeridos incluyen servicios básicos de E/S (archivo, terminal y red). Un conjunto de pruebas acompaña al estándar. Se llama PCTS o Suite de Pruebas de Certificación POSIX.

Además, SUS incluye la especificación CURSES (XCURSES), que especifica 372 funciones y 3 archivos de encabezado. Con todo, SUSv3 especifica 1742 interfaces.

Tenga en cuenta que un sistema no necesita incluir código fuente derivado de alguna forma de AT&T Unix para cumplir con la especificación. Por ejemplo, IBM OS/390, ahora z/OS, califica como UNIX a pesar de no tener ningún código en común.

Marcas para sistemas compatibles

Hay cinco marcas oficiales para sistemas conformes:

Cumplimiento

Producto Vendor Arquitectura UNIX V7 UNIX 03 UNIX 98 UNIX 95 UNIX 93
AIX IBM Corporation POWER procesadores Sí. Sí. No No No
HP-UX Hewlett Packard Enterprise IA-64, PA-RISC No Sí. No No No
macOS (anteriormente OS X) Apple x86-64, ARM64 No Sí. No No No
OpenServer Xinuos IA-32 No No No No Sí.
UnixWare Xinuos IA-32 No No No Sí. No
z/OS IBM Corporation z/Arquitectura No No No Sí. No

Sistemas UNIX actualmente registrados

AIX

AIX versión 7, ya sea 7.1 TL5 (o posterior) o 7.2 TL2 (o posterior) están registradas como compatibles con UNIX 03. La versión 7 de AIX, en 7.2 TL5 (o posterior) está registrada como compatible con UNIX V7. Las versiones anteriores estaban certificadas previamente con las marcas UNIX 95 y UNIX 98.

HP-UX

HP-UX 11i V3 versión B.11.31 está registrado como compatible con UNIX 03. Las versiones anteriores se registraron como UNIX 95.

Las características de HP-UX 11i también brindan conformidad parcial con la especificación UNIX 98.

MacOS

Apple macOS (anteriormente conocido como Mac OS X o OS X) está registrado como compatible con UNIX 03. La primera versión registrada fue Mac OS X 10.5 Leopard, certificada el 26 de octubre de 2007 (en sistemas x86). Se han registrado todas las versiones más nuevas de macOS, hasta macOS 13 Ventura, con macOS 11, 12 y 13 registrados en sistemas x86-64 y ARM64.

Xinuos

UnixWare 7.1.3 y posteriores están registrados como compatibles con UNIX 95. SCO OpenServer 5 y 6 están registrados como compatibles con UNIX 93.

Z/OS

IBM z/OS 1.2 y superior está registrado como compatible con UNIX 95. z/OS 1.9, publicado el 28 de septiembre de 2007, y los lanzamientos posteriores "alinear mejor" con UNIX 03.

Sistemas UNIX previamente registrados

EulerOS

EulerOS 2.0 para la arquitectura x86-64 se registró como compatible con UNIX 03. La declaración de conformidad de UNIX 03 muestra que el compilador C estándar es de la colección de compiladores GNU (gcc) y que el sistema es una distribución de Linux de la familia Red Hat Enterprise Linux. La certificación UNIX 03 expiró en septiembre de 2022 y no ha sido renovada.

FTX

La serie DNCP que ejecuta FTX versión 3 se registró como compatible con UNIX 93.

Inspur K-UX

Inspur K-UX 2.0 y 3.0 para la arquitectura x86-64 fueron certificados como compatibles con UNIX 03. La declaración de conformidad de UNIX 03 para Inspur K-UX 2.0 y 3.0 muestra que el compilador C estándar es de la colección de compiladores GNU (gcc), y que el sistema es una distribución de Linux de la familia Red Hat.

IRIX

SGI IRIX 6.5 se registró como compatible con UNIX 95.

OS/390

IBM OS/390 se registró como compatible con UNIX 95 a partir de la versión V2R4.

UNIX confiable

Las últimas versiones de Reliant UNIX se registraron como compatibles con UNIX 95 (marca XPG4).

Solaris

Solaris 11.4 se registró anteriormente como compatible con UNIX v7 en 2018. Solaris 11 y Solaris 10 se registraron como compatibles con UNIX 03 en sistemas SPARC y x86 (X86-64) de 32 y 64 bits. Solaris 8 y 9 se registraron como compatibles con UNIX 98 en sistemas SPARC y x86 de 32 bits; Los sistemas x86 de 64 bits no eran compatibles. Solaris 2.4 y 2.6, tanto en x86 como en SPARC, fueron certificados con las marcas UNIX 93 y UNIX 95 respectivamente.

Solaris 2.5.1 también se registró como compatible con UNIX 95 en la plataforma PReP PowerPC en 1996, pero el producto se retiró antes de que se vendieran más de una docena de copias.

Tru64 UNIX

Tru64 UNIX V5.1A y posteriores se registraron como compatibles con UNIX 98.

Otro

Otros sistemas operativos previamente registrados como compatibles con UNIX 95 o UNIX 93:

Sistemas tipo Unix no registrados

Los desarrolladores y proveedores de sistemas operativos similares a Unix, como Linux, FreeBSD y MINIX, normalmente no certifican sus distribuciones y no instalan las utilidades POSIX completas de manera predeterminada.

Para Linux, el comando pax generalmente no está instalado; además, los paquetes de comandos pax disponibles para Linux a menudo carecen de la compatibilidad con el formato de archivo pax requerido por POSIX. A veces, el cumplimiento de SUS se puede mejorar mediante la instalación de paquetes adicionales, pero muy pocos sistemas Linux se pueden configurar para que sean completamente compatibles. La base estándar de Linux se formó en 2001 como un intento de estandarizar las estructuras internas de los sistemas basados en Linux para aumentar la compatibilidad. Se basa en las especificaciones POSIX, Single UNIX Specification y otros estándares abiertos, y también los amplía en varias áreas; pero hay algunos conflictos entre los estándares LSB y POSIX. Pocas distribuciones de Linux realmente pasan por la certificación como compatible con LSB.

Darwin, el subconjunto de código abierto de macOS, tiene un comportamiento que se puede configurar para cumplir con UNIX 03.

FreeBSD anteriormente tenía un "Proyecto de conformidad con C99 y POSIX" que tenía como objetivo el cumplimiento de un subconjunto de la especificación única de UNIX y la documentación donde había diferencias. El comando pax de FreeBSD no es compatible con el formato de archivo pax y, por lo tanto, falla en POSIX.1-2001. Las páginas de manual de FreeBSD a veces indican desviaciones de POSIX y, por lo tanto, SUS en sus secciones de ESTÁNDARES.

Las páginas de manual de OpenBSD a veces indican desviaciones de POSIX y, por lo tanto, SUS en sus secciones de ESTÁNDARES.

El comando pax de MINIX no es compatible con el formato de archivo pax y, por lo tanto, falla en POSIX.1-2001.