Linux es un núcleo de sistema operativo utilizado por un grupo de sistemas operativos tipo Unix. Se conocen como sistemas operativos Linux.
El núcleo de Linux se publica con la licencia pública general GNU versión 2 (GPLv2) y es desarrollado por programadores de todo el mundo.
Definición y contexto
El núcleo (kernel) de Linux es el componente central que gestiona los recursos del hardware —CPU, memoria, dispositivos de E/S— y ofrece servicios básicos a los programas y al resto del sistema operativo. Aunque «Linux» suele usarse para referirse al conjunto completo (kernel más utilidades y bibliotecas), técnicamente Linux es únicamente el núcleo; las distribuciones combinan el núcleo con otros proyectos para formar sistemas operativos completos.
Breve historia
Linux fue iniciado por Linus Torvalds en 1991 como un proyecto personal. Con el tiempo creció hasta convertirse en un proyecto colaborativo global. La gestión del código se realiza principalmente mediante el sistema de control de versiones Git (creado también por Linus Torvalds), y el desarrollo está organizado en una jerarquía de mantenedores responsables de subsistemas y de integrar cambios.
Licencia: GPLv2 (características principales)
La publicación del núcleo bajo la licencia pública general GNU versión 2 implica:
- Acceso al código fuente: cualquiera puede leer, modificar y distribuir el código fuente del núcleo.
- Copyleft: las versiones derivadas del núcleo deben distribuirse bajo los mismos términos (GPLv2), lo que obliga a proporcionar el código fuente cuando se redistribuye el binario.
- Restricciones y compatibilidad: la comunidad y los responsables del kernel han optado por mantener el núcleo bajo GPLv2 en lugar de migrar a GPLv3; esto tiene implicaciones legales y prácticas para cómo se combinan módulos y firmas de drivers.
Es importante notar que algunos componentes que se usan junto al kernel (firmware, controladores binary blobs, utilidades) pueden estar bajo licencias diferentes; la relación entre esos componentes y la GPLv2 puede variar y a veces genera debates legales y técnicos.
Principales características técnicas
- Arquitectura: kernel monolítico modular: el núcleo agrupa muchas funciones en el espacio del kernel, pero permite cargar y descargar módulos en tiempo de ejecución.
- Soporte multiplataforma: soporta numerosas arquitecturas (x86, x86_64, ARM, ARM64, RISC-V, PowerPC, SPARC, entre otras).
- Gestión de memoria: virtual memory, paginación y asignación eficiente de memoria.
- Planificación de procesos: multitarea preemptiva con varios algoritmos de planificación y opciones para sistemas en tiempo real (PREEMPT, PREEMPT_RT).
- Subsistema de archivos: soporte para muchos sistemas de archivos (ext4, btrfs, XFS, F2FS, NFS, etc.) y mecanismos de caché y journaling.
- Controladores de dispositivos: amplia colección de drivers para tarjetas de red, discos, GPUs, audio, y más; soporte para módulos de terceros.
- Redes: pila de red potente y flexible, con soporte para IPv4/IPv6, bridging, VLANs, QoS, netfilter/iptables/nftables.
- Contenerización y virtualización: namespaces y cgroups para aislamiento (base de contenedores como Docker), y soporte nativo para máquinas virtuales (KVM) y paravirtualización.
- Seguridad: soporte para SELinux, AppArmor, capacidades Linux, LSM (Linux Security Modules) y otras extensiones de seguridad.
Desarrollo y mantenimiento
El desarrollo del kernel es coordinado semanalmente en ciclos de lanzamiento; las propuestas y parches se envían a través de listas de correo y repositorios Git. Existen mantenedores responsables por subsistemas (p. ej., drivers, red, archivos), y Linus Torvalds integra las ramas principales. El código sigue normas de estilo y revisiones antes de incorporarse al árbol principal.
Usos y adopción
- Servidores: Linux es dominante en servidores web, bases de datos y cloud.
- Escritorio: muchas distribuciones de escritorio (por ejemplo, Ubuntu, Fedora) usan el kernel Linux como base.
- Dispositivos móviles y embebidos: Android usa un kernel Linux modificado; también está presente en routers, NAS, dispositivos IoT y sistemas embebidos.
- Supercomputación: la mayoría de los supercomputadores ejecutan kernels Linux personalizados.
Obtener y compilar el núcleo
El código fuente del núcleo está disponible públicamente (por ejemplo, en el sitio oficial del kernel). Las distribuciones proporcionan kernels precompilados y empaquetados, pero también es posible descargar el código fuente y compilarlo manualmente con las etapas habituales: configurar, compilar (make), instalar módulos y actualizar el gestor de arranque. Compilar permite personalizar opciones, optimizar para hardware específico y probar parches.
Consideraciones finales
El núcleo de Linux es un proyecto abierto y en constante evolución, con un ecosistema rico y diverso. Su licencia GPLv2 asegura que el código permanezca accesible y fomenta la colaboración global, mientras que su diseño y características lo hacen adecuado para una amplia gama de dispositivos y cargas de trabajo.

