Saltar al contenido
Home » Linux » Kernel. El núcleo del Sistema Operativo

Kernel. El núcleo del Sistema Operativo

  • por
  • Linux
Kernel. El núcleo del Sistema Operativo

Introducción

El Kernel o núcleo del sistema operativo es la pieza de software más importante que encontramos instalada en cualquier sistema informático, desde el ordenador cuántico de la NASA hasta el microcontrolador de un enchufe inteligente.

El Kernel forma parte del Sistema Operativo y se encarga de controlar todas las funciones del hardware, haciendo de pasarela o interfaz entre el software y el hardware. Sin él, no podríamos explotar los componentes de un ordenador de manera eficiente ya que el software no sería capaz de diferenciarlos.

Sin un Kernel, el software instalado se ejecutaría igual en un ordenador de gama alta que en uno de gama baja.
Esto generaría cuellos de botella en el de menores prestaciones, ya que no tiene los componentes necesarios para ejecutarlo con fluidez.
Por otro lado, el de gama alta no aprovecharía toda su potencia pues puede ser mayor que la que el software espera por diseño.

Para evitar estos problemas y muchos otros que ahora veremos, se desarrollaron los primeros Kernels.

¿Qué es el Kernel?

El Kernel es una pieza de software que forma parte del Sistema Operativo y se encarga de conectar el hardware con el software.

Kernel

Su misión principal es gestionar el acceso de éste último a los diferentes componentes físicos de la máquina. Además, hace funciones de árbitro a la hora de decidir qué pieza de software tiene prioridad en el uso de determinados recursos de hardware.

Estructura del Kernel

El Kernel se estructura en capas o anillos, donde cada uno de estos anillos se hace cargo de una función básica del software:

Estructura del Kernel
  • Gestión de Hardware (Anillo 1): Es la capa más interna y se encarga de gestionar los recursos físicos de la máquina. Es la capa que gestiona, por ejemplo, las interfaces de red o los puertos PCI Express y USB.
  • Gestión de Memoria (Anillo 2): Es la que gestiona la frecuencia y cantidad de memoria RAM disponible y en uso por cada una de las aplicaciones.
  • Gestión de Procesos (Anillo 3): Se encarga de la gestión de los ciclos del microprocesador y permite la realización de varias tareas de manera simultanea.
  • Gestión de Dispositivos E/S (Anillo 4): Los dispositivos de entrada y salida como el ratón, el teclado, los altavoces y la impresora se gestionan en esta capa.
  • Sistema de Archivos (Anillo 5): Es la capa más externa y es la que se encarga de asignar un espacio de memoria a los procesos. Este espacio puede ser tanto en la memoria principal (ROM, RAM y caché) como en la secundaria (Disco Duro).

Rodeando a los anillos del Kernel nos encontramos la Interfaz Gráfica que es otro componente del Sistema Operativo y permite al usuario interaccionar con las aplicaciones.

En los sistemas operativos clásicos, la Interfaz Gráfica era conocida también como el Shell o «cascara» ya que es la capa más superficial del Sistema Operativo y es la que permite al usuario interactuar con el resto de capas que son transparentes para él. Ejemplos de Shells son la Bash de Linux o el CMD de Windows.

Si quieres saber más sobre la Shell o Interfaz Gráfica de los sistemas Linux, no dudes en leer la siguiente entrada: Terminal Linux. ¿Qué es? ¡Descubre su historia!

Tipos de Kernel

A lo largo de la historia los Kernel solían ser piezas de Software monolíticas que contenían todas las funciones necesarias para cumplir con las necesidades del usuario. Ahora, sin embargo, las buenas prácticas en programación exigen que todo sea modular y que se huya de lo monolítico. Es por éste motivo que podemos hablar de diferentes tipos de Kernel:

  • Kernel Monolítico: Como ya hemos mencionado, es un Kernel que engloba todas las capas y, por tanto, puede realizar todas las funciones de un Kernel. Suelen ser los más eficientes en el empleo de los recursos. Sin embargo, pueden tener problemas de seguridad derivados de interacciones inesperadas entre las capas debido a su tamaño. Un buen ejemplo son los primeros Kernel de Linux.
  • Microkernel: Está formado por pequeños Kernels que interaccionan entre sí como si fueran módulos independientes. Está pensado para evitar que un fallo afecte a todas las capas y, debido a su diseño modular, suele ser más seguro aunque consuma más recursos.
  • Kernel Híbrido: Es un Kernel monolítico que se aprovecha de módulos que se cargan dinámicamente para realizar algunas funciones. El Kernel de Linux o el de MacOS son ejemplos de éste tipo de núcleos.

Además de los anteriores existen otros diseños de Kernel todavía más minimalistas como el nanokernel que está orientado a dispositivos embebidos o el unikernel que es muy utilizado en IoT.

Conclusión

Podemos decir que el Kernel es el elemento más importante de un Sistema Operativo pues fue la innovación que nos permitió soñar con ordenadores domésticos con diferentes prestaciones.

Gracias al Kernel podemos instalar un sistema operativo genérico en nuestro ordenador y sacarle el máximo partido a sus componentes. No debemos olvidar que Linux se creó como un Kernel por que su creador quería explotar todo el potencial de su nueva máquina.

Si te interesa la historia de Linux, ahora que ya sabes lo que es un Kernel, no dudes en leer la siguiente entrada: ¿Qué es Linux? ¡Descubre su historia!

Deja una respuesta

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