¿Qué es el kernel de Linux?

Una imagen de un codificador rodeado de líneas de código

Autores

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es el kernel de Linux?

El kernel de Linux es un kernel gratuito y de código abierto que es crítico para muchos sistemas informáticos. En el sistema operativo (SO) Linux, el kernel de Linux forma una interfaz crítica entre las capas de hardware y software, lo que permite que el sistema operativo gestione muchos componentes diferentes a la vez. 

Los núcleos son programas informáticos que forman el núcleo de un sistema operativo (SO) y dan al usuario un control completo sobre los componentes de hardware y software que componen el sistema. Los núcleos ayudan a prevenir conflictos entre procesos importantes que son esenciales para el correcto funcionamiento del sistema. El código del kernel se guarda en la memoria del ordenador y permite todas las interacciones entre el software y el hardware; por ejemplo, entrada/salida (E/S), uso de CPU y caché, controladores de dispositivos, sistemas de archivos y sockets de red.

El kernel de Linux fue desarrollado en 1991 por Linus Torvalds como una alternativa libre a Unix, uno de los primeros sistemas operativos que permitía a los usuarios interactuar directamente con los ordenadores. En los años transcurridos desde entonces, el kernel de Linux y las posteriores versiones y lanzamientos del kernel se han vuelto algo crítico para las distribuciones de Linux. Hoy en día, son utilizados por algunas de las mayores empresas de tecnología, software e informática del mundo.  

Distribuciones del kernel de Linux

Cada 9-10 semanas, se lanza una nueva versión del kernel de Linux. Estas versiones, llamadas "kernels estables", son atendidas por desarrolladores de Linux y mantenedores de repositorios de Linux y se pueden encontrar en kernel.org y GitHub.

Sin embargo, algunos proveedores, como Debian y Red Hat, prefieren mantener un árbol de directorios personalizado, una colección de todo el código fuente del kernel de Linux para sus propios proyectos. Este enfoque tiene ramificaciones críticas para el uso del kernel de Linux en muchas aplicaciones empresariales modernas, como la inteligencia artificial (IA), el edge computingel Internet de las cosas (IoT). 

Por ejemplo, Red Hat Enterprise Linux es una plataforma Linux estable y de alto rendimiento que cuenta con capacidades de seguridad y gestión a medida, y se construye utilizando el árbol de directorios de Linux personalizado de Red Hat. Debian utiliza su árbol de directorios para mantener Ubuntu, un código de código abierto que es fundamental para muchas arquitecturas de IoT. 

Kernel de Linux vs. sistema operativo Linux

Un kernel es un programa informático que funciona como el corazón palpitante del sistema operativo, el sistema que permite a los usuarios interactuar con el hardware y el software del ordenador. En el caso del sistema operativo Linux, el kernel de Linux es el código que forma el componente central del sistema operativo, lo que le permite realizar sus funciones.

El sistema operativo Linux cuenta con varios componentes además del kernel de Linux, como bibliotecas del sistema, servicios de espacio de usuario y aplicaciones. Sin embargo, todos estos componentes dependen del kernel de Linux para comunicarse con el sistema operativo y poder recibir comandos, como entrada/salida (E/S), y cumplir con las solicitudes de los usuarios. El kernel de Linux es conocido por su flexibilidad y puede modificarse según las necesidades del usuario o para adaptarse a los requisitos de un programa específico.

Ciclo de vida del kernel de Linux

Cada versión del kernel de Linux tiene un ciclo de vida en el que se prueba, se lanza al público y luego se elimina gradualmente. El ciclo de vida del kernel de Linux se divide en cinco fases: Prepatch, Mainline, Stable Review, Long Term Support (LTS) y End of Life (EOL). 

  • Prepatch: los desarrolladores de Linux experimentan con nuevas características en el árbol de directorios del kernel.
  • Mainline: los cambios se estabilizan mediante pruebas y ajustes rigurosos.
  • Stable Review: el kernel se somete a pruebas adicionales para realizar correcciones de los problemas más críticos identificados en la fase principal antes de su lanzamiento. 
  • Long Term Support (LTS): solo algunos kernels se identifican como kernels LTS y se mantienen durante un período más largo que otros kernels, normalmente dos años. 
  • End of Life: los kernels no seleccionados como LTS tienen su soporte interrumpido cuando se lanzan kernels más nuevos.  

 

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Se ha suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Beneficios del kernel de Linux

Hoy en día, Linux es uno de los sistemas operativos de código abierto más utilizados en el mundo. Esto se debe en gran medida a la flexibilidad y eficacia del kernel de Linux. Proporciona muchas de las capacidades de gestión y control que hacen del sistema operativo Linux una plataforma tan potente, incluidas las que alimentan la CPU (el cerebro activo de un sistema informático) y su capacidad de red (su capacidad para conectarse con otros dispositivos y compartir recursos e información). Estos son algunos de los beneficios empresariales más amplios del kernel de Linux: 

  • Abstracción: en términos informáticos, el término "abstracción" significa simplemente la omisión de información no crítica para permitir una interacción más fluida entre dispositivos y programas. El kernel de Linux puede abstraer el hardware subyacente, ocultando detalles sin importancia sobre él al sistema operativo y permitiendo que los sistemas y el software funcionen de manera más eficiente. 
  • Personalización: el kernel de Linux se puede personalizar para satisfacer las necesidades específicas de diferentes usuarios o diferentes tipos de sistemas operativos. El proceso de personalización suele requerir cambiar el código fuente del kernel y compilar una imagen de kernel personalizada, que es simplemente un kernel que se ha ajustado para cumplir un propósito específico. A continuación, se pueden seleccionar características específicas del kernel y módulos del kernel (piezas de código que se cargan o descargan en el kernel para agregar o restar ciertas funciones) para adaptarse a necesidades informáticas específicas. Existen módulos de kernel populares para tareas y dispositivos como la computación de alto rendimiento (HPC), las aplicaciones empresariales y las unidades de procesamiento de gráficos (GPU).  
  • Contenerización: contenerización, el empaquetado de código de software con solo las bibliotecas del sistema operativo y las dependencias necesarias para ejecutarlo en cualquier entorno informático, es crítico para muchas aplicaciones nativas de la nube. El kernel de Linux es esencial para la contenerización y las tecnologías adyacentes, como DockerKubernetes, que hacen posibles los contenedores. Docker y Kubernetes son las dos herramientas de contenerización más populares del mercado, y el 94 % de las empresas encuestadas utilizan una o ambas1. Docker se utiliza para crear y ejecutar contenedores, y Kubernetes es una plataforma de orquestación de contenedores de código abierto que permite la gestión y el escalado de aplicaciones en contenedores. 
  • Virtualización: el kernel de Linux puede ejecutar máquinas virtuales (VM) en una sola máquina física utilizando su característica "Máquina virtual basada en kernel (KVM)". Las máquinas virtuales son importantes porque permiten que los recursos de una sola máquina física, como la memoria, la CPU, la interfaz de red y el almacenamiento, sean utilizados por diferentes sistemas operativos en un solo dispositivo. Básicamente, este proceso convierte el sistema Linux en un hipervisor, una herramienta utilizada para gestionar y monitorizar máquinas virtuales, lo que le permite capacidades importantes a la hora de gestionar máquinas virtuales. 
AI Academy

Cómo prepararse para la IA con la nube híbrida

El plan de estudios, dirigido por los principales líderes de pensamiento de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

¿Cómo funciona el kernel de Linux?

El kernel de Linux se compone de seis capas distintas o subsistemas que permiten sus funciones principales: 

  • Implementación de llamadas al sistema (SCI)
  • Gestión de procesos
  • Gestión de memoria
  • Memoria virtual
  • Pila de red
  • Controladores de dispositivos

He aquí un vistazo más de cerca a cada uno y cómo funciona.

SCI

La capa SCI lleva la funcionalidad que permite al kernel ejecutar llamadas al sistema desde el espacio del usuario al kernel. Esta es una capacidad crítica del kernel de Linux porque el espacio de usuario es donde el software de aplicación y los controladores ejecutan sus cargas de trabajo, mientras que el espacio del kernel es estrictamente para ejecutar funciones críticas del sistema operativo. La capa SCI forma un puente entre los dos espacios. Cuando se inicia una llamada al sistema desde el espacio del usuario, por ejemplo, una solicitud para actualizar una bandeja de entrada de correo electrónico o abrir una aplicación móvil, la llamada al sistema activa un cambio a la capa del núcleo, lo que permite que la solicitud se transmita al sistema operativo.

Gestión de procesos

La capa de gestión de procesos permite al kernel de Linux ejecutar los procesos que permiten a los usuarios interactuar con el ordenador. Por ejemplo, cuando Linux se inicia por primera vez, Init (abreviatura de "inicialización"), lleva el sistema a un estado utilizable ejecutando scripts de inicio y gestionando los niveles de ejecución. Cada proceso representa una virtualización individual del procesador, por ejemplo, código de subprocesos, datos, pila y registros de CPU.  

Gestión de memoria

Los ordenadores gestionan la memoria virtual mediante lo que se conoce como "páginas". Las páginas son la unidad más pequeña en la que se pueden dividir los datos en un sistema operativo que se basa en la memoria virtual. La capa de gestión de memoria del kernel de Linux permite al sistema operativo (y, por extensión, al usuario) gestionar la memoria disponible de un ordenador. La memoria virtual es crítica para la funcionalidad de todos los programas y aplicaciones.

Sistema de archivos virtual (VFS)

El sistema de archivos virtual (VFS) del kernel de Linux proporciona una interfaz común para los sistemas de archivos. El VFS funciona como una capa de conmutación entre el SCI y los sistemas de archivos compatibles con el kernel, lo que permite muchas funciones críticas (por ejemplo, abrir, cerrar, leer y escribir). 

Las abstracciones del sistema de archivos, es decir, la forma en que los usuarios ven los archivos, directorios y sistemas de archivos, son otro componente clave de la capa VFS, que ayuda a presentar la complejidad de un sistema informático de una manera representativa y fácil de entender para el usuario.

La pila de red

Cada ordenador de una red, también conocido como "nodo", debe seguir protocolos de red, un conjunto estricto de reglas para compartir y recibir datos. Estos protocolos son cruciales para permitir que dispositivos incompatibles utilicen la misma red, por ejemplo, un teléfono Android y un ordenador Mac. 

Para facilitar este tipo de comunicación, los protocolos de red se basan en puertas de enlace, que son dispositivos de hardware (como enrutadores) que facilitan la comunicación entre dos redes diferentes. La pila de red en el kernel de Linux utiliza muchos dispositivos de puerta de enlace comunes, como convertidores de velocidad, traductores de protocolos y otros, para hacer posible la comunicación entre redes entre dispositivos incompatibles.

Controladores de dispositivos

Los controladores de dispositivos proporcionan a un sistema operativo una interfaz de software que permite el funcionamiento de un dispositivo específico, como un teclado o unidad externa, un ratón o una impresora. El código fuente del kernel de Linux se compone principalmente de código contenido en controladores de dispositivos específicos de un determinado dispositivo. 

El árbol de directorios de Linux, un directorio que contiene todo el código fuente del kernel de Linux y los controladores de dispositivos, se divide en los distintos dispositivos compatibles y sus conexiones, como Bluetooth o puerto serie. El controlador de dispositivo reconoce los comandos dados a un dispositivo individual, o clase de dispositivo, y crea solicitudes de E/S que contienen estos comandos para que el dispositivo funcione de la forma prevista por el usuario. 

Casos de uso del kernel de Linux

Empresas de sectores muy diferentes confían en el kernel de Linux y en las diversas capacidades que proporciona para mantener su personal innovando y para proporcionar los programas, aplicaciones y servicios en los que confían sus clientes. Estos son algunos de los casos de uso empresarial más comunes para el kernel de Linux.

Redes informáticas

El kernel de Linux permite que los ordenadores y los dispositivos informáticos se conecten de forma segura a través de Wi-Fi, Ethernet u otro tipo de conexión, independientemente de la compatibilidad del dispositivo. Esta funcionalidad permite compartir conocimientos y recursos críticos, como el uso de intranets y la entrega rápida y eficiente de productos de software como servicio (SaaS). 

El kernel de Linux está equipado con sólidas capacidades de seguridad que ayudan a proteger a los usuarios y los sistemas operativos de las ciberamenazas que pueden dañar los ordenadores, los programas, las aplicaciones y las redes en las que se ejecutan. Estas amenazas incluyen muchos tipos diferentes de malware, como ransomware, rootkits, gusanos y más. Las amenazas que atacan las vulnerabilidades del kernel de Linux se abordan mediante parches frecuentes, como correcciones de errores, que protegen los sistemas y los programas que se ejecutan en ellos. 

Optimización de los recursos

Con el 89 % de las empresas emprendiendo iniciativas de transformación digital2, la optimización de los recursos informáticos dedicados a la transformación digital se ha convertido en una parte esencial de la mayoría de las estrategias empresariales. 

El kernel de Linux ayuda a las empresas a equilibrar las necesidades de sus recursos más preciados, como servidores, bases de datos y software de aplicación de vanguardia, para que puedan estar seguros de que sus sistemas y redes funcionan a niveles máximos a través de un proceso llamado ajuste del kernel. 

El ajuste del kernel consiste en ajustar sutilmente la configuración del kernel de Linux para mejorar el rendimiento en subsistemas específicos del kernel de Linux, como redes, memoria, programación de procesos y sistemas de archivos. En el caso de los sistemas de archivos, por ejemplo, muchas aplicaciones de uso intensivo de datos, como videojuegos, aplicaciones de comercio financiero y sitios de redes sociales, requieren el ajuste de los parámetros del sistema de archivos para funcionar a niveles óptimos. El sistema de archivos proc, un VFS en el sistema operativo Linux, interactúa entre las estructuras de datos internas del kernel para obtener datos sobre el sistema, de modo que los parámetros del kernel puedan ajustarse para optimizar el rendimiento de la aplicación.

Gestión de dispositivos

Las empresas más exitosas de hoy en día deben equipar a los empleados con tecnología punta, como ordenadores portátiles y móviles, para prosperar. El kernel de Linux permite que los programas y redes que dan soporte a miles de empleados en diferentes ubicaciones (y que utilizan diferentes tipos de dispositivos) colaboren de manera fluida. El núcleo permite que los dispositivos de hardware interactúen utilizando módulos de dispositivos específicos que se pueden cargar en el núcleo para que puedan ser gestionados por el sistema operativo.

Un proceso popular de gestión de dispositivos Linux se conoce como interrupciónLa interrupción ayuda a conservar los recursos informáticos al permitir que el kernel de Linux detenga la comunicación entre un dispositivo y una aplicación cuando no es necesaria para una operación específica. Otra es udev una herramienta de gestión de dispositivos de Linux que gestiona la adición y sustracción de dispositivos de un sistema operativo y controla cómo aparece cada dispositivo en un directorio.

Computación en la nube

El cloud computing, la entrega bajo demanda de recursos informáticos a través de Internet, se ha convertido en una herramienta esencial para muchas empresas modernas, estimulando la innovación y ayudando a ofrecer soluciones a los clientes de forma rápida y escalable. 

El kernel de Linux permite la computación en la nube de manera crítica y se ha convertido en un componente esencial de todos los proveedores de servicios en la nube más grandes del mundo, incluidos Amazon (AWS), Microsoft Azure, Oracle y Google Cloud.

La escalabilidad del núcleo le permite admitir sistemas informáticos masivos, como superordenadorescentros de datos, sin aumentar significativamente los recursos informáticos, una capacidad que es esencial para las arquitecturas en la nube. El kernel de Linux también es ideal para cargas de trabajo en la nube porque es muy estable, con un tiempo de inactividad relativamente bajo. Por último, el kernel de Linux es muy versátil y puede funcionar en muchos tipos de hardware, una capacidad clave en los entornos virtualizados que son fundamentales para la nube moderna.

Notas a pie de página

1.     Top five containerization technologies in 2024, (enlace externo a ibm.com), 6Sense, 2024

2.     The Value of Digital Transformation, (enlace externo a ibm.com), Harvard Business Review, 31 de julio de 2023

Soluciones relacionadas
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center es una plataforma de software compatible con OpenStack para gestionar la infraestructura de las nubes privadas en IBM zSystems e IBM LinuxONE.

Explorar Cloud Infrastructure Center
Soluciones de infraestructura de TI

Descubra servidores, almacenamiento y software diseñados para su estrategia empresarial de nube híbrida e IA.

Explore las soluciones de infraestructura de TI
Soluciones de infraestructura en la nube

Encuentre la solución de infraestructura en la nube adecuada para las necesidades de su empresa y escale los recursos según la demanda.

Soluciones en la nube
Dé el siguiente paso

Transforme la infraestructura de su empresa con las soluciones de nube híbrida y preparadas para la IA de IBM. Descubra servidores, almacenamiento y software diseñados para asegurar, escalar y modernizar su empresa o acceda a conocimientos de expertos para mejorar su estrategia de IA generativa.

Explore las soluciones de infraestructura de TI Descargue el libro