• Print

Bochs 2.6.9


Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Bochs can be compiled to emulate many different x86 CPUs, from early 386 to the most recent x86-64 Intel and AMD processors which may even not reached the market yet.


Bochs is capable of running most Operating Systems inside the emulation including Linux, DOS or Microsoft Windows. Bochs was originally written by Kevin Lawton and is currently maintained by this project.


Bochs can be compiled and used in a variety of modes, some which are still in development. The 'typical' use of bochs is to provide complete x86 PC emulation, including the x86 processor, hardware devices, and memory. This allows you to run OS's and software within the emulator on your workstation, much like you have a machine inside of a machine. For instance, let's say your workstation is a Unix/X11 workstation, but you want to run Win'95 applications. Bochs will allow you to run Win 95 and associated software on your Unix/X11 workstation, displaying a window on your workstation, simulating a monitor on a PC. 


Changes in 2.6.9 (not yet released):

Brief summary :

  • Bugfixes for CPU emulation correctness.
  • Added Android host platform support.
  • Added USB EHCI device emulation support.
  • Added USB floppy (UFI/CBI) support.
  • Added ethernet module 'socket', designed to interconnect Bochs instances.
  • Show textconfig at runtime in the Bochs VGA window (gui console).


Detailed change log :

  • General
    • Added new log action "warn", designed to show a message box on error events.
    • Show message box before exit if log action is set to "fatal".
    • Added macro BX_FATAL for all cases when continuing is not recommended, since it can cause an application crash or incorrect simulation behaviour.
  • Configure and compile
    • Added Android host platform support.
    • Configure script now prints warnings for features not maintained yet.
  • GUI and display libraries
    • Show the runtime configuration in the Bochs VGA window (gui console) instead of console / xterm (rfb, sdl, sdl2, vncsrv and X11 guis).
    • SDL2: Added get/set clipboard text support.
    • Bugfixes for CPU emulation correctness (critical bugfix for x86-64 and AVX opcodes emulation, fixed assertion failures in proc_ctrl.cc)
    • VMX: Implemented Page Modification Logging (PML)
    • VMX: Implemented TSC Scaling Extension
    • Paging: Implemented Protection Keys
    • Implemented XSAVES/XRSTORS extensions
    • Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
    • Implemented RDPID instruction
    • Implemented VPOPCNTD/VPOPCNTQ AVX512 instructions
    • CPUDB: Added AMD Ryzen configuration to CPUDB
  • I/O Devices
    • Busmouse
      • Added standard bus mouse support in addition to the existing InPort emulation code. (patch by Ben Lunt).
    • Hard drive
      • Implemented lock mechanism for hard disk images. An image that is opened in r/w mode cannot be used multiple times (e.g. by another Bochs session).
      • Several fixes in some disk image modes.
    • Serial / Parallel ports
      • Added support for changing output file at runtime.
    • Networking
      • Added ethernet module 'socket', designed to interconnect Bochs instances with external program 'bxhub' (simulating a multi-port ethernet hub).
      • Now creating separate plugins for each network driver implementation (slirp, win32, etc.).
    • Sound
      • Added PCM output data resampling in a separate thread. The resampler requires either libsamplerate or the SoX resampler library installed.
      • SDL: Added audio capture support (requires library version >= 2.0.5).
      • Now creating separate plugins for each sound driver (alsa, win, etc.).
    • USB
      • Added USB EHCI device emulation support (EHCI core ported from Qemu).
      • Added USB floppy (UFI/CBI) support (patch by Ben Lunt).
      • Added asynchronus USB packet completion support (needed by disk/cdrom seek and read/write latency emulation).
      • Implemented USB remote wakeup mechanism.
      • Fixed NAK response handling in all USB HCs.
      • USB printer: added support for changing output file at runtime.
      • Added common USB device option "debug" to turn on BX_DEBUG reporting at connection time.
    • Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.




Loading video...



blog comments powered by Disqus