Bochs ist ein freier x86- und AMD64-Emulator und Debugger, der den Bedingungen der LGPL unterliegt.
Viele Betriebssysteme, wie etwa Windows oder Linux, können unter Bochs betrieben werden. Ebenso ist Bochs für viele verschiedene Betriebssysteme erhältlich.
Bochs dient auch als Plattform, um etwa ein Betriebssystem oder hardwarenahe Anwendungen für einen PC zu entwickeln und zu testen. Ziel der Entwickler ist es, eine vollständige PC-Kompatibilität zu erreichen. Da Bochs allerdings als reiner Emulator die Maschinenbefehle nicht direkt ausführt, sind die Ausführungsgeschwindigkeiten entsprechend niedriger als bei virtuellen Maschinen wie VirtualBox, VMware Workstation oder Virtual PC.
(http://www.heise.de/software/screenshots/1249.jpg)
Bochs ist in der Lage, auch auf einer Nicht-x86-Architektur einen x86-Prozessor zu emulieren. So kann man zum Beispiel unter Mac OS X auf dem Apple Macintosh auf einem PowerPC-Prozessor oder unter Solaris auf einem Sun SPARC-Prozessor ein x86-Gastsystem wie Windows nutzen.
Changelog:
Changes in 2.5.1 (January 6, 2012):
- CPU / CPUDB
! Added Athlon64 (Venice) configuration to the CPUDB
- BMI: fixed EFLAGS after BMI instructions
- MSR: access to AMD extended MSR space was impossible due to a bug in RDMSR/WRMSR
- VMX: fixed VMFUNC instruction behavior to align with Intel SDM revision 041
- VMX: fixed Bochs PANIC when doing I/O access crossing VMX I/O permission bitmaps
- VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE got corrupted after
saving/restoring unusable FS selector
- VMX: fixed VirtualBox failures with VMX+EPT enabled
- Better report of supported CPUID features when not using pre-defined CPUID profile
- Debugger / Instrumentation
- fixed typo - closing SF bug [3461405] step all command fails in SMP mode
- instrumentation: added special indication for indirect call/jump
- Configure and compile
- fixed compilation err in instrumentation call (tasking.cc)
- fixed compilation err with x86 hw breakpoint enabled and CPU_LEVEL < 6
- fixed compilation issue under win32 --with-nogui
- added missing dependencies for cdrom_osx.o
- removed very old deprecated configure options from configure script
- I/O Devices
- fixed possible failures of PCI DMA transfers
- VVFAT: several fixes in the optional write support (passes test with XP)
- USB UHCI: some fixes to make it work in XP guest
- removed devices 'acpi', 'ioapic' and 'pci_ide' from optional plugin control
to avoid trouble
- Config interface / GUI and display libraries
- added VMX .bochsrc option to control VMX support on runtime
- fix for x86-64 .bochsrc option parsing (patch from @SF)
- fix for @SF bug: Crash on WIN2K - ID: 3454214
- added 'nokeyrepeat' option for the SDL and win32 gui
http://bochs.sf.net/
Release Notes
CPU:
Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
Implemented FCS/FDS Deprecation CPU feature
Implemented SHA instructions emulation
Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
Implemented AVX-512 instructions emulation (experimental)
CPUDB: Added Intel(R) Core(TM) i7-4770 CPU (Haswell) configuration to CPUDB
CPUDB: Added AMD A8-5600K APU (Trinity) configuration to CPUDB
Replace 'SSE' and 'AVX' .bochsrc option with single 'SIMD' option which controls presence
of all CPU SIMD extensions from SSE to AVX-512
Extra 5-10% emulation speedup with new trace linking optimization. The optimization
is enabled by default when configuring with --enable-all-optimizations option,
to disable trace linking optimization configure with --disable-trace-linking.
The optimization require to compile Bochs with at least -O2 optimization level on gcc.
Bochs Debugger and Instrumentation:
Added disam for Bochs internal instruction representation, especially useful for instrumentation
Updated definition of instrumentation callbacks, see description in
instrumentation.txt / Fixed instrumentation examples
added capability to use the gui debugger output window as a log viewer
General:
Increased max. device log prefix size to 6 and added / modified prefixes
plugin version now uses the native DLL handling code for all Windows ports
critical bugfixes in save/restore functionality
Configure and compile:
configure and compilation fixes for Cygwin and Visual Studio environment
configure option --enable-cdrom now only controls the presence of
platform-specific code for device access
building plugin version with MSVC nmake now supported
Config interface:
Added global sound control option for the driver and wave input/output
Added new bochsrc option to control the speaker output mode
Added support to specify the initial time for 'clock' option in ctime(3) string format
Added support for the LTDL_LIBRARY_PATH variable with MSVC plugins
All SB16 / ES1370 options are now changeable at runtime
textconfig: added menu item for saving configuration at runtime
Added bochsrc option for the Voodoo Graphics emulation (experimental)
I/O Devices:
Hard drive / CD-ROM:
seek latency implemented for ATA/ATAPI read commands
portable ISO image file access now available on all platforms
Networking:
added built-in slirp (user-mode networking) support (ported from Qemu)
removed the "slirp backend" support (required external slirp binary)
slirp/vnet: all supported TFTP extension options implemented now
Sound:
SB16 / ES1370: added volume control support for wave output
SB16: fixed audio distortion when playing stereo wave files
ES1370: added 'wavemode' support similar to the SB16
soundwin: added capability to specify the ID of the MIDI device to use
Serial:
Serial mouse detection fixes
Busmouse:
Non-functional device rewritten to make it work in DOS and Win95 guests
(use --enable-busmouse to configure and "mouse: type=bus" at runtime)
ROM BIOS:
PS/2 mouse function: allow setting mouse packet size to 4 for wheel support
GUI and display libraries:
Added new experimental gui 'vncsrv" using the LibVNCServer library
RFB: set maximum resolution to 1280x1024 (same as vncsrv)
RFB: don't wait for client connection on startup if timeout is set to 0
Added mouse wheel support to the rfb, vncsrv and wx guis
wx: added viewer window for the Bochs log output
win32: fixes and improvements for the fullscreen mode
Tools:
bximage utility rewritten in C++ for image creation, conversion, resize
and redolog commit. Now vmware4 and vpc images can be created.
http://bochs.sf.net/
Changelog
Changes in 2.6.7 (November 2, 2014):
- CPU / CPUDB
- Implemented AVX-512BW/AVX-512DQ/AVX-512VL extensions emulation.
- implemented AVX512-IFMA532 instructions emulation.
- implemented AVX512-VBMI instructions emulation.
- Bugfixes for CPU emulation correctness (critical fixes for AVX-512, CMPXCHG16B and VMX)
- Fixed Bochs segmentation fault crash with Handlers Chaining Speedups enabled when
compiling with gcc, especially with low optimization levels.
- Reverted removal of reporting Architectural Perfmon support in pre-defined CPUID modules.
Windows 8 and Windows 10 require Performance Monitoring to be reported to boot.
To workaround possible Windows 7 64-bit installation issues: use bx_generic CPUID module,
which doesn't report Performance Monitoring in CPUID.
- GUI and display libraries
- The VGA update timer and the status LED timer now always use the realtime mode
independent from the 'clock' option setting.
- Added native SDL2 GUI support to Bochs. To enable configure with --with-sdl2.
- Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
- Write enhanced gui debugger settings to file on exit and restore on initialization.
- I/O Devices
- USB
- xHCI model now emulates a NEC/Renesas uPD720202 device (patch by Ben Lunt).
- Added USB port specific option 'size' for VVFAT disks (range 128M ... 128G).
If the size is not specified or invalid, it defaults to 504M.
- Hard drive / HD image
- Fixed crash when using a "fixed" type VPC image.
- ROM BIOS
- Fixed int74_function() for 4-byte (wheel mouse) packets.
- LGPL'd VGABIOS updated from CVS (fixed building VBE modes list)
- Misc
- Visual Studio workspace files updated to VS2013Ex format.
- bximage_old/bxcommit: removed old obsolete image manipulation tools.
- Documentation fixes and updates.
http://bochs.sf.net/
Changelog
Changes in 2.6.8 (May 3, 2015):
- 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.
- Sound
- 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.
- Floppy
- 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.
http://bochs.sf.net/