10 puntos por GN⁺ 2025-11-28 | 1 comentarios | Compartir por WhatsApp
  • El kernel de Linux no es un proceso individual, sino la capa central que compone a todo el sistema, una estructura siempre presente que conecta el hardware y el software
  • Coordina llamadas al sistema, interrupciones y planificación para los procesos de usuario y mantiene la ejecución
  • El kernel opera como una estructura multicapa virtualizada, mapeada, aislada y controlada
  • Como material de aprendizaje, se presentan archivos fuente clave como init/main.c, kernel/fork.c, include/linux/sched.h y arch/x86/kernel/entry_64.S
  • Es importante como material básico de aprendizaje para comprender la estructura y el papel del kernel

La esencia del kernel

  • El kernel es el sistema mismo, no un proceso, una capa autoritativa siempre presente que conecta el hardware y el software
    • Cumple un papel central al apoyar la ejecución de los procesos de usuario y administrar los recursos del sistema
  • El kernel es la entidad que da servicio a los procesos y mantiene las tareas del usuario al coordinar llamadas al sistema (syscall), interrupciones y planificación

La estructura en capas del sistema

  • El kernel está compuesto por una estructura de control virtualizada, mapeada, aislada y controlada
    • En tiempo de ejecución, múltiples capas interactúan entre sí para mantener la estabilidad y el control del sistema

Archivos para aprendizaje

  • Se presentan los siguientes cuatro archivos principales para comprender la estructura del kernel
    • init/main.c
    • kernel/fork.c
    • include/linux/sched.h
    • arch/x86/kernel/entry_64.S

Preguntas de verificación conceptual

  • Diferencia fundamental entre kernel y proceso: B. El kernel no es un proceso, sino el sistema mismo
  • Forma en que el kernel da soporte a los procesos de usuario: B. Coordina llamadas al sistema, interrupciones y planificación
  • Característica jerárquica del kernel: C. Una estructura virtualizada y mapeada, aislada y controlada

1 comentarios

 
GN⁺ 2025-11-28
Comentarios en Hacker News
  • Es un proyecto realmente genial. Me recuerda a la composición de una página del Talmud: esa estructura de capas y capas de comentarios acumulados en una sola página durante siglos siempre me ha parecido fascinante.
    El código no es lineal de esa misma forma, pero en este Linux Kernel Explorer sí se siente una “estratificación de anotaciones” parecida.
    Me gusta especialmente el formato de notas al costado.
    Enlaces relacionados: Diseño de página del Talmud, Notas sobre el diseño del Talmud

    • El Talmud vendría siendo como el hipertexto original (no estoy totalmente seguro, pero esa es la sensación)
  • Siento que me estoy perdiendo de algo. Desde hace mucho ya se podía explorar el código fuente del kernel en la web; por ejemplo, sitios como Elixir Bootlin.
    Pero no veo qué funcionalidad adicional ofrece esto. Bootlin incluso tiene búsqueda, y aquí no la veo.
    Para los tiempos que corren, habría esperado algo como explicaciones de código basadas en LLM o un grafo de dependencias.

    • Lo vi pensando “¡la edad dorada de la era de la IA!”, pero al final se siente más como un remix con IA que reempaqueta funciones existentes en un nuevo framework web, así que me dejó un poco frío
  • La API de GitHub está pegando el rate limit, así que no aparece la lista de archivos.
    Si a alguien más le pasa lo mismo, cambiar la IP con una VPN o con Cloudflare Wrap lo soluciona.
    Si yo fuera el desarrollador, agregaría una opción de inicio de sesión con GitHub o una capa de caché para que a los usuarios nuevos les resulte más fácil entrar.

    • Recibí una respuesta agradeciendo que reportara el problema. Dijeron que se dieron cuenta de que la implementación era demasiado simple y que la iban a mejorar
  • Me encantan este tipo de herramientas. Recuerdo haber analizado el código fuente de la urna electrónica brasileña con una herramienta parecida hecha por Red Hat.
    En ese entonces me tocó ordenar archivos y funciones duplicadas, y era una app de escritorio basada en la UI de Motif

  • De verdad me gusta esta idea. Cuando exploras el código de un proyecto complejo, muchas veces no sabes por dónde empezar, y esta herramienta te permite entender rápidamente la estructura principal.
    Eso sí, encontré un bug: en el Chapter 2, si abres directorios como “mm/”, aparece el error “Invalid file response”. Parece que está intentando abrir un directorio como si fuera un archivo.

  • Este Explorer parece ser la clase de herramienta que muchos desarrolladores necesitaban.
    El código fuente del kernel es enorme y complejo, y no sabía por dónde empezar; esto muestra la estructura casi como un mapa.
    También deja ver de un vistazo cosas como el VFS o cómo se conectan los módulos, y aunque tenga problemas como las limitaciones de la API o errores con directorios, sigue siendo un excelente primer paso.

    • Me recuerda al antiguo LXR.
      A mí también me ayudó mucho cuando empecé a trabajar con Linux, y después estuvo Elixir, reimplementado en Python, junto con su código fuente
    • Pero también queda la duda de “si no puedes hacer pull de master, ni usar grep o gmake, ¿para qué sirve esto?”
  • Elixir Bootlin ya tiene tiempo, pero funciona mejor en móvil.

    • Recibí una respuesta agradeciendo el comentario sobre la experiencia móvil, y dijeron que lo van a mejorar
    • Elixir permite navegar por tags, así que sirve mejor para explorar todo el código y no solo por archivo
  • Se ve realmente genial. El autor era fabiomaia.eu.
    Estoy pensando en pedirle que haga una herramienta similar para Python.
    Sería útil para enseñarles a los ingenieros nuevos la estructura del repositorio de CPython.

    • También hubo una respuesta tipo “¿y por qué no lo haces tú mismo?”. En el open source es bastante común esperar implementaciones rápidas y respuesta a issues
  • Me dio curiosidad de repente: ¿qué parte del código del kernel les parece la más impresionante?

    • Probablemente fs/select.c o la parte del mecanismo de polling
  • No se puede abrir el archivo arch/x86/kernel/entry_64.S del Chapter 1.
    Tampoco aparece en el árbol de directorios.
    (Había otro comentario mencionando este problema, pero parece que lo borraron)

    • Lo más probable es que sea un error en la ruta. En realidad debería ser arch/x86/entry/entry_64.S