What is Bochs?

# Welcome to the Bochs x86 PC Emulation Software Home Page!

# What is Bochs?

Bochs is a portable x86 PC emulation software package that emulates enough of the x86 CPU, related AT hardware, and BIOS to run DOS, Windows '95, Minix 2.0, and other OS's, all on your workstation.

Bochs is an open source project distributed under the GNU Lesser General Public License. It was originally a commercial product, but in March 2000 MandrakeSoft bought Bochs and committed it to Open Source. Here is the press release.

Bochs now compiles/runs on many platforms. See the following list for supported platforms and special notes:

- Unix/X11: This is my main development platform.
- BeOS: I also did this port, originally to R3/PPC using CodeWarrior. It now works on R4/x86 with egcs. Simon Huet picked up maintaining/reworking the BeOS GUI port. Check out Simon's BeBochs page.
- Win32: This port was done by David Ross. I've enhanced the build process for Win32. You can compile with either the MS Visual C++ 5.0 or GNU-Win32 environments. Go to Compiling Bochs on Win32
- OS/2: Nick Behnken used PE2LX to translate David Ross's Win32 port to an OS/2 program. Check out Nick Behnken's page.
- OS/2: Craig Ballantyne ported bochs to OS/2. I will integrate this back into the main bochs source soon. Check out the guiSoft Corp. home page.
- Macintosh: David Batterham drbatter@socs.uts.edu.au or drbatter@yahoo.com ported bochs to the Mac. His changes are integrated, though it is work in progress. He compiled with CodeWarrior Pro R1 (CW12), and included a project file 'Bochs.proj' in the top-level directory of source code, which you may need to modify. I added a '--with-macos' option to configure, so you can use a Unix machine to generate header files for the Mac. Check out David's MacBochs website. David has not had time to maintain the page or the Mac port since early 2000. If you have Mac development tools and want to contribute, contact the developers list.
- FreeDOS for Bochs: David Batterham also offers information on running FreeDOS inside of bochs. You can download a disk image with a pre-installed copy of FreeDOS, a completely free DOS-like operating system. Check out his website at http://members.xoom.com/macbochs/freedos.html.
  For more info about FreeDOS, see FreeDOS Web page

There's more! You can find more detailed testing information on the testing status page on bochs.sourceforge.net.

# Platforms:

Here is a list of platforms on which Bochs has successfully been compiled and run, starting as of version bochs-971118a. Note that, Bochs will compile/run on many other platforms, but I'm starting the list from scratch again. If you have had success with Bochs, please let me know so that I can add your platform to this list. kevin@bochs.com

Architecture | O.S. | GUI | compiler | Bochs version | tested with | tested by
--- | --- | --- | --- | --- | --- | ---
Sparc | Solaris 2.4 | X11R6 | gcc 2.7.2.1 | 971118a | Win'95 | Kevin Lawton
X86 PC | Solaris 7 | X11R6 | gcc 2.8.1 | 990708a | Win'95 boot disk only | Danilo Paliani
x86 PC | BeOS R4 | BeOS R4 | gcc 2.9-beos-980929 | 990108+ | Win'95 | Kevin Lawton
BeBox PPC | BeOS PR2 | BeOS PR2 | CodeWarrior | 971118a | Win'95 | Kevin Lawton
x86 PC | Linux 2.0.30 | X11R6 | gcc 2.7.2.1 | 971118a | Win'95 | Kevin Lawton
x86 PC | FreeBSD 2.2/3.0 | X11R6 | gcc 2.7.2.1 | 971118a | DOS | msmith@gsoft.com.au
x86 PC | Windows '98 | Windows '98 | MS Visual C++ 5.0 | 980629 | DOS | Kevin Lawton
Mac? | MacOS? | MacOS? | CodeWarrior Pro R1 (CW12) | 981222+ | Win'95 text mode | drbatter@socs.uts.edu.au
Amiga 2000 (m68k) | Debian Linux 2.0 | X11? | gcc? | 981102 | ? | Eckehard Schaefer
Alpha EV5 | Digital Unix 5.0 pre-release | X11R6.3 | Digital C++ | 990110b | Win95 boot disk only | Larry Gensch
Compaq Alpha Station 600 | Compaq Tru64 UNIX 5.1 | X11 | Compaq C V6.3-025 | bugfix2 | Linux | Kenneth Block
AMIGA1200/68060 | Linux/m68k 2.2.0 pre6 (RedHat5.1) | X11R6.3 | gcc 2.7.2.3 | 990110b | FreeDOS | syun@gol.com
PC/Pentium | Linux 2.0.35 (RedHat5.1) | X11R6.3 | egcs-2.91.57 | 990110b | FreeDOS | syun@gol.com
SGI Mips R5000 Indy | IRIX sage 6.5 | X11R6 | gcc 2.8.1 | 990127 | dos 6.22 | mgoumans@cray.org
Mips | IRIX 6.5 | X11R6 | SGI CC 7.2.1 | 981229 | Win'95 | ltouati@ogilvy.net
PowerMac 7300/400MP | LinuxPPC R4 (kernel 2.2.1) | X11R6.3 | egcs-2.91.60 | 990127 | DOS | locutus@MIT.EDU
StrongARM | netbsd1.3.2 arm32 | X11R6.3 | gcc 2.7.2.1 | 990127d | PicoBSD | Andrew Coles
RS/6000 PowerPC | AIX 4.3.2 | X11R6 | gcc 2.95.2 | 991114a | FreeDOS | Christoph Wissing
G4 PowerPC | Yellowdog Linux | X11R6 | gcc 2.95.2 | bugfix2 | Win95,DOS | Brad Davis

# Operating Systems:

For quick reference, here is a table listing the status of bochs' ability to run various Operating Systems. If you have run other ones not listed here, or would like to see new ones, please send me email. kevin@bochs.com See the chart above for more information. This information may have changed since it was last updated, and is provided for a brief overview. There are a lot of factors involved.

Operating System | Status
--- | ---
Windows 95 | works, but may fail during install
DOS 6.2 | works, SCANDISK.EXE hangs
RedHat 5.x boot floppy | works
Pragma Linux | works
FreeDOS | works
Roadrunner | works
pico BSD | works
Topsy | works
QNX version 3 demo disk | boot fails
Solaris 7/x86 "Device Configuration Assistant" | unknown
Interactive Unix | unknown

# What can you do with Bochs?

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.

Currently, bochs emulates the x86 CPU completely in software, and does not run any instructions natively, even if you are running it on an x86 machine.

Bochs may be of interest to you for other special modes, or uses. You may wish to use only the device models included with bochs in combination with your own CPU emulation, use it's CPU emulation with another set of device models, use it's built in non-intrusive debugger, co-emulate the bochs CPU model against another CPU emulator/simulator, or use data compiled from instrumentation facilities to analyze use of the x86 instruction set.

In addition to running x86 software on your workstation, bochs may be of interest to x86 clone projects, x86 device driver development teams, PC hardware development, and many other uses.