Kurzanleitungen/Howtos

Retrocomputing: FreeDOS

30.07.2017

FreeDOS
CC-BY FreeDOS

Auch wenn der Einsatz von DOS stark zurückgegangen sein dürfte, finden sich immer noch Nischen, in denen es auch heute noch gute Dienste leistet. Im äußerst aktiven FreeDOS-Projekt, welches ähnlich wie eine Linux-Distribution zahlreiche Softwarepakete zu einem Installationsmedium bündelt, findet es seine aktuelle Weiterentwicklung.

TCP/IP-Netzwerk unter DOS

Um unter DOS die Netzwerkkarte nutzen zu können, benötigt man einen sogenannten Packet Driver (Netzwerkkartentreiber). Diesen gibt es entweder direkt vom Netzwerkkartenhersteller oder als OpenSource für viele Netzwerkkarten von www.crynwr.com.
Für die Unterstützung von TCP/IP wird in das jeweilige Programm ein TCP-Kernel einkompiliert. Bei den TCP-Kerneln gibt es als freie Lösungen mTCP (die Version von 2013 steht unter der GPLv3) und Waterloo TCP bzw. die Weiterentwicklung Watt-32 tcp/ip. mTCP bringt gleich ein paar Programme (DHCP-Client, ping, FTP-Server, ...) mit.
Die Netzwerkkonfiguration für mTCP und Waterloo TCP wird mittels Dateien vorgenommen.
Das bis in die 1990er gebräuchliche IPX/SPX ist nicht Bestandteil dieses Artikels.

Packet Driver

Der Package Driver kommt in Form einer ausführbaren Datei als TSR-Programm daher. Beim Starten wird ein Softwareinterrupt angeben, über den anschließend andere Programme, die z.B. mTCP verwenden, mit dem Treiber kommunizieren. Häufig wird hierbei der hexadezimale Wert "0x60" verwendet. Je nach Package Driver wird der Softwareinterrupt anders angegeben. Im Falle von PCNTPK.COM (für die PCnet-FAST III in VirtualBox) sieht der Aufruf wie folgt aus:

PCNTPK.COM INT=0x60

Bei der NE2000-Netzwerkkarte sehen die Parameter (Softwareinterrupt "0x60", Hardwareinterrupt "5" und Basisadresse (Port) "0x240") folgendermaßen aus:

NE2000.COM 0x60 5 0x240

Hinweis: Wird auf demselben Rechner ein Linux gestartet, so lassen sich der Hardwareinterrupt und die Basisadresse aus der Datei "/proc/bus/isapnp" auslesen. Zwar ist es möglich, daß die Einstellungen zwischen BIOS und Netzwerkkarte beim Neustart neu ausgehandelt werden, doch bleiben diese (bei unveränderten Hardwarekomponenten) meist unverändert.

Packet driver gibt es von vielen Netzwerkkartenherstellern direkt oder z.B. von www.crynwr.com oder www.georgpotthast.de.

Konfigurationsdateien

Alle Konfigurationsdateien sind reine Textdateien, die DOS-Zeilenumbrüche und den Zeichensatz ISO-8859-15 verwenden. Von vielen Texteditoren werden die Dateien standardmäßig in UTF-8 mit UNIX-Zeilenumbrüchen angelegt oder beim Speichern automatisch umgewandelt. Mit den beiden Kommandos wird die Datei "tcp.cnf" für DOS passend konvertiert:

unix2dos tcp.cnf
recode iso-8859-15 tcp.cnf

mTCP: Konfiguration für statische IP

Für mTCP sieht die Konfiguration für eine statische IP sieht folgendermaßen aus:

PACKETINT 0x60
IPADDR 192.168.1.10
NETMASK 255.255.255.0
GATEWAY 192.168.1.1
NAMESERVER 192.168.1.1
FTPSRV_PASSWORD_FILE ftppass.txt
FTPSRV_LOG_FILE ftpdlog.txt

"0x60" ist hierbei der zuvor gewählte Softwareinterrupt. Darauf folgen die bekannten Netzwerkeinstellungen. Die beiden "FTPSRV"-Zeilen geben die Konfigurationsdatei für die Freigaben des FTP-Servers (aus dem mTCP-Pakete) sowie den Namen der Logdatei an.

Über eine Umgebungsvariable wird der Name und der Ort der Konfigurationsdatei festgelegt. Z.B.

set MTCPCFG=a:\mtcp.cnf

Weitere Informationen zu mTCP und Konfiguration unter ⇒ Networking FreeDOS - mTCP.

Waterloo TCP: Konfiguration für statische IP

Für Waterloo TCP sieht die Konfiguration für eine statische IP sieht folgendermaßen aus:

my_ip=192.168.1.10
netmask=255.255.255.0
gateway=192.168.1.1
nameserver=192.168.1.1
nameserver=4.4.4.4

Der Name der Konfugirationsdatei ist fest vorgegeben und lautet "WATTCP.CFG". Zudem muß sich die Datei im selben Verzeichnis wie das Programm befinden, das den Waterloo-TCP-Kernel verwendet.

Weiterführendes zu Netzwerken unter DOS

DOS-Bootdiskette mit FTP-Server

FreeDOS
mTCP FTPSrv

Disketten schreiben

Möchte man auf einem aktuellen Rechner Disketten lesen oder schreiben, so bieten sich Diskettenlaufwerke an, die per USB angebunden werden. Der folgende Befehl formatiert eine 3,5" Diskette per USB-Laufwerk auf die üblichen 1,44MB:

ufiformat -f 1440 /dev/sdX
Andere Formatierungen sind bei HD-Disketten prinzipiell auch möglich, aber erst nach der (Low-Level-)Formatierung mit der richtigen Kapazität kann ein Diskettenabbild mittels
dd if=disk.img of=/dev/sdX
auf die Diskette geschrieben werden. Die Größe der Abbilddatei sollte kleiner oder gleich der (formatierten) Diskettenkapazität sein.

Diskettenabbilder anpassen

Ein Diskettenabbild kann auch direkt gemountet und anschließend geändert werden:

mount -o loop,uid=1000,gid=1000 disk.img /mnt/loop
Vor dem Schreiben des Abbildes auf eine Diskette oder der Verwendung in VirtualBox sollte das Abbild wieder per
umount /mnt/loop
ausgehängt werden, da es ansonsten zu Datenverlust kommen kann.

FreeDOS-Netzwerkbootdiskette

Vom Bootdiskettenabbild können Sie einen Rechner direkt starten und finden die nötigen Werkzeuge vor, die Sie benötigen, um einen Rechner für die Verwendung mit FreeDOS zu Partitionieren und zu Formatieren. Außerdem sind Packet Driver und ein FTP-Server mit an Bord. Bevor Sie das Abbild auf eine Diskette übertragen, sollten Sie dieses nach Ihren Wünschen anpassen (s.o.) und sich mit den darin enthaltenen Dateien vertraut machen. Insbesondere sollten Sie hierbei die Netzwerkkonfiguration beachten. Die IP ist 192.168.1.10. Der mTCP FTP-Server gibt nach dem Starten per

ftpsrv.exe
alle verfügbaren Laufwerke per FTP frei. Benutzername und Paßwort ist "test".

Die Bootdiskette können Sie z.B. nutzen, um Sicherungen anzulegen und komplette FreeDOS-Systeme wiederherzustellen.

mTCP FTP-Server

Wenn Sie den mTCP FTP-Server verwenden, müssen Sie darauf achten, daß der FTP-Client auf der Gegenseite Dateinamen mit 8.3-Zeichen berücksichtigt. Krusader z.B. hat die Eigenart, beim Transfer an jede Datei die zusätzliche Endung ".part" anzuhängen und nach erfolgreicher Übertragung wieder zu entfernen. Da dies kein gültiger 8.3-Dateiname ist, verweigert der mTCP FTP-Server das Anlegen einer solchen Datei und somit die Übertragung. Problemlos klappt der Transfer mit dem Midnight Commander z.B. mit:

mc . ftp://test:test@192.168.1.10

Achtung! Achtung! Die folgenden Anweisungen richten sich ausschließlich an fachkundige Personen. Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr! Die Anweisungen, Skripte, etc. sind ausschließlich für Lernzwecke auf Lernsystemen und nicht für Produktivumgebungen bestimmt!