Núcleo (Kernel) y tipos de kernels
El kernel es el corazón del sistema operativo. Es la parte que se ejecuta más cerca del hardware y que gestiona los recursos esenciales del sistema: CPU, memoria, dispositivos y procesos.
👉 Piensa en él como el puente entre el hardware y el software:
- El usuario pide algo a través de un programa.
- El kernel se encarga de hacerlo realidad usando el hardware.
1. Funciones principales del kernel #
- Gestión de procesos: crea, programa y termina procesos.
- Gestión de memoria: asigna y libera memoria a los procesos.
- Gestión de dispositivos: controla la entrada/salida a través de drivers.
- Gestión de archivos: coordina el acceso a los sistemas de archivos.
- Seguridad y control: define permisos y aísla procesos.
2. Tipos de kernels #
Kernel monolítico #
- Todo el sistema operativo (gestión de procesos, memoria, drivers, sistema de archivos) funciona en un solo bloque dentro del núcleo.
- Ventajas: muy rápido porque todo se ejecuta en el mismo espacio de memoria.
- Desventajas: si un fallo ocurre en un driver, puede bloquear todo el sistema.
- Ejemplos: Linux, UNIX clásico.
Microkernel #
- Solo incluye lo esencial: gestión de procesos, memoria y comunicación básica.
- El resto (drivers, sistemas de archivos, etc.) se ejecuta en espacio de usuario.
- Ventajas: más estable y seguro (un fallo en un driver no tumba el sistema).
- Desventajas: más lento, porque hay más comunicación entre kernel y procesos.
- Ejemplos: Minix, QNX.
Kernel híbrido #
- Combina lo mejor de ambos: mantiene funciones críticas en el núcleo, pero delega otras en espacio de usuario.
- Ventajas: equilibrio entre rendimiento y seguridad.
- Ejemplos: Windows NT/10/11, macOS (XNU).
Exokernel #
- Diseñado para ser mínimo: gestiona solo los recursos básicos y deja que las aplicaciones decidan cómo usarlos.
- Muy experimental, orientado a investigación.
- Ventajas: máxima flexibilidad y rendimiento.
- Ejemplo: proyectos académicos del MIT.
3. Analogía sencilla #
- Monolítico: como un restaurante donde los cocineros, camareros y cajeros trabajan en la misma sala → rápido, pero si algo va mal, se colapsa todo.
- Microkernel: como un restaurante donde cada área está en un local distinto y se comunican → más seguro, pero más lento.
- Híbrido: mezcla de los dos → busca rapidez con estabilidad.
Resumen del tema
Conceptos clave #
- Kernel (Núcleo): componente central del SO ejecutado en modo privilegiado (Kernel Space / Ring 0) que controla el hardware directamente.
- Arquitecturas de Kernel:
- Monolítico (Linux, Unix): todos los servicios (drivers, memoria, red, VFS) corren en espacio de kernel; máxima velocidad a costa de mayor riesgo si falla un módulo.
- Microkernel (Minix, QNX): solo gestiona planificación básica, memoria mínima e IPC; drivers y servidores corren en espacio de usuario (User Space), priorizando robustez y aislamiento.
- Híbrido (Windows NT, macOS XNU): núcleo monolítico optimizado con capas de servicios estructuradas como microkernel.
- Exokernel: arquitectura de investigación académica que delega la gestión de abstracciones directamente a las bibliotecas de aplicación.
Qué debes recordar #
El kernel es el corazón del SO: los monolíticos priorizan velocidad ejecutando todo en espacio de kernel, los microkernels priorizan estabilidad aislando drivers en espacio de usuario, y los híbridos combinan ambos.