¿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 SO gestione muchos componentes diferentes a la vez. 

Los kernels 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 kernels ayudan a prevenir conflictos entre procesos importantes que son esenciales para el correcto funcionamiento del sistema. El código del kernel se mantiene en la memoria de la computadora 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 gratuita a Unix, uno de los primeros sistemas operativos que permitía a los usuarios interactuar directamente con las computadoras. En los años transcurridos desde entonces, el kernel de Linux y las versiones posteriores del kernel y los lanzamientos del kernel se han vuelto críticos para las distribuciones de Linux. Hoy en día, son utilizados por algunas de las empresas de tecnología, software e informática más grandes 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 kernel 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 fuente 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 inteligencia artificial (IA), computación edgeInternet 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 personalizadas, y se crea utilizando el árbol fuente Linux personalizado de Red Hat. Debian utiliza su árbol fuente para mantener Ubuntu, un código abierto que es fundamental para muchas arquitecturas de IoT. 

Kernel de Linux frente a sistema operativo Linux

Un kernel es un programa informático que funciona como el corazón palpitante del SO, el sistema que permite a los usuarios interactuar con el hardware y el software de la computadora. 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 se conforma de varios componentes además del kernel de Linux, como bibliotecas del sistema, utilidades 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: parche previo, línea principal, revisión estable, soporte a largo plazo y fin de la vida útil (EOL). 

  • Parche previo: los desarrolladores de Linux experimentan con nuevas características en el árbol fuente del kernel.
  • Línea principal: los cambios se estabilizan mediante pruebas y ajustes rigurosos.
  • Revisión estable: el kernel se somete a pruebas adicionales para solucionar problemas más críticos identificados en la fase principal antes de su lanzamiento. 
  • Soporte a largo plazo (LTS): solo algunos kernels se identifican como kernels LTS y se mantienen durante un período más largo que otros kernels, generalmente dos años. 
  • Fin de la vida útil: los kernels no seleccionados para LTS ven interrumpido su soporte cuando se lanzan kernels más nuevos.  

 

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

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

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 que el sistema operativo Linux sea una plataforma tan poderosa, 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" simplemente significa 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 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 generalmente requiere 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. Luego, se pueden seleccionar características específicas del kernel y módulos del kernel (fragmentos 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 computación de alto rendimiento (HPC), aplicaciones empresariales y unidades de procesamiento de gráficos (GPU).  
  • Contenedorización: la contenedorizació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ítica 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 VM 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. Este proceso esencialmente convierte el sistema Linux en un hipervisor, una herramienta utilizada para administrar y monitorear VM, lo que le permite capacidades importantes cuando se trata de administrar máquinas virtuales. 
Academia de IA

Cómo lograr la preparación para la IA con la nube híbrida

Dirigida por los principales líderes de opinión de IBM, el plan de estudios está diseñado para ayudar a los líderes empresariales a obtener 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

Este es un análisis más detallado de 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 del 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 SO. 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 kernel, lo que permite que la solicitud se transmita al sistema operativo.

Gestión de procesos

La capa de gestión de procesos permite que el kernel de Linux ejecute los procesos que permiten a los usuarios interactuar con la computadora. 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

Las computadoras administran 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 desglosar 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 SO (y, por extensión, al usuario) gestionar la memoria disponible de una computadora. 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, en otras palabras, 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 que es fácil de entender para un usuario.

La pila de red

Cada computadora en una red, también conocida 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 una computadora 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 SO con una interfaz de software que permite que un dispositivo específico funcione, como un teclado o unidad externa, un mouse o una impresora. El código fuente del kernel de Linux se compone principalmente de código contenido en controladores de dispositivos específicos para un determinado dispositivo. 

El árbol fuente de Linux, un directorio que contiene todo el código fuente del kernel de Linux y los controladores de dispositivos, se divide en los diversos 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 manera prevista por el usuario. 

Casos de uso del kernel de Linux

Las empresas de industrias muy diferentes confían en el kernel de Linux y en las diversas capacidades que proporciona para mantener la innovación de su fuerza laboral 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 las computadoras y los dispositivos informáticos se conecten de forma segura a través de wifi, 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 amenazas cibernéticas que pueden dañar computadoras, programas, 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 se dirigen a las vulnerabilidades del kernel de Linux se abordan a través de parches frecuentes, como arreglos, que protegen los sistemas y los programas que se ejecutan en ellos. 

Optimización de recursos

Dado que el 89 % de las empresas emprenden 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 informáticos más preciados, como servidores, bases de datos y software de aplicaciones de vanguardia, para que puedan estar seguros de que sus sistemas y redes están funcionando a niveles máximos a través de un proceso llamado ajuste del kernel. 

El ajuste del kernel es 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 intensivas en datos, incluidas aplicaciones de videojuegos y de comercio financiero, y sitios de redes sociales requieren el ajuste de los parámetros del sistema de archivos para ejecutarse a niveles máximos. El sistema de archivos proc, un VFS en el SO Linux, interactúa entre las estructuras de datos internas en el 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 la actualidad deben equipar a los empleados con tecnología de punta, como computadoras portátiles y dispositivos 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 perfectamente. El kernel permite que los dispositivos de hardware interactúen mediante módulos de dispositivos específicos que se pueden cargar en el kernel para que puedan ser administrados por el SO.

Un proceso popular de gestión de dispositivos Linux se conoce como interrupción. La 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 administración de dispositivos Linux que gestiona la suma y resta de dispositivos de un sistema operativo y controla cómo aparece cada dispositivo en un directorio.

Computación en la nube

La computación en la nube, 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 entregar soluciones a los clientes de una manera rápida y escalable. 

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

La escalabilidad del kernel le permite admitir sistemas informáticos masivos, como supercomputadorascentros 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. Finalmente, el kernel de Linux es muy versátil y puede operar en muchos tipos de hardware, una capacidad clave en los entornos virtualizados que son fundamentales para la nube moderna.

Notas de 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 nubes privadas en IBM zSystems e IBM LinuxONE.

Explore Cloud Infrastructure Center
Soluciones de infraestructura de TI

Descubra los servidores, el almacenamiento y el software diseñados para la nube híbrida y su estrategia de IA.

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

Encuentre una solución de infraestructura en la nube que sea adecuada para las necesidades de su negocio y escale los recursos bajo demanda.

Soluciones en la nube
Dé el siguiente paso

Transforme la infraestructura de su empresa con las soluciones de IBM, tanto de nube híbrida como preparadas para la IA. Descubra los servidores, el almacenamiento y el software diseñados para proteger, escalar y modernizar su negocio o acceder a insights de expertos para mejorar su estrategia de IA generativa.

Explore las soluciones de infraestructura de TI Descargue el ebook