Redazione RHC : 13 julio 2025 12:27
Artículo de Pietro Cornelio y Massimiliano Brolli
Artículos anteriores:La historia del kernel de Linux (1 de 2). De Torvalds a la comunidad hacker
En el primer artículo conocimos a Linus Torvalds, su adolescencia y su excesivo interés por las computadoras. También hemos visto que, tras trabajar en un sistema operativo MINIX (que no se podía modificar como código fuente), creó primero un shell y luego controladores hasta definir un sistema operativo primordial que, en aquel momento, aún no era autónomo.
Inmediatamente después de compartir el embrión de lo que luego se convertiría en Linux en el grupo de noticias comp.os.minix, todo empezó a cambiar rápidamente, y es a partir del 17 de septiembre de 1991 que retomamos esta emocionante historia.
«No creo que más de una o dos personas lo intentaran», dijo Torvalds cuando «tuvieron que instalar el compilador especial, crear una partición limpia para usarla como partición de arranque, compilar mi núcleo y luego iniciar el shell. Iniciar el shell fue prácticamente todo. Podrías usar esa versión.»
Podrías imprimir el código fuente, que no tenía más de 10 000 líneas y menos de 100 páginas si lo imprimías en letra pequeña. Ari Lemke estaba a cargo de subir el sistema operativo al sitio FTP y odiaba el nombre Freax que Torvalds le había dado.
Prefería el otro nombre – Linux – así que colocó el código fuente en un directorio llamado «Linux»; Residiendo en «pub/OS/Linux».
Torvalds corrigió algunos errores, como el que causaba que GCC se bloqueara al quedarse sin memoria, y logró portar el compilador de GCC al sistema operativo Linux para que se pudieran compilar programas pequeños.
Esto significó que los usuarios ya no necesitarían cargar el compilador de GCC antes de iniciar el sistema operativo Linux. A principios de octubre, se lanzó la versión 0.02, que incluía algunas correcciones de errores y algunos programas adicionales. Al mes siguiente, Torvalds lanzó la versión 0.03. ¡!– REEMPLAZAR ANUNCIOS –>
Linus Torvalds dijo años después:
“Podría haberme detenido a finales de 1991. Había hecho muchas cosas que me parecían interesantes. No todo funcionaba a la perfección, pero en mi opinión, en el mundo del software, es fácil perder el interés en un proyecto una vez que se han resuelto los problemas fundamentales. Y eso me estaba pasando. Depurar software no es una actividad muy divertida. Luego sucedieron dos cosas que me mantuvieron en marcha. Primero, destruí accidentalmente mi partición de Minix; segundo, la gente seguía preguntando: «Envíame tus comentarios sobre…» Sistema.
En ese momento, iniciaba Linux, pero usaba Minix como mi entorno de desarrollo principal. Usaba Linux principalmente para leer correos electrónicos y noticias desde mi ordenador de la universidad a través de la emulación de terminal que había creado. El ordenador de la universidad siempre estaba ocupado, así que escribí un programa que lo llamaba automáticamente. Pero en diciembre, accidentalmente me conecté a mi disco duro en lugar del módem. Intentaba conectarme a /dev/tt1, la línea serie. Cometí un error y me conecté automáticamente a /dev/hda1, el disco duro. El resultado fue que sobrescribí accidentalmente las partes más críticas de la partición donde tenía Minix. Fue entonces cuando tuve que tomar una decisión: podía reinstalar Minix o aprovechar la oportunidad y convencerme de que Linux era lo suficientemente bueno como para reemplazarlo. Escribiría programas para compilar Linux directamente en él, y cuando sintiera la necesidad de Minix, simplemente añadiría esa función a Linux. Dejar el entorno de inicio y hacer que un programa sea verdaderamente independiente es un paso significativo. Un paso conceptual tan grande que a finales de noviembre lancé la nueva versión, llamándola .10. Unas semanas después llegó la versión 0.11.
A partir de entonces, tras el interés de la comunidad en Linux, varias personas se unieron al proyecto, ayudando a Torvalds. A continuación, presentamos, extraídos de los archivos C, los nombres de los primeros programadores que ayudaron a Torvalds, tomados del encabezado del código fuente de la versión 0.11 de Linux. Lo único que se hizo en ese momento fue «Theodore Ts’o».
Theodore Ts’o, el primer programador que se unió a Torvalds en el kernel de Linux
Aquí, Linus Torvalds comienza a implementar las primeras funciones importantes para resolver los problemas de los usuarios y dijo:
“Recuerdo que en diciembre había un tipo en Alemania que solo tenía 2 megabytes de RAM y estaba intentando compilar el kernel, pero no podía ejecutar GCC porque en ese momento este compilador necesitaba más de un megabyte. Me preguntó si Linux se podía compilar con un compilador más pequeño, uno que no necesitara tanta memoria. Así que decidí que, incluso si no necesitaba esa función en particular, se la implementaría. Se llama página a disco y significa que incluso si uno tiene solo 2 megas de RAM pueden simular tener más que eso usando el disco como almacenamiento. Era alrededor de la Navidad de 1991. Recuerdo que el 23 de diciembre intentaba que la función de página a disco funcionara. El 24 de diciembre funcionó bastante bien, pero ocasionalmente bloqueaba la máquina. El 25, funcionó bien. Esa fue la primera función que añadí para satisfacer las necesidades de otros. Y estaba orgulloso de ello.
Pero con cada día que pasaba, la comunidad de usuarios de Linux crecía. Torvalds recibía correos electrónicos de lugares que había soñado con visitar, como Australia y Estados Unidos. La función de página a disco era notable, porque Minix nunca la había implementado. De hecho, se incluyó en la versión 0.12, que se lanzó la primera semana de enero. 1992..
Inmediatamente, la gente empezó a comparar Linux no solo con Minix, sino también con Coherent, un pequeño clon de Unix desarrollado por Mark Williams Company. Desde el principio, la incorporación de la función de página a disco puso a Linux un paso por delante de la competencia. Fue entonces cuando Linux realmente despegó.
De repente, hubo gente que cambió de Minix a Linux. En aquel entonces, Linux no hacía todo lo que hacía Minix, pero sí la mayoría de las cosas que realmente interesaban a la gente. Y tenía una característica que a muchos les resultó muy útil: con la función de página a disco se podían ejecutar programas de mayor tamaño que la memoria.
Torvalds dijo:
«Lo cierto es que para que Linux fuera usable, dependí de un conjunto de herramientas distribuidas libremente en Internet: Yo también trabajé a hombros de gigantes. El más importante de este software libre fue el compilador GCC, con derechos de autor bajo la Licencia Pública General, creación de Richard Stallman, conocida universalmente como GPL (o «copyleft»). Así que abandoné mis antiguos derechos de autor y adopté la GPL, un documento escrito por R. Stallman con la supervisión de algunos abogados (y como hay abogados involucrados, tiene varias páginas). Los nuevos derechos de autor se incluyeron en la versión 0.12, pero recuerdo haberme quedado despierto la noche después del lanzamiento, atormentado por la idea del interés comercial que generaría el sistema.»
Toda esa atención no fue del todo positiva. Torvalds dijo que, aunque nunca le gustaron las comparaciones, se vio obligado a defender Linux cuando Andrew Tanenbaum empezó a atacarlo, ya que estaba suplantando al suyo.
Interfaz gráfica de usuario de MINIX de unos años después, muy similar a Windows 95. Ambos eran nerds, así que todo este intercambio se produjo por correo electrónico. Torvalds dijo sobre este tema:
«¿Quién lo culparía si estuvieran dando vueltas como locos? Antes de que se crearan los grupos de noticias de Linux, usaba constantemente los grupos de noticias de Minix para publicar anuncios sobre Linux o para encontrar gente interesada en el sistema operativo. ¿Por qué le gustaría eso a Andrew? Él tenía ideas opuestas a las mías sobre cómo debería construirse un sistema operativo. En aquel entonces, Andrew formaba parte de una escuela de informáticos que defendía un enfoque de micronúcleo para los sistemas operativos. Había desarrollado Minix como un micronúcleo, y Amoeba, el sistema en el que trabajaba por aquel entonces, también era del mismo tipo. Este fue un movimiento muy activo a finales de los 80 y principios de los 90. Y el éxito de Linux era una amenaza. Así que Andrew seguía enviando mensajes muy desagradables al grupo de noticias.»
La teoría detrás del micronúcleo es que los sistemas operativos son complejos. Por eso, intentamos eliminar parte de la complejidad con una modularización rigurosa. El principio del enfoque del micronúcleo es que el núcleo, que es la base de un sistema operativo, debe hacer lo mínimo posible.
Su función principal es la comunicación. Todo lo demás que ofrece una computadora son servicios disponibles a través de los canales de comunicación del micronúcleo. En el enfoque del micronúcleo, el espacio de problemas debe dividirse para que ninguna parte sea compleja. Torvalds consideró este enfoque absurdo.
Dijo que las interacciones lo hacían mucho más complejo de lo que podría ser si se incluyeran muchos servicios en el propio núcleo, como es el caso de Linux. Otro problema con Minix era que se podía tener el código fuente, pero las licencias no lo permitían. No se puede hacer mucho con él.
Tomemos a alguien como Bruce Evans, quien había realizado muchas modificaciones en Minix y lo había hecho más usable. No pudo incorporar sus mejoras. Tuvo que limitarse a crear parches. Desde un punto de vista práctico, fue un desastre.
Desde un punto de vista legal, no pudo poner a disposición de los usuarios una imagen de arranque para que pudieran actualizar fácilmente. Así que los usuarios tuvieron que seguir un proceso paso a paso para obtener un sistema usable. Algo terriblemente incómodo.
Linus lee los correos electrónicos del profesor en Pantalla. Tanenbaum
Torvalds comenzó a comunicarse con Andrew Tanenbaum a principios de 1992. Torvalds comentó sobre el primer mensaje de Tanenbaum:«Imagínese conectarse a Internet en una mañana fría y encontrarse con la versión completa de este mensaje»:
En 1992, el sistema operativo pasó de ser un juguete a algo integrado en la vida de las personas, sus actividades y sus negocios. El cambio se produjo en la primavera de 1992, aproximadamente un año después de que comenzara con la emulación de terminal, cuando la primera versión del sistema X Window empezó a funcionar en Linux. Esto significó que el sistema operativo pudo soportar una interfaz gráfica que los usuarios podían usar simultáneamente en múltiples ventanas, gracias al diseño de X Window originado en el MIT. Este fue un gran cambio.
«Recuerdo haber bromeado con Lars al respecto, aproximadamente un año antes de que ocurriera, diciéndole que algún día ejecutaríamos X y podríamos hacer cualquier cosa. No pensé que sucedería tan rápido. Fue un hacker llamado Orest Zborowski quien logró portar X a Linux.»
La contribución de Orest no solo hizo que Windows estuviera disponible, sino que también abrió una gran puerta al futuro. Se utilizaron sockets para la red local para permitir el funcionamiento del sistema X Window. Por lo tanto, fue posible partir de esos mismos sockets para hacer que Linux diera el gran salto hacia las redes externas.
Sin redes, Linux solo podía ser usado por personas que se quedaban en casa y usaban un módem para conectarse, o lo hacían todo localmente. Con gran optimismo, las redes Linux comenzaron a desarrollarse sobre los sockets originales, aunque nunca fueron concebidos para la red.
Torvalds estaba tan convencido de que el objetivo estaba cerca que dio un gran salto en el sistema de numeración de versiones. En marzo de 1992, estaba considerando lanzar la versión 0.13. En cambio, con la interfaz gráfica funcionando, pensó que Linux ya había recorrido el 95 % de su objetivo de lanzar un sistema operativo completo, fiable y con funciones de red.
Así que la nueva versión era la 0.95, pero Linus dijo:
«Vaya, me adelanté. Qué ingenuo… Las redes son una bestia repugnante, y al final tardaron exactamente dos años en arreglarlas, en ponerlas en un formato que pudiera hacerse público. Al añadir las redes, se introducen de repente toda una serie de problemas. Problemas de seguridad, por ejemplo. No sabes quién está ahí fuera ni qué intentas hacer. Tienes que tener mucho cuidado de que nadie te bloquee el ordenador enviándote paquetes basura. Ya no puedes controlar quién intenta contactar con tu máquina. Además, mucha gente tiene configuraciones de sistema muy diferentes. Parecía que íbamos a seguir así para siempre.
A finales de 1993, Linux contaba con funciones de red prácticamente utilizables, aunque algunos usuarios tuvieron serios problemas para que funcionaran.
No podía gestionar redes sin límites de 8 bits.
Como Torvalds había sido tan optimista sobre la numeración de la versión 0.95, pronto se topó con problemas. En los dos años que tardó en llegar a la versión 1.0, la comunidad tuvo que hacer malabarismos con el número de versiones. No había muchos números entre el 95 y el 100, pero seguían lanzando nuevas versiones basadas en correcciones de errores o nuevas funciones.
Cuando llegaron a la versión 0.99, empezaron a añadir niveles de lanzamiento adicionales para indicar los niveles de parche, y luego se decidieron por el alfabeto.
En un momento dado, tenían la versión 0.99, nivel de parche 15. Luego, la versión 0.99, nivel de parche 15B, y así sucesivamente. Avanzaron hasta el nivel de parche 15Z. El nivel de parche 16 finalmente se convirtió en la versión 1.0 de Linux, el punto en que el software se volvió utilizable. Esta versión se lanzó en marzo de 1994 con gran fanfarria en el auditorio de la Facultad de Informática de la Universidad de Helsinki. Fuentes
Las vulnerabilidades de día cero son uno de los mayores riesgos de ciberseguridad para las organizaciones. Se trata de vulnerabilidades desconocidas y sin parchear que los atacantes explotan para...
Las amenazas persistentes avanzadas (APT) son actores maliciosos que operan en la sombra de internet, llevando a cabo ataques altamente sofisticados y dirigidos. Estos grupos, a menudo asociados con e...
Los ataques de denegación de servicio distribuido (DDoS) son una de las amenazas más comunes para sitios web, servidores y otras infraestructuras en línea. En concreto, este tipo de ata...
Por Centro de Defensa Cibernética Maticmind (Andrea Mariucci, Riccardo Michetti, Federico Savastano, Ada Spinelli) El actor de amenazas Scattered Spider, UNC9344, apareció en 2022 con dos at...
Esta herramienta está diseñada exclusivamente para fines educativos y de pruebas de penetración autorizados. El autor no asume ninguna responsabilidad por el mal uso o los daños ca...
Para más información: [email protected]