Sistema de archivos POSIX

Familia de estándares IEEE para compatibilidad entre sistemas operativos

Interfaz de sistema operativo portátil (IEEE 1003)
AbreviaturaSistema de archivos POSIX
EstadoPublicado
Año iniciado1988 ; hace 36 años ( 1988 )
Última versiónNorma IEEE 1003.1-2024
2024 ; hace 0 años ( 2024 )
OrganizaciónGrupo Austin ( Sociedad de Computación IEEE , The Open Group , ISO/IEC JTC 1/SC 22 /WG 15)
Normas relacionadasISO / IEC 9945
DominioInterfaces de programación de aplicaciones
Sitio webPosix.opengroup.org

La Interfaz de Sistema Operativo Portátil ( POSIX ; IPA : /ˈpɒz.ɪks/ [1] ) es una familia de estándares especificados por la IEEE Computer Society para mantener la compatibilidad entre sistemas operativos . [ 1] POSIX define interfaces de programación de aplicaciones (API) a nivel de sistema y de usuario , junto con shells de línea de comandos e interfaces de utilidades, para la compatibilidad de software (portabilidad) con variantes de Unix y otros sistemas operativos. [1] [2] POSIX también es una marca registrada de IEEE. [1] POSIX está destinado a ser utilizado tanto por desarrolladores de aplicaciones como de sistemas. [3]

Nombre

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]

El desarrollo del estándar POSIX se lleva a cabo en el Grupo Austin (un grupo de trabajo conjunto entre el IEEE, The Open Group y el ISO/IEC JTC 1/SC 22 /WG 15).

Versiones

Piezas anteriores a 1997

Antes de 1997, POSIX comprendía varios estándares:

Versiones posteriores a 1997

Después de 1997, el Grupo Austin desarrolló las revisiones de POSIX. Las especificaciones se conocen con el nombre de Single UNIX Specification (Especificación única de UNIX) , antes de convertirse en un estándar POSIX cuando fue aprobado formalmente por la ISO.

POSIX.1-2001 (con dos TC)

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]

Anteriormente certificado POSIX

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]

Mayormente compatible con POSIX

Los siguientes no están certificados como compatibles con POSIX pero cumplen en gran parte:

POSIX para Microsoft Windows

POSIX para OS/2

Entornos mayoritariamente compatibles con POSIX para OS/2 :

  • emx+gcc : compatible en gran medida con POSIX

POSIX para DOS

Los entornos parcialmente compatibles con POSIX para DOS incluyen:

  • emx+gcc : compatible en gran medida con POSIX
  • DJGPP : parcialmente compatible con POSIX
  • 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.

Véase también

Referencias

  1. ^ abcd «Preguntas frecuentes sobre POSIX.1». The Open Group. 13 de junio de 2020. Consultado el 20 de febrero de 2023 .
  2. ^ "IEEE 1003.1-2024". Asociación de Normas IEEE .
  3. ^ "Introducción". Especificaciones básicas de The Open Group, edición número 7, 2018. Consultado el 22 de julio de 2021 .
  4. ^ "JimIsaak - Impacto de POSIX". sites.google.com . Consultado el 15 de septiembre de 2022 .
  5. ^ "Información básica sobre la norma IEEE Std 1003.1". Notas al pie.
  6. ^ "El origen del nombre POSIX". stallman.org . Consultado el 26 de septiembre de 2024 .
  7. ^ Stoughton, Nicholas. "Una actualización sobre los estándares". ;login: .
  8. ^ Estado de PASC (incluido POSIX) (informe). IEEE Computer Society . 4 de diciembre de 2003. Consultado el 26 de septiembre de 2024 .
  9. ^ "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 .
  10. ^ "Suites de prueba VSX-PCTS2003". The Open Group.
  11. ^ "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.
  12. ^ "La especificación única UNIX versión 3: descripción general". unix.org .
  13. ^ "IEEE Std 1003.1" (edición de 2004). Unix.org . Consultado el 26 de julio de 2009 .
  14. ^ "Base Specification, Issue 6" (edición de 2004). The Open Group . Consultado el 20 de julio de 2024 ..
  15. ^ ab "The Austin Common Standards Revision Group". The Open Group . Consultado el 20 de julio de 2024 .
  16. ^ "Base Specification, Issue 7, 2018 Edition" (edición de 2018). The Open Group . Consultado el 20 de julio de 2024 .
  17. ^ "Especificaciones básicas, número 8" (edición de 2024). The Open Group..
  18. ^ 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.
  19. ^ "Estándares de codificación GNU". GNU.
  20. ^ "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 .
  21. ^ 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 .
  22. ^ "Productos certificados por empresa". The Open Group. nd . Consultado el 22 de enero de 2022 .
  23. ^ ab "IBM". The Open Group . Consultado el 23 de enero de 2022 .
  24. ^ "Hewlett-Packard". The Open Group . Consultado el 26 de enero de 2014 .
  25. ^ ab "Registro de certificación POSIX". The Open Group . Consultado el 22 de agosto de 2024 .
  26. ^ "The Open Brand - Registro de productos certificados". Registro de productos de marca abierta . The Open Group . Consultado el 20 de mayo de 2015 .
  27. ^ "Apple Inc". Registro de productos de marca abierta . The Open Group . Consultado el 20 de mayo de 2015 .
  28. ^ "SCO OpenServer Release 5". The Open Group. 3 de mayo de 1995. Consultado el 24 de diciembre de 2021 .
  29. ^ "UnixWare ® 7.1.3 y versiones posteriores". The Open Group. 16 de mayo de 2003. Consultado el 24 de diciembre de 2021 .
  30. ^ "Huawei Technology Co., Ltd". The Open Group . Consultado el 26 de mayo de 2017 .
  31. ^ "Inspur Co., Ltd". The Open Group . Consultado el 26 de mayo de 2017 .
  32. ^ "Silicon Graphics, Inc". The Open Group . Consultado el 26 de enero de 2014 .
  33. ^ "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 .
  34. ^ "QNX obtiene nueva certificación POSIX" (Nota de prensa). QNX. 8 de abril de 2008. Consultado el 16 de enero de 2016 .
  35. ^ "Oracle Corporation". The Open Group. Archivado desde el original el 12 de julio de 2017. Consultado el 26 de enero de 2014 .
  36. ^ "Hewlett-Packard". The Open Group. Archivado desde el original el 9 de julio de 2014. Consultado el 26 de enero de 2014 .
  37. ^ "Huawei LiteOS / LiteOS". Gitee . Huawei . Consultado el 23 de mayo de 2024 .
  38. ^ Schweikhardt, Jens. "Cumplimiento de la utilidad POSIX 2001 de FreeBSD". FreeBSD.
  39. ^ Mark Halper (7 de noviembre de 1994). "Las ventas de la HP 3000 sorprenden al mercado". Computerworld . Vol. 28, núm. 4. IDG Enterprise.
  40. ^ Solter, Nicolás A.; Jelinek, Jerry; Minero, David (21 de marzo de 2011). Biblia OpenSolaris. John Wiley e hijos. ISBN 9781118080313.
  41. ^ 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 .
  42. ^ "OpenVOS POSIX.1: Guía de conformidad". Status Technologies . Consultado el 26 de noviembre de 2021 .
  43. ^ Documento de conformidad con ULTRIX POSIX (PDF) . Digital. Junio ​​de 1990 . Consultado el 13 de diciembre de 2021 .
  44. ^ "Soporte POSIX". Documentación de Zephyr . Consultado el 7 de marzo de 2023 .
  45. ^ 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
  46. ^ "Características eliminadas o en desuso en Windows Server 2012". Microsoft Docs . 31 de agosto de 2016.
  47. ^ "Paquete adicional de Windows NT Services para UNIX". Microsoft . Archivado desde el original el 8 de mayo de 1999.
  48. ^ "MKS resuelve los desafíos de interoperabilidad empresarial" (nota de prensa). Archivado desde el original el 28 de abril de 1999.
  49. ^ "Funciones CRT obsoletas". Microsoft Docs . 15 de octubre de 2009 . Consultado el 23 de julio de 2022 .
  50. ^ "Portar aplicaciones de socket a Winsock". Microsoft Docs . 7 de enero de 2021 . Consultado el 23 de julio de 2022 .
  51. ^ "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 .
  52. ^ "Aminet - dev/C/Vbcc_PosixLib.lha".
  53. ^ "Programación IBM PASE para i" (PDF) . ibm.com . IBM. 2013 . Consultado el 25 de noviembre de 2021 .
  54. ^ "Lista de productos validados conforme a la norma FIPS 151-2". Perennial Test Lab . Consultado el 14 de agosto de 2022 .
  55. ^ "APE — Entorno ANSI/POSIX". Documentos del Plan 9. Bell Labs. Archivado desde el original el 1 de junio de 2017.
  56. ^ 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 .
  57. ^ "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.
  • "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.
Obtenido de "https://es.wikipedia.org/w/index.php?title=POSIX&oldid=1252888504"