Nueva versión de Bochs

Imagen de ElSanto

Tema: 

Hace unos días en Slashdot (y en la PreCola) se hacían eco de la noticia: ya tenemos nueva versión del fabuloso Bochs, la 2.0, y viene con interesantes novedades.

Pero antes de nada, empecemos con las presentaciones :-). ¿Qué es Bochs?. Sus autores lo definen como un emulador portable de la arquitectura IA32 (x86), bajo licencia LGPL. En cristiano: arranca un PC virtual (con sus periféricos, BIOS y demás) dentro de una ventanita en tu máquina Linux y encima es gratis X-).

Las nuevas características de Bochs son:

  • Emula PCs multiprocesador, aunque no toma ventaja real si la plataforma en la que corre tiene realmente varias cpus

  • Emula instrucciones MMX, así como SSE, SSE2 y AMD x86-64.

  • Nuevos plugins para soportar más displays, como SVGALIB (corre Bochs con gráficos y ratón, en consola :-)), SDL, svgalib, el del VNC o el de MacOS X (SDL está chulo, pero no hay mapa de teclado en español... Aún. Después de los exámenes veremos ;-)).

  • Se puede pasar de ventana a pantalla completa pulsando el scroll lock.

  • Seguro que más cosas que no he visto.



¿Qué clase de friki necesita un software como Bochs?. Ya tengo un PC, ¿para que quiero un PC (virtual) dentro de un PC (real)?, ¿no raya en lo kafkiano? :-). Bien, pues lejos de lo que puede parecer, Bochs sí que tiene utilidad: es una estupenda herramienta y una de las mayores contribuciones que ha podido hacer al software libre la gente de MandrakSoft, que "compraron su libertad", así como una BIOS compatible, liberando el conjunto bajo licencia LGPL.

Imagina estos escenarios:

Caso 1: eres un programador y te sientes muy agusto en la plataforma Linux, con todas esas utilidades, shells y editores que realmente ayudan en el desarrollo... Pero, por razones varias, tienes que desarrollar software para otras plataformas como Windows. No quieres renunciar a la comodidad de Linux, así que te haces con el compilador cruzado y con un toolkit y biblioteca base que te permita desarrollar software cómodamente para Windows (por ejemplo wxWindows).

Armado con todos esos trastos y el resto de tus herramientas favoritas, te pones a programar y creas la mega-aplicación. Ahora toca depurarla. Tú, en tus trece de no salir de Linux para nada, intentas ejecutarla bajo Wine pero no funciona porque haces uso de tal o cual componente, p.ej.

Tienes una copia de Win98 original, pero claro: para usarla tienes que armar un buen lío cambiando el layout de las particiones (Win98, salvo carambola y malabares, sólo se instala en la primera partición primaria) y reiniciar, saliendo de tu amado Linux. Entonces, ¿qué haces?: ¡utilizas Boch!, creas tu PC virtual, instalas tu Win98 (con muuucha paciencia) y depuras tu aplicación Windows sin salir de Linux ni, si quieres, de la consola :-D.

Una variante del caso del programador es cuando desarrollas software para un multiprocesador, pero no dispones de uno realmente en tu mesa de trabajo. La emulación de varios micros que hace Bochs te permite probar y hacer el perfilado del software.

Caso 2: eres un usuario de Windows hasta las cejas. Cada vez que te mencionan al sistema del pingüino ese te entra la risa floja y no quieres ni pensar en instalar esa basura... Pero un fátidico día entras en la universidad y, en uno de esos laboratorios que no sirven para nada (el de Sistemas Operativos, sin ir más lejos), se piden prácticas en Linux. ¿Qué haces?, ¿tragas con el Lunix, haces particiones, etc?, pues no ¡Boch al rescate!: creas tu PC virtual e instalas un Linux ahí. Ya puedes hacer las prácticas sin dejar de escuchar musiquita por el winamp y sin dejar de navegar con el iexplorer.

Caso 3: te apetece probar software comodamente. Instala sin problemas el 2.5.x (alias, el killer de PCs) en tu PC virtual sin riesgos, o prueba algún *BSD, o alguna distribución curiosa de Linux o...

... Y después estan los usos verdaderamente frikis de Bochs, como correr Windows en una SPARC o en un Alpha con Linux, pero esa es otra historia :-).

La distribución binaria de Bochs viene con una instalación de prueba de diez megas de DLX-Linux, que se puede correr directamente out-the-box. Ese DLX-Linux calza un kernel 1.3.89 y software a juego, así que sirve como estudio histórico :-).

Por cierto, si arrancas el MS-DOS a pantalla completa con SVGALIB, el salir de la emulación esto lo dejo como ejercicio }:-).