Bochs: Emulador de Ordenadores IA-32 de Código Abierto
Bochs es un «Emulador de Ordenadores»
de «Código Abierto»
específicamente construido, por ahora, para emular Arquitecturas de 32 bit (IA-32). Además, es altamente portátil, está escrito en C++, y se ejecuta en las plataformas más populares.
A parte de incluir la emulación de la CPU Intel x86, dispositivos comunes de E/S y una «BIOS»
personalizada, Bochs puede ser compilado para emular muchos CPUs x86 diferentes, desde los primeros Intel 386 hasta los procesadores «Intel y AMD x86-64»
más recientes, que pueden incluso no haber llegado al mercado todavía.
Debido a esto, Bochs es capaz de ejecutar la mayoría de los «Sistemas Operativos»
dentro de sus «Entornos emulados»
, incluyendo «Linux, DOS o Microsoft Windows»
. Bochs fue escrito originalmente por Kevin Lawton, y todavía es quien actualmente mantiene dicho proyecto.
Los «Entornos emulados»
o Bochs pueden ser compilados y usados en una variedad de modos, algunos de los cuales están aún en desarrollo. Aunque lo normal es usarlo para proporcionar una emulación completa de PC x86, incluyendo el procesador x86, los dispositivos de hardware y la memoria.
De manera tal, de poder ejecutar eficaz y eficientemente los «Sistemas Operativos»
junto a todo el Software instalado dentro del Bochs, como si los mismos estuviesen dentro como una máquina real dentro de otra máquina.
Es decir, que Bochs por ejemplo, puede permitir que un Ordenador con un moderno «Sistema Operativo»
tipo Unix/X11, pueda ejecutar un antiguo «Sistema Operativo Windows 95»
y su software asociado, simplemente mostrando sobre el «Sistema Operativo Host»
una ventana, como si estuviese simulando un monitor extra en el ordenador usado.
Bochs: Emulador de Sistemas Operativos
Características generales
Entre las características destacadas que se pueden mencionar de Bochs están:
- Es un Emulador de PC IA-32 (x86) libre y altamente adaptable y escrito en C++
- Es multiplataforma, es decir, cuenta con instaladores para Windows (.exe de 32/64 Bit) y Linux (.tar.gz y .rpm) y en formato “.deb” dentro de diferentes repositorios de ciertas Distros basadas en DEBIAN.
- Capaz de emular antiguas Plataformas de Hardware: Intel 386 y 486, Pentium I, II, III y IV, y hasta una CPU con arquitectura x86-64. También puede emular algunos clásicos ejemplares de AMD, como el K6-2 y el Athlon 64 .
- Capaz de emular viejos Sistemas Operativos: GNU, GNU/Linux, *BSD, FreeDOS, MS-DOS y Windows 95/NT, Vista y Seven.
- Capaz de emular viejas instrucciones de CPU: MMX, SSEx y 3DNow
- Es muy utilizado en la depuración de Sistemas Operativos, ya que lleva un registro de errores y de volcado de archivos.
- Permite emular todo el HW necesario dentro de un Sistema Operativo huésped, antes o durante la ejecución del Emulador con el Sistema Operativo Huésped.
- Su interfaz gráfica de usuario no es la más robusta o intuitiva, pero es muy personalizable mediante la edición de su archivo de configuración llamado bochsrc.txt.
- Bochs está publicado bajo la LGPL de GNU, por parte de MandrakeSoft (ahora llamado Mandriva).
- Su nombre fonéticamente, se pronuncia igual que la palabra inglesa “Box”. Esto para hacer un juego de palabras con dicha palabras, que en español esta significa “Caja”. Término muy utilizado para referirse a los Entornos emulados de Arquitecturas de Ordenador y Sistemas Operativos.
Nota: Para mayor información sobre Bochs, se puede a parte de consultar su página web oficial, los siguientes enlaces: Sourceforge, DEBIAN, Linux.com.
Nuevas características de la versión 2.6.10
La nueva versión 2.6.10, liberada el 1 de diciembre de 2019 viene con los siguientes cambios:
- CPU: Correcciones para la corrección de la emulación de la CPU (correcciones críticas para PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 y emulación VMX).
- CPU: Soporte implementado para emulación de instrucciones AVX-512 VBMI2/VNNI/BITALG, VAES, VPCLMULQDQ / GFNI.
- VMX: Implementación de protección de subpáginas basada en EPT.
- CPUID: Añadidos nuevos modelos de CPU Skylake-X, Cannonlake e Icelake-U
- CPUID: Implementación de informes de prevención de ataques de canal lateral y registros MSR correspondientes, habilitado para Icelake-U.
- Añadido soporte básico: Para el chipset PCI/AGP i440BX, para la emulación de Voodoo Banshee / Voodoo3 y para DDC, para los adaptadores compatibles con VGA.
- Emulación HPET implementada: Portado desde Qemu.
Nota: Para ampliar esta información puede abrirse el enlace oficial siguiente: Cambios en la versión 2.6.10
Diferencia entre Bochs y otros Emuladores
«Bochs»
es mucho más específico en materia de configuración de procesadores, buses y puertos que otros emuladores tradicionales, como por ejemplo, «VirtualBox»
. Ya que, los Emuladores tradicionales suelen usar diferentes niveles de virtualización muy eficientes, mientras que «Bochs»
es un completo Entorno de emulación que provee de muchas más funciones. Es decir, interpreta las instrucciones del programa una a una en lugar de usar técnicas de virtualización.
Entre esas funciones suelen estar:
- El acceso a varios tipos de procesadores
- La carga de BIOS alternativos
- La modificación de parámetros del RTC,
- La especificación del protocolo de comunicación en un teclado
Entre muchas otros ítems, parámetros o valores muy específicos y avanzados. Lo cual lo hace muy especial sobre todo a la hora de querer, por ejemplo, usar un programa que solo puede ser ejecutado sobre hardware antiguo, y el mismo no puede conseguirse de forma física pero si de forma emulada.
Por último, «Bochs»
usa imágenes de emulación con el formato “.img”, lo cual por lo general, obliga a invertir tiempo para crear colecciones de ellas. «Bochs»
no es ideal si se requiere alto rendimiento, ya que, privilegia el emular con precisión, a costa del buen rendimiento. Además, no es más fácil de usar comparado con otros, como VirtualBox o VMWare, pero tiene buena documentación, la cual toma tiempo estudiarla y dominarla.
Conclusión
Esperamos que está “pequeña pero útil publicación” sobre este excelente «Emulador de Ordenadores y Sistemas Operativos de código abierto»
para arquitecturas de 32 Bits IA-32 (x86) llamado «Bochs»
, que entre muchas bondades, es altamente portátil, está escrito en C++, y se ejecuta en las plataformas más populares, sea de mucho interés y utilidad, para toda la «Comunidad de Software Libre y Código Abierto»
y de gran contribución a la difusión del maravilloso, gigantesco y creciente ecosistema de aplicaciones de y para «GNU/Linux»
.
Por ahora, si te ha gustado esta «publicación»
, no dejes de compartirla con otros, en tus sitios web, canales, grupos o comunidades favoritas de redes sociales, preferiblemente libres y abiertas como Mastodon, o seguras y privadas como Telegram.
O simplemente, visita nuestra página de inicio en DesdeLinux para leer otras interesantes publicaciones sobre «Software Libre»
, «Código Abierto»
, «GNU/Linux»
y demás temas relacionados con la «Informática y la Computación»
, y la «Actualidad tecnológica»
.