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. Currently, bochs can be compiled to emulate a 386, 486 or Pentium CPU. Bochs is capable of running most Operating Systems inside the emulation including Linux, Windows 95, DOS, and recently Windows NT 4. Bochs was 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.
What is new in this release:
- CPU / CPUDB
- Bugfixes for CPU emulation correctness (critical bugfix for x86-64 emulation)
- Memory type calculation support for Bochs debugger and instrumentation,
to enable configure with --enable-memtype option.
- CPUDB: Added Pentium (P54C) configuration to CPUDB
- CPUDB: Added Broadwell ULT configuration to CPUDB
- Updated definition of instrumentation callbacks, see description in
instrumentation.txt / Fixed instrumentation examples
- Configure and compile
- Configure option --enable-fast-function-calls now also used for MSVC nmake.
- Some configure fixes for the GTK debugger support.
- GUI and display libraries
- The VGA update timer mode now can be selected with the 'vga' option.
- Release all pressed keys when the simwindow gets back the keyboard focus.
- Win32 gui: Captured mouse cursor now really trapped in window.
- SDL2: Implemented yes/no dialog (e.g. for VVFAT commit).
- Some fixes for wxWidgets 3.0 and unicode version compatiblity.
- Full save/restore support for enhanced gui debugger settings (window+font).
- Added debugger support for the term gui using a pseudo-terminal.
- I/O Devices
- Hard drive
- Added Oracle(tm) VM VirtualBox image support (VDI version 1.1)
- Re-enable "bulk I/O" repeat speedups extension.
- Some lowlevel cdrom code fixes for Windows and Linux.
- SB16: Fixed OPL chip detection by implementing ISA bus delay.
- SB16: Ported OPL3 emulation from DOSBox and partly removed legacy code.
- ES1370: Added MIDI UART output support.
- ES1370: Fixed critical bug that made Win9x drivers crash.
- Major rewrite of the lowlevel sound code.
- Added mixer thread support (required for all modules except 'sdl').
- New mixer and SDL mixer are polling data from the PCM output buffers,
the PC speaker beep generator and the OPL3 FM generator.
- PCM format conversion to 16 bit signed little endian.
- Added sound 'file' module for VOC, WAV, MID and raw data output
and added dual output support (device+file) in midi/wave mode 3.
- Added capability to set up the sound driver per service.
- Fixed "Read ID" command for single-sided media (patch by Ben Lunt).
- ROM BIOS
- Fixed keyboard scancode processing after keyboard intercept.
- Fixed rombios32 code to avoid incorrect ACPI table detection.
What is new in version 2.6.6:
- CPU / CPUDB
- allow sandy bridge configuration even when AVX is not compiled in
- Configure and compile
- fixed compilation error when 3dnow support is enabled
- speedup Visual Studio build by almost 20% by adding /Gr compiler option
- fixed minimizing win32 gui window and resolution change while minimized
- added compiled SeaBIOS 1.7.5 image into Bochs tree along with Bochs BIOS images
- documentation fixes and updates