Linux, la otra cara

linux

“…Yo realmente no sigo mucho lo que hacen los otros sistemas operativos. Yo no compito, sólo me preocupo con hacer de Linux un producto cada vez mejor que sí mismo, no respecto a otros. Y honestamente no veo nada interesante desde el punto de vista técnico, tampoco (en FreeBSD 5.0 y Windows XP)”
Linus Torvalds, 10 de octubre del 2001, OSNews.

La fascinación de los medios por Linux viene dada, entre otras cosas, por ser un proyecto de ingeniería de software distribuido a escala global, esfuerzo mancomunado de más de 3 000 desarrolladores y un sinnúmero de colaboradores distribuidos en más de 90 países. El rango de participantes en la programación del Linux se ha estimado desde unos cuantos cientos hasta más de 40 000, ya sea ofreciendo código, sugiriendo mejoras, facilitando comentarios o describiendo y enriqueciendo manuales. De hecho, se cuenta que el mayor soporte técnico jamás diseñado de manera espontánea y gratuita pertenece a este SO. Escribir la historia de UNIX sin mencionar a Linux es pecado, realmente merece todo un capítulo propio. Salido de una raíz común, hoy el Linux comparte un por ciento no despreciable del mercado de los SO, con un crecimiento que ha llegado a preocupar a gigantes como Microsoft.
Su versión 1.0, salida en marzo de 1994 ofreció básicamente las mismas facilidades que el UNIX,
incluyendo soporte multitarea, tratamiento de memoria virtual y soporte TCP/IP. Estaba constituido por unas 175 000 líneas de código. Ya su versión 2.0, de junio de 1996, ofrecía procesamiento de 64 bits, multiprocesamiento en paralelo y soporte avanzado de redes. El número de líneas de código se había triplicado: 780 000, y en la versión de julio de 1998 la cifra sobrepasaba el millón y medio, 17% específicos de la arquitectura del SO, 54% en manipuladores y el 29% el núcleo del kernel y el sistema de ficheros. Ello ha sido posible por el simple hecho de que Linux es más que un SO: es una fuente inagotable en permanente evolución por miles de programadores a escala mundial.

¿Cómo surgió? ¿A qué se debe el fenómeno de la espontaneidad en su creación y desarrollo? Adentrémonos, brevemente en su historia.

En octubre de 1991 un estudiante graduado de Ciencias de la Computación en la Universidad de Helsinki, llamado Linus Torvalds, anuncia en Internet que había escrito una versión libre de un sistema MINIX (una variante de UNÍX) para una computadora con procesador Intel 386 y lo dejaba disponible para todo aquel que estuviera interesado. ¿La causa? El MINIX fue una versión simplificada de UNIX escrito y mantenido durante mucho tiempo como herramienta de estudio en una escuela europea por un profesor de Ciencias de la Computación llamado Andrew Tanenbaum. El MINIX era ampliamente utilizado como recurso en clases de Computación, aun a costo de su licencia ($79.00) que limitaba su redistribución. Luego de enamorar a los estudiantes con el software, éstos se llenaban de deseos de realizar mejoras y extensiones, nunca aprobadas por Tanenbaum.

Torvalds, uno de estos alumnos frustrados, decidió realizar su propia versión de MINIX y dejar libre su código fuente para ser copiado por cualquiera y así saciar la sed de desarrollo de aquellos que se veían impedidos de hacerlo.
“¿Se lamenta de los días del MINIX-1.1, cuando los hombres eran hombres y escribían sus propios manipuladores de dispositivos? ¿Está usted sin un proyecto interesante y muriéndose de deseos por un SO que pueda modificar a su antojo? ¿Se siente frustrado cuando encuentra que todo trabaja bien en su MINIX?… Entonces este mensaje puede ser para usted”, escribiría en un foro de discusión por Internet. Adicionalmente, el mensaje estimulaba a todo aquel que se sintiera capaz de adicionar nuevas funciones, mejoras, sugerencias y manuales de ayuda, con la única condición de que el resultado fuera a su vez distribuido libremente. La piedra había echado a rodar montaña abajo. En los subsiguientes 30 meses se desarrollarían hasta 90 versiones del nuevo SO, finalizando en 1994 con la definitiva, llamándola Linux versión 1.0.

Realmente varias condiciones adicionales propiciaron la buena acogida que tuvo la decisión de Torvalds, pero dos de ellas de especial impacto: el status legal y social del llamado código abierto, open source, una vía para intercambiar software de manera libre, e Internet. El intercambio de códigos fue una práctica bastante común en los albores de la computación en el sector académico. Laboratorios como el MIT Artificial Intelligence Laboratory, universidades como Standford y Carnegie Mellon solían practicar una política de código abierto. Debido a que las máquinas computadoras eran muy limitadas en aquel entonces, las personas solían dejar en éstas el software desarrollado para que otros pudieran admirar el trabajo y sugerir mejoras. El propio UNIX de Thompson y Ritchie, que legalmente pertenecía a AT&T, pero que por restricciones de la ley anti trust de ese momento, le impedía comercializar, fue distribuido a la comunidad académica por una tarifa nominal, sin soporte oficial al programa. Ello acostumbró a los programadores y usuarios del sistema a intercambiar los errores y soluciones, así como las mejoras. La llegada del protocolo UUCP (Unix to Unix Copy) permitió la transferencia de ficheros y datos con el uso de una línea telefónica e introdujo el soporte de transmisión como mecanismo natural para intercambiar información entre los usuarios del sistema. Se crearon los primeros foros y apareció Usenet. Las innovaciones de diseño y características propias del UNIX como sistema, a su vez, propiciaron la cultura del intercambio.

A medida que el UNIX tomaba fuerza y seguía atado a las nuevas computadoras de diferentes fabricantes, la cultura del libre intercambio se vio amenazada entre su comunidad. Surge así, por idea de Richard Sallman, el proyecto GNU en 1984 para crear sistemas operativos libres que hicieran posible la distribución yrabajo colaborativo entre diferentes desarrolladores. Para evitar que el mecanismo fuese deformado se instituyó lo que Sallman llamó “Copyleft”: usted puede distribuir, copiar, modificar el software, obligando a su vez a las derivaciones de éste a cumplir con los mismos requisitos. El marco legal y social para la distribución y copia gratuita estaba instituido. Huelga mencionar las facilidades que aportó Internet cuando Torvalds decidió hacer su llamado: ya no era sólo un grupo privilegiado con acceso a máquinas computadoras grandes en laboratorios estratégicos o grandes universidades los que podían colaborar con un código de programa. Internet elevó el intercambio a un marco global.

Si bien Torvalds como propósito nunca persiguió encabezar un proyecto de programación distributiva a escala mundial, sus habilidades como líder de proyecto y excelente programador fueron determinantes en el éxito de Linux. Más allá de sus cualidades como programador, su mayor contribución fueron sus habilidades en el diseño de una arquitectura modular y portable para el kernel. Por tanto, al disponer de un código base único para todo tipo de plataforma, desde Intel hasta Motorola, que permitía soportar de manera simultánea varias ramas según el tipo de arquitectura de computadora que se tratase, incrementó considerablemente la portabilidad del Linux. Por otro lado, la modularidad del sistema minimizaba la comunicación entre las distintas componentes del kernel y por ende hacía posible el trabajo en paralelo, al disminuir la necesidad de un trabajo coordinado entre sus diseñadores.

Otra decisión brillante de Torvalds fue establecer una nomenclatura paralela para cada tipo de versión del SO. Para ello se separaron en versiones pares o impares según la estabilidad y seguridad de la misma o la inclusión de código experimental o alguna nueva rutina en fase de estudio. Ello hacía posible disponer de dos tipos de colaboradores: los que buscaban una versión estable del programa o los que preferían probar con nuevas estructuras, innovar y llevar sus sistemas hasta los extremos. Ello enriqueció al Linux extraordinariamente.

Es interesante conocer, además, que los programadores suelen escribir código para Linux en aras de resolver sus propios problemas. El mismo Torvalds buscaba un SO para su 386 y su anunció explícitamente invitaba a “modificarlo según sus necesidades “. Así, cuando la comunidad de programadores aceptó el reto de Torvalds, cada cual escribió sus propios manipuladores de dispositivos. Por ejemplo, un programador alemán diseñó el driver para teclado en su idioma y éste fue incluido en la versión de diciembre del 91. Hasta nuestros días se mantiene la misma filosofía: cada cual trabaja en las áreas que le interesa.

He aquí la historia. Hoy Linux es una alternativa para muchos o un indispensable para otros. Su importancia no puede ser relegada: los RED HAT, los SUSE, los Mandrake pueblan miles de servidores por todo el planeta. ¿Lo mejor? Pues que Linus Torvalds sigue enviando mensajes a su lista, del tipo: “…mi prioridad personal no es este tipo de comportamiento, por tanto sería bueno que alguien implementara esta opción…”.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *