Originalmente, el nombre "POSIX" hacía referencia al estándar IEEE Std 1003.1-1988, publicado en 1988. La familia de estándares POSIX se designa formalmente como IEEE 1003 y el número de estándar ISO/IEC es ISO / IEC 9945.
Los estándares surgieron de un proyecto que comenzó en 1984 y que se basó en el trabajo de la actividad relacionada en la asociación /usr/group . [4] Richard Stallman sugirió el nombre POSIX al IEEE [5] [6] en lugar del antiguo IEEE-IX . [7] El comité lo consideró más fácil de pronunciar y recordar, por lo que lo adoptó. [ cita requerida ]
Descripción general
Unix fue seleccionado como la base para una interfaz de sistema estándar en parte porque era "neutral respecto del fabricante". Sin embargo, existían varias versiones principales de Unix, por lo que era necesario desarrollar un sistema con un denominador común. Las especificaciones POSIX para sistemas operativos tipo Unix consistían originalmente en un único documento para la interfaz de programación central , pero con el tiempo crecieron hasta 19 documentos separados (POSIX.1, POSIX.2, etc.). [8] La línea de comandos de usuario estandarizada y la interfaz de scripts se basaban en el shell UNIX System V. [9] Muchos programas, servicios y utilidades a nivel de usuario (incluidos awk , echo , ed ) también se estandarizaron, junto con los servicios a nivel de programa requeridos (incluidos E/S básicos : file , terminal y network ). POSIX también define una API de biblioteca de subprocesos estándar que es compatible con la mayoría de los sistemas operativos modernos. En 2008, la mayoría de las partes de POSIX se combinaron en un único estándar (IEEE Std 1003.1-2008 , también conocido como POSIX.1-2008).
A partir de 2014 [actualizar], la documentación POSIX se divide en dos partes:
POSIX.1, edición 2013: Definiciones básicas de POSIX, interfaces del sistema y comandos y utilidades (que incluyen POSIX.1, extensiones para POSIX.1, servicios en tiempo real, interfaz de subprocesos, extensiones en tiempo real, interfaz de seguridad, acceso a archivos de red y comunicaciones de proceso a proceso de red, extensiones de portabilidad de usuario, correcciones y extensiones, utilidades de protección y control y utilidades del sistema por lotes. Esta es POSIX 1003.1-2008 con la corrección técnica 1).
Pruebas de conformidad con POSIX: un conjunto de pruebas para POSIX acompaña al estándar: VSX-PCTS o el conjunto de pruebas de conformidad con POSIX VSX . [10]
POSIX.1-2001 (o IEEE Std 1003.1-2001) equivale a la Especificación Única UNIX, versión 3 menos X/Open Curses . [12]
Esta norma constaba de:
Definiciones básicas, número 6,
Interfaces y encabezados del sistema, número 6,
Los comandos y utilidades, número 6.
La norma IEEE Std 1003.1-2004 supuso una actualización menor de POSIX.1-2001. Incorporó dos actualizaciones menores o erratas conocidas como Corrigenda Técnica (TC). [13] Su contenido está disponible en la web. [14]
POSIX.1-2008 (con dos TC)
Especificaciones básicas, número 7 (o IEEE Std 1003.1-2008 , edición 2016). [15]
Esta norma consta de:
las Definiciones Básicas, Número 7,
Interfaces y encabezados del sistema, número 7,
Los comandos y utilidades, número 7,
El volumen de Justificación.
POSIX.1-2017
IEEE Std 1003.1-2017 (Revisión de IEEE Std 1003.1-2008) - IEEE Standard for Information Technology—Portable Operating System Interface (POSIX(R)) Base Specification, Issue 7 está disponible en The Open Group o IEEE. Es técnicamente idéntico a POSIX.1-2008 con las correcciones técnicas 1 y 2 aplicadas. Su contenido está disponible en la web. [16]
POSIX.1-2024
La norma IEEE Std 1003.1-2024 - IEEE Standard for Information Technology—Portable Operating System Interface (POSIX(R)) Base Specification, Issue 8 se publicó el 14 de junio de 2024. [15] Su contenido está disponible en la web. [17]
Controversias
Bloques de 512 y 1024 bytes
POSIX exige tamaños de bloque predeterminados de 512 bytes para las utilidades df y du , lo que refleja el tamaño típico de los bloques en los discos. Cuando Richard Stallman y el equipo de GNU estaban implementando POSIX para el sistema operativo GNU , se opusieron a esto con el argumento de que la mayoría de la gente piensa en términos de bloques de 1024 bytes (o 1 KiB ). La variable de entorno POSIX_ME_HARDER se introdujo para permitir al usuario forzar el comportamiento conforme a los estándares. [18] El nombre de la variable se cambió más tarde a POSIXLY_CORRECT . [19] Esta variable ahora también se utiliza para una serie de otras peculiaridades de comportamiento.
Sistemas operativos orientados a POSIX
Dependiendo del grado de cumplimiento de los estándares, se pueden clasificar los sistemas operativos como total o parcialmente compatibles con POSIX.
Certificación POSIX
Las versiones actuales de los siguientes sistemas operativos han sido certificadas para cumplir con uno o más de los diversos estándares POSIX. Esto significa que pasaron las pruebas de conformidad automatizadas [20] y que su certificación no ha expirado y el sistema operativo no ha sido descontinuado. [21] [22]
Algunas versiones de los siguientes sistemas operativos han sido certificadas para cumplir con uno o más de los diversos estándares POSIX, lo que significa que han pasado las pruebas de conformidad automatizadas. La certificación ha expirado y algunos de los sistemas operativos han sido descontinuados. [21]
libunistd, una biblioteca de desarrollo compatible en gran medida con POSIX creada originalmente para generar el código fuente C/ C++ basado en Linux de CinePaint tal como está en Microsoft Visual Studio . Una implementación liviana que tiene archivos de encabezado compatibles con POSIX que asignan API POSIX para llamar a sus contrapartes API de Windows. [45]
Subsistema POSIX de Microsoft , un subsistema opcional de Windows incluido en los sistemas operativos basados en Windows NT hasta Windows 2000. Admitía POSIX.1 tal como estaba en la revisión de 1990, sin subprocesos ni sockets .
Interix , originalmente OpenNT de Softway Systems, Inc., es una actualización y reemplazo del subsistema POSIX de Microsoft que fue adquirido por Microsoft en 1999. Inicialmente se comercializó como un producto complementario independiente y luego se incluyó como un componente en Windows Services for UNIX (SFU) y finalmente se incorporó como un componente en Windows Server 2003 R2 y versiones posteriores del sistema operativo Windows bajo el nombre de "Subsistema para aplicaciones basadas en UNIX" (SUA); luego quedó obsoleto en 2012 (Windows 8) [46] y se eliminó en 2013 (2012 R2, 8.1). Permite la compatibilidad total con POSIX para ciertos productos de Microsoft Windows . [ cita requerida ]
El Subsistema de Windows para Linux , también conocido como WSL, es una capa de compatibilidad para ejecutar archivos binarios ejecutables de Linux de forma nativa en Windows 10 y 11 utilizando una imagen de Linux como Ubuntu, Debian u OpenSUSE, entre otros, y actúa como una actualización y reemplazo de los Servicios de Windows para UNIX. Fue lanzado en versión beta en abril de 2016. La primera distribución disponible fue Ubuntu.
UWIN de AT&T Research implementa una capa POSIX sobre las API de Win32.
La biblioteca de tiempo de ejecución de Windows C y la API de sockets de Windows implementan funciones de API POSIX comúnmente utilizadas para acceso a archivos, tiempo, entorno y sockets, [49] aunque el soporte sigue siendo en gran medida incompleto y no totalmente interoperable con implementaciones compatibles con POSIX. [50] [51] [ discutir ]
POSIX para OS/2
Entornos mayoritariamente compatibles con POSIX para OS/2 :
Núcleo multitarea DR-DOS a través de EMM386 /MULTI : está disponible una extensión de API de interfaz de subprocesos POSIX
Compatible a través de la capa de compatibilidad
Los siguientes no están certificados oficialmente como compatibles con POSIX, pero cumplen en gran medida con los estándares al implementar soporte POSIX a través de algún tipo de característica de compatibilidad (generalmente bibliotecas de traducción o una capa sobre el núcleo). Sin estas características, generalmente no cumplen con los estándares.
AmigaOS (a través de la biblioteca ixemul o vbcc _PosixLib [52] )
eCos – POSIX es parte de la distribución estándar y lo utilizan muchas aplicaciones. La sección 'enlaces externos' a continuación tiene más información.
IBM i (a través de la capa de compatibilidad PASE ) [53]
MorphOS (a través de la biblioteca ixemul incorporada)
OpenVMS (a través del paquete POSIX opcional) [54]
Conjunto de caracteres portátil , conjunto de 103 caracteres que deben ser compatibles con cualquier configuración regional de conjunto de caracteres compatible con POSIX
Interix : un subsistema de entorno POSIX y Unix con todas las funciones para los sistemas operativos basados en Windows NT de Microsoft
Proyecto TRON : estándares de sistemas operativos alternativos a POSIX
Referencias
^ abcd «Preguntas frecuentes sobre POSIX.1». The Open Group. 13 de junio de 2020. Consultado el 20 de febrero de 2023 .
^ "IEEE 1003.1-2024". Asociación de Normas IEEE .
^ "Introducción". Especificaciones básicas de The Open Group, edición número 7, 2018. Consultado el 22 de julio de 2021 .
^ "JimIsaak - Impacto de POSIX". sites.google.com . Consultado el 15 de septiembre de 2022 .
^ "Información básica sobre la norma IEEE Std 1003.1". Notas al pie.
^ "El origen del nombre POSIX". stallman.org . Consultado el 26 de septiembre de 2024 .
^ Stoughton, Nicholas. "Una actualización sobre los estándares". ;login: .
^ Estado de PASC (incluido POSIX) (informe). IEEE Computer Society . 4 de diciembre de 2003. Consultado el 26 de septiembre de 2024 .
^ "Lenguaje de comandos de Shell - Especificaciones básicas de Open Group, número 7, edición de 2013" . Consultado el 28 de abril de 2020 .
^ "Suites de prueba VSX-PCTS2003". The Open Group.
^ "librt(3LIB)". docs.oracle.com . man pages section 3: Library Interfaces and Headers. Oracle Corporation. 4 de agosto de 1998 . Consultado el 18 de febrero de 2016 . librt, libposix4- biblioteca de extensiones en tiempo real POSIX.1b [...] librt es el nombre preferido para esta biblioteca. El nombre libposix4 se mantiene por compatibilidad con versiones anteriores y se debe evitar. Las funciones de esta biblioteca proporcionan la mayoría de las interfaces especificadas por la extensión en tiempo real POSIX.1b.
^ "La especificación única UNIX versión 3: descripción general". unix.org .
^ "IEEE Std 1003.1" (edición de 2004). Unix.org . Consultado el 26 de julio de 2009 .
^ "Base Specification, Issue 6" (edición de 2004). The Open Group . Consultado el 20 de julio de 2024 ..
^ ab "The Austin Common Standards Revision Group". The Open Group . Consultado el 20 de julio de 2024 .
^ "Base Specification, Issue 7, 2018 Edition" (edición de 2018). The Open Group . Consultado el 20 de julio de 2024 .
^ "Especificaciones básicas, número 8" (edición de 2024). The Open Group..
^ Stallman, Richard (28 de agosto de 1991). "La democracia triunfa en las unidades de disco". Grupo de noticias : gnu.announce. Usenet:[email protected] – vía Google Groups.
^ "Estándares de codificación GNU". GNU.
^ "POSIX Certified by IEEE and The Open Group - Program Guide". Sección 2, Cómo lograr la certificación . Consultado el 26 de septiembre de 2024 .
^ ab "POSIX Certified by IEEE and The Open Group - Program Guide". Sección 4, Renovaciones y actualizaciones de productos certificados . Consultado el 26 de septiembre de 2024 .
^ "Productos certificados por empresa". The Open Group. nd . Consultado el 22 de enero de 2022 .
^ ab "IBM". The Open Group . Consultado el 23 de enero de 2022 .
^ "Hewlett-Packard". The Open Group . Consultado el 26 de enero de 2014 .
^ ab "Registro de certificación POSIX". The Open Group . Consultado el 22 de agosto de 2024 .
^ "The Open Brand - Registro de productos certificados". Registro de productos de marca abierta . The Open Group . Consultado el 20 de mayo de 2015 .
^ "Apple Inc". Registro de productos de marca abierta . The Open Group . Consultado el 20 de mayo de 2015 .
^ "SCO OpenServer Release 5". The Open Group. 3 de mayo de 1995. Consultado el 24 de diciembre de 2021 .
^ "UnixWare ® 7.1.3 y versiones posteriores". The Open Group. 16 de mayo de 2003. Consultado el 24 de diciembre de 2021 .
^ "Huawei Technology Co., Ltd". The Open Group . Consultado el 26 de mayo de 2017 .
^ "Inspur Co., Ltd". The Open Group . Consultado el 26 de mayo de 2017 .
^ "Silicon Graphics, Inc". The Open Group . Consultado el 26 de enero de 2014 .
^ "The Open Brand - Registro de productos certificados". Open Group . 23 de julio de 2003. Archivado desde el original el 2 de agosto de 2003 . Consultado el 23 de enero de 2022 .
^ "QNX obtiene nueva certificación POSIX" (Nota de prensa). QNX. 8 de abril de 2008. Consultado el 16 de enero de 2016 .
^ "Oracle Corporation". The Open Group. Archivado desde el original el 12 de julio de 2017. Consultado el 26 de enero de 2014 .
^ "Hewlett-Packard". The Open Group. Archivado desde el original el 9 de julio de 2014. Consultado el 26 de enero de 2014 .
^ "Huawei LiteOS / LiteOS". Gitee . Huawei . Consultado el 23 de mayo de 2024 .
^ Schweikhardt, Jens. "Cumplimiento de la utilidad POSIX 2001 de FreeBSD". FreeBSD.
^ Mark Halper (7 de noviembre de 1994). "Las ventas de la HP 3000 sorprenden al mercado". Computerworld . Vol. 28, núm. 4. IDG Enterprise.
^ Solter, Nicolás A.; Jelinek, Jerry; Minero, David (21 de marzo de 2011). Biblia OpenSolaris. John Wiley e hijos. ISBN9781118080313.
^ Lamie, Bill; Taubinger, Rafael (15 de junio de 2023). "RTOS con API pthreads POSIX estándar: un complemento para Linux embebido". Embedded.com . Consultado el 13 de septiembre de 2023 .
^ "OpenVOS POSIX.1: Guía de conformidad". Status Technologies . Consultado el 26 de noviembre de 2021 .
^ Documento de conformidad con ULTRIX POSIX (PDF) . Digital. Junio de 1990 . Consultado el 13 de diciembre de 2021 .
^ "Soporte POSIX". Documentación de Zephyr . Consultado el 7 de marzo de 2023 .
^ Rowe, Robin (8 de septiembre de 2022). "libunistd". Github . Consultado el 18 de febrero de 2023 . Si desea crear un código C++ de base de código única para ejecutarlo en Windows, Linux y MacOS, necesita esto para Windows
^ "Características eliminadas o en desuso en Windows Server 2012". Microsoft Docs . 31 de agosto de 2016.
^ "Paquete adicional de Windows NT Services para UNIX". Microsoft . Archivado desde el original el 8 de mayo de 1999.
^ "MKS resuelve los desafíos de interoperabilidad empresarial" (nota de prensa). Archivado desde el original el 28 de abril de 1999.
^ "Funciones CRT obsoletas". Microsoft Docs . 15 de octubre de 2009 . Consultado el 23 de julio de 2022 .
^ "Portar aplicaciones de socket a Winsock". Microsoft Docs . 7 de enero de 2021 . Consultado el 23 de julio de 2022 .
^ "Artículos de preguntas frecuentes del programador Winsock: compatibilidad de sockets BSD". Warren Young. 31 de agosto de 2015. Consultado el 8 de octubre de 2015 .
^ "Aminet - dev/C/Vbcc_PosixLib.lha".
^ "Programación IBM PASE para i" (PDF) . ibm.com . IBM. 2013 . Consultado el 25 de noviembre de 2021 .
^ "Lista de productos validados conforme a la norma FIPS 151-2". Perennial Test Lab . Consultado el 14 de agosto de 2022 .
^ "APE — Entorno ANSI/POSIX". Documentos del Plan 9. Bell Labs. Archivado desde el original el 1 de junio de 2017.
^ Resumen técnico de productos en tiempo real, quinta edición (PDF) . Digital Equipment Corporation . Diciembre de 1992 . Consultado el 8 de diciembre de 2021 .
^ "Capítulo 29 - Compatibilidad con POSIX". Kit de recursos para estaciones de trabajo MS Windows NT . Microsoft. Archivado desde el original el 15 de enero de 2008.
Enlaces externos
Wikimedia Commons tiene medios relacionados con POSIX .
"Especificaciones básicas de The Open Group, número 8, edición 2024, IEEE Std 1003.1™-2024". The Open Group/IEEE.
"Página de inicio de la certificación POSIX". The Open Group/IEEE.