El Kernel de Linux: Lo básico sobre el núcleo

El Kernel de Linux: Lo básico sobre el núcleo

El Kernel de Linux: Lo básico sobre el núcleo

Al día de hoy, «El kernel de Linux» ya ha cumplido más de 30 años y acumula más de 30 millones de líneas de código. Y tal como, hemos anunciado aquí y en otras webs linuxeras, el mismo ya hace poco ha dejado atrás el desarrollo de su serie 5, dejando todo, hasta hoy, en el kernel 5.15.78 (LongTerm) con soporte a largo plazo. Y el kernel 5.19.17 (EOL), el cual marca el fin de la vida útil de la serie, por lo que el mismo, no recibirá más correcciones de errores.

Mientras que, con respecto a su serie 6, actualmente hay 2 ramas en pleno desarrollo. Una, la estable, representada por el kernel 6.0.8 (Stable), y la otra, la línea principal de desarrollo, representada por el Kernel 6.1-RC4. Y, dado que, hay mucho más por saber, hoy profundizaremos un poco sobre básico y esencial en relación con los Kerneles de los sistemas operativos, y el Kernel de Linux. Para en un post siguiente pasar a la práctica sobre el mismo. Más específicamente, sobre cómo compilar uno directamente en nuestras Distros GNU/Linux.

RustLinux

La integración de Rust en Linux ha tenido un gran nivel de aceptación por parte de la comunidad y desarrolladores

Y, antes de iniciar la lectura de este post sobre «el Kernel de Linux» en general, dejaremos unos enlaces a anteriores publicaciones relacionadas para su posterior lectura:

RustLinux
Artículo relacionado:
Linux 6.1 RC1, el primer vistazo a Rust en Linux
RustLinux
Artículo relacionado:
La inclusión de Rust en Linux 6.1 ya esta en progreso

El Kernel de Linux: El núcleo del Sistema Operativo

El Kernel de Linux: El núcleo del Sistema Operativo

Todo sobre el Kernel de Linux

Sobre el Kernel en general

  • La palabra «Kernel» tiene su procedencia lingüística en la raíz de origen germano escrita como “Kern”, la cual se traduce fielmente como núcleo.
  • Un «Kernel» viene siendo el núcleo o centro de los tradicionales Sistemas Operativos, y no ellos en sí mismo. Por ende, no son lo mismo sino conceptos relacionados o complementarios.
  • Es aquella porción de software dentro de un Sistema Operativo que se ejecuta en modo privilegiado. Razón por la cual, es el software del Sistema Operativo que facilita que los diferentes programas del mismo o instalados sobre el mismo, gocen de un acceso seguro a los componentes físicos (hardware) del equipo o dispositivo, para lograr así una eficiente y eficaz gestión de los recursos al alcance.
  • En los «Kerneles, suelen existir elementos o partes, tales como: el «Espacio de Kernel», que es la parte del SO que se ejecuta con altos privilegios; y el «Espacio de Usuario», que normalmente se ejecuta con privilegios bajos para permitir la ejecución de aplicaciones.
  • El «Kernel» es el responsable de acceder y compartir el hardware de forma segura y equitativa con las múltiples aplicaciones de usuario. Esto debido, a que ofrece un conjunto de “API”, que las aplicaciones suelen solicitar, mediante lo que se conoce como «Llamadas del Sistema». Además, estas “API” representan el límite en el que los procesos que se ejecutan cambian del “Modo Usuario” al “Modo Kernel”.

Tipos de Kerneles conocidos

  • Entre los tipos de «Kernel» conocidos se encuentran los siguientes:
  1. Monolíticos: Son aquellos en los que no existe una protección de acceso entre los distintos Subsistemas que lo componen, y en el que las funciones públicas pueden ser llamadas directamente entre los diferentes Subsistemas. Estos suelen ser grandes y complejos, y tratan de contener todos los servicios del SO, es decir, no son modulares. En consecuencia, tienen un rendimiento mayor que uno del tipo Microkernel, pero son más difíciles a la hora de gestionar cualquier cambio sobre el mismo.
  2. Microkernel: Son aquellos en los que grandes secciones del mismo están protegidas unas de otras, normalmente funcionando como servicios en el espacio de usuario. En consecuencia, partes significativas del mismo se ejecutan en Modo Usuario, mientras que, el código restante que se ejecuta en Modo Kernel, es mucho menor. Además, este tipo de Kernel, como tal, contiene solo el código suficiente que permita el paso de mensajes entre diferentes los procesos en ejecución.
  3. Híbridos: Son aquellos que cuentan, al mismo tiempo, con la capacidad de escoger y elegir lo que desea ejecutar en Modo Usuario y en Modo Kernel. Lo que les permite, ofrecer lo mejor de ambos tipos mencionados anteriormente. Sin embargo, esto suele ocasionar una gran carga de trabajo sobre los fabricantes de hardware, ya que, la responsabilidad del buen funcionamiento de los controladores dependerá de ellos. Además, suelen presentar problemas de latencia, como en los Microkernel.

Sobre el Kernel de Linux

Sobre el Kernel de Linux

Según artículo del propio Richard Stallman llamado Linux y el sistema GNU, el Kernel de Linux se define de la siguiente forma:

Linux es el núcleo: el programa del sistema que se encarga de asignar los recursos de la máquina a los demás programas que el usuario ejecuta. El núcleo es una parte esencial de un sistema operativo, pero inútil por sí mismo, solo puede funcionar en el marco de un sistema operativo completo. Linux se utiliza normalmente en combinación con el sistema operativo GNU: el sistema completo es básicamente GNU al que se le ha añadido Linux, es decir, GNU/Linux. Todas las distribuciones denominadas «Linux» son en realidad distribuciones GNU/Linux.

Otros datos importantes sobre el Kernel de Linux son los siguientes:

  • Todos los archivos e información sobre el Kernel de Linux se gestiona en su sitio web oficial. Y desde ahí, se puede acceder a otras webs importantes relacionadas con el desarrollo del mismo.
  • Se anuncia el inicio del desarrollo no oficial de Linux (versión 0.01), un 25 de agosto de 1991, por parte de Linus Torvalds (LT), un estudiante (23 años) de Informática de la Universidad de Helsinki, Finlandia.
  • El Kernel de Linux ha demostrado ser capaz, al día de hoy, de crecer y adaptarse a las nuevas tendencias y avances tecnológicos, en todos los sectores de la vida tecnológica moderna, de una forma más rápida que cualquier otro similar.
  • Su éxito siempre ha estado asociado a la filosofía libre y abierta, ya que, desde su creación hasta el último desarrollo de su día actual, este se ha ido adaptando a las estipulaciones «Copyleft» de la «Fundación de Software Libre (FSF)», y a las sucesivas versiones de la Licencia Pública General (GNU-GPL).
  • Actualmente, su desarrollo está dividido en varias categorías, las cuales se conocen como: De pre-lanzamiento (Prepatch), de Línea principal (Mainline), la Estable (Stable) y la de Largo plazo (Longterm). Las cuales, explicaremos a más profundidad en la continuación de este post, donde también enseñaremos a compilar uno sobre Debian GNU/Linux.

Resumen: Banner post 2021

Resumen

En resumen, seguramente ahora ya muchos tendrán una mejor noción de todo aquello que gira en relación con los Kerneles de los Sistemas Operativos, y «el kernel de Linux» en especial. Aunque, si alguno conoce alguna otra información valiosa, histórica o técnica, o posee algún dato aclaratorio o de corrección a lo aquí aportado, bienvenido es a hacerlo a través de los comentarios.

Y sí, simplemente te ha gustado esta publicación, no dejes de comentarla y de compartirla con otros. Además, recuerda visitar nuestra «página de inicio» para explorar más noticias, además de unirte a nuestro canal oficial de Telegram de DesdeLinux, o este grupo para más información sobre el tema de hoy.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.