= 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)

= Links =

* http://www.dosemu.org - dosemu Home Page

[{Tag Virtualisierung Windows}]