Jump to content

Bochs 2.4 released


Recommended Posts

PC emulator

 

WHAT IS BOCHS?

 

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,

Pentium/PentiumII/PentiumIII/Pentium4 or x86-64 CPU, including optional

MMX, SSEx and 3DNow! instructions. Bochs is capable of running

most Operating Systems inside the emulation, for example Linux, DOS,

Windows 95/98/NT/2000/XP or Windows Vista.

Bochs was written by Kevin Lawton and is currently maintained by

the Bochs project at "http://bochs.sourceforge.net".

 

 

--------------------------------------------------------------------------------

Changes:

Changes in 2.4 (May 3, 2009):

 

Brief summary :

 

- Added graphical Bochs debugger frontend for most of the supported platforms.

- Thanks for Chourdakis Michael and Bruce Ewing.

- Many new CPU features in emulation

- Support for > 32 bit physical address space and configurable MSRs

- VMX, 1G pages in long mode, MOVBE instruction

- Bugfixes for CPU emulation correctness, debugger and CPU instrumentation.

- New config interface 'win32config' with start and runtime menu

- USB: added OHCI support, external hub and cdrom

- Added user plugin interface support.

 

Detailed change log :

 

- CPU and internal debugger

- Support for VMX hardware emulation in Bochs CPU, to enable configure with

--enable-vmx option

Nearly complete VMX implementation, with few exceptions:

- Dual-monitor treatment of SMIs and SMM not implemented yet

- NMI virtualization, APIC virtualization not implemented yet

- VMENTER to not-active state not supported yet

- No advanced features like Extended Page Tables or VPID

- Support for configurable MSR registers emulation, to enable configure with

--enable-configurable-msrs option

Look for configuration example in .bochsrc and msrs.def

- Support new Intel Atom® MOVBE instruction, to enable configure with

--enable-movbe option

- Support for 1G pages in long mode, to enable configure with

--enable-1g-pages option

- Support for > 32 bit physical address space in CPU. Up to 36 bit could be seen in legacy mode (PAE) and up to 40 bit in x86-64 mode.

Still support the same amount of the physical memory in the memory object,

so system with > 4Gb of RAM yet cannot be emulated.

To enable configure with --enable-long-phy-address option.

- Implemented modern BIOSes mode limiting max reported CPUID function to 3 using .bochsrc CPU option. The mode is required in order to correctly install and boot WinNT.

- Added ability to configure CPUID vendor/brand strings through .bochsrc (patch from @SF by Doug Reed).

- Many bugfixes for CPU emulation correctness (both x86 and x86-64).

- Updated CPU instrumentation callbacks.

- Fixed Bochs internal debugger breakpoints/watchpoints handling.

 

- Configure and compile

- Added ability to choose Bochs log file name and Bochs debugger log file name from Bochs command line (using new -log and -dbglog options)

- Removed Peter Tattam's closed source external debugger interface from the code.

- Removed --enable-guest2host-tlb configure option. The option is always enabled for any Bochs configuration.

- Removed --enable-icache configure option. The option is always enabled for any Bochs configuration. Trace cache support still remains optional and could be configured off.

- Added configure option to compile in GUI frontend for Bochs debugger, to enable configure with --enable-debugger-gui option. The GUI debugger frontend is enabled by default with Bochs debugger.

- Removed --enable-port-e9-hack configure option. The feature now could be configured at runtime through .bochsrc.

- Added configure option to enable/disable A20 pin support. Disabling the A20 pin support slightly speeds up the emulation.

- reduced dependencies between source files for faster code generation

 

- BIOS

- Added S3 (suspend to RAM) ACPI state to BIOS (patch by Gleb Natapov)

- Implemented MTRR support in the bios (patches by Avi Kivity and Alex Williamsion with additions by Sebastian Herbszt)

- Bug fixes

 

- I/O Devices

- Added user plugin support

- remaining devices converted to plugins: pit, ioapic, iodebug

- added 'plugin_ctrl' bochsrc option to control the presence of optional device plugins without a separate option. By default all plugins are enabled.

- added register mechanism for removable mouse and keyboard devices

- Hard drive / cdrom

- PACKET-DMA feature now supported by all ATAPI commands

- ATAPI command 0x1A added (based on the Qemu implementation)

- sb16

- Added ALSA sound support on Linux (PCM/MIDI output)

- FM synthesizer now usable with MIDI output (simple piano only)

- Fixed OPL frequency to MIDI note translation

- Fixed MIDI output command

- keyboard

- added keyboard controller commands 0xCA and 0xCB

- USB

- USB code reorganized to support more HC types and devices

- added USB OHCI support written by Ben Lunt

- added external USB hub support (initial code ported from Qemu)

- added USB cdrom support (SCSI layer ported from Qemu)

- added status bar indicators to show data transfer

- VGA

- VBE video memory increased to 16 MB

- implemented changeable VBE LFB base address (PCI only, requires latest BIOS and VGABIOS images)

- I/O APIC

- implemented I/O APIC device hardware reset

 

- Config interface

- new config interface 'win32config' with start and runtime menu is now the default on Windows ('textconfig' is still available)

- win32 device config dialogs are now created dynamicly from a parameter list (works like the wx ParamDialog)

- changes in textcofig and the wx ParamDialog for compatibility with the new win32 dialog behaviour

- Bochs param tree index keys are case independent now

- some other additions / bugfixes in the simulator interface code

 

- Misc

- updated LGPL'd VGABIOS to version 0.6c

- Updated Bochs TESTFORM to version 0.4

>> Get it HERE.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...