lunes, 1 de septiembre de 2014

La historia jamás contada: Unix, Linux y el software libre Parte 1/3


"Advertencia: este texto está registrado a mi nombre bajo licencia GNU-GPL 3.0 como parte de la obra completa registrada en SafeCreative nº1306115256721."

Todo comenzó en los años 60-70, cuando el software no era considerado un producto como tal, sino más bien un complemento de los ordenadores que se vendían en la época. En ese tiempo se compartía el software libremente (véase un ejemplo en el grupo de usuarios de computadoras DEC o DECUS). 
En esta época entra en escena otro de los pilares básicos de esta historia, el sistema operativo UNIX. Un sistema multitarea, multiusuario y portable que fue creado en 1969 por Ken Thompson, Dennis Ritchie, Douglas McIlroy y otros programadores como Brian Kernigham y Rudd Canaday.


Pero para saber los verdaderos orígenes de UNIX nos tenemos que remontar a 1960, cuando los Bell Labs (AT&T) y General Electric trabajaban juntos en un sistema operativo experimental. Al producto lo llamaron MULTICS (MULTielexed Information & Computing Service). Con MULTICS buscaban desarrollar un gran S.O. con muchas tecnologías innovadoras y un fuerte énfasis en la seguridad.
La lentitud, rigidez y errores de MULTICS produjo que los laboratorios Bell se desvinculasen de GE y siguiesen su propio camino evadiéndose del fracaso de MULTICS. En pleno auge de los videojuegos, Ken Thompson comprobó por sí mismo la lentitud de MULTICS, cuando creó un juego llamado Space Travel para la computadora GE-635. Ken junto a Dennis rescribieron el programa en ensamblador para portarlo a la computadora DEC PDP-7, donde conocieron las maravillas del computador de Digital Equipment Corp. e iniciaron la creación de su propio sistema operativo para este equipo.
El grupo de programadores de Bell se pusieron a trabajar y crearon un sistema de ficheros nuevo, el sistema operativo, un intérprete de comandos y programas. Más adelante, Ritchie y Thompson añadirían también una herramienta de procesamiento de textos.
El resultado se bautizó como UNICS (UNIplexed Information and Computing System), que les recoardará en algo a MULTICS. Pero había un "problema", la pronunciación de "UNICS" en inglés era fonéticamente similar a otra que significaba "castrado" y ello obligó a cambiar el nombre por UNIX.
El proyecto UNIX no interesó a los laboratorios Bell de la AT&T, por lo que no financiaron ni un céntimo. Esto cambiaría cuando el Grupo de Investigación en Ciencias de la Computación les pidió el sistema para comenzar a utilizarlo en una PDP-11/20. Ahora sí, Bell Labs comenzó a financiar el proyecto y se habló por primera vez de forma oficial de UNIX (1970).
Ufff todo un alivio, probablemente, si este grupo no se fuese interesado por él ahora no existiría UNIX ni sus derivados... Un simple acontecimiento puede cambiar toda la historia.  
En el 71 se publicaría un manual de programación bajo UNIX ("UNIX Programmer's Manual) y en el 72 se reescribió todo el sistema en lenguaje C. Esto le daría a UNIX un mayor rendimiento, estabilidad y la portabilidad necesaria para ser modificado y ejecutado en otras arquitecturas.
Otra característica interesante fue la de sus dos niveles de ejecución, modo kernel y modo usuario. En modo kernel se pueden utilizar todas las instrucciones del microprocesador, manipular toda la memoria, operar directamente con los dispositivos, etc. En modo usuario solo se permiten ejecutar procesos normales con restricciones. Esto lo hace más seguro.
El éxito de UNIX se debío en parte a las universidades, ya que éstas se dieron cuenta de que era un sistema muy bueno. Al adoptarolo, generaron legiones de estudiantes que se habían licenciado trabajando con ese sistema y llevaron estos conocimientos a sus respectivas empresas. Así se consiguió que UNIX dominase el mercado profesional y convirtiéndose en el más popular de la época, extendiendose como un virus por todo el sector de los negocios e incluso en el propio gobierno de EE.UU.
Otra cosa que jugó a favor de UNIX fue el proyecto ARPANET (Advanced Research Projects Agency Network), antepasado de Internet. Era una red para que los distintos territorios de EE.UU. se pudieran comunicar en caso de ataque nuclear soviético. La red necesitaba un sistema operativo con capacidades de red eficaces y éste era el caso de UNIX. Así fue como UNIX se transformó en el sistema operativo sobre el que se construiría lo que hoy conocemos como Internet.
Pero UNIX no llegó a los usuarios particulares, ya que no podían pagar las costosas licencias. Ten en cuenta que un sistema DOS de la época podía costar 200 veces menos que la licencia de UNIX, llegando incluso a los 5.000$.
En 1975 la Universidad de Berkeley (California) compró una licencia de UNIX y desarrollaría su propio fork (derivado). A éste se le llamó BSD (Berkeley Software Distribution). En esta época se crearían muchos de estos sucedánemos de UNIX, ya que a pesar de no ser libre, al adquirir la licencia te daban los derechos para crear tu propio sistema. Las leyes blandas de la época propiciaron que el código se pudiese compartir.
Tras el gran éxito, Bell crearía la división Unix Systems Laboratories para el desarrollo de Unix. Entonces aparecerían distintas versiones hasta la 6. Las versiones 4, 5 y 6 incluían un sistema modular denominado "pipes" o "tuberías". Con ello se disparaba la velocidad de desarrollo del sistema. Las tuberías permiten intercambio de datos entre un proceso de escritura y otro de lectura sin ser necesario crear ficheros temporales.
La versión 7 de 1979 sería la última versión original de Unix. Los esfuerzos de Bell Labs se centrarían a partir de 1980 en lo que sería el sucesor de Unix, otro sistema operativo portable llamado Plan 9. A partir de este momento, tanto la AT&T como sus subsidiarias (Bell Labs y Western Digital), seguían comercializando las licencias Unix en sus distintas versiones, además de otras versiones modificadas (como AT&T Unix System III).


Todo un lío de versiones que terminó con la aparición de AT&T Unix System V en 1983. Ésta implementaría distintas tecnologías y programas desarrollados por la división BSD. Para añadir más miga en el asunto, Novell (actual propietaria de SuSE Linux) en 1993 adquiere la división Unix System Laboratories de AT&T, quedándose con la propiedad intelectual.

A la par, Novell mantenían juicios por violación de derechos contra BSD, resultando este último vencedor, aunque la compañía sabía que gran parte del código de BSD había sido literalmente copiado de la versión Unix System V. Pero BSD no pudo conservar dicho código entre sus líneas.
Otro pequeño detalle que volvería a cambiar la historia, de no ser así, Linus Torvalds jamás habría creado Linux. Lo dijo el propio creador: "Yo no habría tenido que crear Linux si no hubiera habido ninguna demanda contra BSD a principios de los 90".  
Los laboratorios adquiridos por Novell no duarían mucho en sus manos y en 1995 fueron vendidos a SCO (Santa Cruz Operation). Pero Novell se reservó algunos derechos sobre Unix que no cedió a SCO. Entonces ésta última continuó vendiendo productos como UnixWare y OpenUnix.
Pero Unix volvió a cambiar de manos en 2001, pasando de SCO a Caldera Software. Caldera Software era conocida por su distribución Caldera Linux, pero a la vez vendía sistemas operativos de pago SCO Unix no libres como UnixWare y OpenServer. Con ésto obtenía mayor beneficio y motivo por el cual la compañía pasaría a llamarse The SCO Group en 2002.
SCO Group mantuvo una dura batalla en los tribunales sobre los derechos de Unix desde 2003. Novell argumentó que solo vendió los derechos de uso, reservándose todo el copyright del código Unix y por tanto seguía teniendo la propiedad intelectual de Unix. Finalmente se le dio la razón a Novell y ganó su lucha en 2010.
SCO demandó y envió cartas a unas 1000 compañías (recuerda que muchas como IBM, HP, Sun,...habían adquirido la licencia Unix para crear sus propios sistemas: AIX, UX, Solaris,...) de las más importantes del sector. El motivo, haber cedido parte del código Unix al kernel Linux. Entre las empresas que señaló SCO están la propia Novell e IBM (una de las históricas desarrolladoras del kernel y la cual poseía licencia Unix para el desarrollo de su propio sistema *nix llamado AIX).
El tribunal de Utah, concluyó que SCO solo compró a Novell el derecho para la distribución de licencias Unix a terceros, pero no la propiedad intelectual. Quedando así zanjado el tema y dejando libre de culpa a las compañías perjudicadas. IBM, LinuxTag, SuSE y Red Hat, también demandaron a SCO Group por difamación. Un terrible fuego cruzado entre titanes del mundo informático que terminó por paliarse.
SCO Group, tocada y hundida, recibió ofertas de compra de la propiedad intelectual de Unix por parte de grupos como JGD Management y SNCP, pero fueron rechazadas. En 2011 la compañía UnXis compró los derechos de los productos UnixWare y OpenServer de The SCO Group.
Un año más tarde, SCO Group entró en bancarrota por haber tenido que pagar la deuda a Novell del 95% de las ventas que realizó SCO Group con los productos Unix, es decir, un total de 26 millones de dólares, 16 de ellos comprados por Microsoft y 10 por Sun Microsystems (actualmente propiedadde Oracle).