¿Como hago un kernel en C?


09 de Julio del 2019

Tengo miedo de arruinar la computadora, ¿que hago?


Jota CT
12 de Agosto del 2026

Jaja, tranquilo/a, no vas a romper nada. ¡En serio!

Cuando alguien dice «hacer un kernel en C» como ejercicio de aprendizaje, casi nunca está hablando de instalar eso en el ordenador real. Se compila un kernel minúsculo (unas pocas líneas que pintan algo por pantalla) y se arranca dentro de un emulador, normalmente QEMU o Bochs. Eso significa que tu «ordenador» que arranca el kernel es en realidad una ventana en tu escritorio, una máquina virtual completamente aislada del hardware real. Si el kernel se cuelga, hace un reset en bucle o simplemente no hace nada, lo peor que puede pasar es que cierres esa ventana y vuelvas a lanzar el emulador.

El camino típico para empezar:

1. Instalas QEMU (qemu-system-i386 en Linux, o el paquete equivalente en tu sistema).
2. Escribes un kernel «hola mundo» en C (normalmente necesitas también un poco de ensamblador para el arranque, unas pocas líneas).
3. Lo compilas con un cross-compiler (para no depender del compilador del sistema, que asume que vas a correr sobre un sistema operativo ya existente).
4. Le pides a QEMU que arranque la imagen resultante: qemu-system-i386 -kernel tu_kernel.bin.

La wiki de OSDev (osdev.org) tiene el tutorial clásico «Bare Bones» que monta exactamente este flujo paso a paso, es el punto de partida que usa prácticamente todo el mundo para esto.

Así que nada, adelante sin miedo. El único riesgo real sería que en algún momento decidas probar algo directamente en hardware real (arrancar desde un USB en tu propio PC), y ahí sí conviene ir con más cuidado, pero para aprender y experimentar, el emulador es 100% seguro.

Un saludo,
Jota CT