Bochs ist ein freier x86-Emulator. Man kann damit einen virtuellen PC im Rechner emulieren und z.B. Windows oder GNU/Linux darin installieren.
Homepage: http://bochs.sourceforge.net
Lizenz: LGPL
Der Clou an Bochs ist, dass die Emulation auch auf nicht-i386-Plattformen funktioniert. Windows unter Solaris/SPARC oder MacOSX? Kein Problem!
Frühere Bochs-Versionen waren extrem langsam. Vor kurzem erschien die Version 2.0, die eine Verdoppelung der Geschwindigkeit mit sich brachte. Damit ist es auf jeden Fall benutzbar schnell.
QEMU hat eine ähnliche Funktion wie Bochs und ist wesentlich schneller.
Tipps & Tricks
- man sollte auf jeden Fall eine aktuelle Version 2.xx benutzen. Wenn man sein Debian deshalb nicht auf unstable bringen will, kann man sich auch von der bochs-Homepage die Quelle besorgen und selbst übersetzen:
- entweder via
# folgendes ist NUR für Textmode. Wenn Grafikmode gewünscht, entsprechend anpassen! # macht Probleme ("memory exhausted"): #./configure --enable-all-optimizations --with-term --enable-cdrom --enable-icache --enable-x86-64 # keine memory-exhausted Probs mit: ./configure --enable-all-optimizations --with-term --enable-cdrom make make install # installiert standardmäßig nach /usr/local
- oder noch besser verwendet man die beiliegenden Debian-Buildscripts und erzeugt ein .deb selbst.
- entweder via
- im Sourcetree liegt eine .bochsrc - die dorthin kopieren, von wo bochs gestartet wird (z.B. $HOME) und anpassen
- wichtig ist, die Pfade zu den BIOS-Dateien (z.B. /usr/local/share/bochs/...) anzupassen, die relativen Pfade in der Beispielconfig funktionieren nicht!
Tutorial
Bochs klingt für mich total interessant, um z.B mal andere LinuxDistributionen oder Betriebssysteme auszuprobieren, wenn man keine freie Platte oder Partition mehr hat.
Gibts hier wen, der auch mal Lust hat, das Programm zu erforschen? Vielleicht reichts hier ja mal zu einem kleinen HowTo ... -- StephanRössig 2003-09-07 17:51:17 - - - Hmm, keiner?
Auch wenn die letzte Release 2.0.2 vom Januar 2003 datiert, wird wohl doch fleißig weiter entwickelt, wie an den CVS-Release-Notes zu sehen ist ...
Momentan bekomme ich Bochs hier bei mir noch nicht richtig zum Laufen, da es schon bei einer simplen DOS-Bootdisk (W98 SE Rettungsdisk) Probleme gibt:
Beim Einrichten der Microsoft-Ramdisk kommt die Meldung, es sei nicht genügend Erweiterungsspeicher (mind. 2 MB) verfügbar. Dabei steht in der bochsrc der Eintrag für 32 MB Ram. Wer weiß Rat? -- StephanRössig 2003-09-13 11:51:17
- Nicht direkt. Aber ich kann mich noch an die Zeiten unter DOS erinnern und damals waren 32MB unglaublich viel Speicher. Außerdem gab es damals immer wieder Probleme mit zu viel Speicher, weil die Zahlen nicht mehr in die 16 Bit reingepasst haben. Versuche es doch einfach mal mit 2 oder 3 MB. Ist die Zahl, die die Speicherfunktion liefert zu groß, werden die oberen Bit entweder abgeschnitten oder die Zahl sogar negativ.
Installation von verschiedenen Windows-Versionen als Gastbetriebssystem
Man findet dazu einiges auf der Bochs-Homepage http://bochs.sourceforge.net unter "User Guide". Für Windows 98 findet man eine detaillierte Beschreibung, zu Windows NT einige bekannte Probleme und zu Windows 2000 und XP schweigt sich die Doku ganz aus. Hier meine eigenen Erfahrungen:
Vorbereitung: Ich verwende eine auf Knoppix 3.2 basierende Debian-Version. Ich habe Bochs als Debian-Package in der Version 2.1pre1.a-1 installiert. Erste Versuche mit einer Windows 98 Bootdisk waren erfolgreich, nachdem ich die Konfiguration in bochsrc entsprechend angepasst hatte. Boch startete und bootete die Diskette, so daß ich in der Emulation mit der Dos-Kommandozeile arbeiten konnte. Für die Installation von Windows legte ich mit bximage eine 2 Gigabyte virtuelle Festplatte an, so wie in der Bochs-Doku beschrieben. Als Bootmedium verwendete ich CD-Rom, es funktioniert aber auch mit einem Iso-Image der CD.
Windows NT4: Nach dem Booten von CD erscheint das Installationsprogramm. Es erkennt aber leider nicht die virtuelle Festplatte und bricht deshalb ab.
Windows 2000: Hier erkennt das Installationsprogramm die virtuelle Platte und kopiert brav alle Dateien darauf. Bei ersten Neustart von Windows bleibt das Programm im Startbildschirm hängen. Als Debug-Meldung von Bochs erscheint "invalid use of LES, must use memory reference!". Das scheint ein bekanntes Problem zu sein, unter http://marc.theaimsgroup.com/?l=bochs-dev&m=103366451512962&w=2 ist ein Workaround dokumentiert. Bleibt nur die Frage offen, wie man an die Datei boot.ini auf der virtuellen Disk herankommt. Die Antwort findet man unter http://bochs.sourceforge.net/doc/docbook/user/x1948.html. Hier die Kurzfassung (meine vituelle Disk heißt c.img):
losetup /dev/loop0 /home/thomas/bochs/c.img -o 32256 mkdir /mnt/c mount /dev/loop0 /mnt/c cd /mnt/c
Anschliessend in boot.ini ans Ende den Eintrag /noguiboot eintragen. Nach
cd .. umount /mnt/c losetup -d /dev/loop0
kann Bochs wieder mit der virtuellen Disk arbeiten. Danach läuft alles relativ glatt. Die Maus funktioniert zwar nicht im Bochs-Fenster, und man hat y und z vertauscht, aber ansonsten kommt die Installation bis zum Ende durch. Es dauert nur ewig, auf meinem Athlon 900 MHz hat's 11 Stunden gedauert. Danach die grosse Enttäuschung: Beim ersten Booten von der virtuellen Disk kommt wieder die blöde "invalid use of LES" - Meldung, obwohl ich an der boot.ini nichts geändert habe. Aus!
Windows XP: Hier kommt schon beim ersten Booten "invalid use of LES", und die Emulation hängt.
Mein Fazit: Auf meinem Rechner viel zu langsam, um damit wirklich arbeiten zu können. Und aufgrund der Probleme für mich nicht einsetzbar. Spasseshalber habe ich noch versucht, Knoppix in der Emulation von CD zu booten, da passierte überhaupt nichts, der Bildschirm blieb dunkel.
Wenn ich mal 'nen schnelleren Rechner habe, schaue ich in der Bochs-Doku nach, ob mittlerweile etwas mehr zu den Gast-Betriebssystemen geschrieben steht. ThomasMeyer 2003-11-15