DOS

DOS，是磁碟作業系統的縮寫，是個人電腦上的一類作業系統。從1981年直到1995年的15年間，DOS在IBM PC相容機市場中佔有舉足輕重的地位。而且，若是把部份以DOS為基礎的Microsoft Windows版本，如Windows 95、98和Me等都算進去的話，那麼其商業壽命至少可以算到2000年。DOS家族包括MS-DOS、PC-DOS、DR-DOS、FreeDOS、、、JM-OS等，其中以MS-DOS最為著名。雖然這些系統常被簡稱為「DOS」，但沒有任何一個系統單純以「DOS」命名，但這些系統和DOS執行檔以及MS-DOS API並不相容。設計架構.所有DOS類的作業系統都是在使用Intel x86或其相容CPU的機器上執行的。最早的時候，DOS並未受限於此；為了在許多以x86為基礎，但和IBM PC不相容的機器上執行，產生了不少特定機器版本的DOS及類似的作業系統。DOS是單一使用者、單工的作業系統，擁有不可重入的基本核心函式時，在這個呼叫結束之前，其他的行程絕對不能進行系統呼叫、打斷第一個行程。DOS的核心為使用者程式提供了各式各樣的函式，例如：在螢幕上顯示文字、從鍵盤讀入字元、存取磁碟上的檔案等等。指令碼語言.DOS透過"批次檔"編輯。他們執行起來和編譯而成的程式沒有兩樣。檔案中的每一行都被視為命令來執行。批次檔也可以使用數個內部命令，例如goto和條件運算式。硬體存取.DOS提供了簡單的硬體抽象層，讓程式員可以開發文字介面的應用程式；但這個硬體抽象層無法存取大部份的計算機硬體，像是顯示卡、印表機，或是滑鼠等。這使得程式員必須直接存取硬體，導致每個應用程式都有屬於自己的一組硬體週邊驅動程式。硬體製造商會將他們的硬體規格書釋出，以確保在受歡迎的應用程式中有它們的驅動程式。裝置保留名稱.在DOS中，有數個名稱保留給裝置使用，無法拿來當一般檔案的名稱；這些保留名稱是用來將應用程式的輸出傳送給硬體週邊用的。這樣的限制也影響到數個版本的Windows，在某些情況下甚至會造成當機和安全性弱點。其中一些保留名稱有：codice_1、codice_2或codice_3、codice_4、codice_5、codice_6、codice_7、codice_8或codice_9、codice_10、codice_11，以及codice_12。磁碟命名法.在DOS中，磁碟機是利用不同的字母命名的。標準的作法是保留「A」和「B」給軟碟機。若是系統只有一臺軟碟機的話，DOS允許這臺軟碟機同時使用這兩個代號，然後DOS會要求使用者更換磁片。這麼做可以讓使用者把檔案複製到不同的軟碟片上，或是執行某一片軟碟片上的程式，然後把資料檔案存放在另一片軟碟片上。最早硬碟的代號為「C」和「D」。在一臺硬碟機上，DOS只允許一個活動分割區的存在。隨著支援的硬碟數量越來越多，磁碟代號的命名方法演變為：先將磁碟代號指派給每一顆硬碟機的活動主分割區，然後第二輪將代號指派給延伸分割區中的邏輯磁碟區，第三輪再把代號指定給非活動的主分割區。最後，DOS才將代號指派給光碟機、RAM disk，以及其他的硬體。一般來說，磁碟代號都是依照驅動程式的載入順序，按字母順序指派的，但驅動程式也可以要求DOS指派不同的字母。例如網路磁碟機的驅動程式通常會指派最後的幾個字母。因為DOS的應用程式會直接使用這些磁碟代號，因此若是新增了需要分配磁碟代號的硬體，可能會導致這些應用程式出錯。舉例來說：若是原本硬碟中的延伸分割區中存在邏輯磁碟區，此時新增一顆有主分割區的硬碟的話，由於主分割區擁有較高的分配優先權，所以原本硬碟的邏輯磁碟區的代號就會改變。此外，就算是新增一顆只有延伸分割區和邏輯磁碟區的硬碟，還是會影響到RAM disk及光碟機的代號。這個問題一直到9x系列的Windows都仍然存在；NT系列才有解決方案：磁碟代號會保留給已存在的磁碟機機，除非使用者手動更改。開機流程.PC相容機的開機磁區歷史.MS-DOS以及它的前身86-DOS是受到Digital Research公司的CP/M啟發而完成的。--是當時使用Intel 8080及 Z80這兩顆8位元--的微電腦上最受歡迎的磁碟作業系統。在1980年的時候，--使用Intel 8088微處理器，開發出了他們的第一臺微電腦。他們需要一套能夠在這臺微電腦上使用的作業系統。--在找一套能和--相容的--，一開始找上了微軟的執行長比爾·蓋茨（可能是因為當時微軟開發出了讓--可以在Apple II上執行的，所以--相信微軟擁有--被轉介到--，並且舉行了相關的會議。然而，關於--的使用權的初次談判破裂了—因為--希望以權利金的方式販售--，但--希望單一授權，並且將名稱改為--的創始人蓋瑞·基爾多拒絕簽約，--因此放棄購買--IBM再次找上比爾·蓋茨。蓋茨轉而找上了，後來成了1981年發行的Microsoft Disk Operating System，簡稱MS-DOS。微軟也將這套系統授權給數個電腦公司。這些電腦公司販售給他們的硬體使用的MS-DOS，有時使用他們自己的名稱。微軟後來要求他們使用MS-DOS這個名稱，除了IBM以外。IBM持續為IBM PC開發新版的PC-DOS。Digital Research查覺到IBM正在販售和CP/M很類似的作業系統。兩者相較，CP/M比PC-DOS貴上近200美元，銷售量也低。CP/M逐漸淡出，而MS-DOS和PC-DOS則成了PC和PC相容機的主力作業系統。Digital Research曾試圖挽回CP/M-86錯失的市場。一開始是發行了，後來又發行了DR-DOS、以及的一部份。後來，微軟和IBM在兩套DOS的繼任作業系統上發生了一連串爭執。他們在DOS系統上的開發也因此分道揚鑣。 MS-DOS在某些層面上轉型成為Windows；而PC-DOS的最後一個版本為1998年發行的PC-DOS 2000。FreeDOS計劃開始於1994年6月26日。當天微軟宣佈他們將不再販賣MS-DOS，也不再提供支援。於是吉姆·霍爾張貼了一份宣言，宣佈要開發DOS的開放源始碼替代品。在幾個星期內，包括Pat Villani和Tim Norman的幾位程式員加入了這個計劃。他們利用共享他們撰寫或現有程式碼的方式，產生了核心、command.com命令直譯器以及核心公用程式。在歷經了數個版本的官方預覽版本之後，FreeDOS 1.0版在2006年9月3日正式釋出。使用FreeDOS不需支付任何的版權費用或權利金。淡出.早期版本的Microsoft Windows只是在DOS之上執行的應用程式。大約在90年代初，Windows仍相當依賴新版本的DOS。一直到Windows for Workgroups 3.11，DOS才逐漸退居負責開機及載入Windows核心的角色。在Windows 95，屆時Intel平臺的個人電腦將無法啟動DOS系統。持續發展.有些電腦製造商會預載FreeDOS當作OEM作業系統出貨。有一套以GPL方式授權的DOS，名為NX-DOS，目前正在開發中。它是一套16位元的即時作業系統，擁有網路功能，可以從軟碟片開機，還有一個不太完整的USB驅動程式。NX-DOS專案從1992年就開始了，原本是個個人專案，在2005年的時候以GPL方式釋出。目前仍可取得的DOS系統有DR-DOS等等。嵌入式系統.由於DOS可以直接存取硬體，因此它很適合拿來控制嵌入式裝置。新版本的DR-DOS便瞄準了這塊市場。 佳能的數位相機PowerShot Pro 70使用ROM-DOS做為嵌入式系統。模擬器.在Linux下，使用""可以執行DOS及其衍生版本。另外在各個版本的UNIX下也有許多用來執行DOS的模擬器，有些甚至在非x86的平臺上也可以執行，像是DOSBox。由於Windows XP和Vista無法和純DOS相容，DOS模擬器在這些系統上也越來越流行。這些模擬器可以用來執行過去的老軟體或其他DOS軟體。其中一個最為知名的是DOSBox，主要的設計目標是在當前的作業系統上執行DOS的遊戲程式。在Microsoft Virtual PC下也可以執行DOS的應用程式，相容性比DOS模擬器好。使用者可以安裝合法的MS-DOS，然後除了那些最難對付的應用程式以外，絕大部份的DOS應用程式都可以在上面執行。與Microsoft Windows的關係.純32位元版本的Windows。軟體.由於DOS在長時間內是PC相容機的主要平臺，有許多為DOS撰寫的知名軟體。例如：易用性.使用者介面.所有的DOS均使用命令列介面。執行程式的方法是在命令列中鍵入程式的名稱。DOS系統包含一些公用程式，也提供了一些不是以程式方式存在的命令。為了提供對使用者更友善的操作環境，許多的軟體廠商紛紛推出各式各樣的檔案管理程式。這些程式通常使用選單及圖示做為介面。Microsoft Windows就是其中最有名的例子，最後發展成為完整的作業系統，取代DOS成了PC相容機上最受歡迎的作業系統。-{使用文字模式的使用者介面}-有：、、、Quarterdesk的，以及SideKick。使用圖形使用者介面的程式有：Digital Research的以及。發展到最後，主要的DOS廠商開始在DOS中加入自己的環境管理程式。MS/PC-DOS 4中有；而次年發行的DR-DOS 5則加入了以GEM為基礎的。多工.在最初的設計中，DOS是一個單工的作業系統。MS/PC-DOS使用DOS shell做到工作切換的功能，而DR-DOS則是在DR-DOS 6中利用"TaskMAX"做到類似的功能。 MS/PC-DOS自始至終都沒有多工的能力； DR-DOS則是在DR-DOS 7中提供了這個功能。限制.DOS的架構有數項惱人的限制。最早的8088微處理器只能定址到1 MB的實體記憶體空間。由於附加的硬體裝置也必須對映到這段空間，因此最高可以使用的記憶體只有640 KB等技術使用額外的記憶體，也可以有多工的功能。DOS還有硬碟分割區大小的限制。造成這個問題的原因有兩個。首先，許多DOS類的作業系統只支援到FAT16，而FAT16在設計上就不支援超過2.1 GB的硬碟分割區。另外，DOS存取硬碟的方式是透過INT 13這個中斷呼叫，然後往下再利用CHS系統對應到磁碟上的資料。在這個架構下，作業系統只能看到8 GB的硬碟空間。比較新的作業系統使用軟體的方式存取硬碟。FAT16和FAT12上的檔案名稱必須遵守「8.3命名規則」：檔案的主檔名不得超個8個字元，而副檔名則不得超過3個字元。命令集.