Bochs

Last updated
Bochs
Original author(s) Kevin Lawton [1] [2]
Developer(s) Community based; owned by Mandriva
Initial release1994;30 years ago (1994) [3]
Stable release
2.8 [4]   OOjs UI icon edit-ltr-progressive.svg / 10 March 2024
Repository
Written in C++
Operating system Linux, BSD (FreeBSD, NetBSD, OpenBSD, Darwin OS, macOS), Windows, Windows CE along with its derivatives, OS/2, BeOS, MorphOS, AmigaOS, Android OS, PlayStation 2 [5]
Platform IA-32, x64
Available in English
Type Emulator
License GNU Lesser General Public License
Website bochs.sourceforge.io

Bochs (pronounced "box") is a portable IA-32 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under the GNU Lesser General Public License. It supports emulation of the processor(s) (including protected mode), memory, disks, display, Ethernet, BIOS and common hardware peripherals of PCs.

Contents

Many guest operating systems can be run using the emulator including DOS, several versions of Linux, Xenix, Microsoft Windows, BSDs and Rhapsody OS (precursor of Mac OS X Public Beta). Bochs runs on many host operating systems, including Android OS, Linux, macOS, PlayStation 2, Windows, and Windows CE along with its derivatives.

Bochs is mostly used for operating system development (when an emulated operating system crashes, it does not crash the host operating system, so the emulated OS can be debugged) and to run other guest operating systems inside already running host operating systems. It can also be used to run older software — such as PC games — which will not run on non-compatible, or too fast computers.

History

Bochs started as a program with a commercial license, at the price of US$25, for use as-is. If a user needed to link it to other software, that user would have to negotiate a special license. That changed on 22 March 2000, when Mandrakesoft (later Mandriva) bought Bochs from lead developer Kevin Lawton and released it for Linux under the GNU Lesser General Public License. [1] Support for hosting on Windows XP ended with version 2.6.10.

Use

Bochs emulates the hardware needed by PC operating systems, including hard drives, CD drives, and floppy drives. It doesn't utilize any host CPU virtualization features, therefore is slower than most virtualization (as opposed to emulation) software. It provides additional security by completely isolating the guest OS from the hardware. Bochs also has extensive debugging features. It is widely used for OS development, as it removes the need for constant system restarts (to test code).

BFE, described as a "Graphical Debugger Interface for the Bochs PC Emulator", is a graphical interface for the debugger within the Bochs PC emulator that makes it possible to debug software step-by-step at the instruction and register level, much like Borland's Turbo Debugger. [6]

Emulated hardware

ClassDevice
Video card Cirrus Logic CL-GD5430 ISA
Cirrus Logic CL-GD5446 PCI
3dfx Interactive Voodoo Banshee / Voodoo3
Sound card Sound Blaster 16 (ISA, no Plug & Play), ES1370 (PCI), Basic Sound Device
Ethernet network card NE2000 (ISA/PCI) Ethernet or Intel(R) 82540EM Gigabit Ethernet adapter (PCI) [7]
Chipset Intel 430FX PCI, Intel 440FX PCI and Intel 440BX AGP northbridge. PIIX3 and PIIX4 southbridge. For PCI cards there are 5 PCI slots.
USB Root hub and the devices mouse (optional), tablet, keypad (default), disk.
SMP Can simulate up to 8 CPUs.
Enhanced BIOS or SeaBIOS ElTorito, EDD, APM, PCIBIOS, PCI interrupt routing table, PnP, ACPI, SMM, MPS and VBE.

Related Research Articles

<span class="mw-page-title-main">Hercules (emulator)</span> Multi-platform emulator for mainframe software

Hercules is a computer emulator allowing software written for IBM mainframe computers and for plug compatible mainframes to run on other types of computer hardware, notably on low-cost personal computers. Development started in 1999 by Roger Bowler, a mainframe systems programmer.

<span class="mw-page-title-main">UAE (emulator)</span> Computer emulator which emulates Commodore Internationals Amiga.

UAE is a computer emulator which emulates the hardware of Commodore International's Amiga range of computers. Released under the GNU General Public License, UAE is free software.

In-circuit emulation (ICE) is the use of a hardware device or in-circuit emulator used to debug the software of an embedded system. It operates by using a processor with the additional ability to support debugging operations, as well as to carry out the main function of the system. Particularly for older systems, with limited processors, this usually involved replacing the processor temporarily with a hardware emulator: a more powerful although more expensive version. It was historically in the form of bond-out processor which has many internal signals brought out for the purpose of debugging. These signals provide information about the state of the processor.

Virtual PC is an x86 emulator for PowerPC Mac hosts and a virtualization app for Microsoft Windows hosts. It was created by Connectix in 1997 and acquired by Microsoft in 2003. The Mac version was discontinued in 2006 following the Mac transition to Intel, while the Windows version was discontinued in 2011 in favour of Hyper-V.

<span class="mw-page-title-main">DJGPP</span> Implementation of the GNU toolchain for DOS

DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

PearPC is an architecture-independent PowerPC platform emulator capable of running many PowerPC operating systems, including pre-Intel versions of Mac OS X, Darwin and Linux. It is released under the terms of the GNU General Public License (GPL). It can be executed on Microsoft Windows, Linux, FreeBSD and other systems based on POSIX-X11. The first official release was made on May 10, 2004.

<span class="mw-page-title-main">DOSBox</span> Free DOS emulator

DOSBox is a free and open-source emulator which runs software for MS-DOS compatible disk operating systems—primarily video games. It was first released in 2002, when DOS technology was becoming obsolete. Its adoption for running DOS games is widespread, with it being used in commercial re-releases of those games as well.

<span class="mw-page-title-main">Basilisk II</span> Open-source 68k Macintosh emulator

Basilisk II is an emulator which emulates Apple Macintosh computers based on the Motorola 68000 series. The software is cross-platform and can be used on a variety of operating systems.

Gavare's eXperimental Emulator is a computer architecture emulator being developed by Anders Gavare. It is available as free software under a revised BSD-style license. In 2005, Gavare changed the name of the software project from mips64emul to GXemul. This was to avoid giving the impression that the emulator was confined to the MIPS architecture, which was the only architecture being emulated initially.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

Platform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors.

twoOStwo was a commercial software product developed by Parallels Software Studio. The workstation software consisted of a virtual machine suite for Intel x86-compatible computers which allowed the creation and execution of multiple x86 virtual computers simultaneously. Each virtual machine instance could execute its own guest operating system including Windows, Linux, OS/2 and BSD variants.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

<span class="mw-page-title-main">VirtualBox</span> Open-source x86 virtualization application

Oracle VM VirtualBox is a hosted hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.

MagiC is a third party and now open-sourced multitasking-capable TOS-compatible operating system for Atari computers, including some newer clone systems manufactured later. There are also variants that run as part of Mac and PC emulation environments, as well as on macOS Intel-Mac computers.

<span class="mw-page-title-main">SeaBIOS</span> Open-source implementation of x86 BIOS

SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.

In computing, a system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".

<span class="mw-page-title-main">PCem</span> PC emulator for Windows and Linux

PCem is an IBM PC emulator for Windows and Linux that specializes in running old operating systems and software that are designed for IBM PC compatibles. Originally developed as an IBM PC XT emulator, it later added support for other IBM PC compatible computers as well.

References

  1. 1 2 Gael Duval (March 23, 2000). "MandrakeSoft buys Bochs for Linux and commits it to Open Source" . Retrieved September 21, 2011.
  2. Thinking inside and outside the Bochs with Kevin Lawton, By Ken Hess, August 25, 2011, ZDNet
  3. Bochs was written by Kevin Lawton starting in 1994., 1.1. What is Bochs?, Chapter 1. Introduction to Bochs, Bochs User Manual
  4. Error: Unable to display the reference properly. See the documentation for details.
  5. "Features". bochs.sourceforge.io. Retrieved 20 October 2016.
  6. "BFE : about". SourceForge. Retrieved 27 December 2016.
  7. "Bochs User Manual - Features" . Retrieved 2016-04-06.