DosEmu einrichten #

Der DOS-Emulator dosemu (http://www.dosemu.org) bietet bereits seit langem eine sehr stabile Möglichkeit, DOS-Programme unter Linux laufen zu lassen. Dabei kann man den Emulator in einer Konsole laufen lassen oder in einem X-Fenster (xdosemu), wobei dann auch eine VGA-Grafik emuliert wird. Damit ist sogar der Betrieb von Windows 3.11 möglich (Wobei das nun wirklich keiner braucht...).

Motivation für diese Seite #

Da ich hier eine Problem mit einer DOS-Applikation habe, die ich als einziges nicht-Linux-Programm benötige, habe ich mich entschlossen, den DOSEmu hierfür mal auszuprobieren. Ich werde die Vorgehensweise hier dokumentieren, um anderen die von mir benutzten Kniffe zu zeigen. Als besonderes Schmankerl benötigt meine Applikation Zugriff per IPX/SPX auf einen Novell-Server. Also muss das Netzwerk komplett installiert sein.

Betriebssystem #

DosEmu ist eigentlich ein Emulator für einen x86-Computer und kein Emulator für DOS. Das bedeutet, dass innerhalb des DosEmu wie in einem normalen x86-Computer ein Betriebssystem installiert werden muss.

FreeDOS #

Um das Ganze für mich möglichst moralisch sauber zu gestalten, benutze ich natürlich, wenns irgendwie geht, nicht MS-DOS (obwohl ich hier noch genug Lizenzen herumfliegen hätte...), sondern FreeDOS. Auf dieser Seite steht auch eine Installationsanweisung.

MS-DOS #

Man kann eine MS-DOS-Bootdisk (bzw. deren Image) einfach als Diskette mounten. Eine noch schönere Möglichkeit ist jedoch, die Diskette einmal unter Linux zu mounten und dann den Inhalt als Verzeichnis auf seine Festplatte, z.B. nach ~/.dosemu/msdos/ kopieren. Gibt man dieses Verzeichnis (msdos) in der dosemu.conf als hdimage an, so kann man direkt davon booten. Diese Methode hat den Vorteil, das man nicht an die Größenbeschränkung eines Images gebunden ist und von Linux-Seite aus sehr leicht (und gleichzeitig) auf das Verzeichnis zugreifen kann.

Netzwerkzugang #

Es gibt einen integrierten Packet Driver, der gut funktioniert. Näheres, insbesondere auch zu Novell-IPX-Netzen siehe FreeDOS.

Tips #

Folgende Einstellungen in der Datei ~./dosemurc haben sich als sinnvoll erwiesen:

  # Netzwerk per Bridge
  $_pktdriver = (on)
  $_netdev = "eth0"
  $_vnet = "eth"
  $_printer = "Liste Formular"
  $_printer_timeout = (10)
  # Einen Original VGA/DOS-Font im Terminal habe ich noch nicht zum Laufen gebracht
  #$_term_char_set = "ibm"
  # Für Konsolen-Apps oft nicht benötigt, macht aber sehr viel Traffic bei 
  $_mouse_internal = (off)
  # ohne das keine Umlaute:
  $_layout="de"

Obige Einstellungen gelten für dosemu 1.2.x, der z.B. auch in Debian etch enthalten ist. Der neuere 1.4.x scheint laut Doku insbesondere beim Thema Netzwerk und auch Erkennung von Lokalisierung und Tastatur verbessert zu sein. Ich selber hatte jedoch seltsame und unberechenbare Verbindungsprobleme mit 1.4.0. (Auf AptPaketverwaltung habe ich beschrieben, wie man in Debian Lenny auf dosemu 1.2.2 downgraden kann.)

Alternativen #

Natürlich gibt es auch andere Wege, um Programme, die nicht für Linux geschrieben wurden, unter Linux laufen zu lassen. Die beste frei Lösung ist IMHO [QEmu]]. Aber je nach Anwendung ist DosEmu immer noch die schnellste Lösung (AFAIK die einzige, die DOS-Applikationen im echten Text-Modus ausführt). Hier eine Liste der mir bekannten Ansätze:

  • QEmu sehr zu empfehlen
  • vmware (kommerziell, soll sehr gut sein)
  • freemware (frei, beta-stadium)
  • bochs (sehr langsam, läuft aber auch auf nicht-x86-architekturen)
  • Wine (nur für Windows-Programme)

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-8) was last changed on 19-Mar-2009 15:30 by ThomasBayen