POSIX Estándar

POSIX Estándar

Posix: una descripción general

La interfaz del sistema operativo portátil (POSIX) es un estándar IEEE que ayuda a la compatibilidad y la portabilidad entre los sistemas operativos. Teóricamente, el código fuente compatible con Posix debe ser sin problemas portátil. En el mundo real, la transición de la aplicación a menudo se ejecuta en problemas específicos del sistema. Pero el cumplimiento de Posix hace que sea más simple para las aplicaciones portuarias que pueden dar lugar a un ahorro 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 el sistema IBM/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 reutilicen el mismo sistema operativo. La presencia de un sistema operativo común en múltiples máquinas establece la primera etapa para la portabilidad de la aplicación.

A fines 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 correr a través de máquinas de múltiples proveedores. Pero Unix comenzó a desembolsar en varios sabores. Además del Sistema V de AT&T, había Berkeley Software Distribution (BSD), Xenix y más. No fue fácil portar a través de estos sabores. La promesa de la portabilidad de la aplicación llegó a un golpe de carretera. En las próximas décadas, la introducción de nuevos sistemas operativos solo haría que sea más complejo de aplicaciones portuarias en hardware, sistemas operativos y proveedores.

Posix Standard se desarrolló en la década de 1980 para resolver el problema de portabilidad. El estándar se definió en función del sistema 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 todos modos, de todos modos, siempre que se honre 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 fue lanzado en 1988. Formalmente, se llamaba IEEE Standard 1003.1-1988 Interfaz del 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 del sistema operativo portátil (POSIX) - Parte 1: Interfaz del programa de aplicaciones 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 and Utities

Después de 1997, el grupo Austin trajo 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.

Ejemplos de algunos 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., Siga la mayor parte del estándar POSIX, pero no están certificados.

Conceptos básicos de Posix

Posix.1-2008 se trata de cuatro áreas principales:

  1. Volumen de definición base: Términos, conceptos e interfaces generales.
  2. Interfaces de sistemas Volumen: Definiciones de las 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 a shells de comandos y programas de utilidad comunes.
  4. Volumen de 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 bases de datos, portabilidad de objeto/código binario, configuraciones del sistema, consideraciones de E/S o disponibilidad de recursos.

Algunos de los principios rectores detrás de Posix Design son:

  • Posix se crea para facilitar la portabilidad de la aplicación. Entonces no es solo para sistemas UNIX. Los sistemas no unix también pueden cumplir con POSIX.
  • El estándar no dicta el desarrollo de la aplicación o el sistema operativo. Solo define el contrato entre ellos.
  • El código fuente de la aplicación compatible con POSIX debería poder cumplir con muchos sistemas porque el estándar se define a nivel de código fuente. Sin embargo, el estándar no garantiza ningún objeto o portabilidad del nivel de código binario. Por lo tanto, el ejecutable binario puede no ejecutarse incluso en máquinas similares con hardware y sistemas operativos idénticos. Solo la portabilidad del código fuente se aborda en el estándar.
  • Posix está escrito en términos de Cand estándar C. Pero los desarrolladores pueden implementarlo en cualquier idioma que deseen.
  • El estándar solo trata los aspectos del sistema operativo que interactúa con las aplicaciones.
  • El estándar se mantiene sucinto en términos de longitud y amplio en términos de alcance para cubrir una gran variedad de sistemas.
  • Posix fue diseñado para simplificar la portabilidad. Entonces ahorrará tiempo y dinero a largo plazo. Sin embargo, si sus aplicaciones no cumplen con POSIX, puede requerir una inversión significativa en el tiempo y los recursos al principio.

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. Por lo tanto, cada proyecto debe definir los aspectos de POSIX que cumplirán con requisitos particulares.

Hay conceptos erróneos en la comunidad de desarrollo de que Posix Standard es antiguo e irrelevante. No es cierto. Posix es un documento vivo que está siendo actualizado regularmente por el grupo Austin. Cualquiera puede unirse al grupo y participar en la mejora del estándar. El estándar se usa activamente en los servidores, estaciones de trabajo, enrutadores, dispositivos móviles, sistemas de integración y más. Se usa para máquinas UNIX y Linux.

Sin embargo, los desarrolladores deben ser conscientes de que Posix Standard tiene problemas. Puede informar cualquier error que descubra al grupo Austin y se analizará para la próxima revisión.

Conclusión
Posix puede parecer desalentador al principio. Aún así, los desarrolladores de aplicaciones deben familiarizarse con los conceptos básicos, ya que aparecerá 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 aprender más. 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:

  • POSIX Documento completo
  • Posix Preguntas frecuentes
  • El grupo de revisión de estándares comunes de Austin

Referencias:

  • Posix Preguntas frecuentes, Austin Group
  • Grupo de Austin
  • Documento 7542098/
  • Conceptos de servicios de sistemas POSIX y UNIX
  • OpenGroup DOC 9699919799
  • Que es Posix?, Universidad de Indiana
  • Docs de estándares @ Open-STD.organizar
  • Bill Gallmeister, Guía de programación de Posix
  • Guía de programadores de Posix, Donald Lewine
  • Stackoverflow que es posix
  • Historia de Uniux, Darwinsys.comunicarse
  • Austin Open Group, Posix Paper
  • Wikipedia Posix