Next: Wine
Up: Fremde Welten
Previous: Fremde Welten
Dosemu ist ALPHA-Software, d. h. er befindet sich noch in der Testphase seiner Entwicklung. Sichern Sie deshalb ihre Daten, bevor Sie ihn starten, und verwenden Sie ihn keinesfalls, um für Sie wichtige Daten ohne Sicherungskopie zu bearbeiten.
Dosemu ist ein Programm, das auf Benutzerebene arbeitet und bestimmte Fähigkeiten des Linux-Kernels und des 80386-Prozessors ausnutzt, um MS-DOS innerhalb von Linux auszuführen.
Der Name ,,dosemu`` ist irreführend, da es sich nicht um einen MS-DOS-Emulator handelt, sondern um ein Programm, das die Hardwareumgebung nachbildet, in der MS-DOS normalerweise arbeitet. Es handelt sich eigentlich um einen ,,PC-Emulator``.
Zum Betrieb des dosemu wird eine MS-DOS-Lizenz ab der Version 3.3 oder DR-DOS 6.0 benötigt.
Dosemu kann, wenn er unter Superuser-Rechten auf der Linuxkonsole ausgeführt wird, direkt auf die Geräte Festplatte, Grafikkarte, Lautsprecher, Tastatur sowie ausdrücklich freigegebene IO-Ports zugreifen. Der direkte Hardwarezugriff beschleunigt den Ablauf der MS-DOS-Programme wesentlich, verringert aber die Sicherheit des Systems gegenüber Abstürzen und Datenverlusten. Wird dosemu unter ,,normalen`` Benutzerrechten ausgeführt, erfolgen alle Ein- und Ausgaben über Linux-Betriebssystemfunktionen. Dadurch sind weder Grafik noch der IBM-PC-Zeichensatz verfügbar.
Diese Beschreibung bezieht sich auf die dosemu-Version 0.53. Das Format der Konfigurationsdatei hat sich gegenüber der Version 0.49 sehr stark verändert, so daß alte Konfigurationsdateien nicht weiterverwendet werden können.
d Festplatte v Bildschirmausgabe R Lesezugriffe k Tastatur i Portzugriffe W Schreibzugriffe s RS-232 p Druckerport h Hardware w Warnungen g Allgemeines x XMS m Maus I IPC E EMS c Konfiguration X X-Window-Support D DPMI
\end{rawthml} \item[-F \Argument{Konfigurationsdatei}] zwingt {\bf dosemu,} seine Konfiguration aus der als {\it Konfigurationsdatei\/} angegebenen Datei zu lesen. \item[-K] Tastaturinterrupt ({\sf int9}) freischalten\footnote{Einige residente Programme, wie z.\thinspace B.\ Sidekick, erwarten diesen Interrupt.} \item[-M \Argument{Größe}] setzt die Speichergröße auf "`{\it Größe\/}"' Kilobyte \item[-N] Kein DOS booten; dient nur zur Fehlersuche \item[-P \Argument{Datei}] kopiert die Debugausgaben in "`{\it Datei\/}"' \item[-T \Argument{Verzeichnis}] setze Verzeichnis für temporäre Dateien \item[-V] Einschalten der BIOS{\bindestrich}VGA{\bindestrich}Emulation (schließt {\sf -c} ein) \item[-X] X{\bindestrich}Unterstützung; hat denselben Effekt, als würde {\bf dosemu} unter dem Namen "`{\bf xdos}"' aufgerufen \item[-Y \Argument{Terminalfifo}] reserviert\footnote{Die Option wird von einem neuen Startprogramm zur X{\bindestrich}Unterstützung verwendet und bezeichnet einen FIFO zur Terminal- und Maussteuerung.} \addtocounter{footnote}{-1} \item[-Z \Argument{Mausfifo}] reserviert\footnotemark \item[-c] schaltet die direkte Bild\-schirm\-aus\-ga\-be auf die Grafikkarte ein\footnote{ermöglicht den IBM{\bindestrich}Zeichensatz, sowie DOS{\bindestrich}Textmodus{\bindestrich}Farben; erfordert Superuser{\bindestrich}Rechte} \item[-d] gibt das aktuelle Terminal wieder frei und startet den {\bf dosemu} auf einer eigenen virtuellen Console. \item[-e \Argument{Größe}] stellt "`{\it Größe\/}"' Kilobyte EMS zur Verfügung \item[-g] schaltet die Grafikunterstützung ein; z.\thinspace B.\ für Spiele \item[-k] schaltet den direkten Tastaturzugriff ein \item[-m] schaltet die Mausunterstützung ein \item[-s] verwendet den neuen Code zur Unterstützung anderer Bildschirmgrößen als 80x25 (noch nicht vollständig) \item[-t] schaltet den Timer{\bindestrich}Interrupt ({\sf int8}) frei\footnote{Einige residente Programme wie z.\thinspace B.\ Bildschirmschoner verwenden diesen Interrupt.} \item[-v \Argument{Grafikkartentyp}] Als Grafikkartentyp kann "`1"' für VGA{\bindestrich}, "`2"' für EGA{\bindestrich}, "`3"' für CGA{\bindestrich} und "`4"' für MDA{\bindestrich}Karten angegeben werden. \item[-x \Argument{Größe}] stellt "`{\it Größe\/}"' Kilobyte XMS zur Verfügung \item[2> \Argument{Datei}] leitet alle Debugmeldungen in "`{\it Datei\/}"' um; wird diese Option weggelassen, so lenkt {\bf dosemu} automatisch alle Debugmeldungen nach {\sf /dev/null} um \end{optlist} \subsection{Voraussetzungen} \index{dosemu!Anforderungen} Um den {\bf dosemu} zu betreiben, muß Ihr System folgende Software{\bindestrich}Vo"-raus"-set"-zun"-gen erfüllen: \begin{enumerate} \item einen Linux{\bindestrich}Kernel Version 1.1.12 oder neuer, mit IPC{\bindestrich}Unterstützung\footnote{IPC{\bindestrich}Unterstützung kann als Option beim Übersetzen des Kernels ausgewählt werden} \item den GNU{\bindestrich}C{\bindestrich}Compiler gcc 2.5.8 oder neuer \item die Linux{\bindestrich}C{\bindestrich}Library ab der Version 4.5.21 \item MS{\bindestrich}DOS Version 3.3 oder neuer (DR{\bindestrich}DOS 6.0 funktioniert ebenfalls) \end{enumerate} \subsection{Übersetzen des dosemu} \index{dosemu!Compilieren} Wechseln Sie in das Verzeichnis, in dem sich die {\bf dosemu}{\bindestrich}Quelltexte befinden. Falls Ihre Linux{\bindestrich}Installation nicht dem Filesystem{\bindestrich}Standard entspricht, müssen Sie im \mbox{Makefile} die Pfade zu den Header{\bindestrich}Dateien und Libraries an Ihre Installation anpassen. {\bf make} überprüft automatisch, ob die Header{\bindestrich}Dateien und Libraries für X vorhanden sind, und bindet X{\bindestrich}Unterstützung in {\bf dosemu} ein. %Die einzige Option, die beim Compilieren des {\bf dosemu} zu setzen ist, %ist die X{\bindestrich}Window{\bindestrich}Unterstützung. Wenn Sie nicht über eine X{\bindestrich}Installation %verfügen, setzen Sie im Makefile die Variable {\tt X\_SUPPORT = 0} %(Zeile 12). Standardeinstellung ist {\tt X\_SUPPORT = 1}. Mit dem Kommando {\sf make doeverything} wird {\bf dosemu} compiliert und installiert. Falls auf Ihrem Rechner kein TeX installiert ist, übersetzen Sie {\bf dosemu} mit dem Kommando {\sf make most}. {\bf make} versucht, {\bf dosemu} nach dem Übersetzen zu installieren; deshalb sollte dieses Kommando mit Superuser{\bindestrich}Rechten ausgeführt werden. Nach dem Übersetzen kopieren Sie die Datei {\sf ./examples/config.dist} nach {\sf etc} und benennen sie in {\sf dosemu.conf} um. \subsection{Die Laufzeitkonfiguration} \index{dosemu!Konfiguration} Die Datei {\tt /etc/dosemu.conf} enthält die Konfiguration des {\bf dosemu}. Sie besteht aus Konfigurationsanweisungen, die einen Parameter oder eine Liste aus Unteranweisungen mit Parametern erwarten. Anweisungen mit einem Parameter haben die Syntax: \\\centerline{ {\sf Anweisung}~~~{\it Parameter\/}} Anweisungen, die eine Liste erwarten, haben die Syntax:\\\centerline{ {\sf Anweisung \{ Unteranweisung1 [{\it Parameter1\/}] Unteranweisung2 [{\it Parameter2\/}] ... \} }} Kommentare beginnen mit einem "`{\sf \#}"' und enden am Zeilenende. Bei den Anweisungen wird Groß{\bindestrich} und Kleinschreibung nicht unterschieden. Bestimmte Argumente, wie z.\thinspace B.\ Da\-tei\-na\-men und die Druckeroptionen, werden jedoch unverändert übernommen und sind deshalb auf eine {\bf exakte} Schreibweise angewiesen. \subsubsection{Tastatur, Ports und andere Kleinigkeiten} \index{dosemu!/etc/dosemu.conf@{\tt /etc/dosemu.conf}} \begin{optlist} \item[dosbanner {\it on/off\/}]~\\ Schaltet die Begrüßungsmeldung des {\bf dosemu} an oder aus. \item[ipxsupport {\it on/off\/}]~\\ Wenn Sie von {\bf dosemu} aus auf ein Novellnetz zugreifen wollen, können Sie mit diesem Schalter die IPX/SPX{\bindestrich}Emulation einschalten. Innerhalb des {\bf dosemu} muß dann IPX.COM nicht mehr geladen werden. LSL.COM oder IPXODI.COM werden nicht emuliert. Damit diese Option funktioniert, muß IPX im Linuxkernel eingeschaltet sein. \item[pktdriver novell\_hack]~\\ Ermöglicht eine Umsetzung von Novell{\bindestrich}8137{\bindestrich}Paketen zu raw{\bindestrich}802.3{\bindestrich}Paketen. \item[allowvideoportaccess {\it on/off\/}]~\\ Gibt den Zugriff auf die IO{\bindestrich}Ports der Grafikkarte frei. \item[bootA, bootC]~\\ Gibt an, von welchem Laufwerk der {\bf dosemu} MS{\bindestrich}DOS laden soll. Diese Anweisungen erwarten keinen Parameter. Von ihnen darf nur {\bf eine} in der Konfigurationsdatei vorkommen. \item[EmuSys {\it Endung\/}, EmuBat {\it Endung\/}]~\\ Gibt die Dateiendungen für die Dateien CONFIG.SYS und AUTOEXEC.BAT für \mbox{\bf dosemu} an. So können sich auf demselben Laufwerk zwei verschiedene Startupdateien für DOS befinden, je nachdem, ob MS{\bindestrich}DOS direkt oder im {\bf dosemu} gebootet wird.\\ Beispiel:\\ {\tt EmuSys EMU}\\ {\tt EmuBat EMU}\\ Wenn DOS im {\bf dosemu} gebootet wird, werden die Dateien CONFIG.EMU und AUTOEXEC.EMU verwendet, ansonsten die normalen CONFIG.SYS und AUTOEXEC.BAT. \item[cpu {\it Typ\/}]~\\ Bestimmt, welcher Prozessor emuliert werden soll. Als "`{\it Typ\/}"' kann "`{\tt 2}"', "`{\tt 3}"' oder "`{\tt 4}"' angegeben werden. Es ist ebenfalls möglich, den ganzen Prozessornamen anzugeben ("`{\tt 80286}"', "`{\tt 80386}"' und "`{\tt 80486}"'). \item[debug \{ {\sf Flag} {\it Wert\/} {\sf Flag} {\it Wert\/} ... \}]~\\ Als Unteranweisungen sind {\sf config, port, video, serial, printer, disk, read, write, keyb, mouse, warning, general, xms, ems, dpmi, hardware} und {\sf IPC} zulässig, die jeweils als Parameter {\sf on} oder {\sf off} erwarten.\\ Beispiel: \\\begin{rawhtml}
debug { config on disk off warning off hardware on port on read off general off IPC off video on write off xms off serial off keyb on ems off printer off mouse on dpmi off }
Neuerdings wird auch folgende Syntax unterstützt:
ems {ems_size Größe ems_frame Adresse}.
Hierbei steht Größe wiederum für die Größe des EMS-Speichers,
die zur Verfügung gestellt werden soll, und Adresse für die
Basisadresse der Speicherseite, auf der die EMS-Speicherseiten
eingeblendet werden.
Dosemu kennt zwei Arten von Laufwerken: Diskettenlaufwerke und
Dateien, die als Diskettenlaufwerk angesprochen werden.
Dosemu ordnet die unter DOS verwendeten Laufwerksbuchstaben
den Laufwerken in der Reihenfolge ihrer Konfiguration zu.
Syntax:
,,floppy { Schlüsselwort [Wert] [...] }``
Zulässige Schlüsselwörter sind:
Beispiele:
floppy { Heads 2 Sectors 18 Tracks 80 threeinch file /usr/dos/fimage }
floppy { Device /dev/fd0 threeinch }
Durch diese Einträge wird die Datei /usr/dos/fimage als Laufwerk A: und das ,,echte`` erste Laufwerk des Rechners als Laufwerk B: konfiguriert. Im ,,CMOS-RAM`` des dosemu tauchen beide Laufwerke als 3,5-Zoll-Laufwerke auf.
Wenn dosemu mit einem Diskimage gebootet werden soll, Sie aber unter DOS
trotzdem alle Diskettenlaufwerke verwenden wollen, kann ein besonderes
,,Bootlaufwerk`` konfiguriert werden. Dieses Laufwerk kann dann mit den
Programmen booton.com und bootoff.com im laufenden dosemu
ein- und ausgeblendet werden. Die Syntax ist identisch mit der
Konfiguration eines Diskimage als Diskettenlaufwerk:
Syntax:
,,bootdisk { Schlüsselwort [Wert] [...] }``
Beispiel:
bootdisk { heads 2 sectors 18 tracks 80 threeinch file /dos/bootdisk }
Dosemu kennt vier verschiedene Möglichkeiten, um auf Festplatten zuzugreifen.
Die Syntax der Festplattenkonfiguration ist derjenigen der
Diskettenlaufwerke ähnlich.
Syntax:
,,disk { Schlüsselwort [Wert] [...] }``
Zulässige Schlüsselwörter sind:
Beispiele:
,,disk { partition /dev/hda1 1 readonly }``
,,disk { image /usr/dos/hdimage }``
Mit diesen Zeilen wird im dosemu die erste Partition der ersten
Festplatte als Laufwerk C: konfiguriert. Laufwerk C: darf nur gelesen
werden. Laufwerk D: wird durch die Image-Datei ,,/usr/dos/hdimage``
emuliert.
Syntax:
,,video { Schlüsselwort [Wert] [...] ``
Erlaubte Schlüsselwörter sind:
Beispiel:
video { vga console graphics chipset et4000 memsize 1024 }
Syntax:
,,keyboard { Schlüsselwort [Wert] [...] }``
Die folgenden Schlüsselwörter werden erkannt:
finnish de sf sg uk finnish-latin1 de-latin1 sf-latin1 sg-latin1 us dk fr es portuguese be dk-latin1 fr-latin1 es-latin1 dvorak nounterstützt, wobei ,,de`` und ,,de-latin1`` für das deutsche Tastaturlayout stehen.
Beispiele:
serial { mouse com 1 /dev/cua0 }
serial { com 2 irq 3 base 0x2F8 /dev/cua3 }
Die erste Zeile macht dosemu COM1 bekannt und schaltet den Maus-Modus
ein. Die zweite Zeile bewirkt, daß dosemu die 4. serielle Schnittstelle
des Rechners auf COM2 abbildet.
Dosemu kann auch in einer telnet-Session oder über eine Modemleitung
verwendet werden. Für diesen Fall kann die Ausgabe von dosemu an
die Fähigkeiten des Terminals angepaßt werden.
Syntax:
terminal { Schlüsselwort [Wert] [...] }
Wird dosemu unter dem Namen xdos oder mit dos -X aufgerufen, so versucht er, das Programm ansi_xterm zu starten und seine Aus- und Eingabe darüber abzuwickeln. Findet er das Programm nicht, so sucht er nach color_xterm und xterm.
Syntax:
X { Schlüsselwort [Wert] [...] }
Beispiel:
X { updatefreq 1 title ,,DOS in a BOX`` icon_name ,,dosemu`` }
Um den dosemu zu verlassen, führen Sie das in der Distribution enthaltene Programm exitemu.com aus, oder schicken Sie von einer anderen virtuellen Konsole mit dem kill-Kommando ein Signal SIGHUP oder SIGTERM an den dosemu. Senden Sie ein SIGKILL nur im äußersten Notfall, da der dosemu dann nicht mehr die Bildschirmeinstellungen zurücksetzen und die Logfiles auf die Platte schreiben kann.
Das Linux Anwenderhandbuch