Escuchará el acrónimo o lo leerá en diferentes foros y artículos en línea: POSIX. Los programadores y desarrolladores de sistemas parecen estar más preocupados por esto. Suena críptico, y aunque hay mucho material bueno sobre el tema, algunos foros de discusión (donde la brevedad es parte de su naturaleza), no detallan de qué se trata, lo que puede generar confusión. Entonces, ¿qué es exactamente POSIX?
Tabla de Contenidos
¿Qué es POSIX?
POSIX no es en realidad una cosa. Describe una cosa, como una etiqueta. Imagina una etiqueta con: POSIX, dentro de la caja hay un estándar. El estándar consta de reglas y conjuntos de instrucciones centrados en POSIX. POSIX es abreviatura Interfaz de sistema operativo portátilEs un estándar IEEE 1003.1 que define la interfaz de idioma entre las aplicaciones (y las interfaces de línea de comandos y utilidades) y el sistema operativo UNIX.
El cumplimiento de los estándares garantiza la compatibilidad cuando los programas UNIX se trasladan de una plataforma UNIX a otra. POSIX se centra principalmente en las funciones de System V UNIX y BSD UNIX de AT&T.
Un estándar debe estar articulado y seguido de reglas sobre cómo lograr el objetivo de interoperabilidad entre sistemas operativos. POSIX cubre lo siguiente: interfaces del sistema, comandos y utilidades, acceso a archivos de red, solo por nombrar algunos. POSIX es mucho más que eso.
¿Por qué elegir POSIX?
Una palabra: portátil.
Hace más de 60 años, si los programadores querían que su software se ejecutara en múltiples sistemas, tenían que reescribir completamente el código. Esto no sucede muy a menudo debido al gasto que implica, pero la portabilidad se convirtió en una característica a mediados de la década de 1960, no a través de POSIX, sino en el mundo de los mainframe.
IBM presentó la serie System/360 de computadoras centrales. Los diferentes modelos tienen sus propias especialidades, pero el hardware les permite usar el mismo sistema operativo: OS/360.
Los sistemas operativos no solo pueden ejecutarse en diferentes modelos, las aplicaciones también pueden ejecutarse en ellos.Esto no sólo reduce los costos, sino que también crea sistema informático – Sistemas en todas las líneas de productos que funcionan juntos. Esto es común hoy en día: redes y sistemas, pero en ese momento, ¡era un gran problema!
Casi al mismo tiempo, cuando apareció UNIX, también se mostró prometedor para ejecutarse en máquinas de diferentes fabricantes. Sin embargo, cuando UNIX comenzó a derivar diferentes sabores, se hizo difícil portar el código a través de estas variantes de UNIX. La promesa de la portabilidad de UNIX está perdiendo terreno.
Para abordar este problema de portabilidad, se creó POSIX en la década de 1980. El estándar se definió en base a las definiciones System V UNIX y BSD UNIX de AT&T, las dos variantes más grandes en ese momento. Vale la pena señalar que POSIX no se formó para controlar cómo se construyen los sistemas operativos: cualquier empresa es libre de diseñar su variante UNIX de la forma que desee. POSIX solo se preocupa por cómo la aplicación interactúa con el sistema operativo. En términos de programador, una interfaz es un método por el cual el código de un programa puede comunicarse con otro programa. Esta interfaz espera que el programa A proporcione al programa B un tipo específico de información. Asimismo, el programa A espera que el programa B responda con un tipo específico de datos.
Por ejemplo, si quisiera usar el comando cat para leer un archivo, escribiría algo como esto en la línea de comando:
cat myfile.txt
Sin más preámbulos acerca de los programadores, solo diré que el comando cat llama al sistema operativo para obtener el archivo para que cat pueda leerlo. cat lo lee y luego muestra el contenido del archivo en la pantalla. Hay muchas interacciones entre aplicaciones (cat
) y sistema operativo. Cómo funciona esta interacción es de interés para POSIX. La portabilidad (independientemente del sistema operativo, el fabricante y el hardware) se recupera si las interacciones son las mismas en todas las variantes de UNIX.
Los detalles de cómo se hace todo esto se definen en el estándar.
El cumplimiento es voluntario
Todos nosotros hemos visto al menos el mensaje, «Para obtener ayuda, ingrese: xxxxxx –help.» Esto es común en Linux y no es compatible con POSIX. POSIX nunca necesitó guiones dobles, necesitaban un solo guión. El guión doble proviene de GNU, pero no daña a Linux y agrega un poco de sus características. Al mismo tiempo, Linux es mayormente compatible, especialmente en términos de interfaces de llamadas al sistema. Es por eso que podemos ejecutar aplicaciones X, GNOME y KDE en Linux, Sys V UNIX y BSD UNIX. Varios comandos como ls, cat, grep, find, awk, etc. funcionan de la misma manera en diferentes variantes.
A menudo, el cumplimiento es un paso voluntario. Migrar a otro sistema es más fácil cuando el código es compatible; hay poca o ninguna necesidad de reescribir el código. Cuando el código puede funcionar en diferentes sistemas, su utilidad se expande. Las personas que utilizan otros sistemas pueden beneficiarse del uso de este programa. Para los programadores en ciernes, aprender a escribir programas compatibles con POSIX solo ayudará en sus carreras. Para aquellos lectores interesados en el campo del cumplimiento de Linux, se puede encontrar mucha información útil en: Biblioteca estándar de Linux.
Pero no soy programador ni diseñador de sistemas…
Muchas personas que trabajan con computadoras no son programadores ni diseñadores de sistemas operativos. Son transcriptores médicos, secretarios para redacción de cartas, listas de tareas pendientes, memorandos dictados y más. Otros tabulan números, recopilan y manipulan datos, administran tiendas en línea y escriben libros y artículos (algunos de nosotros los leemos). En casi todos los trabajos, puede haber una computadora cerca.
POSIX también afecta a estos usuarios, lo sepan o no. Los usuarios no tienen que adherirse al estándar, pero sí quieren que sus computadoras funcionen. Los beneficios de la interoperabilidad se obtienen cuando los sistemas operativos y los programas se ajustan al estándar POSIX. Podrán pasar de un sistema a otro con una expectativa razonable de que la máquina se comportará como la otra. Sus datos siguen siendo accesibles y aún pueden realizar cambios en ellos.
POSIX y otros estándares están en constante evolución. A medida que la tecnología evoluciona, también lo hacen los estándares. Un estándar es realmente un sistema acordado que las personas, los fabricantes, las organizaciones, etc. utilizan para realizar tareas de manera eficiente. Un dispositivo de un fabricante se puede utilizar con un dispositivo de otro fabricante. Piénselo: sus auriculares bluetooth se pueden usar tanto en un iPhone de Apple como en un teléfono Android. Nuestros televisores pueden conectarse y transmitir videos y programas de diferentes redes, como Amazon Prime, BritBox, Hulu, solo por nombrar algunas. Ahora, incluso podemos monitorear nuestro ritmo cardíaco con nuestros teléfonos móviles. Todo esto es posible, y la parte principal es desde el cumplimiento hasta los estándares.
Hay muchos beneficios. Me gusta.
¿Qué pasa con X?
Lo admito, nunca dije qué significa «X» en POSIX. Opensource.com tiene un gran artículo Richard Stallman explica qué significa «X» en POSIX. En sus palabras:
El IEEE ha completado el desarrollo de la especificación, pero no hay un nombre conciso. El título dice «Interfaz de sistema operativo portátil», aunque no recuerdo la palabra exacta. El comité utiliza «IEEEIX» como nombre abreviado. No creo que esta sea una buena elección. La pronunciación es fea, suena como un grito horrible, «¡Ayeee!», por lo que espero que la gente llame a la especificación «Unix» en su lugar.
Como GNU no es Unix, y como fue diseñado para reemplazar a Unix, no quiero que la gente llame a GNU «el sistema Unix». Así que se me ocurrió un nombre conciso que la gente podría usar. Sin ninguna inspiración en particular, elegí un nombre de manera tonta: tomé las iniciales de «Portable Operating System» y agregué «ix». El IEEE ha adoptado esto con entusiasmo.
en conclusión
El estándar POSIX permite a los desarrolladores crear aplicaciones, herramientas y plataformas en muchos sistemas operativos utilizando gran parte del mismo código. De todos modos, no es necesario escribir código de acuerdo con el estándar, pero ayuda mucho cuando desea transferir su código a otros sistemas.
Básicamente, POSIX es para diseñadores de sistemas operativos y desarrolladores de software, pero como usuarios del sistema, todos nos vemos afectados por POSIX, nos demos cuenta o no. Es gracias a este estándar que podemos trabajar en un sistema UNIX o Linux y transferir ese trabajo a otro sistema sin problemas. Como usuarios, obtenemos muchos beneficios en términos de usabilidad y reutilización de datos en todos los sistemas.