POSIX
POSIX | ||
---|---|---|
Parte de estándar del IEEE y sistema operativo | ||
Información general | ||
Estado actual | En desarrollo | |
POSIX (acrónimo de Portable Operating System Interface, y X viene de UNIX como seña de identidad de la API) es una norma escrita por la IEEE, que define una interfaz estándar del sistema operativo y el entorno, incluyendo un intérprete de comandos (o "shell").[1]
El término fue sugerido por Richard Stallman en la década de 1980, en respuesta a la demanda del IEEE, que buscaba un nombre fácil de recordar. La traducción del acrónimo es "Interfaz de Sistema Operativo Portable".[2]
Introducción
POSIX es una norma escrita y una marca registrada por la Institute of Electrical and Electronics Engineers.[3] Dicha norma define una interfaz estándar del sistema operativo y el entorno, incluyendo un intérprete de comandos (o "shell"), y programas de utilidades comunes para apoyar la portabilidad de las aplicaciones a nivel de código fuente. El nombre POSIX surgió de la recomendación de Richard Stallman, que por aquel entonces en la década de 1980 formaba parte del comité de IEEE.[2]
Una serie de pruebas acompañan al estándar POSIX. Son llamadas "PCTS" en alusión al acrónimo "Posix Conformance Test Suite". Desde que la IEEE empezó a cobrar altos precios por la documentación de POSIX y se ha negado a publicar los estándares,[4] se ha aumentado el uso del modelo Single Unix Specification. Este modelo es abierto, acepta entradas de todo el mundo y está libremente disponible en Internet. Fue creado por The Open Group.[5]
Partes
- POSIX.1, Core Services (implementa las llamadas del ANSI C estándar).[6] Incluye:
- Creación y control de procesos.
- Señales.
- Excepciones de punto flotante.
- Excepciones por violación de segmento.
- Excepciones por instrucción ilegal.
- Errores del bus.
- Temporizadores.
- Operaciones de ficheros y directorios (sobre cualquier fs montado).
- Tuberías (Pipes).
- Biblioteca estándar de C.
- Instrucciones de entrada/salida y de control de dispositivo (ioctl).
- POSIX.1b, extensiones para tiempo real:
- Planificación (scheduling) con prioridad.
- Señales de tiempo real.
- Temporizadores.
- Semáforos.
- Paso de mensajes (message passing).
- Memoria compartida.
- Entrada/salida síncrona y asíncrona.
- Bloqueos de memoria.
- POSIX.1c, extensiones para hilos (threads):
- Creación, control y limpieza de hilos.
- Planificación (scheduling).
- Sincronización.
- Manejo de señales.
- POSIX.2, Shell y Utilidades (IEEE Std 1003.2-1992)
- Intérprete de comandos
- Programas de Utilidad
Luego de 1997 el Grupo Austin realizó modificaciones a POSIX. Las especificaciones tienen el nombre de Single Unix Specification (Especificación Única de Unix)
- POSIX:2001 o IEEE Std 1003.1-2001 equivale a la versión 3 de Single UNIX Specification.[7]
- La base de definiciones, Tema 6.
- Las interfaces y encabezamientos del sistema, Tema 6.
- Los comandos y utilidades, Tema 6.
- POSIX:2004 o IEEE Std 1003.1-2004 implica una pequeña actualización de POSIX:2001. Tiene dos correcciones técnicas de errores.[8]
- A partir de 2009 POSIX:2008 o IEEE Std 1003.1-2008 representa la versión actual.[5]
- La base de definiciones, Tema 7,
- Las interfaces encabezamientos del sistema, Tema 7.
- Los comandos y utilidades, Tema 7.
Compatibilidad
Totalmente compatibles con POSIX
Los siguientes Sistemas Operativos son 100% compatibles con uno o varios estándares POSIX:
Mayoritariamente compatibles con POSIX
Los siguientes, aunque no certificados de manera oficial como compatibles con POSIX, se ajustan en gran parte:
POSIX para Windows
- Cygwin ofrece un desarrollo en gran parte compatible con POSIX y un entorno de ejecución para Microsoft Windows.
- Microsoft POSIX subsystem, un subsistema opcional Windows.[9]
- Windows Services for UNIX de Microsoft permite una plena compatibilidad POSIX para ciertos productos de Microsoft Windows. Los sistemas operativos basados en Windows NT hasta Windows 2000 tenían una interfaz POSIX incorporada en el sistema operativo y los Servicios UNIX para Windows brindaban un entorno del tipo UNIX. Para Windows XP, los Servicios UNIX para Windows deben de instalarse para que exista compatibilidad POSIX. El subsistema UNIX está incorporado a las ediciones Enterprise y Ultimate de Windows Vista y 7, y no pueden ser agregados en forma separada a las otras ediciones..
- UWIN de AT&T Research implementa una capa POSIX sobre la interfaz de programa de aplicaciones (API) de Win32
- MKS Toolkit
Referencias
- ↑ «What is POSIX?» (html). Universidad de Indiana (en inglés). Archivado desde el original el 14 de junio de 2018. Consultado el 19 de julio de 2018. «Short for "Portable Operating System Interface for uni-X", POSIX is a set of standards codified by the IEEE and issued by ANSI and ISO. The goal of POSIX is to ease the task of cross-platform software development by establishing a set of guidelines for operating system vendors to follow.»
- ↑ a b Stallman, Richard (11 de mayo de 2011). «The origin of the name POSIX.». Richard Stallman (en inglés). Archivado desde el original el 11 de mayo de 2011. Consultado el 19 de enero de 2018. «It seemed to me that nobody would ever say "IEEEIX", since the pronunciation would sound like a shriek of terror; rather, everyone would call it "Unix". That would have boosted AT&T, the GNU Project's rival, an outcome I did not want. So I looked for another name, but nothing natural suggested itself to me.»
- ↑ «Welcome to the POSIX Certification web site» (html). IEEE (en inglés). Archivado desde el original el 14 de junio de 2004. Consultado el 27 de noviembre de 2018. «POSIX® Certified by IEEE and The Open Group is for products meeting the IEEE POSIX standards.»
- ↑ «IEEE STANDARD ISO/IEC 14515-1:2000 IEEE Std 2003.1-2000 - ISO/IEC/IEEE International Standard for Information Technology -- Portable Operating System Interface (POSIX(R)) -- Test methods for measuring conformance to POSIX -- Part 1: System interfaces». IEEE (en inglés). Archivado desde el original el 19 de enero de 2018. Consultado el 19 de enero de 2018. «Purchase a copy of this standard».
- ↑ a b «POSIX.1-2008 is simultaneously IEEE Std 1003.1™-2008 and The Open Group Technical Standard Base Specifications, Issue 7.». The Open Group (en inglés). Archivado desde el original el 28 de diciembre de 2017. Consultado el 19 de enero de 2018. «POSIX.1-2008 defines a standard operating system interface and environment, including a command interpreter (or “shell”), and common utility programs to support applications portability at the source code level.»
- ↑ Functions defined in the IEEE 1003.1 (POSIX.1) standards en lenguaje PHP
- ↑ POSIX - Perl interface to IEEE Std 1003.1 en lenguaje Perl
- ↑ «POSIX.1-2008 is simultaneously IEEE Std 1003.1™-2008 and The Open Group Technical Standard Base Specifications, Issue 7.». The Open Group (en inglés). Archivado desde el original el 27 de diciembre de 2017. Consultado el 19 de enero de 2018. «This standard has been jointly developed by the IEEE and The Open Group. It is both an IEEE Standard and an Open Group Technical Standard.»
- ↑ «Writing POSIX-Standard Code». Microsoft TechNet (en inglés). Archivado desde el original el 3 de junio de 2016. Consultado el 19 de enero de 2018. «This session provides a brief introduction to POSIX and some of the issues for writing code conforming to POSIX.1 environment, with emphasis on INTERIX as the development environment.»
Véase también
- BIOS
- Problema del año 2038 con dispositivos que utilizan POSIX
- Shell (informática)
- Interfaz de línea de comandos