微软开源DOS 1.0!当年用不到10万美元拿下的代码,改写了整个操作系统史
整理 | 屠敏出品 | CSDNIDCSDNnews当一个系统彻底退出历史舞台它的命运通常只有两个被遗忘或者被封存。但微软选了第三条路——把它开源出来。如今恰逢 86-DOS 1.00 诞生 45 周年微软最新宣布把目前已发现的最早 DOS 源代码整理并公开发布。地址https://github.com/DOS-History/Paterson-Listings这批源码的公开不仅为大众揭开了初代操作系统的开发面纱也还原了最早期的研发现场。微软在公告中也坦言这些内容的意义不只是让代码重见天日更是为了让这些在计算机历史上有分量的系统软件能够被研究、被保存当然也可以单纯满足一下人们的好奇心。86-DOS微软帝国崛起的奇点回看历史PC-DOS 1.00 的问世是一个关键节点。它是专为 IBM PC 打造的首个 DOS 版本也正是从这一刻起微软逐渐走向了个人计算机时代的核心位置。可是这款操作系统最初却并不是微软从零开发的。彼时在“微软”这个名字正式确立之前比尔·盖茨就已经在为早期计算机编写 BASIC 解释器了。那时候的微软还更像一家“语言工具公司”而不是操作系统公司。微软最早参与商业化推进的操作系统之一其实也并不是 DOS而是基于 Unix 的 Xenix但它更多以授权与 OEM 合作的形式存在。转折点出现在 1980 年。当时 IBM 计划入局桌面 PC 市场也就是后来的 IBM PC急需一套专属操作系统于是他们找到了微软。在此之前行业主流操作系统为 CP/MIBM 最初的合作目标也并非微软而是 CP/M 的研发厂商数字研究公司Digital Research。但双方的合作谈判最终破裂数字研究公司不愿配合 IBM 严苛的保密协议要求同时无法跟上 IBM 的研发工期拒绝快速适配 16 位硬件架构的系统版本这让 IBM 陷入了无系统可用的困境也为微软迎来了绝佳的机会。然而问题在于当时的微软手里并没有合适的系统。理论上微软拥有 ATT 的 Unix 授权可以开发 Xenix但由于微软购买的授权协议限制使其无法直接移植到 IBM PC 使用的 x86 架构上。这就把微软推到了一个很现实的选择面前要么从头开发要么想办法“快速得到一套系统”。不难想象从头开发操作系统周期过长IBM 等不起微软也来不及。就在此时微软团队注意到西雅图计算机产品公司SCP的 Tim Paterson 之前曾开发过一台基于 8086 的原型计算机在等待 CP/M 被移植到 8086 架构期间他为该平台编写了一个简易的 16 位操作系统。Paterson 将其称为 QDOSQuick and Dirty Operating System。据微软联合创始人保罗·艾伦后来回忆这个系统全部代码规模只有 6K。后来它被改名为 86-DOS有时也被称为 SCP-DOS。随后微软联系 SCP 的老板 Rod Brock以 1 万美元获得 QDOS 授权并约定每授权一家公司使用还需支付 1.5 万美元版税。后来在《Big Blues: The Unmaking of IBM》一书中有记录提到盖茨向 IBM 高层介绍了 QDOS并将其提供给 IBM。当时 IBM 高层提了一个问题“你们想自己买下它还是让我来买”由于 IBM 已经决定采用开放架构他们更倾向于让微软来收购 QDOS。此外IBM 高层还表示“如果是我们自己买这个软件我们可能会把它搞砸。”随后盖茨、史蒂夫·鲍尔默以及微软的 Bob O’Rear 在佛罗里达州博卡拉顿与 IBM 会面并达成协议由微软负责协调 PC 的软件开发流程。据外媒报道在当年 11 月签署的合同中IBM 同意向微软支付总计 43 万美元其中包括 4.5 万美元用于后来被称为 DOS 的系统31 万美元用于各种 16 位编程语言以及 7.5 万美元用于“适配、测试与咨询服务”。值得注意的是IBM 原本预计微软会要求更高的前期费用甚至可能按每份拷贝收取版税。但微软选择的策略却是保留将 DOS 销售给其他公司的权利。1981 年 5 月Tim Paterson 离开 SCP 并加入微软。同年 7 月 27 日艾伦与 Brock 签署协议以 5 万美元将 DOS 完整出售给微软并附带语言产品升级的优惠条款。此后微软基于自带 CP/M 风格应用程序接口的 86-DOS 进行改造最终在 1981 年 8 月推出了 IBM 定制版 PC-DOS 1.0。同时微软保留了独立发售授权可面向其他兼容 PC 厂商推出自有版本 MS-DOS。事实证明这一决定极为关键因为以 MS-DOS 名义推出的操作系统很快成为微软成功的核心基础直接奠定了微软此后数十年的行业统治地位。DOS 不同版本的开源放在当时来看这无疑是一场豪赌。以如今的标准衡量初代 DOS 功能极度简陋仅支持 160KB 软盘运行没有子目录功能也无法适配硬盘。但它依旧成为了基石支撑着 MS-DOS 系列在八九十年代长期垄断 PC 操作系统市场。在此之前当代开发者能接触到的最早 DOS 版本是微软在 2014 年向计算机历史博物馆开放、并于 2018 年上传至 GitHub 的 MS-DOS 1.25 与 2.0。之后又有 MS-DOS 4.0等历史版本陆续开源逐步拼出了早期 PC 系统的发展轨迹。可以看到微软这几年在做一件很明确的事情逐步把曾经封闭的软件历史转化为可研究的公共资料。不过2014 年微软首次公开早期 MS-DOS 源码时授权协议限制非常严格仅允许非商业研究、教学和实验用途禁止二次开发。而后来 GitHub 上的版本改为 MIT 协议允许自由修改、复用与分发。这一次的 PC-DOS 1.00同样采用 MIT 协议相当于把 PC 时代最早的源头也补齐了。这次到底开源了什么此次微软并非只是把一个老版本系统丢上 GitHub 上更像是一整套“开发现场记录”。其中开源的内容包括86-DOS 1.00 的完整内核源码这是整个 DOS 家族的源头多个 PC-DOS 1.00 内核的开发快照可以理解为那个年代的“阶段性提交记录”以及像 CHKDSK 这样的经典工具程序。这些资料并不只是“传统意义上的操作系统版本”。在很多情况下它们记录的是某个时间点的开发状态甚至包含 Tim Paterson 手写的注释。其中不仅有汇编代码的打印稿甚至连“汇编器本身”的源码清单也在其中。这让我们得以看到一个非常难得的视角MS-DOS / PC-DOS 当年是如何一步步被写出来的——不是事后整理的版本而是开发当时真实发生的过程。据微软透露后来由 Yufeng Gao 和 Rich Cini 带领的一支历史保护团队把这些资料重新“救活”扫描、OCR 转录、技术校验再加上法律审核一步步把这套资料变成今天可以阅读、可以研究的形式。最终这些内容被整理进 DOS-History/Paterson-Listings 仓库并通过 MIT 协议开放出来。读这些东西有点像在翻一份“Git 代码库的提交历史记录”。你可以了解某个功能是什么时候加进去的出现过哪些 bug又是怎么被修复的。而那些最原始的打印稿也没有消失——Tim Paterson 已经把它们捐赠出来未来会在 Interim Computer Museum计算机博物馆展出。45 年前的代码在今天还有意义吗可能有人觉得几十年前的命令行系统早已被图形界面取代开源这些代码有什么意义但恰恰因为“够早”它的价值反而更清晰。首先这是最接近“开发现场”的计算机历史资料。相比后来整理过的版本这些带着批注和修改痕迹的源码真实记录了当时的工程方式在极其有限的硬件条件下如何一步步实现功能、定位问题、修复错误。它呈现的不是结果而是过程。其次它补全了一段关键行业史。从 MS-DOS 1.25、2.11到 4.0再到 86-DOS 1.00微软正在逐步拼出个人计算机早期操作系统的发展全貌。这不仅是微软的历史也是整个软件工业的历史。最后对今天的开发者来说这是一种非常直接的“对照参照”。在没有高级语言框架、没有自动内存管理的年代每一行代码都来自对资源极限的权衡。这种约束下的工程思路反而显得格外清晰。软件会被替代系统会被更新这是行业的常态。但那些最早的尝试并不会因此失去意义。参考https://github.com/DOS-History/Paterson-Listingshttps://www.zdnet.com/article/microsoft-open-sources-dos-1-0-much-more-than-the-code/https://au.pcmag.com/operating-systems/88773/the-rise-of-dos-how-microsoft-got-the-ibm-pc-os-contract推荐阅读达梦图数据库GDMBASE V4.0在千亿级原生图底座上让AI真正学会推理AI协作新范式openJiuwen社区首发Coordination Engineering全栈技术体系不做加法做融合DM9 给出数据库的下一代答案加入AMD AI 开发者计划与全球极客共筑开源加入即领 50 小时免费云算力进群抽显卡、AIPC好运不停活动与工作坊早鸟名额优先锁定AMD Al Academy 官方课程加速立即扫码加入⬇️⬇️
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2574436.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!