Posix

Estándar Posix

Estándar Posix

POSIX: una descripción general

La interfaz de sistema operativo portátil (POSIX) es un estándar IEEE que ayuda a la compatibilidad y portabilidad entre sistemas operativos. En teoría, el código fuente compatible con POSIX debería ser perfectamente portátil. En el mundo real, la transición de aplicaciones a menudo se encuentra con problemas específicos del sistema. Pero el cumplimiento de POSIX simplifica la portabilidad de aplicaciones, lo que puede generar ahorros de tiempo. Por lo tanto, los desarrolladores deben familiarizarse con los fundamentos de este estándar ampliamente utilizado.

Historia de POSIX

Los primeros programadores tuvieron que reescribir sus aplicaciones desde cero para cada nuevo modelo de computadora. Pero IBM System / 360 cambió eso. En 1964, introdujo el sistema operativo OS / 360. IBM comenzó a usar la misma arquitectura de hardware para permitir que los nuevos modelos reutilizaran el mismo sistema operativo. La presencia de un sistema operativo común en varias máquinas estableció la primera etapa para la portabilidad de la aplicación.

A finales de la década de 1960, la llegada de UNIX abrió nuevas posibilidades. Bell Labs de AT&T fue responsable del desarrollo inicial de este nuevo sistema operativo. Podría ejecutarse en máquinas de varios proveedores. Pero UNIX comenzó a bifurcarse en varios sabores. Además del System V de AT&T, estaban Berkeley Software Distribution (BSD), Xenix y más. No fue fácil trasladar estos sabores. La promesa de la portabilidad de las aplicaciones llegó a un bache. En las próximas décadas, la introducción de nuevos sistemas operativos solo haría más complejo portar aplicaciones a través de hardware, sistemas operativos y proveedores.

El estándar POSIX se desarrolló en la década de 1980 para resolver el problema de la portabilidad. El estándar se definió en base a System V y BSD Unix. POSIX no define el sistema operativo, solo define la interfaz entre una aplicación y un sistema operativo. Los programadores tienen la libertad de escribir su sistema operativo y su aplicación de la forma que deseen, siempre que se respete la interfaz entre los dos. Debido a que POSIX es independiente del hardware, el sistema operativo o el proveedor, es más fácil lograr la portabilidad de la aplicación.

El primer estándar POSIX se lanzó en 1988. Formalmente, se llamó estándar IEEE 1003.1-1988 Interfaz de sistema operativo portátil para entornos informáticos ”. En 1990, se lanzó una versión internacional del mismo estándar con ligeras variaciones como ISO / IEC 9945-1: 1990 Tecnología de la información - Interfaz de sistema operativo portátil (POSIX) - Parte 1: Interfaz de programa de aplicación del sistema (API).

Inicialmente, POSIX se dividió en múltiples estándares:

POSIX.1: Servicios principales
POSIX.1b: Extensiones en tiempo real
POSIX.1c: Extensiones de hilos
POSIX.2: Shell y utilidades

Después de 1997, Austin Group reunió todo el estándar bajo un solo paraguas. Desde entonces, las versiones POSIX.1-2001 (también conocido como IEEE Std 1003.1-2001), POSIX.1-2004 (también conocido como IEEE Std 1003.1-2004) y POSIX.1-2008 (también conocido como IEEE Std 1003.1-2008) han sido lanzados.

Algunos ejemplos de sistemas compatibles con POSIX son AIX, HP-UX, Solaris y MacOS (desde 10.5 leopardo). Por otro lado, Android, FreeBSD, distribuciones de Linux, OpenBSD, VMWare, etc., siguen la mayor parte del estándar POSIX, pero no están certificados.

Conceptos básicos de POSIX

POSIX.El estándar 1-2008 se ocupa de cuatro áreas principales:

  1. Volumen de definición base: Términos, conceptos e interfaces generales.
  2. Volumen de interfaces de sistemas: Definiciones de funciones y subrutinas de servicio del sistema. Además, incluye portabilidad, manejo de errores y recuperación de errores.
  3. Volumen de Shell y utilidades: Definición de interfaces de cualquier aplicación para comandar shells y programas de utilidad comunes.
  4. Volumen de la justificación: Contiene información e historial sobre características agregadas o descartadas y los razonamientos de las decisiones.

El estándar no cubre interfaces gráficas, interfaces de base de datos, portabilidad de código binario / objeto, configuraciones del sistema, consideraciones de E / S o disponibilidad de recursos.

Algunos de los principios rectores detrás del diseño POSIX son:

Desarrollo de aplicaciones POSIX

El propósito de POSIX era mejorar la portabilidad. Cuando su código fuente sigue el estándar, puede compilar y ejecutar el código en una máquina diferente fácilmente. Sin embargo, si POSIX se define como un requisito general para una aplicación, puede causar confusión. El estándar POSIX completo es de más de 4000 páginas con más de 1350 interfaces. No tiene sentido implementar todo. Entonces, cada proyecto debe definir los aspectos de POSIX que cumplirán con los requisitos particulares.

Hay conceptos erróneos en la comunidad de desarrolladores de que el estándar POSIX es antiguo e irrelevante. No es cierto. POSIX es un documento vivo que Austin Group actualiza periódicamente. Cualquiera puede unirse al grupo y participar en la mejora del estándar. El estándar se utiliza activamente en los servidores, estaciones de trabajo, enrutadores, dispositivos móviles, sistemas integrados y más de la actualidad. Se utiliza para máquinas UNIX y Linux.

Sin embargo, los desarrolladores deben tener en cuenta que el estándar POSIX tiene problemas. Puede informar cualquier error que descubra al Grupo Austin y se examinará para la próxima revisión.

Conclusión
POSIX puede parecer abrumador al principio. Aún así, los desarrolladores de aplicaciones deben familiarizarse con los conceptos básicos, ya que aparecerán como un requisito de vez en cuando. Debido al gran alcance del estándar, no es posible convertirse en un experto en el documento completo. Los desarrolladores pueden comunicarse con las comunidades de UNIX y Linux para obtener más información. Las comunidades pueden responder a sus preguntas y darle una mejor idea de qué parte del estándar será relevante para su proyecto.

Estudio adicional:

Referencias:

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...