Zum Hauptinhalt Zur Navigation

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.
/ Oliver Nickel
15 Kommentare News folgen (öffnet im neuen Fenster)
Für den ChatGPT-Port kam ein IBM-PC 5155 zum Einsatz. (Bild: Hubert Berberich)
Für den ChatGPT-Port kam ein IBM-PC 5155 zum Einsatz. Bild: Hubert Berberich / CC-BY-SA 3.0

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(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) 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.


Relevante Themen