Descripción general del kernel
100%

Kernel · Lección 1

Descripción general del kernel

Aprende cómo el kernel de Linux media entre el hardware, los recursos, el aislamiento y las solicitudes del espacio de usuario.

Linux es el kernel del sistema operativo: el software privilegiado que gestiona los procesadores, la memoria, los dispositivos, los procesos y las abstracciones comunes de recursos. Un sistema Linux completo también incluye bibliotecas, utilidades, servicios, shells y programas gráficos del espacio de usuario, además de las políticas de la distribución.

Recursos de hardware

Los procesadores ejecutan instrucciones, la memoria almacena el estado activo y los controladores conectan el almacenamiento, las redes, las pantallas, los dispositivos de entrada y otros periféricos. El hardware expone mecanismos específicos de la arquitectura y del dispositivo, no una única interfaz segura para todas las aplicaciones.

El kernel inicializa y controla estos recursos mediante código de arquitectura y controladores de dispositivos. Gestiona las interrupciones, la coordinación de DMA, los temporizadores y los eventos de administración de energía, a la vez que impone límites de acceso entre las cargas de trabajo.

¿Qué capa coordina normalmente los controladores de dispositivos y las interrupciones de hardware en Linux?

Responsabilidades del kernel

Entre sus principales responsabilidades se encuentran:

  • programar los hilos ejecutables en las CPU
  • crear y aislar espacios de direcciones virtuales
  • aplicar credenciales de procesos, permisos y políticas de seguridad
  • proporcionar sistemas de archivos, redes, IPC e interfaces de dispositivos
  • gestionar señales, temporizadores y el ciclo de vida de los procesos
  • asignar, contabilizar y recuperar recursos

Linux suele describirse como un kernel monolítico porque los servicios esenciales y muchos controladores se ejecutan en un único espacio de direcciones privilegiado del kernel. También es modular: los componentes compatibles pueden cargarse y descargarse como módulos del kernel. Un error en código privilegiado del kernel puede comprometer todo el sistema, por lo que las actualizaciones del kernel y la procedencia de los módulos son esenciales para la seguridad.

¿Qué gestiona el planificador del kernel?

Espacio de usuario

El espacio de usuario contiene los procesos ordinarios: el sistema de inicio y los servicios, las herramientas de línea de comandos, los entornos de ejecución de lenguajes, las bases de datos, los shells y las aplicaciones de escritorio. Los privilegios del hardware impiden que estos programas ejecuten directamente muchas instrucciones delicadas o accedan a memoria arbitraria del kernel.

Los procesos solicitan trabajo al kernel mediante llamadas al sistema e interactúan con interfaces expuestas como descriptores de archivo, sockets, nodos de dispositivo, procfs, sysfs, netlink y asignaciones de memoria. Las bibliotecas suelen envolver estas interfaces en API de mayor nivel.

El usuario root del espacio de usuario dispone de amplias autorizaciones según la política, pero normalmente sigue ejecutándose en el modo de usuario del procesador. La identidad del usuario y el modo de privilegio de la CPU son conceptos independientes.

¿Ejecuta una aplicación normal propiedad de root todas sus instrucciones en modo kernel?

Límites y abstracciones

El kernel presenta procesos virtuales, archivos, sockets y espacios de direcciones en lugar de exponer directamente la maquinaria física en bruto. Estas abstracciones favorecen el aislamiento y la portabilidad, pero por sí solas no constituyen límites de seguridad perfectos. Los espacios de nombres, cgroups, capacidades, módulos de seguridad, seccomp y la virtualización añaden controles especializados.

Al diagnosticar un problema, pregunta qué capa es responsable del comportamiento: la aplicación, la biblioteca, la interfaz de llamadas al sistema, el sistema de archivos, el controlador, el subsistema del kernel, el firmware o el hardware. Las pruebas procedentes de la capa equivocada pueden conducir a soluciones incorrectas.

¿Qué es una llamada al sistema?

Lección completada

Has completado Descripción general del kernel

Ahora puedes situar el kernel entre los recursos físicos y los procesos aislados del espacio de usuario.

  • Relaciona los controladores y el código de arquitectura con el control del hardware.

  • Identifica las responsabilidades de planificación, memoria, seguridad, sistemas de archivos y redes.

  • Trata las credenciales de root y el modo kernel del procesador como conceptos distintos.

  • Sitúa la interacción entre el usuario y el kernel en interfaces controladas durante la ejecución.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Kernel