3 de abril de 2016

¿Es GNU/Linux, UNIX?

Típica pregunta. Por simplificar, es común decir que Linux es tipo UNIX, GNU/Linux está basado en UNIX o cosas así. No obstante, responder de forma correcta a la pregunta no es tan sencillo.

UNIX License Plate, por Takuya Oikawa
Foto: Flickr - Creative Commons BY SA 2.0

Estrictamente hablando, para que un sistema operativo se pueda considerar, literalmente, UNIX, debe recibir una certificación de The Open Group, la organización que actualmente regula y controla el uso de la marca registrada UNIX. Esta certificación se obtiene mediante una serie de tests que certifican, entre otras cosas, la conformidad del sistema operativo con el estandar POSIX, entre otras cosas.

No obstante, sólo unos pocos sistemas operativos han realizado este test y han obtenido una certificación como tal. Entre los sistemas operativos que la han obtenido destacan; HP/UX, la distribución UNIX mantenida por HP; o MacOS X, el sistema operativo de Apple, que también está basado en este sistema y que desde la versión 10.5 ha superado los tests y tiene expedida la licencia.

No obstante, otros sistemas operativos como GNU/Linux o algunos sistemas BSD como FreeBSD no tienen esta certificación, por lo que estrictamente hablando, se debe hacer referencia a ellos como sistemas "Unix-like", es decir, similares, tal vez en comportamiento o tal vez por ofrecer soporte al estandar POSIX, pero que como tal no se pueden considerar al 100% sistemas UNIX.

En el caso de GNU es comprensible, ya que precisamente en los orígenes de GNU se encuentra ofrecer un sistema operativo compatible con Unix pero completamente hecho a base de software libre, sin incluir ninguna línea de código del Unix original. Por otro lado, Linux fue inicialmente concebido como una implementación clónica de Minix, el cual tampoco tiene licencia.

No obstante, desde el punto de vista práctico, estos sistemas operativos comparten tanto a nivel de funcionamiento, que pasan por Unix-like pese a no tener dicha certificación. El uso que se hace de POSIX, la interfaz portable que permite hacer una aplicación compatible a nivel de código con distintos sistemas operativos, permite que un código desarrollado en un sistema de este tipo como pueda ser FreeBSD, sea fácil de portar a otro sistema de este tipo como GNU/Linux o MacOS X.