当前位置: 首页 > article >正文

微软开源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 官方课程加速立即扫码加入⬇️⬇️

相关文章:

微软开源DOS 1.0!当年用不到10万美元拿下的代码,改写了整个操作系统史

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 当一个系统彻底退出历史舞台,它的命运通常只有两个:被遗忘,或者被封存。但微软选了第三条路——把它开源出来。 如今恰逢 86-DOS 1.00 诞生 45 周年,微软…...

Pseudogen:如何用3步将Python代码转化为人人都能看懂的伪代码?

Pseudogen:如何用3步将Python代码转化为人人都能看懂的伪代码? 【免费下载链接】pseudogen A tool to automatically generate pseudo-code from source code. 项目地址: https://gitcode.com/gh_mirrors/ps/pseudogen 你是否曾面对复杂的Python代…...

使用Nodejs和Taotoken快速构建一个智能客服对话接口

使用Nodejs和Taotoken快速构建一个智能客服对话接口 1. 项目初始化与环境准备 在开始构建智能客服对话接口前,需要确保开发环境已配置Node.js运行环境。推荐使用Node.js 18或更高版本,以获得最佳的异步处理性能。通过以下命令可以检查当前Node.js版本&…...

微信小程序逆向工程实战:wxappUnpacker技术深度剖析与高效应用指南

微信小程序逆向工程实战:wxappUnpacker技术深度剖析与高效应用指南 【免费下载链接】wxappUnpacker forked from https://github.com/qwerty472123/wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 微信小程序作为移动互联网的…...

EPICS s7nodave从编译到实战:手把手配置IOC连接S7-1200 PLC(含轮询组优化)

EPICS s7nodave从编译到实战:手把手配置IOC连接S7-1200 PLC(含轮询组优化) 在工业自动化领域,EPICS(Experimental Physics and Industrial Control System)与西门子S7系列PLC的通信一直是工程师们关注的焦…...

C++集成OpenAI API实战:liboai库核心设计与应用指南

1. 项目概述:一个现代、简洁的OpenAI API C客户端如果你正在用C做项目,又想集成像GPT-4、DALLE这样的AI能力,大概率会面临一个选择:是直接用官方的Python/Node.js SDK,然后费劲地搞语言绑定,还是自己从零开…...

零代码构建AI智能体:agentforge-openclaw核心架构与实战指南

1. 项目概述:构建无需代码的智能体技能工厂 最近在探索AI智能体开发时,我发现了一个对新手和想快速验证想法的开发者特别友好的工具—— agentforge-openclaw 。简单来说,它就像一个“智能体技能工厂”,让你不用写一行代码&…...

基于MCP协议为AI助手集成实时加密市场数据:CoinPaprika MCP Server实战指南

1. 项目概述:为AI助手注入实时加密市场数据如果你正在使用Claude、Cursor这类AI编程助手,并且需要频繁查询加密货币的实时价格、交易所数据或项目信息,那么手动复制粘贴数据或者切换浏览器标签页绝对是一种效率杀手。CoinPaprika MCP Server的…...

Intel FSP技术架构与HOB机制详解

1. Intel FSP技术架构解析 Intel Firmware Support Package(FSP)是英特尔为x86平台提供的预集成固件模块,它封装了处理器和芯片组的初始化代码。作为UEFI固件开发的核心组件,FSP采用模块化设计,主要包含以下三个关键阶…...

金融交易中LLM的应用与挑战

1. 金融交易场景下的LLM应用现状大型语言模型(LLM)在金融交易领域的渗透正在改变传统量化分析的范式。过去三年间,华尔街至少有47家对冲基金开始部署GPT-4级别模型处理实时行情数据,而高频交易公司Jane Street的测试显示&#xff…...

视觉-物理对齐:机器人学习中的3D空间理解新范式

1. 视觉-物理对齐:机器人学习的新范式 在机器人学习领域,视觉-语言-动作(VLA)模型正逐渐成为主流范式。这类模型通过整合视觉感知与语言指令理解,指导机器人与物理世界进行交互。然而,当前大多数VLA模型面临…...

别再只会点Send了!Burp Repeater的5个高阶用法,让渗透测试效率翻倍

别再只会点Send了!Burp Repeater的5个高阶用法,让渗透测试效率翻倍 当你已经能熟练使用Burp Repeater发送请求、修改参数时,是否感觉测试效率遇到了瓶颈?实际上,这个看似简单的工具隐藏着许多能大幅提升手动测试深度的…...

别再手动复制代码了!用Git Submodule优雅管理多仓库依赖(以Vue3 + Element Plus项目为例)

别再手动复制代码了!用Git Submodule优雅管理多仓库依赖(以Vue3 Element Plus项目为例) 当你在开发一个Vue3后台管理系统时,是否经常遇到这样的场景:需要复用公司内部的UI组件库、工具函数库或者微服务SDK&#xff1…...

将Hermes Agent工具连接到Taotoken平台的具体配置步骤

将Hermes Agent工具连接到Taotoken平台的具体配置步骤 1. 准备工作 在开始配置前,请确保已安装Hermes Agent工具并拥有有效的Taotoken API Key。API Key可在Taotoken控制台的"API密钥管理"页面创建。同时建议在模型广场查看可用的模型ID,后续…...

MTKClient终极指南:解锁联发科设备的底层操作神器

MTKClient终极指南:解锁联发科设备的底层操作神器 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient是一款专为联发科(MediaTek)芯片设备设计的开…...

BetterGI:用AI技术重新定义《原神》游戏体验的革命性工具

BetterGI:用AI技术重新定义《原神》游戏体验的革命性工具 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 …...

ECS ARM 改造 — 多架构基础镜像构建指南

1. 背景 ECS Fargate ARM 改造时,业务 Dockerfile 的 FROM 基础镜像必须支持 ARM 架构。我们的私有 ECR 基础镜像(jdk:11-jre-ttl、jdk:11-jre-sw 等)只有 X86 版本,直接用 buildx 构建 ARM 镜像会导致 exec format error。 解决方案:基于官方多架构镜像重建私有基础镜像…...

告别手动切换!在嵌入式Linux上实现RS485自动收发控制的三种方法(附i.MX6ULL代码)

嵌入式Linux RS485自动收发控制实战:三种高效方案与i.MX6ULL实现详解 在工业自动化、智能仪表和远程监控系统中,RS485总线因其出色的抗干扰能力和长距离传输特性,成为设备间通信的首选方案。然而传统RS485开发中最大的痛点莫过于需要手动控制…...

别再死记硬背Redis命令了!用Spring Data Redis的opsForValue()帮你无缝衔接redis-cli

从redis-cli到Spring Data Redis:用opsForValue()构建无缝编程体验 Redis作为高性能键值数据库,其命令行工具redis-cli是开发者最熟悉的操作界面。但当我们将Redis集成到Spring应用中时,Spring Data Redis提供的抽象API常常让习惯了命令行的…...

GRPO与DPO的对比学习视角及优化策略

1. 从对比学习视角看GRPO与DPO的内在关联 最近在优化语言模型对齐策略时,我注意到GRPO(Generalized Reinforcement Policy Optimization)和DPO(Direct Preference Optimization)这两种方法在数学形式上存在某种有趣的对…...

别再只盯着准确率了!用Python手把手教你画出分类模型的PR和ROC曲线(附代码)

实战指南:用Python绘制分类模型的PR与ROC曲线 在机器学习项目中,评估分类模型性能时,很多开发者习惯性地依赖单一准确率指标,这往往会导致对模型真实效果的误判。特别是在样本分布不均衡的场景下,准确率可能给出极具误…...

用Python玩转Jetson Nano串口:一个脚本实现数据收发与回显测试

用Python玩转Jetson Nano串口:一个脚本实现数据收发与回显测试 在物联网和嵌入式开发中,串口通信就像设备之间的"普通话"——简单、通用且无处不在。Jetson Nano作为一款强大的边缘计算设备,其UART串口功能让开发者能够轻松连接各…...

告别VSCode!用Qt Creator 10.0.1 + ROS Noetic打造你的专属机器人开发IDE(含Qt组件集成指南)

Qt Creator 10.0.1 ROS Noetic:打造机器人开发的终极生产力工具链 在机器人开发领域,工具链的选择往往决定了开发效率的上限。当大多数开发者还在VSCode、CLion和终端之间频繁切换时,一个被低估的解决方案正在悄然崛起——Qt Creator 10.0.1…...

为AI智能体构建带权限的知识图谱记忆系统:架构、部署与实战

1. 项目概述:为AI智能体构建带权限的知识图谱记忆系统 在构建复杂的AI智能体时,一个核心挑战是如何让它们拥有“记忆”——不仅仅是记住对话历史,而是能像人类一样,将信息结构化地存储、关联,并在需要时精准地回忆起来…...

微软Bing视觉搜索优化:多模态AI与GPU加速实践

1. 微软Bing视觉搜索优化项目概述 微软Bing视觉搜索是一项革命性的图像检索技术,它允许用户通过上传照片来搜索网络上的相关内容。这项技术的核心是微软的TuringMM视觉嵌入模型,该模型能够将图像和文本映射到一个共享的高维空间中。每天需要处理数十亿张…...

R数据报告自动化失效全复盘(Tidyverse 2.0迁移血泪实录)

更多请点击: https://intelliparadigm.com 第一章:R数据报告自动化失效的根源诊断 R语言中基于rmarkdown、knitr或quarto构建的数据报告自动化流程常在生产环境中意外中断。失效往往并非源于单一错误,而是多个隐性依赖环节的连锁退化。 常见…...

MAA明日方舟自动化助手:5个步骤轻松实现全日常一键长草

MAA明日方舟自动化助手:5个步骤轻松实现全日常一键长草 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…...

双势阱系统与Boltzmann采样的同步机制研究

1. 双势阱系统与Boltzmann采样的物理基础 双势阱系统作为研究随机动力学和概率计算的经典模型,其核心特征在于具有两个稳定的能量最低点(势阱)和一个中间的势垒。这种势能结构广泛存在于自然界和人工系统中——从磁隧道结(MTJ)的自由层磁化方…...

3步解决Dell G15笔记本过热问题:开源温度控制中心完全指南

3步解决Dell G15笔记本过热问题:开源温度控制中心完全指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否在游戏时遭遇笔记本过热降频&…...

大模型推理安全防护:PART方法与动态指纹技术解析

1. 项目背景与核心挑战大模型在推理过程中产生的中间计算结果和决策路径,往往包含大量敏感信息。这些"推理痕迹"可能被恶意攻击者通过模型蒸馏等手段提取,导致核心算法泄露或隐私数据暴露。传统防御方法通常采用差分隐私或模型混淆技术&#x…...