Saltar al contenido principal

Capítulo 2.2 - Kernel Linux

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Comprender el rol del Kernel Linux
  • Explicar cómo el Kernel gestiona los recursos
  • Comprender las llamadas al sistema (syscalls)
  • Identificar las interacciones con el hardware

¿Qué es el Kernel Linux?​

El Kernel Linux es el núcleo del sistema operativo. Actúa como una interfaz entre el hardware y el software, gestionando todos los recursos del sistema.


Roles del Kernel​

1. Gestión de Procesos​

El Kernel crea, planifica y termina procesos:

  • Creación: fork(), clone()
  • Planificación: Scheduler (CFS - Completely Fair Scheduler)
  • Terminación: exit(), kill()
  • Comunicación: pipes, sockets, señales

2. Gestión de Memoria​

El Kernel gestiona la memoria física y virtual:

  • Asignación: malloc() → kmalloc()
  • Memoria virtual: Paginación, swap
  • Protección: Separación de espacios de memoria
  • Cache: Buffer cache, page cache

3. Sistema de Archivos​

El Kernel gestiona el acceso a los archivos:

  • VFS: Virtual File System (interfaz unificada)
  • Soporte para múltiples FS: ext4, xfs, btrfs, etc.
  • Permisos: Verificación de derechos de acceso
  • Cache: Mejora del rendimiento

4. Gestión de Red​

El Kernel gestiona las comunicaciones de red:

  • Stack TCP/IP: Implementación de protocolos
  • Interfaces de red: eth0, wlan0, etc.
  • Firewall: iptables, netfilter
  • Enrutamiento: Tablas de enrutamiento

5. Gestión de Dispositivos​

El Kernel gestiona los dispositivos de hardware:

  • Drivers: Controladores para cada dispositivo
  • Plug and Play: Detección automática
  • Gestión de energía: ACPI, suspend/resume
  • Interrupciones: Gestión de IRQ

Llamadas al Sistema (Syscalls)​

Las aplicaciones se comunican con el Kernel a través de llamadas al sistema:

Ejemplos de llamadas al sistema:

  • open(): Abrir un archivo
  • read(): Leer desde un archivo
  • write(): Escribir en un archivo
  • fork(): Crear un proceso
  • exec(): Ejecutar un programa
  • socket(): Crear un socket de red

Arquitectura del Kernel​

El Kernel está organizado en módulos:

Tipos de módulos:

  • Core: Funcionalidades esenciales (siempre cargadas)
  • Modules: Funcionalidades opcionales (cargadas bajo demanda)
  • Drivers: Controladores de hardware

Resumen​

En este capítulo, usted ha aprendido:

Kernel Linux: Núcleo del sistema, interfaz hardware/software
Roles: Gestión de procesos, memoria, archivos, red, dispositivos
Llamadas al sistema: Interfaz entre aplicaciones y kernel
Arquitectura: Core + módulos + drivers
Módulos: Carga dinámica de funcionalidades


Próximos Pasos​

Capítulo 2.3: Gestión de Memoria y Swap
Capítulo 2.4: Sistema de Archivos Virtual (VFS)


Capítulo creado el: Diciembre 2024