Bochs
# Bochs

Bochs [bɔks] ist ein freier x86- und AMD64-Emulator (x86-Architektur) 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.

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 mit PowerPC-Prozessor oder unter Solaris auf der SPARC-Architektur ein x86-Gastsystem wie Windows nutzen.

Inzwischen sind auch Varianten entstanden, wie etwa die Portierung von Bochs auf die PlayStation Portable, das iPhone oder den GP2X.

## Virtuelle Hardware

Bochs emuliert die komplette Hardware eines IBM-kompatiblen PC. Dadurch ist die Ausführungsgeschwindigkeit im Verhältnis zur Geschwindigkeit des Wirtsystems sehr langsam, jedoch ist dadurch die virtuelle Hardware auf jedem Wirtsystem gleich. Diese besteht zu einem Minimum aus:

* Prozessor (englisch Central Processing Unit, CPU)
* Programmable Interval Timer (PIT)
* Programmable Interrupt Controller (PIC)
* DMA-Controller für Speicherdirektzugriff
* Arbeitsspeicher (RAM und BIOS-ROM)
* eine Grafikkarte (am häufigsten wird eine VGA-Karte emuliert)
* Intel-8042-Controller für Tastatur und Maus
* Echtzeituhr (englisch Real Time Clock, RTC) inklusive Batterie-gepuffertem NVRAM
* diverse Hauptplatinen-Schaltkreise (englisch integrated circuits, ICs), die die genannten Bauteile virtuell miteinander verbinden

Damit der virtuelle PC wie ein echter PC verwendet werden kann, emuliert Bochs zusätzlich Anschlüsse für virtuelle Festplatten, Audio über eine virtuelle Soundkarte und eine Netzwerkkarte. Dies ist u. a. folgende virtuelle Hardware:

* NE2000-kompatible Netzwerkkarte (ISA oder PCI) oder E1000 (PCI)
* eine Soundkarte vom Typ Sound Blaster 16 (ISA) oder ES1370 (PCI)
* ein PCI-Controller (i440FX / i430FX / i440BX)
* IDE-Controller
* SCSI-Controller
* Floppy-Disk-Controller
* APIC
