El emulador Bochs
From JavierValcarce.Eu
Este artículo explica cómo instalar y configurar el emulador de PC Bochs con soporte para AMD64 (arquitectura de 64-bits)
A diferencia de VMWare o QEMU, Bochs es un emulador de PC multiplataforma que interpreta las instrucciones del programa una a una en lugar de usar técnicas de virtualización. Eso tiene tres consecuencias importantes:
- Es muchísimo más lento de VMWare o QEMU
- Es posible ejecutar un programa instrucción por instrucción viendo el contenido de los registros y de la memoria en todo momento, lo que constituye una valiosa información sobre el estado de la máquina para depuración.
- Es posible emular una máquina diferente de la máquina en la que se ejecuta Bochs, p. ej: es posible emular un Pentium de 64 bits (AMD64) en un Pentium 3 (32 bits)
Estas dos últimas características son las que hacen a Bochs el candidato ideal para nuestros propósitos: escribir y probar nuestro propio sistema operativo de aficionado.
Bochs es excelente para este fin pero si lo que quieres es ejecutar un SO para el trabajo diario Bochs no sirve porque es insufriblemente lento, incluso en máquinas rápidas, para esto último necesitas VMWare o QEMU.
Compilar Bochs con soporte AMD64
Las versiones ya compiladas de Bochs que se pueden encontrar en Internet no tienen soporte para emular la extensión AMD64 por lo no sirven para nuestros propósitos: escribir un SO para la arquitectura AMD64.
Antes de empezar necesitas instalar o bien MinGW+MSYS o bien Cygwin (más información). Si usas Linux ya deberías tener todo lo necesario para compilar. Comencemos...
Descarga el código fuente de la última versión de Bochs. La versión actual de Bochs, en el momento en que escribo estas líneas, es la 2.3
# tar xzvf bochs-2.3.tar.gz # cd bochs-2.3 # ./configure --prefix=/opt/bochs-2.3 --enable-x86-64 # make # make install
También puedes teclear ./configure --help para ver todas las opciones --enable-* que puedes activar.
Después de make install los binarios y bibliotecas de Bochs están ahora instaladas en /opt/bochs-2.3. Puedes mover el directorio a otra parte si quieres, como a tu directorio HOME por ejemplo.
Configuración de Bochs
El fichero de configuración bochs-2.3/bin/bochsrc.txt incluye numerosos comentarios y es autoexplicativo, cambia las líneas que te interesen, a saber
- ajusta
megscontrola la cantidad de RAM asignada al emulador. p. ej:megs: 128
- ajusta
vgaromimagecon el path correcto. p. ej:vgaromimage: file=e:\work\pcasm\bochs-2.3\share\bochs\VGABIOS-lgpl-latest
- ajusta
floppyapara que apunte a un disquete físico o a una imagen, p. ej:floppya: 1_44="e:\work\pcasm\bochs-2.3\fd.img", status=inserted
- ajusta
ata0para que apunte a una imagen de disco duro y también al CD-ROM. p. ej:ata0-master: type=disk, path="e:\work\pcasm\bochs-2.3\bin\hd.img", mode=flat, cylinders=2080, heads=16, spt=63 ata0-slave: type=cdrom, path=D:, status=inserted
El fichero de imagen del disco duro
hd.imganterior tendrás de crearlo con la utilidadbximage.exeque está en bochs-2.3\bin\bximage.exe
Ejecución de Bochs
Ejecuta bochs.exe y cuando te pregunte elige la opción "6. Begin simulation". Aparecerá la ventana del emulador en marcha, si la imagen del CD, disco duro o disquete es arrancable, bochs arrancará con el. La prioridad en el dispositivo de arranque se configura, por supuesto, en bochsrc.txt
Prueba ahora a instalar por ejemplo una distribución de Linux (te recomiendo Debian 4.0 con instalador modo texto) de 64 bits para comprobar que la emulación de 64 bits está activada.
