Red Hot Cyber

La ciberseguridad se comparte. Reconozca el riesgo, combátalo, comparta sus experiencias y anime a otros a hacerlo mejor que usted.
Buscar

La historia del kernel de Linux (1 de 2). De Torvalds a la comunidad hacker.

Redazione RHC : 13 julio 2025 12:21

Artículo de Pietro Cornelio y Massimiliano Brolli

La historia del kernel de Linux es una historia de piratería pura, además de ser un milagro de «colaboración».

Es fruto del genio de Torvalds, pero también de muchos hackers/programadores repartidos por todo el mundo, que contribuyeron, cada uno a su manera, a la creación de una innovación «disruptiva» para ese período histórico, donde el software estaba virando completamente hacia la lógica de «código cerrado».

Todo comenzó con Linus Benedict Torvalds, nacido en Helsinki, Finlandia, el 28 de diciembre de 1969, hijo de Nils y Anna Torvalds. Pero dejando de lado a Torvalds, la historia del núcleo Linux nos presenta a algunos «hackers generosos» que este artículo quiere sacar a la luz, sin los cuales esta tecnología, que encontramos en todo hoy en día, no podría haber sido creada.

Prólogo

La historia de Linus Torvalds es muy interesante, el clásico chico nerd, un poco perdedor, bueno en matemáticas, física y, como exige la tradición nerd, carente de habilidades sociales y con una psicosis por su nariz que Linus consideraba demasiado grande.

El padre de Torvalds era periodista de radio, mientras que su madre Trabajó para el periódico finlandés. Sus padres se divorciaron a temprana edad y comenzó a vivir con su madre y sus abuelos. El abuelo de Linus, Leo Toerngvist,, fue profesor de estadística en la Universidad de Helsinki.

Es interesante saber que los recuerdos más felices de Linus son los momentos en que jugaba con la vieja calculadora electrónica de su abuelo (el padre de su madre), Leo Waldemar Tornqvist, profesor de estadística en la Universidad de Helsinki.

Comenzó a crear nuevos programas usando el lenguaje BASIC y luego pasó al lenguaje ensamblador, muy difícil pero poderoso, haciendo de las matemáticas y la programación su pasión.


Un joven Linus Torvalds juega con el cubo mágico de Ernő Rubik

Las primeras computadoras

Linus vio su primera computadora a la edad de once años (alrededor de 1981) cuando su abuelo compró una computadora doméstica Commodore VIC-20. Fue su abuelo materno quien despertó el interés de Linus por las computadoras al mostrarle los rudimentos de la programación BASIC, lo que resultó ser una revelación para Linus, ya que leía los manuales y programaba en BASIC. Años después, Linus comentó:

“Fue una sensación embriagadora, y mientras los niños en Helsinki jugaban al hockey y esquiaban con sus padres, yo aprendía cómo funcionaba realmente una computadora. Descubrí que es posible programar en lenguaje máquina, y al hacerlo, empiezas a hacer cosas que antes ni siquiera creías posibles; es decir, usas mejor la computadora, puedes controlar cada pequeño detalle, y empecé a pensar en cómo hacer esas cosas más rápido y en menos espacio. Con el lenguaje máquina, no hay diafragmas de abstracción entre tú y la computadora; estás muy cerca de ella. Es la intimidad con una máquina.”

Después de que Linus exprimiera al máximo el VIC-20, empezó a ahorrar (haciendo trabajos de verano como limpiar parques en Helsinki) para comprarse un C64.


Un Commodore VIC20 con la interfaz CBM BASIC

En 1986, a los 16 o 17 años, tras una larga investigación y análisis de mercado para decidir qué ordenador comprar, Linus se decidió por un precioso Sinclair QL, uno de los primeros ordenadores de 32 bits que Linus consideraba realmente genial por su color negro y sus funciones avanzadas. Curiosamente, el Sinclair QL le proporcionó a Linus Torvalds una serie de ideas para sus experimentos de programación, lo que le permitió desarrollar herramientas con total independencia.

Compró un ensamblador para traducir el lenguaje ensamblador a lenguaje máquina y un editor. Torvalds se dio cuenta de que el nuevo ensamblador y editor estaban en microdrives, por lo que no podía ponerlos en la E-PROM para tenerlos disponibles inmediatamente (aquí viene la chispa creativa del hacker), así que decidió aventurarse a escribir un editor y ensamblador más rápidos, que luego utilizó para escribir todos sus programas posteriores, como clonar sus juegos favoritos de Commodore VIC-20.

El Sinclair QL acompañó a Linus durante tres años, desde el instituto hasta la Universidad de Helsinki y el Ejército finlandés, donde realizó el servicio militar. Para entonces, el Sinclair QL de Linus Torvalds ya no tenía límites y, leyendo en revistas especializadas sobre la nueva generación de CPU Motorola 68020, incluso empezó a pensar en montar el 68020 en el Sinclair QL y reescribir el sistema operativo para adaptarlo a la nueva CPU, pensó.

“Claro, sería un gran paso. Y comprar una nueva CPU me costaría un dineral.”

Pero el Sinclair QL no habría tenido futuro, así que Linus abandonó la loca idea. Al mismo tiempo, Linus empezó a notar la llegada al mercado de las PC compatibles con IBM, que empezaban a parecer interesantes.

Como declaró Torvalds años después

“Durante mi primer año en la universidad, el Sinclair QL encontró un lugar en un escritorio frente a la ventana de mi habitación en el primer piso de Petersgatan, pero no avancé mucho con la programación. En parte porque quería concentrarme en mis estudios. Pero también porque me encontré sin un proyecto que hacer en mi computadora. Y sin un proyecto, también te falta entusiasmo. Intentas pensar de algo que te motive.”

Por esa razón, Linus Torvalds decidió que había llegado el momento de alistarse en el ejército, algo que tarde o temprano tendría que hacer. Tenía diecinueve años, e irritado por las limitaciones de su computadora Sinclair QL, que no le permitían desarrollar proyectos informáticos interesantes, tomó un tren a Laponia para cumplir con su deber de 11 meses. Su servicio militar terminó el 7 de mayo de 1990.


Sir Clive Sinclair sosteniendo un Sinclair QL y su interfaz

Los procesadores 80386

Al regresar del servicio militar, Linus Torvalds se enfrentó a una situación típica Dilema geek. Como todos los puristas que crecieron con un chip 68008, desdeñaba las PC. Pero con la llegada del nuevo procesador Intel 80386 en 1986, las PC se volvieron mucho más atractivas. Podían hacer todo lo que hacía una 68020, y para 1990, la producción en masa y la introducción de clones económicos de IBM hicieron que esas computadoras fueran mucho más asequibles. Torvalds dijo:

“Tenía mucho cuidado con el tema del dinero, porque no tenía. Así que decidí: esta es la máquina que quiero. Y como las PC estaban en auge, sería fácil encontrar actualizaciones y periféricos. Sobre todo en cuanto al hardware, quería algo estandarizado.”

Así que Linus decidió arriesgarse y comprar un PC compatible con IBM ahorrando dinero con la venta de los dispositivos de expansión de su glorioso compañero de clase Sinclair QL.

Muy significativo para Linus Torvalds el cambio intelectual que le hizo saltar a un nivel muy alto de conocimiento del arte de la programación y de los detalles de los sistemas operativos. Torvalds siempre ha dicho en varias ocasiones que cada uno tiene un libro en particular que le ha cambiado la vida.


Un procesador Intel 80386

“El que tomó el mío y lo impulsó a nuevas alturas fue “Sistemas operativos: diseño e implementación” de Andrew S. Tanenbaum”

Leamos las palabras del propio Linus Torvalds:

«Ya me había inscrito en los cursos universitarios de otoño y lo que más esperaba era el curso de programación en C y el sistema operativo Unix. Ese verano, para prepararme, compré el libro del profesor A. Tanenbaum (profesor universitario de Ámsterdam) con la esperanza de avanzar en mi trabajo. En el libro, el profesor Tanenbaum presentaba su creación, Minix, un pequeño clon de Unix. Inmediatamente después de leer la introducción y descubrir la filosofía de Unix y lo que ese sistema operativo potente, limpio y atractivo era capaz de hacer, decidí comprar una máquina en la que ejecutarlo. Unix. Instalaría Minix, la única versión razonablemente útil que pude encontrar. A medida que leía el libro y empecé a comprender Unix, sentí que el entusiasmo crecía en mi interior. Y, sinceramente, nunca se desvaneció.

Es curioso que el primer año académico de Linus Torvalds, en otoño de 1990, coincida también con el primer año en que la Universidad de Helsinki adoptó Unix, el potente sistema operativo nacido en los Laboratorios Bell de AT&T a finales de los 60 y que se expandió por todo el mundo con los diversos dialectos y versiones que habían cautivado a buena parte del mundo académico de la época. En particular, la universidad compró un MicroVAX que ejecutaba Ultrix de DEC, la versión de Unix de Digital Equipment Corporation.

Linus Torvalds estaba sorprendido por la versatilidad del Unix que estaba aprendiendo del libro de Andrew Tanenbaum y estaba ansioso por trabajar con Unix para experimentar con nuevas ideas y, al mismo tiempo, estaba muy entusiasmado con los nuevos proyectos que podría desarrollar si tuviera una PC compatible con IBM Intel 80386. Pero como no tenía forma de reunir los 18.000 marcos finlandeses (incluyendo los intereses del préstamo a plazos) para comprar uno, decidió que empezaría el semestre de otoño en la universidad usando su Sinclair QL como terminal y módem para conectarse al nuevo ordenador Unix de la universidad hasta que pudiera comprarse un PC en el que ejecutar su propio Unix.

El encuentro con el sistema operativo Minix

El 2 de enero de 1991 fue el primer día en que las tiendas abrieron después de Navidad y, después de cumplir veintiún años y con el dinero de Navidad/cumpleaños en la mano, Linus tomó la gran decisión de comprar un ordenador con una CPU Intel 80386 a 33 Mhz y 4 Mb de RAM. El ordenador ejecutaba una versión reducida de DOS. Torvalds quería ejecutar Minix, la variante de Unix, así que lo encargó, y el sistema operativo tardó más de un mes en llegar a Finlandia.

Finalmente, Minix llegó un viernes por la tarde, y Linus Torvalds pasó toda la noche instalándolo: dieciséis discos que insertó por turnos en el ordenador. Pasó todo el fin de semana familiarizándose con el nuevo sistema. Torvalds comprendió lo que le gustaba y lo que no de ese sistema operativo, así que, con la tenacidad e inteligencia propias de un hacker, comenzó a estudiar y desarrollar ideas para compensar los defectos. Descargó de internet algunos programas que ya usaba en el ordenador de la universidad y, tras más de un mes, Torvalds logró adaptar el sistema a sus necesidades.

Andrew Tanenbaum, el profesor de Ámsterdam que había creado Minix, quería que el sistema operativo siguiera siendo una herramienta educativa, por lo que no se podía modificar ni ajustar bajo pena de violación de la licencia. Sin embargo, existían parches disponibles para Minix desarrollados por un hacker australiano llamado Bruce Evans, considerado en línea como el dios del Minix 386. Sus mejoras hicieron que Minix fuera mucho más usable. Incluso antes de comprar la computadora, Linus seguía los grupos de noticias de Minix en línea, así que aprendió todos los detalles de Minix y cómo mejorarlo incluso antes de comprar una PC. Desafortunadamente, los problemas de licencia le obligaron a comprar la versión oficial de Minix y luego a trabajar duro para instalar los parches de Evans.


Profesor. Andrew Tanenbaum

Hacia el desarrollo de un núcleo propietario

Años más tarde, Linus Torvalds afirmó que había una serie de características decepcionantes en Minix. Lo peor era la emulación de terminal, una función importante porque era su programa favorito para conectarse al ordenador de la universidad y trabajar con su potente Unix, o incluso para conectarse a internet. Así que, una vez más, Torvalds pensó en diseñar un programa de emulación de terminal mejor, pero con la diferencia (y aquí es donde empieza el destino) de no diseñarlo en Minix, sino a nivel de hardware puro como un programa independiente. Ese proyecto de emulación de terminal independiente, al más puro estilo hacker de «aprendizaje práctico», fue una excelente oportunidad para aprender cómo funcionaba el hardware del PC 386. La idea era simple: Linus quería tener dos procesos independientes: uno leería desde el módem y mostraría en pantalla, mientras que el otro leería desde el teclado y escribiría en el módem; básicamente, habría dos canales en ambas direcciones. Es una aplicación típica de conmutación de tareas, y la CPU Intel 80386 ofrecía las mejores capacidades de hardware para ello.

La primera versión del software utilizado para probar la idea se implementó en dos procesos: uno para escribir la letra A en la pantalla y el otro para escribir la letra B, programados para repetir estas funciones un cierto número de veces por segundo. De esta forma, la pantalla se llenaba con AAAAAAAAAA y, de repente, cambiaba a BBBBBBBBBB. Era un ejercicio práctico para comprobar si la conmutación de procesos funcionaba. Después de aproximadamente un mes, mientras Linus Torvalds aprendía y desarrollaba su idea, logré modificar los dos procesos, AAAAAAAAAAA y BBBBBBBBBB, para que uno leyera del módem y escribiera en la pantalla, y el otro leyera del teclado y escribiera en el módem.

Finalmente, Linus Torvalds construyó la base de su programa de emulación de terminal. Así, Torvalds pudo leer grupos de noticias y conectarse a la Universidad. Reiniciaba la PC desde un disquete que contenía el programa de terminal, incluyendo el archivo de arranque. Cuando necesitaba modificar el programa de terminal, iniciaba Minix y lo usaba para programar. Torvalds dijo años después que estaba muy orgulloso de lo que había hecho.

Así empezó Linux, un embrión informe nacido de un simple programa de terminal, pero Linus Torvalds aún no lo sabía.

Linus Torvalds dijo sobre su programa de terminal informe:

«Mi emulación de terminal se desarrolló con fuerza. La usaba regularmente para conectarme al ordenador de la universidad y leer el correo o participar en discusiones en el grupo de noticias de Minix. El problema era que quería descargar y subir cosas. Lo que significaba que necesitaba guardarlas en Disco. Y para eso, mi emulación de terminal necesitaría un controlador de disco. Y también un controlador de sistema de archivos, para poder tener en cuenta la organización de los documentos y guardar lo que descargaba como archivos. Fue entonces cuando casi me doy por vencido: pensé que el juego no merecía la pena.

Pero, hay un pero, ya que Torvalds no tenía nada más que hacer, ni siquiera perseguir chicas o jugar juegos o cualquier otra cosa, amaba las computadoras y la programación, y por eso pensó: No tengo nada más que hacer, así que diseñar un controlador de sistema de disco/archivos para mi emulador de terminal podría ser un proyecto interesante.


Una instantánea de Linus bebiendo un cerveza.

Y así se embarcó en la aventura de desarrollar un controlador de disco, pero como no sabía cómo hacerlo, pensó en utilizar la excelente documentación de Minix en el libro de Tanebaum (con fuentes adjuntas) para poder usar el sistema de archivos Minix, lo que significaba que podía leer y escribir los archivos que había creado bajo Minix con el programa de emulación de terminal. Por supuesto que no fue fácil, Torvalds dijo que tomó mucho trabajo, una de esas cosas como programa-dormir-programa-dormir-programa-comer pretzels-programa-dormir-programa-ducha rápida-programa, cuando el desarrollo terminó Torvalds se dio cuenta de que el proyecto se estaba convirtiendo en un sistema operativo y este fue el punto de inflexión trascendental.

Torvalds dejó de pensar en él como un emulador de terminal y comenzó a pensar en él como un sistema operativo. Torvalds diría más tarde: «Al recordar aquellos días, la transición se produjo en el estado hipnótico de uno de esos maratones de programación donde constantemente añadía funciones. Al instante siguiente, me di cuenta de que el programa acumulaba tantas funciones que se estaba convirtiendo en un borrador para un nuevo sistema operativo, así que empecé a llamarlo mi gnu-emacs de los programas de emulación de terminal».

Cabe recordar que el famoso editor GNU/Emacs desarrollado por Richard Stallman comenzó como un simple editor para desarrolladores, pero luego RMS y otros programadores, al ser de código abierto, lo habían equipado con muchas funciones.


Richard Stallman, gurú del software libre y creador de GNU

Primeras solicitudes a la comunidad

Querían que fuera un editor programable, pero luego eso se impuso y se convirtió en una especie de editor infernal capaz de todo. Lo mismo le ocurría al programa de emulación de terminal de Linus Torvald. Se estaba convirtiendo en algo más.

De: [email protected] (Linus Benedict Torvalds) Para: Grupo de noticias: comp.os.minix Asunto: Pregunta sobre Gcc-1.40 y posix ID del mensaje: «1991Jul13,[email protected]» Fecha: 3 de julio de 1991 10:00:50 GMT Hola navegantes: Para un proyecto en el que estoy trabajando (en Minix), me interesa definir los estándares posix. ¿Podría alguien indicarme un formato (preferiblemente) legible por máquina de las últimas reglas posix? Mejor si está en un sitio FTP.

Observe cómo trabaja un hacker: se propone un proyecto y, aunque no tenga las habilidades suficientes para llevarlo a cabo, busca con avidez y diligencia fuentes técnicas de las que pueda obtener información y aprender todo lo que necesita para desarrollar su proyecto. Torvalds

Nadie me contactó para decirme dónde encontrar los estándares POSIX, así que recurrí al Plan B. Encontré algunos manuales para la versión de Unix de Sun Microsystems en la universidad, que utilizaba un servidor Sun. Los manuales contenían una versión básica de las llamadas al sistema que me resultaba bastante fácil de manejar. Podía leer en las páginas del manual lo que se suponía que debía hacer una llamada al sistema y luego empezar a implementarla a partir de ahí. Los manuales no me decían cómo hacerlo, solo me indicaban el resultado final. También estudié algunas llamadas al sistema del libro de Andrew Tanenbaum y de otros libros. Finalmente, alguien me envió los enormes volúmenes que contenían los estándares POSIX.”

Es cierto que “la fortuna favorece a los audaces”, y Linus Torvalds era audaz.

El correo electrónico de Torvalds no pasó desapercibido. Torvalds:

“Cualquier persona con un mínimo de conocimiento (y el sitio de Minix solo lo leían personas con conocimientos) podría haber deducido que mi proyecto trataba sobre un sistema operativo. ¿Para qué si no necesitaría las reglas POSIX? El mensaje despertó la curiosidad de Ari Lemke, profesor adjunto en la Universidad Tecnológica de Helsinki (a la que habría asistido si no me hubiera interesado estudiar teoría). Ari me envió una respuesta amable y se ofreció a crear un subdirectorio en el sitio FTP de la universidad para cuando estuviera listo para publicar allí mi sistema operativo, poniéndolo a disposición de cualquiera que quisiera descargarlo.”

Ari Lemke creó el subdirectorio en cuestión (ftp.funet.fi) mucho antes de que Torvalds tuviera algo que publicar, como si hubiera vislumbrado una gran oportunidad que estaba a punto de presentarse.

Torvalds él Dice:

“Tenía la contraseña y todo estaba listo, así que podía iniciar sesión y subir mis archivos. Pero tardé cuatro meses en decidir que tenía algo que valía la pena compartir con el mundo, o al menos con Ari y los demás expertos en sistemas operativos con los que había empezado a escribir. Mi objetivo original era crear un sistema operativo que pudiera usar como sustituto de Minix. No se suponía que hiciera más cosas que Minix, sino las cosas de Minix que me interesaban, además de algunas que le faltaban. Por ejemplo, no era solo la emulación de terminal lo que era terrible en Minix; no había forma de controlar tareas, es decir, ejecutar un programa en segundo plano mientras no se usaba.”

Así es como Linus Torvalds comenzó a desarrollar el sistema operativo, leyendo y aprendiendo los estándares POSIX del manual de SUN OS y otros libros, intentó implementar las llamadas al sistema (syscalls) una por una, tratando de crear algo que funcionara.

Torvalds confesó años después que ese período de estudio fue muy frustrante porque era difícil comprender las syscalls e implementarlas. El shell se recuperó de forma gratuita de Internet desde el sitio ftp del proyecto GNU de la free software foundation e se integró en el programa de terminal. El shell, muy útil en un sistema operativo, significó que se habían construido las bases de un sistema operativo real. Así que Torvalds comenzó a probar muchos programas internos gracias al shell. También comenzó a compilar nuevos programas y a dedicar una partición especial sólo para su programa de terminal, que se había convertido en un mini-OS. Torvalds decidió llamarlo Linux

Linus Torvalds dijo años después:

Sinceramente: nunca pensé en publicarlo con el nombre Linux; me parecía demasiado egocéntrico. ¿Sabes cuál era el nombre que elegí para su posterior distribución? Freax. De hecho, algunos de los primeros archivos make (los archivos que describen cómo compilar el código fuente) llevaban la palabra “Freax” durante unos seis meses. Pero no me importó. En ese momento, no necesitaba un nombre porque no tenía intención de distribuirlo de ninguna manera.”

De: [email protected] (Linus Benedict Torvalds) Para: Grupo de noticias: comp.os.minix Asunto: ¿Qué les gustaría ver en minix? Resumen: Pequeña encuesta para mi nuevo sistema operativo ID del mensaje: « [email protected] » Hola a todos los que usan Minix. Estoy creando un sistema operativo libre (es solo un hobby, no será algo grande y profesional como gnu) para clones de 386 (486) AT. He estado trabajando en él desde abril y está empezando a tomar forma. Me encantaría escuchar sus opiniones sobre lo que les gusta o no les gusta de minix, porque mi sistema operativo se le parece en algunos aspectos (la misma distribución física del sistema de archivos, por razones prácticas, y otras cosas). He estado usando bash (1.08) y gcc (1.40) hasta ahora, y parece funcionar. Eso significa que tendré algo útil en unos meses, y me encantaría saber qué características les interesan más a los usuarios. Cualquier sugerencia es bienvenida, pero no puedo prometer implementarla. 🙂 Linus ([email protected]) PD: Sí, no tiene código minix y tiene un sistema de archivos multihilo. NO es portátil (usa conmutación de tareas 386, etc.) y probablemente nunca soportará discos duros que no sean AT, porque solo tengo ese :-(.

Torvalds dijo más tarde:

El sistema operativo más entusiasta Los geeks de la comunidad Minix sintieron la chispa. No hubo muchas sugerencias sobre las características de Minix, pero sí otro tipo de respuestas. Al final, publicarlo en línea no fue realmente una decisión. Así era como estaba acostumbrado a intercambiar programas. Así que la única decisión real fue cuándo me atreví a mostrar mi sistema a otras personas. O, más precisamente, la pregunta era: ¿cuándo será lo suficientemente bueno como para no avergonzarme de él? Lo que en última instancia quería era tener un compilador y un entorno real para poder crear programas desde Linux, sin tener que usar Minix. Pero me sentí tan orgulloso cuando la shell de GNU funcionó que me sentí listo para mostrarle al mundo mi creación. Y quería opiniones.

Redazione
Red Hot Cyber's editorial team consists of a collection of individuals and anonymous sources who actively collaborate by providing advance information and news on cyber security and IT in general.

Lista degli articoli

Artículos destacados

¿Qué es un día cero y el riesgo de ciberataques dirigidos?

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...

¿Qué es una Amenaza Persistente Avanzada (APT)? Un recorrido por actores maliciosos y hackers patrocinados por estados.

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...

¿Qué son los ataques de denegación de servicio distribuido (DDoS) y cómo podemos protegernos de ellos?

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...

Descubriendo la araña dispersa: la amenaza criminal mediante tácticas y técnicas avanzadas

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...

Probando el exploit: HackerHood prueba el exploit en el servidor WingFTP del CVE‑2025‑47812 con una puntuación de 10

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...