Site Meter
Acceder:
Basado en Elgg

Rolando Espinoza La fuente :: Blog :: Compilando y probando el microkernel MKX86 en Ubuntu amd64 (x86_64)

mayo 25, 2008

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 Wink 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 Cry

Screenshots! 

 

Palabras clave: amd64, compilación, mkx86, ubuntu, x86, x86_64

Enviado por Rolando Espinoza La fuente

Debes iniciar sesión para enviar un comentario.