¿Qué significa kernel?
Un kernel o núcleo es el componente central de un sistema operativo. Utilizando la comunicación entre procesos y las llamadas al sistema, actúa como puente entre las aplicaciones y el procesamiento de datos realizado a nivel de hardware.
Cuando un sistema operativo se carga en memoria, el núcleo se carga primero y permanece en memoria hasta que el sistema operativo se apaga de nuevo. El núcleo es responsable de las tareas de bajo nivel, como la gestión del disco, la gestión de tareas y la gestión de la memoria.
Definición de kernel
El kernel de un ordenador sirve de interfaz entre los tres componentes principales del hardware del ordenador, proporcionando servicios entre la interfaz aplicación/usuario y la CPU, la memoria y otros dispositivos de E/S del hardware.
El kernel proporciona y gestiona los recursos del ordenador, permitiendo que otros programas los ejecuten y utilicen. El núcleo también configura el espacio de direcciones de memoria para las aplicaciones, carga archivos con código de aplicación en la memoria, configura la pila de ejecución para los programas y se ramifica a ubicaciones concretas dentro de los programas para su ejecución.
El kernel es responsable de:
- La gestión de procesos para la ejecución de aplicaciones
- Gestión de la memoria, asignación y E/S
- La gestión de dispositivos mediante el uso de controladores de dispositivos
- El control de las llamadas al sistema, que es esencial para la ejecución de los servicios del núcleo.
Existen cinco tipos de kernels:
- Kernel monolíticos: Todos los servicios del sistema operativo se ejecutan a lo largo del hilo principal del núcleo en un núcleo monolítico, que también reside en la misma zona de memoria, proporcionando así un acceso al hardware potente y rico.
- Microkernel: Definen una abstracción simple sobre el hardware que utiliza primitivas o llamadas al sistema para implementar servicios mínimos del SO, como la multitarea, la gestión de memoria y la comunicación entre procesos.
- Kernel híbridos: Ejecutan unos pocos servicios en el espacio del núcleo para reducir la sobrecarga de rendimiento de los micronúcleos tradicionales, en los que el código del núcleo se sigue ejecutando como un servidor en el espacio de usuario.
- Nanokernel: Simplifican los requisitos de memoria delegando servicios, incluidos los básicos como controladores de interrupciones o temporizadores, a controladores de dispositivos.
- Kernel Exo: Asignan recursos físicos de hardware, como tiempo de procesador y bloque de disco, a otros programas, que pueden enlazar con sistemas operativos de bibliotecas que utilizan el núcleo para simular abstracciones del sistema operativo.