POSIX

POSIX


¿Que es? 

Empiezo por el principio, POSIX es un acrónimo en inglés que significa Portable Operating System Interface for uniX, literalmente significa interfaz portable de sistemas operativos para Unix. Te recontra recomiendo que inviertas unos minutos en la lectura de la entrada de Wikipedia dedicada al tema (https://es.wikipedia.org/wiki/POSIX) para hacerte una idea cabal de que es y que hace POSIX.

Quiere decir que todos los sistemas tipo Unix como Linux BSD y otros que respeten este estándar, van a ser interoperables, es decir una aplicación posix hecha para un Unix funciona en otro sin necesitar ninguna modificación. Compatibilidad es la palabra mágica acá. Sin este estándar esta portabilidad o compatibilidad no es exigida y por tanto no está garantizada, es decir que si mañana un sistema deja de ser compatible con otros Unix diferentes a aquel en que fue creado, es válido. 


¿Es necesario? 

Para ponerlo en una palabra, SI. Mas que necesario, diría que escencial porque permite la existencia de un ecosistema donde con mínimo esfuerzo un mismo programa puede ejecutarse en otro sistema operativo diferente de aquel en que fue concebido como lo hacen Apache, Postfix, X y tantos otros. Esto quiere decir que por ejemplo, un sistema escrito en el lenguaje Python en un equipo con MINIX puede compilarse sin modificar y va a funcionar en en equipo que corra QNX.

Hay una cantidad muy significativa de sistemas tipo Unix que adhieren  la norma. Estos sistemas operativos conforman un ecosistema donde los programas funcionan casi igual. Esto está pensado para ­----reducir la curva de aprendizaje y costos a la hora de plantear una migración ya que es poco lo que hay que  cambiar para que un programa se ejecute correctamente y un usuario formado dentro del ecosistema puede con un mínimo esfuerzo, utilizar su conocimiento previo para usar la aplicación en un sistema operativo diferente. Como ejemplo, si un usuario se forma con Xfce en Linux, tendrá que hacer muy poco trabajo para operar un entorno Xfce instalado en un sistema BSD.


¿Que pasa si se ignora?

Nada aparente ya que las aplicaciones siguen funcionando exactamente igual en el sistema operativo en que fueron creadas, sin embargo, si tratas de generar una compilación en un sistema operativo diferente es perfectamente posible que no lo hagan perdiendo la portabilidad, fragmentando el ecosistema al limitar los entornos de ejecución. Quiero decir que una aplicación puede funcionar sólo en un puñado de sistemas operativos acotando las opciones de los usuarios que pueden usar la aplicación A en el sistema operativo B, pero no en el C ni en ningún otro.

Pero  no te lo cuento, te lo muestro con un ejemplo. OpenBSD es un Unix POSIX, systemd es un init no compatible, es decir, no es posible ejecutar systemd en ningún equipo que corra con BSD. Xorg es compatible y puede usarse en BSD, Wayland no. Podría seguir, pero creo que con esos ejemplos alcanza para visualizar el problema. Bueno, un ejemplo mas y no jorobo mas. GNOME depende de systemd y systemd no adhiere a POSIX, luego GNOME tampoco, sistemas sin systemd como varios Linux y todos los *nixes no tienen como.


Conclusión

A modo de resumen, POSIX es una interfaz que permite compatibilidad a nivel de api entre diferentes sistemas operativos, es decir que un programa compilado en un sistema POSIX puede ser compilado en otro sin cambios y va a funcionar igual.  Por eso es necesario para mantener unido al ecosistema, garantizando que todos los sistemas operativos POSIX puedan tener las mismas aplicaciones funcionando igual reduciendo la curva de aprendizaje cuando un usuario cambia de un sistema a otro y reduciendo drásticamente el costo de portar aplicaciones entre sistemas. Ignorar este protocolo puede parecer conveniente ya que en algunos casos se puede lograr mayor velocidad, el problema es que el costo es salirse de este ecosistema y reducir el alcance. Es decir que por ejemplo una aplicación no POSIX desarrollada para sistemas x86 no necesariamente tiene que funcionar en equipos ARM. Si hay una funcionalidad no provista por POSIX hay que expandirlo para hacer más fuerte el ecosistema, no salirse.

0 Comentarios:

Publicar un comentario

Flag Counter Visitas previas a la existencia de este contador: 3433

Artículos aleatorios

    Páginas: