Desde APUE
La especificación UNIX única, un superconjunto del estándar POSIX.1,
especifica interfaces adicionales que amplían la funcionalidad proporcionada
por la especificación POSIX.1. POSIX.1 es equivalente a la parte de especificaciones
básicas de la especificación UNIX única.
La opción X/Open System Interfaces (XSI) en POSIX.1 describe
interfaces opcionales y define qué partes opcionales de
POSIX.1 deben admitirse para que una implementación se considere
compatible con XSI. Estos incluyen sincronización de archivos, atributos de dirección y tamaño de la pila de subprocesos, sincronización compartida de procesos de subprocesos,
y la constante simbólica
_XOPEN_UNIX (marcada como "SUS obligatoria" en la Figura 2.5). Solo las implementaciones que cumplen con XSI pueden llamarse sistemas UNIX.
¿Es correcto que SUS consiste exactamente en POSIX y XSI?
¿Es correcto que Linux (o Ubuntu, Debian en particular) sea compatible con POSIX?
¿Linux (o Ubuntu, Debian en particular) se considera compatible con XSI o en gran parte lo es?
Pregunto esto porque entonces sabré si las partes en APUE etiquetadas para XSI se aplican a Linux (o Ubuntu, Debian en particular).
Estoy principalmente interesado en la API, ¿eso significa que el kernel de Linux es suficiente?
Respuesta aceptada:
Linux no es totalmente compatible con POSIX. Hay por ej. llamadas al sistema que se comportan de manera diferente (lo siento, actualmente no recuerdo cuáles son exactamente las diferencias; las describiré aquí cuando vuelva a recordar).
Un problema es, p. que Linux no incluye un waitid()
correcto llamada al sistema (que entrega los 32 bits desde exit()
parámetro) y a la gente del kernel de Linux no le gusta arreglar esto. (waitid()
existe desde AT&T System V Release 4..)
Algunos de los XSI
Las funciones están implementadas en Linux, pero no todas.
bash
(la forma en que se compila para las distribuciones de Linux) viene, p. con un no XSI
compatible echo
integrado, dash
no admite multi byte chars
que es requerido por XSI
. Esto sucedió después de un tiempo de adopciones de POSIX después de que Linux recibiera la oferta de obtener una certificación asistida por un dólar.
Si desea obtener una descripción general correcta, es posible que le interese buscar en la red el artículo final de Andrew Josey sobre los incumplimientos de POSIX en Linux que se escribió después de que la gente de Linux le dijera a Opengroup que ya no están interesados en convertirse en Compatible con POSIX.
Ver:http://www.opengroup.org/personal/ajosey/tr20-08-2005.txt
Por cierto:hay rumores de que Red Hat recibió recientemente una copia del conjunto de pruebas POSIX, por lo que puede ser que haya una certificación oculta en curso...
Relacionado:¿Ejecutar la función definida por el usuario en una llamada find -exec?