回看歷史,PC-DOS 1.00 的問世,是一個關(guān)鍵節(jié)點(diǎn)。它是專為 IBM PC 打造的首個 DOS 版本,也正是從這一刻起,微軟逐漸走向了個人計(jì)算機(jī)時(shí)代的核心位置。
可是,這款操作系統(tǒng)最初卻并不是微軟從零開發(fā)的。
彼時(shí)在“微軟”這個名字正式確立之前,比爾·蓋茨就已經(jīng)在為早期計(jì)算機(jī)編寫 BASIC 解釋器了。那時(shí)候的微軟,還更像一家“語言工具公司”,而不是操作系統(tǒng)公司。
微軟最早參與商業(yè)化推進(jìn)的操作系統(tǒng)之一,其實(shí)也并不是 DOS,而是基于 Unix 的 Xenix,但它更多以授權(quán)與 OEM 合作的形式存在。
轉(zhuǎn)折點(diǎn)出現(xiàn)在 1980 年。
當(dāng)時(shí) IBM 計(jì)劃入局桌面 PC 市場,也就是后來的 IBM PC,急需一套專屬操作系統(tǒng),于是他們找到了微軟。
在此之前,行業(yè)主流操作系統(tǒng)為 CP/M,IBM 最初的合作目標(biāo)也并非微軟,而是 CP/M 的研發(fā)廠商數(shù)字研究公司(Digital Research)。但雙方的合作談判最終破裂,數(shù)字研究公司不愿配合 IBM 嚴(yán)苛的保密協(xié)議要求,同時(shí)無法跟上 IBM 的研發(fā)工期,拒絕快速適配 16 位硬件架構(gòu)的系統(tǒng)版本,這讓 IBM 陷入了無系統(tǒng)可用的困境,也為微軟迎來了絕佳的機(jī)會。
問題在于:當(dāng)時(shí)的微軟手里并沒有合適的系統(tǒng)。
理論上,微軟擁有 AT&T 的 Unix 授權(quán),可以開發(fā) Xenix,但由于微軟購買的授權(quán)協(xié)議限制使其無法直接移植到 IBM PC 使用的 x86 架構(gòu)上。
這就把微軟推到了一個很現(xiàn)實(shí)的選擇面前:要么從頭開發(fā),要么想辦法“快速得到一套系統(tǒng)”。
不難想象,從頭開發(fā)操作系統(tǒng)周期過長,IBM 等不起,微軟也來不及。
就在此時(shí),微軟團(tuán)隊(duì)注意到西雅圖計(jì)算機(jī)產(chǎn)品公司(SCP)的 Tim Paterson 之前曾開發(fā)過一臺基于 8086 的原型計(jì)算機(jī),在等待 CP/M 被移植到 8086 架構(gòu)期間,他為該平臺編寫了一個簡易的 16 位操作系統(tǒng)。Paterson 將其稱為 QDOS(Quick and Dirty Operating System)。
![]()
據(jù)微軟聯(lián)合創(chuàng)始人保羅·艾倫后來回憶,這個系統(tǒng)全部代碼規(guī)模只有 6K。(后來它被改名為 86-DOS,有時(shí)也被稱為 SCP-DOS。)
隨后,微軟聯(lián)系 SCP 的老板 Rod Brock,以 1 萬美元獲得 QDOS 授權(quán),并約定每授權(quán)一家公司使用,還需支付 1.5 萬美元版稅。
后來在《Big Blues: The Unmaking of IBM》一書中,有記錄提到,蓋茨向 IBM 高層介紹了 QDOS,并將其提供給 IBM。當(dāng)時(shí) IBM 高層提了一個問題:“你們想自己買下它,還是讓我來買?”由于 IBM 已經(jīng)決定采用開放架構(gòu),他們更傾向于讓微軟來收購 QDOS。
此外,IBM 高層還表示:“如果是我們自己買這個軟件,我們可能會把它搞砸。”隨后,蓋茨、史蒂夫·鮑爾默以及微軟的 Bob O’Rear 在佛羅里達(dá)州博卡拉頓與 IBM 會面,并達(dá)成協(xié)議,由微軟負(fù)責(zé)協(xié)調(diào) PC 的軟件開發(fā)流程。
據(jù)外媒報(bào)道,在當(dāng)年 11 月簽署的合同中,IBM 同意向微軟支付總計(jì) 43 萬美元,其中包括 4.5 萬美元用于后來被稱為 DOS 的系統(tǒng),31 萬美元用于各種 16 位編程語言,以及 7.5 萬美元用于“適配、測試與咨詢服務(wù)”。
值得注意的是,IBM 原本預(yù)計(jì)微軟會要求更高的前期費(fèi)用,甚至可能按每份拷貝收取版稅。但微軟選擇的策略卻是保留將 DOS 銷售給其他公司的權(quán)利。
1981 年 5 月,Tim Paterson 離開 SCP 并加入微軟。同年 7 月 27 日,艾倫與 Brock 簽署協(xié)議,以 5 萬美元將 DOS 完整出售給微軟,并附帶語言產(chǎn)品升級的優(yōu)惠條款。
此后,微軟基于自帶 CP/M 風(fēng)格應(yīng)用程序接口的 86-DOS 進(jìn)行改造,最終在 1981 年 8 月,推出了 IBM 定制版 PC-DOS 1.0。
同時(shí),微軟保留了獨(dú)立發(fā)售授權(quán),可面向其他兼容 PC 廠商推出自有版本 MS-DOS。
事實(shí)證明,這一決定極為關(guān)鍵,因?yàn)橐?MS-DOS 名義推出的操作系統(tǒng),很快成為微軟成功的核心基礎(chǔ),直接奠定了微軟此后數(shù)十年的行業(yè)統(tǒng)治地位。
DOS 不同版本的開源
放在當(dāng)時(shí)來看,這無疑是一場豪賭。
以如今的標(biāo)準(zhǔn)衡量,初代 DOS 功能極度簡陋:僅支持 160KB 軟盤運(yùn)行,沒有子目錄功能,也無法適配硬盤。
但它依舊成為了基石,支撐著 MS-DOS 系列在八九十年代長期壟斷 PC 操作系統(tǒng)市場。
在此之前,當(dāng)代開發(fā)者能接觸到的最早 DOS 版本,是微軟在 2014 年向計(jì)算機(jī)歷史博物館開放、并于 2018 年上傳至 GitHub 的 MS-DOS 1.25 與 2.0。之后又有 等歷史版本陸續(xù)開源,逐步拼出了早期 PC 系統(tǒng)的發(fā)展軌跡。
可以看到,微軟這幾年在做一件很明確的事情:逐步把曾經(jīng)封閉的軟件歷史轉(zhuǎn)化為可研究的公共資料。
不過,2014 年微軟首次公開早期 MS-DOS 源碼時(shí),授權(quán)協(xié)議限制非常嚴(yán)格,僅允許非商業(yè)研究、教學(xué)和實(shí)驗(yàn)用途,禁止二次開發(fā)。而后來 GitHub 上的版本改為 MIT 協(xié)議,允許自由修改、復(fù)用與分發(fā)。
這一次的 PC-DOS 1.00,同樣采用 MIT 協(xié)議,相當(dāng)于把 PC 時(shí)代最早的源頭也補(bǔ)齊了。
這次到底開源了什么?
此次微軟并非只是把一個老版本系統(tǒng)丟上 GitHub 上,更像是一整套“開發(fā)現(xiàn)場記錄”。
其中開源的內(nèi)容包括:
![]()
這些資料并不只是“傳統(tǒng)意義上的操作系統(tǒng)版本”。在很多情況下,它們記錄的是某個時(shí)間點(diǎn)的開發(fā)狀態(tài),甚至包含 Tim Paterson 手寫的注釋。其中不僅有匯編代碼的打印稿,甚至連“匯編器本身”的源碼清單也在其中。
這讓我們得以看到一個非常難得的視角:MS-DOS / PC-DOS 當(dāng)年是如何一步步被寫出來的——不是事后整理的版本,而是開發(fā)當(dāng)時(shí)真實(shí)發(fā)生的過程。
據(jù)微軟透露,后來由 Yufeng Gao 和 Rich Cini 帶領(lǐng)的一支歷史保護(hù)團(tuán)隊(duì),把這些資料重新“救活”:掃描、OCR 轉(zhuǎn)錄、技術(shù)校驗(yàn),再加上法律審核,一步步把這套資料變成今天可以閱讀、可以研究的形式。
最終,這些內(nèi)容被整理進(jìn)DOS-History/Paterson-Listings 倉庫,并通過 MIT 協(xié)議開放出來。
讀這些東西,有點(diǎn)像在翻一份“Git 代碼庫的提交歷史記錄”。你可以了解某個功能是什么時(shí)候加進(jìn)去的,出現(xiàn)過哪些 bug,又是怎么被修復(fù)的。
而那些最原始的打印稿,也沒有消失——Tim Paterson 已經(jīng)把它們捐贈出來,未來會在 Interim Computer Museum(計(jì)算機(jī)博物館)展出。
![]()
![]()
45 年前的代碼在今天還有意義嗎?
可能有人覺得,幾十年前的命令行系統(tǒng)早已被圖形界面取代,開源這些代碼有什么意義?
但恰恰因?yàn)椤皦蛟纭保膬r(jià)值反而更清晰。
首先,這是最接近“開發(fā)現(xiàn)場”的計(jì)算機(jī)歷史資料。相比后來整理過的版本,這些帶著批注和修改痕跡的源碼,真實(shí)記錄了當(dāng)時(shí)的工程方式:在極其有限的硬件條件下,如何一步步實(shí)現(xiàn)功能、定位問題、修復(fù)錯誤。它呈現(xiàn)的不是結(jié)果,而是過程。
它補(bǔ)全了一段關(guān)鍵行業(yè)史。從 MS-DOS 1.25、2.11,到 4.0,再到 86-DOS 1.00,微軟正在逐步拼出個人計(jì)算機(jī)早期操作系統(tǒng)的發(fā)展全貌。這不僅是微軟的歷史,也是整個軟件工業(yè)的歷史。
最后,對今天的開發(fā)者來說,這是一種非常直接的“對照參照”。在沒有高級語言框架、沒有自動內(nèi)存管理的年代,每一行代碼都來自對資源極限的權(quán)衡。這種約束下的工程思路,反而顯得格外清晰。
軟件會被替代,系統(tǒng)會被更新,這是行業(yè)的常態(tài)。但那些最早的嘗試,并不會因此失去意義。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.