[go: up one dir, main page]

Jump to content

Bochs

From Wikipedia, the free encyclopedia
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] Edit this on Wikidata / 10 March 2024
Repository
Written inC++
Operating systemLinux, BSD (FreeBSD, NetBSD, OpenBSD, Darwin OS, macOS), Windows, Windows CE along with its derivatives, OS/2, BeOS, MorphOS, AmigaOS, Android OS, PlayStation 2[5]
PlatformIA-32, x64
Available inEnglish
TypeEmulator
LicenseGNU Lesser General Public License
Websitebochs.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.

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

[edit]

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

[edit]

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

[edit]
Class Device
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.

References

[edit]
  1. ^ a b Gael Duval (March 23, 2000). "MandrakeSoft buys Bochs for Linux and commits it to Open Source". Archived from the original on June 6, 2011. Retrieved September 21, 2011.
  2. ^ Thinking inside and outside the Bochs with Kevin Lawton Archived 2024-06-26 at the Wayback Machine, By Ken Hess, August 25, 2011, ZDNet
  3. ^ Bochs was written by Kevin Lawton starting in 1994. Archived 2022-10-23 at the Wayback Machine, 1.1. What is Bochs?, Chapter 1. Introduction to Bochs, Bochs User Manual
  4. ^ https://github.com/bochs-emu/Bochs/releases/tag/REL_2_8_FINAL. {{cite web}}: Missing or empty |title= (help)
  5. ^ "Features". bochs.sourceforge.io. Retrieved 20 October 2016.
  6. ^ "BFE : about". SourceForge. Archived from the original on 28 December 2016. Retrieved 27 December 2016.
  7. ^ "Bochs User Manual - Features". Retrieved 2016-04-06.