KI auf dem Intel 8088: Entwickler bringt ChatGPT auf MS-DOS zum Laufen
Für seine Herausforderung nutzte der Softwareentwickler zudem einen zeitgemäßen IBM-PC von 1984 – und ein paar moderne Tricks.

Normalerweise würden obsolete Betriebssysteme wie MS-DOS und aktuelle Programme wie ChatGPT nicht miteinander funktionieren. Der Entwickler und Bastler Yeo Kheng Meng hat es trotzdem versucht und wollte den Textgenerator auf einen IBM-PC 5155 mit Intel 8088 von 1984 portieren. Dazu standen ihm MS-DOS, die Programmiersprache C und ein paar moderne Tricks aus dem Jahr 2023 zur Verfügung. Den gesamten Entwicklungsprozess hat der Entwickler in einem Blog-Post zusammengefasst.
Um die Software überhaupt für MS-DOS entwickeln zu können, musste sich der Coder zunächst einen kompatiblen Compiler besorgen. Den fand er mit Open Watcom, einem 32-Bit-Programm. Der Compiler lief also weiterhin auf einem modernen Betriebssystem. Allerdings musste Meng für Programmtests auf einen Trick der Moderne zugreifen. Er setzte sich eine virtuelle Maschine mit MS-DOS auf. Das ersparte ihm viel Arbeit während der Entwicklung.
Auf den Entwickler kam allerdings direkt eine weitere Hürde hinzu: MS-DOS integriert nativ keinen Netzwerk-Stack oder eine entsprechende API. Die ist allerdings für den Zugriff auf ChatGPT zwingend notwendig. Glücklicherweise wurde vom Entwickler Michael B. Brutman die Open-Source-Library MTCP für den TCP/IP-Stack in MS-DOS entwickelt. Da MS-DOS ohne jegliches Multi-Threading auskommt, musste Meng entsprechende API-Calls zudem periodisch aufrufen, damit eine Verbindung aufrechterhalten werden konnte.
Meng konnte dadurch dann OpenAIs Chat-Completion-API nutzen, musste den passende Post-Reqeust allerdings manuell in C erstellen. Zudem funktionierte das nicht ohne eine weitere Hürde: ChatGPT-APIs sind standardmäßig per HTTPS verschlüsselt, ein Protokoll, das zu MS-DOS-Zeiten nicht verbreitet war und deshalb nicht nativ damit funktioniert.
HTTPS-Proxy einbinden
Hier behalf sich der Bastler eines weiteren modernen Tricks. Er ließ die Netzwerkverbindungen über einen HTTPS-Proxy auf einem externen Host laufen, den er speziell für dieses Projekt aufsetzte. Der Proxy verarbeitete ausgehende und eingehende Netzwerkverbindungen so, dass sie vom alten auf HTTP beschränkten IBM-Client interpretiert werden konnten.
Danach musste Meng weitere Limitationen des Single-Threaded-Betriebssystems überwinden. Normalerweise würden Ein- und Ausgaben etwa über simple C-Funktionen wie fgets() und scanf() verarbeitet werden. Allerdings pausieren sie das laufende Programm und sind so für ChatGPT ungeeignet. Das umging der Bastler, indem er in einer Dauerschleife Tastatureingaben überwachen und einzelne Symbole nach dem Drücken einer Taste in einen lokalen Puffer speichern ließ.
Durch Tricks und viel Arbeit konnte Meng dann doch die selbstgestellte Herausforderung bewältigen. Für ihn ist das Projekt nun auch eine Motivation, mehr Retro-Software für Retro-Systeme zu schreiben.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Ja, aber mit huggingfaces kann das ja jeder. Also unter dos einen Rest Client...
Für jegliche WebAPI-Anfragen gibt es ja längst eine CURL-Portierung für DOS. Und die...
Für präemptives Multitasking musst du aber den DOS-Kern umschreiben. Aus meiner...
Dann klicken weniger Leute, so wie ich, der sich jetzt ärgert und bald golem aus den...