微软开源「迄今发现最早的 DOS 源代码」
文章摘要
在 DOS 问世 45 周年(2026 年 4 月)之际,微软以开源协议公开了「迄今为止发现的最早的 DOS 源代码」——可追溯到 DOS 1.x 时代的早期版本。值得注意的是,这份源代码此前从未以数字形式保存,工程师不得不从数十年前的纸质打印件通过 OCR 扫描识别,才得以恢复,堪称一次「数字考古」。
要理解这份代码的分量,得回到 DOS 的起源。1980 年,24 岁的程序员 Tim Paterson 在西雅图计算机产品公司(Seattle Computer Products, SCP)用 8086 汇编写出了一套操作系统,内部代号 QDOS(Quick and Dirty Operating System,「快速脏活操作系统」),后正式命名为 86-DOS。它在架构上模仿 CP/M,但适配了 16 位处理器,并采用了来自微软 Standalone Disk BASIC-86 的 FAT 文件系统。微软于 1980 年 12 月以 25,000 美元先授权了 0.3 版,又在 1981 年 7 月以 50,000 美元买断全部权利,随后改名 MS-DOS 授权给 IBM,成为 PC DOS 1.0——这桩交易后来奠定了微软的整个帝国。
此前微软曾在 2014 年(通过计算机历史博物馆)和后续陆续开源过 MS-DOS 1.25、2.0、4.0 等版本,均以 MIT 协议发布、代码以汇编为主(约 85%)。这次公开的早期版本把可考的源代码历史又往前推了一步。HN 上的讨论既有对这段历史的怀旧,也借机感慨:微软本质上「一开始就是一家开发者工具公司」,而正是其早年把 BASIC 等组件从第三方授权进来的做法,反而让后来更新的 Windows 版本因权利关系复杂而难以开源。
HN 评论精华
- dang:指出这则消息与近期「微软在 DOS 45 周年(2026 年 4 月)开源 DOS」的报道相关,并指引读者去看此前的讨论串。
- gnabgib:补充这个故事此前在 HN 已讨论过(79 分),并链接到 GitHub 上 162 分的讨论,提供社区参与度的背景。
- DamnInteresting:点出关键的保存难题——这份源代码「从未以数字形式存储」,是从数十年前的纸质打印件经 OCR 恢复的。
- userbinator:表达对 Windows 2000 的强烈怀旧,称其为「一个优美、运行流畅的操作系统」,但感叹微软几乎不可能公开它的源码;并谈到把 Windows 2000 移植到 64 位系统的技术难度,涉及 NT 内核非 x86 移植与 WoW64 兼容层等大量工作。
- GaryBluto:渴望 Windows 2000 源码公开,称那「将是我可以含笑而终的一天」。
- teamsolid:希望早期 Windows 版本也能得到类似的保存,期待微软保留了老 Windows 的源码。
- ramon156 / acomjean:惊讶地发现 Commodore 64 的 BASIC 也来自微软,意识到自己一直在不知不觉中使用微软产品;并称赞微软既开源了 DOS 也开源了历史性的 BASIC 代码,承认微软「最初真的是一家开发者工具公司」。
- 254089:指出微软当年从第三方授权 BASIC 的做法,约束了后来 Windows 版本的发布,使得更新版本因权利复杂而无法开源。
- throwaway27448:略带讥讽地说,等到现在才放出 DOS 源码,「已经晚了几十年」,对今天的实用价值不大。
- nananana9:羡慕早期计算时代——「写几千行汇编就能开一家成功的软件公司」;9dev 则提出「数字考古」或许能成为一门正经的学科,并指出游戏行业在软件保存上走在前面。