1981年,Tim Paterson 在西雅图一家小公司写了一个操作系统,名叫 QDOS——全称 "Quick and Dirty Operating System"。
对,"快速而粗糙"。
那时候没人想到,这个名字带着自嘲的系统,会成为人类个人电脑革命的起点。IBM PC 用了它,微软买下了它,整个80年代和90年代的 PC 时代,都建立在它的代码之上。
45年后,Microsoft 把这套代码正式开源了——不是 MS-DOS,是比 MS-DOS 更早的 86-DOS 1.00。Microsoft 官方说法是:"这是截至目前发现的最早的 DOS 源码。"
一、从"Quick and Dirty"到一个时代
要理解这次开源的意义,先得知道这段代码的历史地位。
1980年代初期,IBM 正在秘密研发 PC(后来的 IBM PC 5150),需要一个操作系统。微软手里没有现成的产品,但 Tim Paterson 有。
Paterson 在西雅图计算机产品公司(Seattle Computer Products)工作,用 Intel 8086 处理器写了这个系统,最初就叫 QDOS——"Quick and Dirty Operating System"。后来 IBM 需要操作系统,Microsoft 买下了 QDOS 的全部版权,授权给 IBM 作为 PC-DOS,同时保留了向其他厂商销售的权利。
Microsoft 销售的版本,就是后来的 MS-DOS。
换句话说:
QDOS → PC-DOS → MS-DOS 是一条血脉 今天开源的,是这条血脉的最上游
二、代码竟然是从纸上手抄回来的
这次开源最震撼的细节,不是代码本身,而是它的保存方式。
这套代码从来没有数字化存储过。
2014 年和 2018 年,微软先后开源了 MS-DOS 1.25 和 2.0——那些版本有数字备份,GitHub 上躺了多年。但 86-DOS 1.00 呢?
它只存在于 泛黄的纸打印稿 里。
一个自称"DOS Disassembly Group"的历史保护团队,在 Paterson 本人提供的旧打印稿基础上,花了大量时间:
手工扫描打印稿 用 OCR 软件识别代码 手工校正 OCR 识别错误(纸质太旧,识别率极低) 逐行核对、分段整理
从纸上的墨迹,到 GitHub 上的代码仓库,这中间隔着整整 45 年。
三、这次开源了什么
根据 Microsoft 官方博客,这次发布的仓库包含:
86-DOS 1.00 内核源码:最原始的操作系统核心 PC-DOS 1.00 多个开发快照:从开发版本到最终版的演进轨迹 CHKDSK 等经典工具:早期 PC 用户最熟悉的工具之一
所有代码现在都托管在同一个 GitHub 仓库里(和之前开源的 MS-DOS 1.25、2.0、4.0 放在一起):
https://github.com/microsoft/ms-dos
四、HN 社区怎么看
HN 网友的评论很有意思——
有人看到了技术差距:
"那时候写几千行汇编,就能创办一家成功的软件公司。现在全是库,虚拟化,一层烂代码盖一层烂代码……"
有人感叹历史意义:
"他们实际上真正想做的是 BASIC,DOS 只是帮他们拿到 IBM 合同的工具。微软本质上是一家开发工具公司,顺便卖点操作系统。"
有人想挖漏洞(开玩笑的):
"是时候找漏洞了!我记得零几年的时候,在大学地下室见过一台 DOS 机器,旁边堆着一堆铅砖……它唯一的任务是通过一块自制的 ISA 卡控制仪器,然后把数据写到 5.25 寸软盘上。"
有人期待 Windows 源码:
"希望微软哪天把最早的 Windows 源码也放出来。如果连这么老的 DOS 都能保存,那 Windows 的希望也还在。"
五、为什么这值得关注
很多人可能会问:一个 45 年前的操作系统源码,对今天有什么用?
说实话,实用价值有限。Intel 8086 架构的代码,在今天的 x86_64 机器上没法直接跑。
但它的历史价值无可替代。
(1) 理解个人电脑革命的起点
PC 时代不是从 Windows 开始的,也不是从 Unix 开始的。它的真正起点,是一个程序员在西雅图写的"快速而粗糙"的 8086 操作系统。读源码,就是读历史。
(2) 早期软件工程的范本
在没有 GCC、没有 Git、没有 Stack Overflow 的年代,几千行代码撑起一个商业操作系统。这些代码的简洁和直接,是今天动辄百万行的大型项目里看不到的。
(3) 开源精神的延伸
微软这些年持续开源了大量历史项目:MS-DOS 各版本、3D Movie Maker、Zork 系列游戏。这家当年靠授权操作系统起家的公司,正在用一种开放的方式,回馈整个技术社区。
总结
最后说一句:
一个叫"快速而粗糙"的操作系统,驱动了人类历史上最伟大的个人计算革命。
有时候,先跑起来,比完美更重要。
参考资料:
Ars Technica:Microsoft open-sources "the earliest DOS source code discovered to date" Microsoft 官方博客(Stacey Haffner & Scott Hanselman) GitHub:microsoft/ms-dos Hacker News 讨论帖(66条评论)
相关开源项目:
MS-DOS 源码仓库:https://github.com/microsoft/ms-dos
夜雨聆风