Al fin ya encontre la manera de compilar y probar el microkernel MKX86
Descargar: mkx86-0.1.0.src.zip
Compilando MKX86 en x86_64
Requerimientos
Para empezar, necesitamos todo lo necesario para compilar:
rolando@zen:~$ sudo apt-get install build-essential
Por si acaso
las bibliotecas necesarias para ejecutar programas 32 bits en nuestro entorno 64 bits:
rolando@zen:~$ sudo apt-get install ia32-libs libc6-dev-i386
Necesitamos el compilador con bibliotecas para 32 bits:
rolando@zen:~$ sudo apt-get install gcc-multilib
Por último, algunas utilidades necesarias:
rolando@zen:~$ sudo apt-get install mtools dosfstools nasm
Compilando
1. Dentro mkx86, limpiamos con:
rolando@zen:~mkx86/$ make clean
2. Modifcamos kernel/Makefile añadiendo despues de la primera línea CFLAGS:
CFLAGS += -m32 -fno-builtin-printf
Más abajo, necesitamos modificar las llamadas a ld reemplanzado con ld -melf_i386
3. modificamos lib/Makefile, añadiendo despues de la primera línea CFLAGS:
CFLAGS += -m32
4. Compilamos
rolando@zen:~/mkx86$ make
5. Construimos la imagen completa del kernel (incluye shell, fs, etc)
rolando@zen:~/mkx86$ cd kernel/
rolando@zen:~/mkx86/kernel$ sh construyeimg.sh
6. Creamos la imagen virtual arrancable (floppy)
rolando@zen:~/mkx86/kernel$ cd ..
rolando@zen:~/mkx86$ dd if=/dev/zero of=floppy.img bs=1024 count=1440
rolando@zen:~/mkx86$ mkfs.vfat floppy.img
rolando@zen:~/mkx86$ dd if=boot/boot of=floppy.img bs=512 count=1 conv=notrunc
rolando@zen:~/mkx86$ mcopy -i floppy.img boot/boot2 ::/
rolando@zen:~/mkx86$ mcopy -i floppy.img kernel/imagen ::/
Probando con Bochs
1. Instalamos bochs
rolando@zen:~/mkx86$ sudo apt-get install bochs bochsbios bochs-x vgabios
3. Creamos un archivo básico de configuración de bochs mkx86.bx con el siguiente contenido:
# archivo mkx86.bx
display_library: x
megs: 4
romimage: file="/usr/share/bochs/BIOS-bochs-latest"
vgaromimage: file="/usr/share/vgabios/vgabios.bin"
boot: floppy
floppya: 1_44=floppy.img, status=inserted
vga: extension=vbe
4. Para terminar, ejecutamos bochs:
rolando@zen:~/mkx86$ bochs -f mkx86.bx
Por algún motivo en qemu tarda una eternidad en arrancar
Screenshots!