1984 年的电脑也能跑 Chat-GPT ?!


新加坡的逆向计算爱好者 Yeo Kheng Meng 发布了一个 “doschgpt” ChatGPT 客户端,这个客户端适用于上世纪八十年代的 MS-DOS 系统。

目前这个 DOS 系统的 ChatGPT 客户端已成功在 1984 年的 IBM 5155 便携式 PC 上运行,这台机子配备 4.77Mhz 主频的 Intel 8088 CPU 和 MS-DOS 6.22 系统,带 640KB 内存、以及 CGA ISA 图形。

Yeo 老哥是个不折不扣的“复古守旧派”,早在 2019 年他就为 Windows 3.1 开发了一个 Slack 客户端,这次更是把 1981 年的 MS-DOS 纯文本操作系统和最新的 ChatGPT 两个跨了 40 多年的东西组合到一块。

最有意思的是整个程序的开发过程, Yeo 老哥先是找到一个能开发 16 位 DOS 程序的 “Open Watcom” C/C++ 编译器 ,它本身是一个 32 位程序,这意味着它可以在 64 位 Windows 11 等现代平台上运行。

但是 64 位的 Windows 又没法执行 16 位的 DOS 程序,而每次都在 640K 内存的老电脑上跑测试也并不是很现实。于是 Yeo 开一个运行 DOS 6.22 的 Virtualbox 虚拟机,然后将虚拟机和主机桥接网络,方便传输文件进行开发和测试,等测试完成后再把二进制文件传到实际的 IBM PC 上运行。

但这时另外一个问题来了:如何在这么老的 IBM PC 上处理网络?  在这一步 ,Yeo 找到了一个 1983 年的 Packet Driver API ,然后使用开源的 MTCP 库集成到应用程序中,以与 Packet Driver 进行通信,从而为客户端启用网络功能。

而要使用 ChatGPT API,必须要有一个 Post 请求,然而 DOS 没有可以使用的辅助函数,必须用 C 语言手动构建整个 POST 请求:

#define API_CHAT_COMPLETION "POST /v1/chat/completions HTTP/1.1\r\nContent-Type: application/json\r\nAuthorization: Bearer %s\r\nHost: api.openai.com\r\nContent-Length: %d\r\nConnection: close\r\n\r\n%s"
#define API_BODY "{ \"model\": \"%s\", \"messages\": [{\"role\": \"user\", \"content\": \"%s\"}], \"temperature\": %.1f }"

这时 ChatGPT API 会返回一份 JSON 输出,需要解析其中 “Content” 键的值。很明显,这一步也没有现成的 JSON 库可用,只能手动写键值对的解析代码。

这时新的问题来了: ChatGPT API 通过 HTTPS 加密,但 DOS 系统没有本机 HTTPS, Yeo 只能编写一个 go 语言的 HTTP 到 HTTPS 代理 (有点像中间服务器),然后在现代 PC 上运行这个代理。充当一个透明中间人。它检查 HTTP 请求的主机字段,并将原始套接字字节作为 HTTPS 转发到 OpenAI 的服务器。

这一步有点像作弊,但属实是无奈之举,毕竟要在 Intel 8088 上运行现代 TLS 加密算法,属实是太难为这个传家宝系列的 CPU 了。

剩下的就是如何将对话内容读/写输入到控制台,这一步不再赘述,感兴趣的朋友可以在 Yeo 的博客中查看完整的开发过程。最终实现的效果:

Yeo 已经把整个 doschgpt 客户端在 Github 上开源,里面有详细的教程,感兴趣的朋友可以自己动手试试(前提是家里有 MS-DOS 系统的传家宝机器😂...)

另外,这回图拉丁老哥们有话说了,还在嫌弃机子的配置不行?处理器低于 3.0 Ghz 不能用?人家怎么就能在 4.77Mhz 的 CPU 上跑 ChatGPT ?还不是自己动手能力太差!还是那句话,东西老点差点怎么了,又不是不能用


相關推薦

2022-12-03

强了其功能,并使其成为数字文档、打印以及在从笔记本电脑到智能手机和智能手表的屏幕上显示各种图形的重要标准。 团队成员 Doug Brotz 称,“PostScript 使印刷世界民主化”。PDF 如今也已成功的发展成为一个全球标准,每年

2022-09-23

Framework 是一家专注于制造模块化笔记本电脑的公司,此前他们主要制造的是基于 Linux 和 Windows 系统的笔记本。近日 Framework 联合 Google 推出了 Framework Laptop Chromebook 版本,具有与非 Chromebook 版本相同的模块化和可维修性。 Framew

2023-06-29

应用程序和驱动程序如同在 Windows 上一样运行。 历经 25 年的努力,ReactOS 一直在稳步进步,但目前仍处于 alpha 版本。ReactOS 的大部分成就都是基于 32 位版本,而最新的发展报告显示,ReactOS  在 x86_64 (x64) 的移植上取得了不

2023-01-21

代码 Apple Lisa 系统于 1983 年 1 月 19 日发布。与针对家用电脑市场的 Apple II 不同,Lisa 主要针对商业市场,其使用功能强大的摩托罗拉 68000 微处理器并搭配硬盘驱动器,定价 9995 美元。也正是因为其高昂的售价以及软件/软盘方

2022-10-09

用户称自己安装了 Fedora 35 (Workstation Edition) 系统的笔记本电脑(搭载英特尔 i7-1065G7 CPU)在升级内核版本后,屏幕出现了白色闪烁的情况。据称该设备的 Linux 内核版本升级到了 5.19.12 (kernel 5.19.12-100.fc35),这个问题在之前的内

2022-09-28

定制的 GNOME 桌面环境 —— COSMIC。该发行版由美国 Linux 电脑制造商 System76 开发。虽然 Pop!_OS 主要是与 System76 制造的电脑捆绑在一起,但也可以下载并安装在大多数电脑上。 由于 Pop!_OS 基于 Ubuntu,其发布周期与 Ubuntu 也保持一

2023-11-02

旧操作系统的支持。譬如 Windows XP 用户就收到了长达 13 年的安全更新,当其支持结束时,仍然可以在全球 30% 的计算机上运行。Windows 10 发布后 ,在很大程度上是“向后兼容”的,这意味着当微软终止对其现有 Windows 系统的

2022-02-09

还归属于如日中天的 AT&T,研究员 Ken Thompson 参与了几年的 Multics(一个分时操作系统)计划,无所事事的时候在这个系统上写了一个叫做太空大战(Space Travel)的打飞机游戏,结果那一年贝尔实验室退出了 Multics 计划,Tho

2022-10-23

, zim 文件体积非常小,可以存储在用户的手机、电脑或小型价格低廉的 Hotspot 上。Kiwix 就像一个普通的浏览器,支持读取这些本地副本。无法访问互联网或访问互联网受限的人可以享受与其他任何人相同的浏览体验。Kiw

2023-03-11

自 20 世纪 90 年代初诞生至今,Python 编程语言已有 30 多年的历史,且依旧保持着流行趋势。GitHub 2022 年度 Octoverse 报告曾指出,Python 仍然是使用第二多的编程语言,使用量同比增长超过 22%;在 2022 年的某个时候,GitHub 上有

2023-03-24

,其次是它不能写代码... 但 Bard 的内容比较新,对近两年的内容也能识别。 目前 Bard 仅在美区和英区开放,申请条件和微软的 Bing Chat 类似,只需一个谷歌账号就可以点击排队。 申请地址:https://bard.google.com/ 

2022-07-23

好玩的功能、亦或是深度的第三方定制 ROM(官方提供四年的安全更新,停止更新后,可以使用持续更新的第三方 ROM),Nothing 前几天在 GitHub 上公布了手机的内核源代码和设备树。 了解开源协议的用户都知道,由于 Android 系统

2022-03-24

件社区中对软件自由事业作出重大贡献的团体和个人。今年的 LibrePlanet 会议通过线上的方式举行,这也是连续第三年在线上举行会议。由于是线上的颁奖形式,因此每位获奖者可自由选择让谁来给自己颁奖。 「2021 年度自由软

2023-05-09

比大多数现代智能手机都要厚,甚至比大多数现代笔记本电脑都厚。但这种设计的好处是,有足够的空间将整个树莓派 3 整个塞进箱子里,而不需要切断任何接口或进行任何重大修改。 虽然 OURphone 现在看起来十分鸡肋,但 Robin