Daten|teiler
Kopieren als Kulturtechnik

FreeDOS – Totgesagte leben länger

17. November 2014 von Christian Imhorst

Das Betriebssystem DOS, das Disk Operating System [1], ist quicklebendig und manchmal entdeckt man es an den merkwürdigsten Orten wieder. Dieser Artikel gibt einen Einblick in DOS und zeigt, wie man es heute noch nutzen kann.

Redaktioneller Hinweis: Dieser Artikel von mir ist erstmals in der Novemberausgabe 11/2014 von freiesMagazin erschienen.

Dennis McCunney berichtete auf der FreeDOS-Mailingliste [2], dass auf der LACon IV, der 54. World Science Fiction Convention 2006 in Los Angeles, die Registrierung der etwa 5000 Besucher mit DOS erledigt wurde. Dafür kamen eine Reihe älterer Laptops mit 3,5-Zoll-Disketten-Laufwerk, aber ohne Festplatte zum Einsatz. DOS wurde von Diskette gebootet und die Registrierung der Teilnehmer mit einer DBase-III-Datenbank erledigt. Dabei wurde die Boot-Diskette durch eine Daten-Diskette mit den Registrierungsinfos der Besucher ersetzt, sobald DOS und DBase in den Speicher geladen waren. Wenn die Schlange bei der Registrierung zu lang wurde, konnten die Veranstalter schnell reagieren, indem sie mehr Helfer mit weiteren Laptops zur Unterstützung schickten. Einmal pro Stunde wurde der Datenbestand synchronisiert und die Diskette mit den Daten ausgetauscht, damit jeder den selben Stand hatte.

Das Registrierungssystem der Convention hatte sich übrigens ein Programmierer ausgedacht, der bei Ashton-Tate, der Firma hinter DBase, gearbeitet hatte. Anstelle eines komplexen und teuren Systems mit aktueller Hardware, Netzwerk und Backend-Server hat er die Registrierung mit recycelten Laptops und Software aus der MS-DOS-Ära genial vereinfacht und Geld gespart, das für wichtigere Projekte auf der Convention eingesetzt werden konnte.

Eine kurze Geschichte über DOS…

Die Wurzeln von DOS liegen in Betriebssystemen der Mainframes der 1960er Jahre. Einen größeren Bekanntheitsgrad erreichte es dann durch MS-DOS, das Anfang der 1980er Jahre als QDOS, kurz für Quick and Dirty Operating System, von Tim Patterson entwickelt wurde. QDOS wurde später von Microsoft lizenziert und mit Hilfe von Patterson auf den IBM-PC portiert. Der erste IBM-PC wurde schließlich mit PC-DOS 1.0 ausgeliefert, das intern ein durch IBM fehlerbereinigtes MS-DOS 1.14 war [3].

freedos_blinky

Blinky ist weder Fisch noch Wal und das etwas komisch guckende Maskottchen von FreeDOS.
© FreeDOS Project (CC-BY-2.5)

Im April 1994 erschien MS-DOS 6.22 und sollte die letzte eigenständige Version für PCs sein. Zu der Zeit war MS-DOS das dominierende Betriebssystem für Einzelplatzrechner. Noch im selben Jahr hatte Jim Hall, damals Physik-Student an der Universität von Wisconsin, heute IT-Direktor an der Universität von Minnesota Morris, FreeDOS [4] ins Leben gerufen, das heute aktiv, wenn auch langsam, als eine freie und kompatible Alternative zu MS-DOS entwickelt wird. FreeDOS hat den Anspruch, zeitgemäße Erweiterungen und Anpassungen an DOS vorzunehmen und dabei trotzdem mit MS-DOS kompatibel zu bleiben, was mit der finalen Version FreeDOS 1.0 am 3. September 2006 erreicht wurde.

Im Interview „DOS is (long) dead, long live FreeDOS“ bei Computerworld.com.au [5] erzählt Hall mehr über seine Beweggründe. Zu der Zeit war das Betriebssystem seiner Wahl MS-DOS. Zukünftig von Microsoft Richtung Windows gezwungen zu werden, wollte er nicht. Seit 1993 hatte er bereits eine Version von GNU/Linux installiert und war von den GNU-Programmen begeistert. Außerdem fand er die Idee gut, dass es eine freie Unix-Version gibt, weshalb er sich fragte: Wenn es eine Gruppe von Entwicklern schafft, etwas Komplexes wie Unix nachzuprogrammieren, indem sie einfach über das Internet zusammenarbeiten, warum sollte das nicht mit einem vergleichsweise simplen Betriebssystem wie MS-DOS funktionieren?

… und wer es heute noch nutzt

Auch 20 Jahre nachdem Microsoft bekannt gab, dass der Vertrieb und die Produktunterstützung für MS-DOS eingestellt werden würden, wird DOS noch aktiv genutzt. Und das nicht nur in belgischen Wahlmaschinen [6]. Auch eine Reihe von Science-Fiction- und Fantasy-Autoren haben das Schreiben einmal auf einer DOS-Maschine mit WordStar begonnen und halten bis heute daran fest. Darunter sind bekannte Namen wie Arthur C. Clark oder George R.R. Martin. Autor Robert J. Sawyer unterhält sogar eine Fan-Seite zu WordStar [7] .

In der Regel wird DOS heute aber eher für zeitkritische Anwendungen oder für Anwendungen im Embedded-Bereich, die direkten Zugriff auf die Hardware erfordern, eingesetzt. Microsoft selbst bietet MS-DOS noch für Embedded Systeme an [8] und andere Hersteller wie Datalight ihr eigenes angepasstes ROM-DOS [9].

Wie DOS funktioniert

Jedes DOS besteht im Prinzip nur aus dem Kernel, der bei FreeDOS KERNEL.SYS heißt und 1995 von Pasquale „Pat“ Villani [10] zum Projekt beigetragen wurde, einer Nutzerschnittstelle, bei DOS die COMMAND.COM und Befehlen zur Verwaltung des Dateisystems, also zum Formatieren, Kopieren etc. Mit dieser schmalen Konfiguration kann man es sogar von Diskette booten.

Was man als Nutzer auf einem DOS-Rechner nach dem Start sieht, ist die Ausgabe der COMMAND.COM [11]. Unter FreeDOS wird der Kommandozeileninterpreter auch entsprechend FreeCOM [12] genannt. Die COMMAND.COM ist nicht Teil des Kernels und wird über die System-Konfigurationsdatei CONFIG.SYS [13] gestartet, die vom Kernel abgearbeitet wird.

Die COMMAND.COM wiederum führt bei ihrem ersten Aufruf die AUTOEXEC.BAT [14] aus, die letzte Startdatei eines gewöhnlichen DOS-Systems. Wobei der FreeDOS-Kernel zuerst nachschaut, ob die Datei FDCONFIG.SYS existiert. Falls es sie gibt, lädt er sie zuerst, anstelle der CONFIG.SYS. Dadurch kann der FreeDOS-Kernel neben einem anderen DOS-Kernel auf der Festplatte existieren und trotzdem mit einer anderen Konfiguration starten [15]. FreeDOS akzeptiert auch einen anderen Namen anstelle der AUTOEXEC.BAT, wenn man die CONFIG.SYS entsprechend anpasst [16]. Es wird dann häufig der Dateiname FDAUTO.BAT verwendet, aber es kann auch ein beliebig anderer gewählt werden.

Eine COMMAND.COM existiert auch in den auf DOS aufbauenden Windows-Systemen wie Windows 95, 98 oder ME. Es gibt sie aber auch unter Windows NT bis einschließlich Windows 7, zumindest in der 32-bit-Version, um 16-bit-DOS-Programme ausführen zu können. Auf einem 64-bit-Windows funktioniert das nicht. Da die COMMAND.COM nicht Teil des Kernels ist, kann man sie unter einem anderen DOS, aber auch unter Windows XP oder der 32-bit-Version von Windows 7 gegen die FreeCOM austauschen, und man hat die Befehlszeile aus dem FreeDOS-Projekt. Der Austausch funktioniert auch auf dem Nokia 9000 und seinem Nachfolger, dem 9110, da beide das vom PC kommende DOS-basierte Betriebssystem PEN/GEOS nutzen [17]. Dadurch sind die beiden Telefone fast vollständige IBM-PCs im Hosentaschenformat [18].

Durch die 16-Bit-Architektur des Kernels, den geringen Speicherverbrauch und den kleinen Umfang läuft FreeDOS auf modernen, aber auch auf älteren PCs wie dem 8086-Rechner, auf denen Linux wegen seiner Beschränkung auf i386-Hardware scheitert. Dadurch wird FreeDOS zu einer freien Alternative auf solchen Rechnern. Trotz der 16-Bit-Architektur des Kernels können unter FreeDOS aber auch 32-Bit-Programme laufen. Mit dem HX-DOS-Extender [19] kann man sogar Win-32-PE-Programme [20] aufrufen, die ursprünglich nur für Windows geschrieben wurden. Das PE steht für Portable Executable und ist das Dateiformat, das bei Win32- und Win64-Systemen für ausführbare Dateien verwendet wird.

Softwaregeschichte bewahren

Mit der Informatik, besonders mit der Softwaretechnik, ist es Menschen gelungen, Mittel und Methoden zur Formalisierung und Automatisierung geistiger Tätigkeiten zu erzeugen. Diese Artefakte, also Programme, die in der DOS-Ära Handlungssysteme ersetzt oder modifiziert haben, können durch FreeDOS weiter verwendet werden. So trägt FreeDOS zum Erhalt eines technischen Teils der Menschheitsgeschichte bei, indem es dafür sorgt, dass Hard- oder Software, die mit einem modernen Betriebssystem nicht mehr funktioniert, immer noch lauffähig ist. Das ist ein Gedanke, der sich auch in Bryan Lundukes Artikel „Why we should preserve useless, old software“ wiederfindet [21].

Wobei man noch die Frage klären müsste, ob alte Software wirklich nutzlos ist, wenn man sich überlegt, wie viele Daten noch in proprietären Datenformaten oder auf nicht mehr unterstützten Datenträgern gespeichert sind, bei denen die Firma, die diese Formate oder Produkte entwickelt hat, nicht mehr existiert oder die Weiterentwicklung aufgekündigt hat. Programme, welche diese Formate noch lesen können, werden deshalb nicht mehr auf modernere Systeme portiert. Oder wenn diese Daten auf Datenträger gespeichert sind, werden diese von neuerer Hardware nicht mehr unterstützt, weil es die passenden Schnittstelle nicht mehr gibt.

Wie Lunduke weiter ausführt, ist dabei zweitrangig, ob es neuere oder andere, bessere Versionen der Software für aktuelle Betriebssysteme gibt. Denn nicht sehen zu können, wie dieses alte Stück Software lief, wie sie konzipiert war und wie man sie bedient hat, würde die Welt um ein Stück Softwaregeschichte bringen. Niemand würde heute VisiCalc [22], das erste Tabellenkalkulationsprogramm für PCs, noch wirklich benötigen. Aber sehen zu können, wie es einmal funktioniert hat, hält die Geschichte am Leben.

Der Punkt, den Lunduke damit trifft, wird greifbar, wenn er darauf eingeht, dass Spielefirmen den Quellcode ihrer Spieleklassiker wie Wolfenstein 3D, Doom oder Quake veröffentlichen. Denn er zeigt damit auf die Universalität von Software. Unsere Nachfahren werden die Möglichkeit haben, die Spiele zu sehen und zu spielen, die das Genre ihres dann aktuellen besonderen einzelnen Spiels einst definiert haben. Das lässt sich genauso auf andere Software übertragen.

Dazu passt auch, das Microsoft den Quellcode von MS-DOS 1.1 und 2.0 unter der „Microsoft Research License Agreement“ veröffentlicht hat [23]. Dies ist sicherlich ein interessanter Beitrag zur Softwaregeschichte für die Forschung, MS-DOS wird dadurch aber nicht zur freien Software. Hall hat auf der FreeDOS Homepage deshalb eine Warnung veröffentlicht, dass man nichts von dem MS-DOS-Quellcode für FreeDOS verwenden dürfe, da sich die Lizenz von Microsoft und die GPL 2.0 gegenseitig ausschließen [24].

Wer nutzt FreeDOS?

Mit FreeDOS kann man einen alten IBM PC noch als Web- [25] oder FTP-Server weiter benutzen oder man macht daraus einen Musik-Player. Manche nutzen ihn auch als Desktop-PC, um Tabellenkalkulations- und Datenbankprogramme aus einer vergangenen DOS-Ära weiter zu nutzen. Man kann FreeDOS auch unter GNU/Linux finden, wenn man DOSEmu [26] installiert. DOSEmu hat im Gegensatz zum x86-Emulator DOSBox [27] den Vorteil, dass man mit der mittleren Maustaste Text über die Zwischenablage zwischen Desktop und DOS-Programm austauschen kann.

freedos_mpxplay

Anstatt den alten Rechner verstauben zu lassen, kann man ihn noch prima als JukeBox benutzen.

Durch den geringen Umfang von FreeDOS kann man es auch gut für Unterrichtszwecke nehmen, um die Grundlagen von Betriebssystemen zu zeigen. Mit FreeDOS kann man sehr nahe an der Hardware des Computers arbeiten, was moderne Betriebssysteme häufig aus Sicherheits- und Stabilitätsgründen unterbinden.

Für die Version 2.0 von FreeDOS hatte Jim Hall große Pläne [28]. Er überlegte, wie weit DOS heute sein könnte, wenn Microsoft damals nicht die Unterstützung aufgekündigt hätte. Hätte es dann heute Multitasking und eine eigene grafische Oberfläche? Wäre es eine Alternative zu schlanken Linux-Systemen, die sich Menschen als Desktop aussuchen würden?

Im Jahr 2012 wollte er daher wissen, wer neben den DOS-Fans, die sich darüber freuen, veraltete Rechner oder Programme zum Laufen zu bekommen oder klassische DOS-Games zu spielen, DOS noch benutzt und warum. Das Ergebnis der Umfrage war für Hall und seine FreeDOS 2.0-Pläne ernüchternd. FreeDOS wird hauptsächlich eingesetzt, um veraltete BUS-Steckplätze mit ihrer Software weiter betreiben oder um es auf Embedded Systemen benutzen zu können.

Es lässt sich sehr stark an die gegebene Hardware anpassen, was es interessant für einige Bereiche in der Industrie macht, wo selbstgeschriebene Programme serielle oder andere spezielle Schnittstellen ansteuern. Dabei ist FreeDOS, wie schon weiter oben geschrieben, nicht das einzige DOS auf dem Markt der Embedded-Systeme. Viele DOS-Entwickler tragen Quellcode zum FreeDOS-Projekt bei, der speziell auf den Embedded-Bereich abzielt.

Man kann als Hobby-Bastler FreeDOS auf einem 86Duino [29] in Aktion sehen. Die auf Arduino basierende Embedded-Plattform besitzt einen Vortex86EX SoC, der von vielen x86-kompatiblen Betriebssystemen unterstützt wird, also auch von DOS. Damit läuft das Betriebssystem wieder auf trendiger Hardware. Das Systemimage selbst, das von 86duino.com angeboten wird, basiert auf FreeDOS [30], das gegenüber anderen DOS-Systemen ein paar technische Vorteile bietet, wie Logical Block Addressing (LBA), das den Zugriff auf Datenträger bis zu 2 TB erlaubt. Außerdem werden Partitionen mit FAT32-Dateisystem unterstützt und man kann sogar von ihnen booten. Der DOSLFN-Treiber gestattet die Verwendung langer Dateinamen und durch den Ultra-DMA-Treiber werden schnelle Zugriffe auf IDE-Datenträger möglich. Was fehlt ist eine Unterstützung für NTFS, die auch nicht geplant ist. Es gibt aber Shareware-Treiber, die diese Lücke stopfen.

Eine Lücke, die schwieriger zu schließen ist, ist die Unterstützung für Netzwerk und Internet. Selbst wenn man es schafft, mit FreeDOS ins Internet zu kommen, gibt es keinen Webbrowser, der aktuelle Webstandards wie CSS und JavaScript beherrscht. Als DOS entwickelt wurde, gab es noch kein TCP und kaum Netzwerke, weshalb es vom Design her auch kein netzwerkorientiertes, multitaskingfähiges, Mehrbenutzer-Betriebssystem ist, wie Eric Auer im Artikel „Though ‚barely an operating system,‘ DOS still matters (to some people)“ auf arstechnica.com sagt [28]. Diese Funktionen sind erst nach und nach dazu gekommen, was man FreeDOS heute noch anmerkt. Wenn Netzwerktreiber für DOS existieren, sind sie häufig proprietär und können nicht so einfach verwendet werden. Es ist auch nicht damit zu rechnen, dass sich die Situation für FreeDOS in nächster Zeit ändern wird.

Das Fehlen von Netzwerkkomponenten muss man aber auch nicht als Problem sehen, es kann auch ein Feature sein. FreeDOS-Rechner können kaum aus der Ferne gehackt werden. Für Spionageprogramme und ähnliche bösartige Malware ist es schwieriger, nach Hause zu telefonieren. Trotzdem wäre eine Netzwerkunterstützung wünschenswert, sollte FreeDOS in naher Zukunft auf ARM-Prozessoren portiert werden. Das ist zumindest eine Idee, wenn das Problem mit dem fehlenden BIOS bei ARM gelöst ist. Denn FreeDOS setzt wie jedes andere DOS auch voraus, dass ein BIOS vorhanden ist. Eine andere Möglichkeit wäre, FreeDOS in einem Container mit Linux-Umgebung laufen zu lassen, oder ein kleines Linux, das DOSEmu startet. Das Linux wäre sogar in der Lage, mehrere Prozesse mit DOSEmu auszuführen, was FreeDOS so etwas wie den Anschein von Multitasking verleihen würde, wie Hall in dem Artikel bei Arstechnica.com weiter ausführt.

Da bei DOSEMU der Prozessor aber nicht emuliert wird, sondern die DOS-Programme auf dem wirklichen Prozessor des PCs ablaufen, wird dieser Plan schwierig auf einer ARM-basierten Plattform umzusetzen sein. DOSBox emuliert auch die Hardware, weswegen es auf dem Raspberry PI und auch unter Android über den Playstore installiert werden kann. Im Gegensatz zu DOSEmu ist es aber sehr langsam.

freedos_aDOSBox_und_FreeCOM

Kopiert man die FreeCOM auf seinen Androiden, kann man FreeDOS in einer App wie aDOSBox benutzen.

freedos_descent

Die Steuerung ist ganz schön hakelig, aber man kann mit aDOSBox auch Descent auf dem Androiden spielen.

Ein weiterer PC-Emulator für den Raspberry PI ist rpix86 [31]. Er emuliert das etwas abwegige 4DOS [32], das unter einer MIT-Lizenz steht, selbst aber leider nicht Open Source ist.

Die Zukunft von FreeDOS

FreeDOS wird gerne genommen, z. B. von DELL, um Komplettsysteme nicht ohne Betriebssystem ausliefern zu müssen. Es läuft eben auch gut auf modernen Laptops, in der Regel wird es aber nach dem Kauf durch ein anderes Betriebssystem ersetzt. Trotzdem findet FreeDOS seinen Weg auf alte PCs und moderne Embedded-Systeme.

Der Plan für FreeDOS 2.0 ist deshalb, eine modernere Version des heutigen FreeDOS 1.0 bzw. 1.1 zu werden [33]. FreeDOS 3.0 oder eine spätere Version soll multitaskingfähig werden und eine erweiterte Treiberunterstützung mitbringen, besonders bei den Netzwerktreibern. Trotzdem soll das Wesentliche von DOS erhalten bleiben, indem es weiter ein Einbenutzersystem für die Kommandozeile bleiben wird. Alle Programme, die jemals für MS-DOS geschrieben wurden, sollen auch noch auf FreeDOS 3.0 oder späteren Versionen lauffähig sein. Zusätzlich sollen weitere GNU-Werkzeuge hinzukommen. Dadurch können sich Entwickler, die von Unix oder GNU/Linux kommen, vielleicht etwas besser unter FreeDOS zurechtfinden.

Außer extremen Puristen würde heute vermutlich niemand hauptsächlich mit FreeDOS arbeiten wollen, um Dokumente zu schreiben, Tabellen zu erstellen oder E-Mails zu bearbeiten. Dafür ist FreeDOS auch nicht gedacht. FreeDOS soll kein Paralleluniversum sein, in dem Microsoft Windows nie erfunden und weiter auf MS-DOS gesetzt hat. FreeDOS hat aber genug Anhänger, vom Spieler klassischer Spiele über den Programmierer für veraltete Schnittstellen und Hardware, bis zum Elektroingenieur, der sich mit Embedded-Plattformen beschäftigt, um eine Nische auszufüllen. Anstatt die Steuerung der Fräse in der Holzwerkstatt oder das Kassensystem auszutauschen, kann man sich im Unternehmens- oder privatem Bereich den Upgrade-Stress sparen und diese Systeme mit FreeDOS weiter betreiben. Genau in diesem Bereich hat FreeDOS eine Zukunft, um dorthin zu gehen, wo noch kein DOS zuvor gewesen ist.

Links

[1] https://de.wikipedia.org/wiki/Disk_Operating_System
[2] http://www.mail-archive.com/freedos-user@lists.sourceforge.net/msg15073.html
[3] https://de.wikipedia.org/wiki/MS-DOS
[4] http://www.freedos.org/
[5] http://www.computerworld.com.au/article/452826/developer_interview_dos_long_dead_long_live_freedos/?pp=2
[6] http://beta.slashdot.org/story/202533
[7] http://www.sfwriter.com/wordstar.htm
[8] http://avnetmssolutions.com/products/14/title/MS-DOS+for+Embedded+Systems
[9] http://www.datalight.com/products/rom-dos
[10] https://en.wikipedia.org/wiki/Pat_Villani
[11] https://de.wikipedia.org/wiki/COMMAND.COM
[12] http://www.freedos.org/freecom/
[13] https://de.wikipedia.org/wiki/CONFIG.SYS
[14] https://de.wikipedia.org/wiki/AUTOEXEC.BAT
[15] http://www.freedos.org/kernel/config.txt
[16] http://help.fdos.org/de/hhstndrd/batch/autoexec.htm
[17] http://www.conradscastle.co.uk/9k/dos.htm
[18] http://a.fsdn.com/con/app/proj/freedos/screenshots/10049.jpg
[19] https://de.wikipedia.org/wiki/HX_DOS_Extender
[20] https://de.wikipedia.org/wiki/Portable_Executable
[21] http://www.networkworld.com/article/2226809/opensource-subnethy-we-should-preserve-useless–ol/opensource-subnet/why-we-should-preserve-useless–old-software.html
[22] https://de.wikipedia.org/wiki/VisiCalc
[23] http://www.heise.de/newsticker/meldung/Quelltexte-von-MS-DOS-und-Word-for-Windows-veroeffentlicht-2154723.html
[24] http://sourceforge.net/p/freedos/news/2014/03/microsoft-releases-source-code-to-ms-dos/
[25] http://www.mail-archive.com/freedos-user@lists.sourceforge.net/msg14900.html
[26] http://dosemu.sourceforge.net/
[27] http://www.dosbox.com/
[28] http://arstechnica.com/information-technology/2014/07/it-may-be-barely-an-operating-system-but-dos-still-matters-to-some-people/
[29] http://www.86duino.com/
[30] http://www.86duino.com/index.php?p=3203
[31] http://rpix86.patrickaalto.com/
[32] https://de.wikipedia.org/wiki/4DOS
[33] http://www.freedos.org/wiki/index.php/FreeDOS_Road_Map

Geschrieben in freiesMagazin, Publikationen