Un 25 de agosto, pero de 1991 -hace ahora exactamente 18 años- el finlandés Linus Torvalds enviaba un humilde mensaje a Internet anunciando al mundo el proyecto en el que llevaba varios meses trabajando en sus ratos libres: un sistema operativo para ordenadores personales, algo que comenzó por puro hobby de un apasionado a la informática. Este fue su mensaje:
Hola a todos aquellos que usan Minix.
Estoy creando un sistema operativo (libre) (por puro hobby, no será tan grande ni profesional como GNU) para clones AT 386(486). Llevo trabajando en ello desde abril y ya empieza a estar listo. Me gustaría recibir comentarios sobre lo que a la gente le gusta/disgusta de Minix, ya que mi SO se le parece un poco (misma disposición física del sistema de archivos (por motivos prácticos) entre otras cosas).
Hasta el momento he portado bash(1.08) y gcc(1.40), y las dos utilidades parecen funcionar. Esto quiere decir que tendré algo funcional dentro de unos meses y me gustaría saber qué características querría tener la mayoría de la gente. Cualquier sugerencia es bienvenida, pero no puedo prometer que las ponga todas en práctica :-)
Linus Benedict Torvalds
PD. Sí - está libre de código de Minix y tiene un sistema de archivos multi-hilo. NO es portable (usa la conmutación de tareas del 386, etc.), y probablemente nunca funcionará en otra cosa que no sean los discos duros AT, porque es todo lo que tengo :-(
Casi veinte años después, alcanzada lo que sería la «mayoría de edad» en el mundo real, ese sistema operativo «creado por pura afición» lo utilizan millones de ordenadores, ha supuesto una de las mayores revoluciones informáticas de las últimas décadas, es la base de los grandes proyectos de Internet y, como dijo medio en serio medio en broma el propio Torvalds, podría llegar a destruir a Microsoft, aunque fuera como «efecto colateral no deseado».
Como sucede a veces con algunos grandes proyectos, durante su concepción ni siquiera el autor era consciente de la magnitud que acabaría alcanzando. Torvalds comenzó escribiendo un emulador de terminal para conectar su ordenador con los servidores UNIX de la universidad, pero con el tiempo se daría cuenta de que estaba escribiendo el núcleo de un sistema operativo nuevo y compatible con UNIX. El nombre que le puso, «Linux» -una peculiar modificación de su apellido al «estilo UNIX»- fue elegido en realidad por un colega suyo (Torvalds quería llamarlo inicialmente Freax, pero a su amigo no le pareció muy sonoro).
El 5 de octubre de 1991 Torvalds anunciaba finalmente la primera versión del código fuente, que se podía descargar, compilar y ejecutar:
¿Echas de menos los días de minix-1.1, cuando los hombres eran hombres y escribían sus propios controladores de dispositivos? ¿Estás sin ningún buen proyecto entre manos y tienes ganas de meterle mano a un sistema operativo que puedas modificar según tus necesidades? (...) Puede que este mensaje te interese.
Como mencioné hace más o menos un mes estoy trabajando en una versión libre de algo parecido a minix para ordenadores AT-386. Ya estoy en la fase en que es usable (aunque puede no serlo, dependiendo de lo que quieras hacer) y voy a empezar a publicar el código fuente para que se distribuya más ampliamente. Actualmente está en la versión 0.02 +1 pequeño parche, pero he podido ejecutar correctamente bash/gcc/gnu-make/gnu-sed/compress entre otras cosas.
El código fuente de este pequeño proyecto casero está en nic.funet.fi (128.214.6.100) en el directorio /pub/OS/Linux (...)
La gente comenzó a descargarse el código fuente desde el servidor de la universidad finlandesa, a probarlo, interesarse y a colaborar en su desarrollo. Ese fue el comienzo de todo, aunque como suele suceder en estas historias, también hubo unos antecedentes.
La informática antes de Linux
En los años 90 el sistema operativo UNIX, que podía correr sobre distintos modelos de ordenador, llevaba ya un par de décadas creciendo entre los grandes ordenadores de todo el mundo. Había habido algunos intentos de crear sistemas operativos compatibles, los más notables el Proyecto GNU de Richard Stallman (1983), el BSD de Berkeley (1977) y MINIX (1987).
Por diversas razones, a veces técnicas, a veces legales, otras simplemente por falta de interés de los desarrolladores, ninguno de ellos llegó a alcanzar una popularidad suficiente como para competir con UNIX. Todas esas alternativas a UNIX necesitaban del desarrollo de un kernel o núcleo propio, la base fundamental del sistema operativo, la que gestiona los recursos y enlaza directamente con el hardware del ordenador. Hurd era el kernel del proyecto GNU, pero por unas cosas y otras era una idea inacabada: la primera versión estaba no aparecería hasta casi 2008, una eternidad en tiempo informático. BSD dejó de desarrollarse en 1995, aunque algunos de sus descendientes como el Mac OS X de Apple o SunOS/Solaris y OpenBSD se siguen utilizando. MINIX por otra parte no utilizó una licencia libre hasta 2000, lo que hizo que muchos voluntarios prefirieran ayudar en el desarrollo de Linux.
GNU + Linux: la combinación perfecta
El problema para Linux en 1992 era que Torvalds y sus colaboradores tenían un núcleo, pero un sistema operativo es mucho más que eso: necesita un compilador, librerías y diversas utilidades para funcionar... Por no hablar de diversos lenguajes de programación sobre los que desarrollar, sistemas de bases de datos o una interfaz de ventanas que haga que sea fácil de usar para «el resto de mortales». Curiosamente, gran parte de todo eso ya lo tenía el Proyecto GNU, al que por otro lado le faltaba ese núcleo, eternamente inacabado. Entonces surgió la idea de crear la combinación perfecta, conjuntando ambas cosas.
El respaldo definitivo de la comunidad de programadores hacia Linux se produjo cuando en 1992 Torvalds reconoció que sólo con el núcleo no se podía llegar a ninguna parte y que se necesitaba más software, como el que tenía el Proyecto GNU. Entonces publicó la versión 0.99 de Linux aplicándole por primera vez la licencia GPL de GNU. En palabras del propio Torvalds «hacer que Linux fuera GPL fue definitivamente lo mejor que haya podido hacer nunca».
Las licencias de software son el instrumento legal que acompaña a los programas de ordenador: pueden ser más o menos restrictivas, aplicarse a programas comerciales o a los que se distribuyen de forma libre y gratuita. Hay todo un espectro de licencias, desde el «dominio público» a las fórmulas más restrictivas que coartan los derechos de los usuarios. La licencia GPL de GNU que adoptó Linux se basaba en varias «libertades» que se aplican a los programas de software: la primera, que se pueda ejecutar para cualquier propósito; la segunda, que se pueda tener acceso al código fuente (no solo a las versiones ejecutables); la tercera, la de que se puedan redistribuir los programas para ayudar a los demás; y la cuarta, que se puedan modificar, publicar las mejoras y redistribuirlas por el bien común.
Con el tiempo, esa licencia GPL -que hay quien considera que es en realidad más bien un «manifiesto político»- sufriría diversas modificaciones, y sería causa de controversia, tanto en otros proyectos como en su relación con Linux, pero también triunfaría como abanderada del concepto del «software libre». En 1992, en cualquier caso, su efecto al ser aplicada a Linux fue explosivo: nació un sistema operativo completamente libre, con su núcleo y resto de utilidades, que cualquiera podría modificar, mejorar y redistribuir. Algo que merecería el apoyo de gran parte de la comunidad de desarrolladores, que lo verían como una alternativa interesante frente al mercado de los sistemas operativos tradicionales, en especial los más «restrictivos» de Microsoft, IBM y Apple, que dominaban el mercado en aquella época.
Parte de la controversia que se tornaría en lucha encarnizada -con el tiempo legendaria- entre Torvalds y Stallman fue por el nombre del proyecto «completo»: a raíz de su popularización, hacia mediados de los 90, Stallman como promotor del proyecto GNU y líder de la Free Software Foundation pidió que como reconocimiento se usara «GNU/Linux» para denominar a la combinación de ambas cosas, y no simplemente «Linux». En realidad solían distribuirse combinaciones formadas por el núcleo de Linux junto con las utilidades de GNU, pero también había distribuciones con otros programas de diversos orígenes (algunos no-GNU, o ni siquiera software libre). La propia definición de «qué constituye un sistema operativo», o de si es más importante el núcleo o todo lo que le rodea, o incluso qué porcentaje de código representa cada cosa, o si la importancia de ese código es mayor o menor, fue ampliamente debatida. A Torvalds le pareció bien que quien quisiera usara GNU/Linux si creaba una distro (distribución de Linux «empaquetada») con las herramientas GNU, igual que algunas empresas utilizan «Red Hat Linux» como denominación de sus productos. Pero dijo que renombrar Linux «de forma general» era simplemente ridículo, así que lo dejó como estaba, avivando así las eternas disputas. Los usuarios y los medios de comunicación, en general, utilizan simplemente «Linux» porque es más corto y más fácil de recordar y pronunciar.
Un arranque lento pero seguro
En 1994, poco más de dos años después del primer anuncio de Torvalds, se presentó la versión 1.0 estable de Linux, en la que habían trabajado cientos de desarrolladores voluntarios. Algunas empresas como Red Hat y SUSE también publican sus versiones empaquetadas o distros, que muchas empresas y organizaciones vieron con buenos ojos al garantizar cierto soporte más allá del que podían ofrecer los «voluntarios de Linux» que andaban repartidos por el mundo. La licencia libre GPL no entra en el aspecto de la distribución comercial del software (que no tiene por qué ser necesariamente «gratis»), y de hecho permite que cualquiera pudiera vender tanto el software libre como por supuesto servicios asociados a él. Desde entonces muchas empresas han hecho un gran negocio apoyándose en el Linux como principal pieza de su actividad, trabajando en las áreas del desarrollo y la consultoría.
A partir de 1995 Linux sería «portado» a otras plataformas hardware como DEC y Sun, haciéndolo cada vez más universal: un mismo programa podría correr en máquinas con hardware de lo más diverso, tanto en pequeños ordenadores personales como en grandes servidores y superordenadores con múltiples procesadores. Con el tiempo, se convertiría en la base de la gran mayoría de los proyectos de la entonces todavía incipiente World Wide Web. Hoy en día, empresas como Google o Amazon le deben un gran favor a Linux, que en general les permitió un desarrollo sobre todo barato, pero también flexible. Tim O'Reilly, uno de los grandes promotores del software del código abierto (un concepto similar, pero filosóficamente algo diferente al del software libre), suele decir que, como todo el mundo utiliza Google, todos somos usuarios de Linux en cierto modo: lo usamos todos los días, al hacer las consultas al buscador a través de la «ventana» de nuestro navegador, que no es más que una mera interfaz para la aplicación que .
El apoyo de las grandes corporaciones
Hacia 1998 grandes compañías como IBM, Compaq y Oracle anunciaron su apoyo a Linux, que combinarían en sus estrategias junto con otros sistemas operativos. En los siguientes años también otras empresas de software anunciarían versiones Linux de sus aplicaciones. También surgirían alternativas como StarOffice para competir con las tradicionales aplicaciones de Windows (Microsoft Office, en este caso), Apache en el campo de los servidores web (contra Netscape y Microsoft) o MySQL en el terreno de las bases de datos. La combinación de Linux, Apache, MySQL y PHP/Perl/Python -tres populares lenguajes de programación- se consideran armas definitivas con las que crear prácticamente cualquier proyecto en Internet, de cualquier tamaño, capaz de rivalizar con muchos de los Goliaths de la Red.
En 1999, en plena burbuja de Internet, la compañía VA Linux, que simplemente vendía ordenadores con Linux preinstalado, salió a bolsa multiplicando por diez el precio de sus acciones el primer día, todo un récord para entonces. Con el tiempo sufriría el descalabro de las puntocom, y aunque adquirió diversos sitios relacionados con desarrolladores de Linux, acabó cambiando su nombre al reorientar su negocio. Esto puede dar una idea de la percepción que podían tener entonces la industria y el mercado sobre el potencial futuro de Linux -especuladores aparte-. Mientras tanto, Steve Ballmer de Microsoft calificaba a Linux como «un cáncer de la propiedad intelectual, que se pega a todo lo que toca», frase que pasaría a los anales de las citas más absurdas de la historia de la informática.
A partir del 2000 muchas empresas y proyectos adoptarían Linux como herramienta principal para su desarrollo. En España sería significativo el proyecto GnuLinEx impulsado por la Junta de Extremadura, que inspiraría otros como Guadalinex en Andalucía. La idea era dotar a los colegios y organismos oficiales de sistemas operativos y aplicaciones libres, principalmente Debian GNU/Linux, Ubuntu y OpenOffice. El software se distribuyó mediante CDs de regalo y descargas a través de Internet, aunque encontró dificultades para llegar a las tiendas y ser incorporado a los PC que la gente suele comprar, principalmente debido a los acuerdos que Microsoft tiene con los fabricantes.
La popularización de Linux
Con la popularización de Internet cada vez más y más gente oía hablar de Linux. Pero el hecho era que, excepto el reducido grupo de entusiastas y desarrolladores que estaban más cerca del proyecto, para el público en general no era una opción digna de considerar siquiera para instalar en sus ordenadores personales: Windows era el líder y seguiría dominando el mercado por mucho tiempo.
Entre los factores que se solían aducir para no preferir un sistema libre (y gratis) a otros ya establecidos estaban que Linux era demasiado «técnico» y complicado de instalar, que no contaba con una interfaz gráfica suficientemente sencilla y amigable y que muchas de las aplicaciones normales y corrientes no funcionaban. Por otro lado, estaba la desventaja definitiva, que incluso a día de hoy sigue siendo un problema: era casi imposible hacer funcionar algunos dispositivos hardware conectados al ordenador, tales como tarjetas gráficas, joysticks, webcams y otros. A veces podía solucionarlo el «amigo tecnólogo» de turno, que lo sólo lo lograba tras horas de investigación, descargas y crípticos mensajes. A veces había que rendirse: si el fabricante no desarrollaba un controlador de software (driver) especial para Linux, el aparato en cuestión nunca funcionaría bajo Linux.
Esto cambió un poco con la llegada de Ubuntu en 2004, una distribución de Linux pensada principalmente para pequeños ordenadores personales y enfocada hacia la facilidad de uso. El sudafricano Mark Shuttleworth, promotor del proyecto, lo calificó como «Linux para seres humanos». Quien quiera probarlo puede pedir un CD que se le envía gratuitamente por correo; la comunidad formada alrededor de Ubuntu es numerosa y amigable, y las versiones y revisiones del sistema se publican de forma regular cada seis meses. Técnicamente, es un derivado de Debian. Con el tiempo, Ubuntu pasaría a ser la distro de Linux más popular, junto con openSUSE, Fedora y Debian.
Más conflictos en las licencias
En 2005 la Free Software Foundation comenzó a trabajar en el borrador de lo que sería la futura versión 3 de la licencia GPL que tan importante fue para Linux. El sistema operativo libre había utilizado desde el principio la licencia GPLv2, con la que todo el mundo estaba más que satisfecho. Pero tras conocerse en qué consistían las modificaciones de la nueva versión 3, Linus Torvalds y un amplio grupo de desarrolladores del núcleo de Linux se mostraron contrarios a ella. En su opinión, la nueva licencia introducía restricciones inadmisibles: en la FSF se habían extralimitado en su intento de enfrentarse a los sistemas DRM (que regulan técnicamente la gestión de derechos de autor, restringiendo las libertades de los usuarios). Ese tipo de licencia les pareció no sólo poco práctica sino potencialmente perjudicial para el desarrollo del núcleo de Linux en el futuro y la colaboración por parte de diversas empresas.
En este nuevo enfrentamiento entre Linus Torvalds y Richard Stallman el finlandés dejó clara su posición y anunció que Linux seguiría usando la GPLv2. El hecho es que en algunas distribuciones de Linux se producen extrañas combinaciones de software con licencias libres (de hecho, de varios tipos) y licencias no-libres, la versión GPLv2 tradicional y versiones GPL «genéricas» que a veces no está siquiera claro cómo deberían aplicarse. Lo cierto es que Linux sigue siendo a día de hoy GPLv2 aunque la GPLv3 definitiva se publicó a mediados de 2007. Y los usuarios de Linux, ¿qué opinan de esto? Un pequeño grupo de apasionados cercanos a la situación siguen el tema con gran interés. Pero la mayor parte de los usuarios de Linux -sobre todo, a partir de su popularización en la primera década del siglo- probablemente no saben ni qué es una licencia de software ni tienen un gran interés en lo que se cuece «detrás de las cámaras». Muchos otros están simplemente cansados de las peleas entre Torvalds y Stallman: les agradecen su esfuerzo, pero simplemente ignoran esas polémicas.
Linux en la actualidad
En los estudios que de vez en cuando se publican sobre las distribuciones de Linux se ha calculado que algunas de las versiones, como Debian contienen más de 283 millones de líneas de código, un tamaño sencillamente descomunal si se calculara el coste en horas-hombre de un proyecto de esa magnitud. La mayor parte del código de Linux está escrito en C pero también hay partes en C++, ensamblador, Perl, Python, Fortran y muchos otros lenguajes. Miles y miles de programadores voluntarios han contribuido a lo largo de los años. Aproximadamente el diez por ciento del código está en el núcleo, el resto en software complementario. El mercado que depende directa o indirectamente de Linux se calcula en muchos miles de millones de dólares.
En la actualidad, la cuota de mercado de Linux entre los usuarios de ordenadores personales sigue siendo simbólica (1 ó 2 por ciento) respecto a los sistemas operativos de Microsoft (más del 80 por ciento) o Apple (8 ó 10 por ciento) -el dato varía según las fuentes- pero experimenta un gran crecimiento anual. En otros entornos, como el de los servidores de Internet, su cuota de mercado es muchísimo más alta, superando según las fuentes el 60 ó 70 por ciento. En segmentos altamente especializados, como el de las grandes supercomputadoras, alcanza incluso más del 90 por ciento. El reciente anuncio de Google de introducir en los próximos meses en el mercado su sistema operativo Google Chrome OS podría cambiar esto. Aunque no hay todavía demasiada información, Chrome OS utiliza el núcleo de Linux y una interfaz propia, de código abierto, para proporcionar las funciones básicas para navegar por Internet.
En un reciente documento publicado por la Linux Foundation se reveló que más de mil personas de 200 empresas diferentes trabajan en mejorar el núcleo de Linux: ese el grupo principal que -aunque distribuido por todo el mundo y en todo tipo de organizaciones- «mueve» el gran proyecto. Respecto al código en sí, se calculó también que más del 70 por ciento de las contribuciones provienen de empresas como Red Hat, IBM, Novell, Intel, Oracle, Fujitsu y otras. Junto con otros miles y miles de voluntarios que hacen sus pequeñas aportaciones de forma individual, y con el respaldo de millares de empresas y grupos que ofrecen servicios relacionados con Linux, ese es el ecosistema formado por el que califican como «el proyecto de software más grande del mundo». Un proyecto que, a día de hoy, con 18 añitos a sus espaldas, ya es oficialmente «mayor de edad».