POSIX
De Wikipedia, la enciclopedia libre
POSIX es el acrónimo de Portable Operating System Interface; la X viene de UNIX como seña de identidad de la API. El término POSIX fue sugerido por Richard Stallman en respuesta a la demanda de la IEEE, que buscaba un nombre fácil de recordar. Una traducción aproximada del acrónimo podría ser "Interfaz de Sistema Operativo Portable basado en UNIX".
Estos son una familia de estándares de llamadas al sistema operativo definidos por el IEEE y especificados formalmente en el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que una misma aplicación pueda ejecutarse en distintas plataformas. Estos estándares surgieron de un proyecto de normalización de las API y describen un conjunto de interfaces de aplicación adaptables a una gran variedad de implementaciones de sistemas operativos.
POSIX especifica las interfaces de usuario y software al Sistema Operativo en 15 documentos diferentes. La línea de comandos estándar y las interfaces de scripting se basaron en Korn Shell. Otros programas a nivel de usuario (user-level), servicios y utilidades incluyen awk, echo, ed (computación) y cientos de otras. Los servicios a nivel de programa requeridos incluyen definición de estándares básicos de I/O, (file(Computación, UNIX), terminal, y servicios de red. POSIX también especifican una API para las librerías de threading, que es muy popular y muy utilizada en muchos sistemas operativos.
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, 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.
Actualmente POSIX se divide en tres partes:
* POSIX.1, Core Services (implementa las llamadas del ANSI C estándar). Incluye: o Creación y control de procesos o Señales o Excepciones de punto flotante o Excepciones por violación de segmento o Excepciones por instrucción ilegal o Errores del bus o Temporizadores o Operaciones de ficheros y directorios (sobre cualquier fs montado) o Pipes o Biblioteca C (Standard C) o Instrucciones de entrada/salida y de control de dispositivo (ioctl)
* POSIX.1b, extensiones para tiempo real: o Planificación (scheduling) con prioridad o Señales de tiempo real o Temporizadores o Semáforos o Intercambio de mensajes (message passing) o Memoria compartida o Entrada/salida síncrona y asíncrona o Bloqueos de memoria
* POSIX.1c, extensiones para hilos (threads): o Creación, control y limpieza de hilos o Planificación (scheduling) o Sincronización o Manejo de señales