Historia de Linux: del kernel de 1991 a los servidores, la nube y Android

Linux nació en 1991 como un kernel para ordenadores personales iniciado por Linus Torvalds. Su evolución hacia sistemas de uso general dependió también de las herramientas GNU, las distribuciones y décadas de colaboración. Para distinguir esos componentes, consulte qué es Linux y cómo se relacionan el kernel, las distribuciones y el código abierto.

Punto a tener en cuenta primero: Linux es un kernel

¿Cómo difieren el kernel de Linux y el sistema operativo completo?

Estríctamente hablando, Linux es el kernel del sistema operativo. El kernel gestiona los recursos de hardware como el procesador, la memoria y los dispositivos de almacenamiento, y actúa como intermediario para que las aplicaciones puedan utilizar el hardware de manera segura.

Las distribuciones que los usuarios instalan realmente, como Ubuntu, Debian o Rocky Linux, son entornos completos de usuario que combinan el kernel de Linux con un shell, herramientas del sistema, bibliotecas, un gestor de paquetes y aplicaciones. Por esta razón, cuando se hace referencia al sistema completo, se llama comúnmente 'Linux', pero cuando se enfatizan los componentes históricos, se utiliza el término 'GNU/Linux'. La explicación de Linux y GNU del Proyecto GNU analiza en detalle la relación entre ambos términos.

¿Qué hace realmente el kernel?

El kernel se encuentra entre los programas normales que el usuario ejecuta directamente y el hardware. Incluso tareas como que un navegador web lea archivos o que un programa de servidor envíe paquetes de red eventualmente se manejan a través de llamadas al sistema proporcionadas por el kernel. Para entender la historia de Linux, es bueno primero distinguir los siguientes cuatro roles.

  • Gestión de procesos: Asigna tiempo de CPU a varios programas y organiza el orden de ejecución.
  • Gestión de memoria: Divide el espacio de memoria que usa cada programa y lo protege para que no se invadan entre sí.
  • Gestión de dispositivos: Controla dispositivos de almacenamiento, tarjetas de red, dispositivos gráficos y periféricos a través de controladores.
  • Gestión de archivos y red: Proporciona la interfaz común necesaria para el sistema de archivos y la comunicación de red.

Por lo tanto, los cambios en soporte de nuevo hardware, rendimiento, seguridad, gestión de energía y escalabilidad de servidores están mayormente relacionados con la historia del kernel. En cambio, la pantalla de escritorio, los comandos de instalación de paquetes y las aplicaciones básicas están más relacionados con la historia de la distribución o del software del espacio del usuario.

Antes de Linux: el diseño de UNIX y el proyecto GNU

Linux es un kernel de tipo Unix desarrollado de forma independiente. Adoptó conceptos del diseño de UNIX, como procesos, múltiples usuarios e interfaces centradas en archivos. La expresión «de tipo Unix» describe esa relación técnica; no significa por sí sola que un sistema sea un producto con certificación de la marca UNIX.

En 1983, Richard Stallman anunció el proyecto GNU, con la intención de crear un sistema operativo libre compatible con UNIX que cualquiera pudiera ejecutar, estudiar, modificar y distribuir. El desarrollo comenzó en 1984 y hacia 1990 los componentes principales, como compiladores, shells, editores y varios comandos, ya estaban completos, aunque aún no existía un kernel práctico. Este contexto se puede consultar en la historia oficial del sistema GNU.

1991: un pequeño proyecto personal se hace público

Linus Torvalds, estudiante de la Universidad de Helsinki, comenzó a desarrollar en abril de 1991 un kernel de sistema operativo que funcionara en una PC Intel 386 como un proyecto personal. El 25 de agosto de ese mismo año, presentó en el grupo de noticias de Usenet de usuarios de Minix (MINIX) el sistema operativo gratuito que estaba desarrollando y solicitó opiniones.

Según el Informe de Historia del Núcleo Linux 2020 de la Linux Foundation, la primera versión pública Linux 0.01 se lanzó el 17 de septiembre de 1991. En ese momento, el código consistía en 88 archivos y 10,239 líneas, y funcionaba en un solo tipo de arquitectura de hardware, i386. No era un sistema universal desde el principio.

1992–1994: El software libre y las distribuciones se encuentran

La GPL de GNU cambió las condiciones de colaboración

En 1992, Linux se redistribuyó bajo la Licencia Pública General de GNU (GNU GPL), lo que permitió a los usuarios ver, modificar y compartir el código fuente bajo las mismas condiciones. El núcleo de Linux se combinó con las herramientas GNU ya existentes, y con la aparición de distribuciones encargadas de la instalación y gestión del software, evolucionó hacia un entorno de sistema operativo realmente funcional.

Debian, iniciado por Ian Murdock en agosto de 1993, desarrolló un modelo de distribución que la comunidad construye públicamente de manera conjunta. Según la historia oficial del proyecto Debian, Debian tuvo desde sus inicios como objetivo ofrecer una distribución consistente y una gestión sistemática de paquetes. Al mismo tiempo, empezaron a crecer distribuciones que combinaban soporte comercial, creando la base para que tanto usuarios individuales como empresas adoptaran Linux.

El 13 de marzo de 1994 se lanzó Linux 1.0. El archivo de Linux 1.0 en kernel.org conserva el código fuente y los registros de cambios de la época. El número de versión 1.0 fue un hito simbólico que indicaba que Linux comenzaba a establecerse como software libre confiable, más allá de un proyecto experimental.

Las distribuciones convirtieron Linux en un producto utilizable

Los primeros usuarios tenían que reunir y configurar manualmente el kernel y varias herramientas. Las distribuciones reemplazaron este proceso complejo proporcionando un instalador, paquetes de software precompilados, información de dependencias y repositorios de actualizaciones. Incluso utilizando el mismo kernel de Linux, las distribuciones difieren según qué software se elija, cuánto tiempo se mantengan las actualizaciones y cómo se gestione la configuración.

Debian desarrolló un modelo en el que la comunidad de voluntarios gestiona conjuntamente las políticas y el sistema de paquetes. Por otro lado, Red Hat abrió el camino para conectar los resultados del desarrollo abierto con productos empresariales estables y soporte técnico. La historia oficial de Red Hat explica el proceso de evolución desde la distribución en CD en los años 90 hasta el modelo de suscripción empresarial y las distribuciones comunitarias. Al coexistir estos modelos diferentes, Linux ha podido ser utilizado ampliamente, desde el aprendizaje personal hasta servidores empresariales que requieren operación a largo plazo.

Cronología clave de la historia de Linux

Año Eventos importantes Significado
1983 Anuncio del proyecto GNU Se presentó el objetivo de un sistema operativo compatible con UNIX que pudiera usarse libremente.
1984 Inicio del desarrollo del sistema GNU Se crearon compiladores, shell y herramientas centrales del espacio de usuario.
1991 Publicación del proyecto Linux y distribución 0.01 Un proyecto personal se convirtió en el punto de partida para el desarrollo colaborativo en internet.
1992 Distribución de Linux bajo GNU GPL Se fortaleció la base de colaboración que permite la modificación y redistribución del código fuente.
1993 Inicio del proyecto Debian Crecieron las distribuciones comunitarias públicas y la gestión sistemática de paquetes.
1994 Publicación de Linux 1.0 Se convirtió en un hito importante que evolucionó hacia un núcleo público estable.
1996 Lanzamiento de Linux 2.0 El soporte para procesamiento múltiple simétrico (SMP) se consolidó, ampliando el rango de uso en servidores.
2000 Creación de Open Source Development Labs Se fortaleció la base para el soporte al desarrollo de Linux por parte de empresas y la adopción empresarial.
2003 Lanzamiento de Linux 2.6 Se estableció una base de desarrollo a largo plazo que respalda más dispositivos y sistemas a gran escala.
2005 Introducción de Git El método de control de versiones adecuado para el desarrollo distribuido a gran escala permitió ampliar la colaboración en el kernel.
2007 Fundación de la Linux Foundation OSDL y Free Standards Group se fusionaron para crear una organización dedicada al desarrollo, estandarización y soporte legal.

De la 1.0 a la 2.6: El proceso de crecimiento del kernel de PC como base general

Linux 1.0 se utilizaba principalmente en PCs basadas en Intel 386, pero las versiones posteriores se expandieron rápidamente para soportar más procesadores y dispositivos. En lugar de integrar todas las funciones de los dispositivos dentro del kernel, se podían cargar como módulos según fuera necesario, lo que facilitó la adaptación a diversas combinaciones de hardware.

Linux 2.0 de 1996 soportó el multiprocesamiento simétrico (Symmetric Multiprocessing, SMP) usando varios procesadores, convirtiéndose en un momento clave para su evolución como sistema operativo de servidor. Posteriormente, en las series 2.4 y 2.6 se continuaron mejorando el soporte de nuevos dispositivos, la planificación, la gestión de memoria y la escalabilidad para sistemas grandes. El archivo 2.6 en kernel.org muestra cómo la versión 2.6.0 se lanzó en diciembre de 2003 y cómo continuaron las versiones estables y de mantenimiento a largo plazo.

Durante este período, Linux dejó de ser solo una "forma de usar un entorno similar a UNIX en PCs económicos" y se consolidó como un kernel universal que funcionaba en diversas arquitecturas. Los fabricantes de hardware contribuyeron con controladores y las empresas participaron en la mejora del rendimiento y la estabilidad, formando una estructura donde la comunidad y los intereses comerciales se encontraban en un único kernel principal.

2005: Git y el desarrollo distribuido

Por qué se necesitaba otro sistema de versiones

A medida que el código de Linux crecía y aumentaba el número de participantes, se volvió importante gestionar quién hizo qué cambios y cómo combinar los diferentes flujos de desarrollo. La comunidad del kernel había estado usando la herramienta de control de versiones BitKeeper durante algún tiempo, pero en 2005, cuando terminó la relación de uso gratuito, surgió la necesidad de una nueva herramienta.

Linus Torvalds creó Git, enfocándose en un registro rápido de cambios, trabajo distribuido y fusiones a gran escala. La breve historia oficial de Git explica que Git surgió a partir de las necesidades de la comunidad de desarrollo del kernel de Linux. Posteriormente, Git se convirtió en un sistema de control de versiones representativo utilizado en el desarrollo de software en general, más allá del kernel.

¿Cómo se combinan los cambios actuales del kernel?

Los cambios realizados por los desarrolladores se publican en forma de parches y son revisados por los responsables de los subsistemas relevantes y otros desarrolladores. Los cambios verificados se fusionan gradualmente en la línea principal desde repositorios específicos por área, como redes, sistemas de archivos, controladores y arquitecturas de procesador. Inmediatamente después de que se lanza una nueva versión, se abre un período de fusión para recibir grandes funcionalidades, y en la fase de candidata a lanzamiento, se centra en corregir errores de regresión y problemas de estabilidad.

Esta estructura no es un método en el que cualquiera pueda poner código directamente en el kernel final. Permite la participación pública, pero también gestiona la calidad mediante revisiones, pruebas, la responsabilidad de los encargados y procedimientos de integración por etapas. El HOWTO de desarrollo del kernel de Linux explica la línea principal, las versiones estables, los árboles de subsistemas y los procedimientos de envío de parches.

Desde servidores hasta móviles y la nube

Creció en el mercado de servidores y empresariales

Desde finales de la década de 1990, Linux creció rápidamente en el ámbito de los servidores gracias a su estabilidad, funciones de red y soporte para diversos hardware. Los distribuidores ofrecían actualizaciones a largo plazo y soporte técnico, y las empresas podían adoptar Linux en servidores web, bases de datos y sistemas de trabajo.

En la década de 2000, con la expansión de la virtualización y la computación en la nube, las ventajas de Linux, como su facilidad de automatización y capacidad de personalización según necesidad, se volvieron aún más importantes. Los contenedores también se desarrollaron sobre la base del aislamiento de procesos y la gestión de recursos de Linux. Hoy en día, el desarrollo del kernel no lo realiza una sola organización que escribe todo el código, sino una estructura de colaboración distribuida donde los responsables de subsistemas revisan y integran los parches. Los procedimientos de desarrollo más recientes se pueden consultar en la documentación oficial de desarrollo del kernel de Linux.

¿Por qué los contenedores y la nube se adaptaron tan bien a Linux?

Las máquinas virtuales generalmente ejecutan un kernel de sistema operativo separado por cada instancia, mientras que los contenedores comparten el kernel de Linux del host mientras aíslan los procesos. Los espacios de nombres (namespace) dividen los rangos de ID de usuario, red, sistema de archivos y procesos que ve un proceso, y los grupos de control (control group, cgroup) agrupan y limitan o miden el uso de CPU, memoria y recursos de entrada/salida.

Un contenedor no es lo mismo que una función del kernel de Linux. Se necesitan conjuntamente el formato de la imagen, las herramientas de ejecución, la gestión de red y almacenamiento. Sin embargo, dado que la base fundamental de aislamiento y control de recursos ya estaba incluida en el kernel, se pudo desarrollar un ecosistema que permite desplegar aplicaciones rápidamente en servidores a gran escala. Se puede consultar el funcionamiento detallado en la documentación cgroup v2 del kernel de Linux.

Expandiéndose a dispositivos móviles y embebidos

Linux no se limitó a PC y servidores. Fue portado a enrutadores, automóviles, equipos industriales y varios dispositivos embebidos, y llegó profundamente a los smartphones. Por ejemplo, según la descripción del kernel del proyecto de código abierto de Android, el kernel de Android se basa en el kernel Linux de soporte a largo plazo (LTS) ascendente.

La participación empresarial no fue contradictoria con el desarrollo abierto

El crecimiento inicial de Linux dependió en gran medida de la participación de desarrolladores individuales y comunidades universitarias y de aficionados. A medida que el alcance de uso se amplió, los fabricantes de servidores, empresas de semiconductores, distribuidores y proveedores de servicios en la nube también comenzaron a desarrollar funciones necesarias para sus productos e incorporarlas en la línea principal. El código incluido en la línea principal se entrega a varias distribuciones y usuarios, y puede recibir revisión y mantenimiento colaborativos.

En el año 2000, se estableció Open Source Development Labs (OSDL) para apoyar el uso empresarial y el desarrollo de Linux. En 2007, OSDL y Free Standards Group se fusionaron para crear la Linux Foundation. Según la explicación de la historia organizativa de la Linux Foundation, esta organización proporciona infraestructura de desarrollo, estandarización, eventos, educación y apoyo legal y de marcas, al tiempo que apoya un entorno donde la comunidad del kernel pueda continuar el desarrollo de manera independiente.

Los derechos de autor siguen distribuidos entre sus contribuyentes. Las reglas de licencias del kernel explican que el conjunto se ofrece bajo GNU GPL versión 2 solamente, con archivos individuales sujetos a condiciones compatibles o duales. También existe una excepción explícita para las llamadas al sistema: usar esas interfaces no convierte automáticamente una aplicación en software sujeto a la GPL del kernel. Para distribuir modificaciones, revise las condiciones aplicables al código concreto.

Tres capas de la historia de Linux

Clasificación ¿Qué incluye? El papel que desempeñó en la historia
Núcleo de Linux Gestión de procesos, memoria, dispositivos, sistemas de archivos y redes Proporcionó una base común que conecta el hardware y los programas.
Espacio de usuario Herramientas GNU, shell, bibliotecas, servicios y entorno de escritorio Creó un entorno en el que los usuarios y las aplicaciones pueden realizar tareas reales.
Distribución Herramientas de instalación, repositorios de paquetes, configuraciones predeterminadas, actualizaciones y políticas de soporte Se integraron varios componentes en sistemas operativos con propósitos específicos y se distribuyeron.

Estas tres capas están estrechamente relacionadas pero no son lo mismo. Por ejemplo, las correcciones de seguridad del kernel pueden afectar a varias distribuciones de manera común, pero la versión de los paquetes y el período de soporte pueden variar según la distribución. Android también utiliza el kernel de Linux, pero el espacio de usuario y la estructura de las aplicaciones son diferentes en comparación con las distribuciones GNU/Linux de escritorio comunes.

Razones por las que Linux ha podido crecer durante mucho tiempo

  • Código fuente abierto: Cualquiera puede revisar el código, corregir problemas o proponer soporte para nuevo hardware.
  • Licencia clara: La GNU GPL establece las condiciones para la modificación y redistribución, proporcionando una base legal para el desarrollo colaborativo.
  • Colaboración basada en Internet: Las listas de correo, los administradores responsables y los procedimientos de revisión pública han permitido un desarrollo que trasciende regiones y organizaciones.
  • Ecosistema de distribuciones: Se ofrecen herramientas de instalación, paquetes, políticas de actualización y soporte técnico adaptados a diferentes propósitos.
  • Amplia portabilidad: Se puede usar en diversos hardware, desde computadoras personales hasta servidores, teléfonos inteligentes y dispositivos embebidos.

Lo que muestra la historia de Linux

El crecimiento de Linux no se puede explicar únicamente por el éxito de un excelente kernel. Se ha podido expandir durante mucho tiempo porque se combinaron el diseño probado de la familia UNIX, las herramientas GNU y el movimiento de software libre, la integración de distribuciones, la inversión de empresas y la colaboración abierta de desarrolladores de todo el mundo.

Por lo tanto, el núcleo de la historia de Linux va más allá de “quién creó qué en 1991”. La forma más precisa de entenderlo es que el proceso de revisión y mejora de tecnologías abiertas por parte de la comunidad, y su reconfiguración para diferentes propósitos, es cómo se convirtió en infraestructura clave en el mundo real.

Preguntas frecuentes

¿Quién creó Linux?

El kernel de Linux fue iniciado por Linus Torvalds en 1991. Desde entonces, desarrolladores individuales y empresas de todo el mundo han contribuido al código, convirtiéndolo en un proyecto de desarrollo colaborativo a gran escala.

¿Linux y UNIX son el mismo sistema operativo?

No. Linux es un kernel de la familia UNIX que sigue el diseño y el uso de UNIX, pero se desarrolló de manera independiente. UNIX es una familia histórica de sistemas operativos y también tiene el significado de marca certificada.

¿Cuál es la diferencia entre Linux y GNU/Linux?

Linux se refiere estrictamente al kernel. GNU/Linux es un nombre que enfatiza la combinación del kernel de Linux y las herramientas de GNU en toda la configuración del sistema operativo. En el uso cotidiano, las distribuciones y todo el sistema también se llaman habitualmente Linux.

¿Por qué se necesitan distribuciones?

Con solo el kernel, un usuario común tendría dificultades para utilizar un entorno informático completo. Las distribuciones ofrecen un sistema operativo destinado a un propósito específico combinando programas de instalación, herramientas del sistema, gestores de paquetes, políticas de actualización y aplicaciones.

¿Puede una empresa vender Linux, que es de código abierto?

Sí, es posible. La 'libertad' del software libre no significa necesariamente que sea gratuito. Las empresas pueden ofrecer software con pago combinando la distribución, actualizaciones a largo plazo, certificación de seguridad, soporte técnico y herramientas de operación. Sin embargo, al modificar y redistribuir el código del kernel de Linux, se deben seguir las condiciones de la licencia correspondiente, como la provisión del código fuente requerida por la GNU GPL.

¿Linux es propiedad de una sola empresa?

No hay ninguna empresa que posea y controle exclusivamente el desarrollo del kernel de Linux. Linus Torvalds mantiene la línea principal y los responsables de cada área integran cambios en sus árboles, pero los derechos de autor del código están distribuidos entre numerosos contribuyentes. La Linux Foundation apoya el entorno de desarrollo y el ecosistema, pero no es una organización que posea todo el kernel como un producto de empresa.