Explorador del kernel de Linux
(reverser.dev)- 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.hyarch/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.ckernel/fork.cinclude/linux/sched.harch/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
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
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.
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.
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.
También aplausos para el trabajo de Florent Revest
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.
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
pullde master, ni usargrepogmake, ¿para qué sirve esto?”Elixir Bootlin ya tiene tiempo, pero funciona mejor en móvil.
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.
Me dio curiosidad de repente: ¿qué parte del código del kernel les parece la más impresionante?
No se puede abrir el archivo
arch/x86/kernel/entry_64.Sdel Chapter 1.Tampoco aparece en el árbol de directorios.
(Había otro comentario mencionando este problema, pero parece que lo borraron)
arch/x86/entry/entry_64.S