FreeDOS 簡史
一個大師正在給他的一個弟子講 編程之道。 「編程之道包含在所有的軟體中 —— 不管它多麼微不足道,」 大師說道。
「編程之道在手持計算器裡面嗎?」 弟子問道。
「是的,」 大師回答道。
「編程之道在電子遊戲裡面嗎?」 弟子繼續問道。
「即便是電子遊戲中,」 大師說。
「那編程之道在個人電腦的 DOS 裡面嗎?」
大師咳嗽了一下,稍稍改變了一下姿勢,說道,「今天的課就到這裡吧。」
——《編程之道》,Geoffrey James,InfoBooks,1987
過去,計算僅限於昂貴的大型機和「大鐵疙瘩」計算機系統,如 PDP 11。但是微處理器的出現在 20 世紀 70 年代帶來了一場計算革命。你終於可以在家裡有一台電腦了——「個人電腦」時代已經到了!
我記得看到的最早的個人電腦包括 Commodore、TRS-80 和 Apple。個人電腦成了一個熱門話題,所以 IBM 決定進入這個市場。在經歷了一個快速開發周期之後,IBM 於 1981 年 8 月發布了 IBM 5150 個人電腦(最初的「IBM PC」)。
從零開始創建一台計算機並非易事,因此 IBM 以用「現成」的硬體來構建 PC 而聞名,並從外部開發商那裡獲得了其他組件的授權。其中之一是微軟授權的操作系統。反過來,微軟從西雅圖計算機產品公司獲得了 86-DOS ,進行了各種更新,並將新版本作為 IBM PC-DOS 與 IBM PC 一起首次亮相。
早期的 DOS
運行在最多只有 640 千位元組內存中的 DOS,除了管理硬體和允許用戶啟動應用程序之外,真的做不了什麼。因此,PC-DOS 1.0 命令行非常貧乏,只包含了一些設置日期和時間、管理文件、控制終端和格式化軟盤的命令。DOS 還包括一個 BASIC 語言解釋器,這是那個時代所有個人計算機的一個標準功能。
直到 PC-DOS 2.0,DOS 才變得更加有趣,為命令行添加了新的命令,並包含了其他有用的工具。但對我來說,直到 1991 年的 MS-DOS 5.0 才有了「現代感」。微軟在這個版本中對 DOS 進行了大修,更新了許多命令,並用一個新的全屏編輯器取代了老舊的 Edlin 編輯器,使之更方便用戶使用。DOS 5 還包括我喜歡的其他特性,比如基於微軟 QuickBASIC 編譯器的新 BASIC 解釋器,簡稱 QBASIC. 如果你曾經在 DOS 上玩過 Gorillas 遊戲,那可能就是在 MS-DOS 5.0 中運行的。
儘管進行了這些升級,但我對 DOS 命令行並不完全滿意。DOS 從來沒有偏離原來的設計,有其局限性。DOS 為用戶提供了一些工具,可以從命令行執行一些事情 —— 否則,你就得使用 DOS 命令行來啟動應用程序。微軟認為用戶大部分時間都會花在幾個關鍵的應用程序上,比如文字處理器或電子表格。
但是開發人員想要一個功能更強的 DOS,此時一個細分行業正在萌芽,以提供小巧優雅的工具和程序。有些是全屏應用程序,但也有許多是增強 DOS 命令環境的命令行實用程序。當我學會一點 C 語言編程時,我開始編寫自己的實用程序,擴展或替換 DOS 命令行。儘管 MS-DOS 的基礎相當有限,但我發現第三方實用程序加上我自己的工具創建了一個功能強大的 DOS 命令行。
FreeDOS
1994 年初,我開始在科技雜誌上看到很多對微軟高管的採訪,他們說下一個版本的 Windows 將完全取代 DOS。我以前使用過 Windows,但如果你還記得那個時代,你就知道 Windows 3.1 並不是一個很好的平台。Windows 3.1 很笨重,有很多毛病,如果一個應用程序崩潰,它可能會使整個 Windows 系統癱瘓。我也不喜歡 Windows 的圖形用戶界面。我更喜歡在命令行做我的工作,而不是用滑鼠。
我考慮過 Windows,並決定,「如果 Windows 3.2 或 Windows 4.0 會像 Windows 3.1 一樣,我就不會去使用它。」 但我有什麼選擇?此時,我已經嘗試過 Linux,並認為 Linux 很棒,但是 Linux 沒有任何應用程序。我的文字處理器、電子表格和其他程序都在 DOS 上。我需要 DOS。
然後我有了個主意!我想,「如果開發人員能夠在互聯網上共同編寫一個完整的 Unix 操作系統,那麼我們當然可以對 DOS 做同樣的事情。」畢竟,與 Unix 相比,DOS 是一個相當簡單的操作系統。DOS 一次運行一個任務(單任務),並且有一個更簡單的內存模型。編寫我們自己的 DOS 應該不難。
因此,在 1994 年 6 月 29 日,我在一個名為 Usenet 的留言板網路上向 「comp.os.msdos.apps」 發布了一個公告:
PD-DOS 項目公告:
幾個月前,我發表了關於啟動公共領域版本的 DOS 的文章。 當時大家對此的普遍支持,許多人都同意這樣的說法:「開始編寫吧!」所以,我就……
宣布首次生產 PD-DOS 的努力。我已經寫了一個「清單」,描述了這樣一個項目的目標和工作大綱,以及一個「任務列表」,它準確地顯示了需要編寫什麼。我會把這些貼在這裡,供大家討論。
- 關於這個名字的說明 —— 我希望這個新的 DOS 成為每個人都可以使用的東西,我天真地認為,當每個人都可以使用它時,它就是「公共領域」。我很快就意識到了這種差別,所以我們把 「PD-DOS」 改名為 「Free-DOS」,然後去掉連字元變成 「FreeDOS」。
一些開發人員聯繫我,提供他們為替換或增強 DOS 命令行而創建的實用程序,類似於我自己的努力。就在項目宣布幾個月後,我們彙集了我們的實用程序,並創建了一個實用的系統,我們在 1994 年 9 月發布了一個 「Alpha 1」 版本。在那些日子裡,發展是相當迅速的,我們在 1994 年 12 月發布了 「Alpha 2」,1995 年 1 月發布了 「Alpha 3」,1995 年 6 月發布了「Alpha 4」。
一個現代的 DOS
從那以後,我們一直致力於使 FreeDOS 成為 「現代」 DOS。而這種現代化大部分都集中在創建一個豐富的命令行環境上。是的,DOS 仍然需要支持應用程序,但是我們相信 FreeDOS 也需要一個強大的命令行環境。這就是為什麼 FreeDOS 包含了許多有用的工具,包括瀏覽目錄、管理文件、播放音樂、連接網路的命令,……以及類似 Unix 的實用程序集合,如 less
、du
、head
、tail
、sed
和 tr
。
雖然 FreeDOS 的開發已經放緩,但它並沒有停止。開發人員繼續為 FreeDOS 編寫新程序,並向 FreeDOS 添加新功能。我對 FreeDOS 1.3 RC4 的幾個重要補充感到特別興奮,FreeDOS 1.3 RC4 是即將發布的 FreeDOS 1.3 的最新候選版本。最近的一些更新如下:
- Mateusz Viste 創建了一個新的電子書閱讀器,名為 Ancient Machine Book(AMB),我們利用它作為 FreeDOS 1.3 RC4 中的新幫助系統。
- Rask Ingemann Lambertsen、Andrew Jenner、TK Chia 和其他人正在更新 GCC 的 IA-16 版本,包括一個新的libi86 庫,它提供了與 Borland TurboC++ 編譯器的 C 庫的某種程度的兼容性。
- Jason Hood 更新了一個可卸載的 CD-ROM 重定向器,以替代微軟的 MSCDEX,最多支持 10 個驅動器。
- SuperIlu 創建了 DOjS,這是一個 Javascript 開發畫布,具有集成的編輯器、圖形和聲音輸出,以及滑鼠、鍵盤和操縱桿輸入。
- Japheth 創建了一個 DOS32PAE 擴展程序,它能夠通過 PAE 分頁使用大量的內存。
儘管 FreeDOS 有了新的發展,我們仍然忠於我們的 DOS 根基。在我們繼續朝著 FreeDOS 1.3 「最終」版本努力時,我們帶著幾個核心假設,包括:
- 兼容性是關鍵 —— 如果 FreeDOS 不能運行經典 DOS 應用程序,它就不是真正的 「DOS」。雖然我們提供了許多優秀的開源工具、應用程序和遊戲,但你也可以運行你的傳統的 DOS 應用程序。
- 繼續在舊 PC 上運行(XT、286、386 等) —— FreeDOS 1.3 將保持 16 位英特爾架構,但在可能的情況下將支持擴展驅動程序支持的新硬體。為此,我們繼續專註於單用戶命令行環境。
- FreeDOS 是開源軟體 —— 我一直說,如果人們不能訪問、學習和修改源代碼,FreeDOS 就不是「自由的 DOS」。FreeDOS 1.3 將包括儘可能多地包括使用公認的開源許可證的軟體。但 DOS 實際上早於 GNU 通用公共許可證(1989)和開放源碼定義(1998),因此一些 DOS 軟體可能會使用它自己的「免費源代碼」許可證,而不是標準的「開源」許可。當我們考慮將軟體包納入 FreeDOS 時,我們將繼續評估任何許可證,以確保它們是合適的「開放源碼」,即使它們沒有得到正式承認。
我們歡迎你的幫助,使 FreeDOS 強大!請加入我們的電子郵件列表,我們歡迎所有新來者和貢獻者。我們通過電子郵件列表進行交流,不過這個列表的信件量非常小,所以不太可能撐爆你的收件箱。
訪問 FreeDOS 網站 www.freedos.org。
via: https://opensource.com/article/21/6/history-freedos
作者:Jim Hall 選題:lujun9972 譯者:zxy-wyx 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive