DOS
DOS,是磁碟作業系統(英文:DiskOperatingSystem)的縮寫,是一个人電腦的一類作業系統。對一九八一年到一九九五年的一五年間,DOS 佇咧 IBM PC 相容機市場內底占有攑真輕重的地位。而且,若是共部份以 DOS 為基礎的 Microsoft Windows 版本,如 Windows 九十五、九十八佮 Me 等攏算入去的話,若其商業壽命至少會當算到二空空年。
DOS 家族包括 MS-DOS、PC-DOS、DR-DOS、FreeDOS、PTS-DOS、ROM-DOS、JM-OS 等,其中以 MS-DOS 上出名。雖然遮的系統定定予人簡稱做「DOS」,但是無任何一个系統單純以「DOS」號名(干焦一个都無關係的一九六空年代 IBM 大型主機作業系統以此號名)。 此外,有幾个仔佮 DOS 無關係、在非 x 八十六的微電腦系統上執行的磁碟作業系統佇名稱中嘛有「DOS」字眼,而且佇咧專門討論這个機器的場合內底嘛會簡稱做「DOS」(比如講:AmigaDOS、AMSDOS、ANDOS、Apple DOS、Atari DOS、Commodore DOS、CSI-DOS、ProDOS、TRS-DOS 等), 但是𪜶的系統攏佮 DOS 執行檔以及 MS-DOS API 無相容。
設計架構
所有 DOS 類的作業系統攏是咧使用 Intel x 八十六抑是按怎 CPU 的機器上執行的(主要是 IBM PC 佮其相容機)。 上早的時陣,DOS 並無受限制這个代誌;為著佇真濟以 x 八十六為基礎,但是佮 IBM PC 無相容的機器上執行,產生了袂少特定機器版本的 DOS 閣有類似的做業系統。
DOS 是孤一使用者、單工的作業系統,有不可重入的基本核心函式(意即同時間只有一個程式呼叫遮的函式)。 有一个例外的狀況,就是定駐程式(Terminate and Stay Resident,縮寫為 TSR)。 某乜常駐程式允准使用者多工操作;毋過這个時陣猶閣有「核心袂當重入去」的問題:做一个行程(process)呼叫著作業系統核心內的服務函式(也就是系統呼叫)時,佇咧這个呼叫結束進前,其他的行程絕對袂當進行系統呼叫、拍斷第一个行程。
DOS 的核心為使用者程式提供了各式各樣的函式,比如講:佇螢幕頂懸顯示文字、對鍵盤讀入字元、存取吸碟上的檔案等等。
手稿語言
DOS 透過 _ 批次檔 _(副檔名做. BAT)提供介面指令碼的功能。遮的檔案是純文字格式的,會當用任何的文字編輯器(像講 edit . com)編輯。𪜶執行起來佮編譯而成的程式無兩項。檔案內底每一逝攏予人看做是命令來執行。批次檔嘛會當來使用數個內部的命令,比如講 goto 佮條件運算式。
硬體存取
DOS 提供簡單的硬體抽象層,予程式員會當開發文字介面的應用程式;毋過這个硬體抽象層無法度存取大部份的計算機硬體,親像顯示卡、印表機,抑是講滑鼠等。這也予程式員著愛直接存取硬體,致使每一个應用程式攏有屬於家己的一組硬體週邊驅動程式。硬體製造商會將𪜶的硬體規格冊釋出,才有真濟歡迎的應用程式內底有𪜶的驅動程式。
裝置保留名稱
佇咧 DOS 中,有幾若个名稱保留予裝置使用,無法度提來做一般檔案的名(毋管副檔名是啥); 遮的保留名稱是用來將應用程式的輸出傳送予硬體週邊用的。按呢的限制嘛影響著數個版本的 Windows,佇某一寡狀況之下甚至會造成當機和安全性弱點。
其中一寡保留名稱有:` NUL : `、` COM 一 : ` 抑是 ` AUX : `、` COM 二 : `、` COM 三 : `、` COM 四 : `、` CON : `、` LPT 一 : ` 抑是 ` PRN : `、` LPT 二 : `、` LPT 三 : `,以及 ` CLOCK $ `。
磁碟號名法
佇咧 DOS 中,磁碟機是利用無仝字母號名的。標準的做法是保留「A」和「B」予軟碟機。若是系統干焦一台軟碟機,DOS 允准這台軟碟機同時使用這兩个代號,然後 DOS 會要求使用者換磁片。按呢做會當予使用者共檔案審查著無仝款的軟碟片上,抑是執行某一片軟碟片上的程式,然後共資料檔案囥佇咧另外一片軟碟片頂懸。上早硬碟的代號做「C」和「D」。 佇一台硬碟機頂懸,DOS 干焦允准一个活動分割區的存在。隨著支援的硬碟數量愈來愈濟,磁碟代號的號名方法演變做:先共吸碟代號指派予每一粒硬碟機的活動主分割區,然後第二輪欲代號指派予延伸分割區的邏輯磁碟區,第三輪閣共代號指定予非活動的主分割區。(前題是:𪜶有一个存在,而且包括了 DOS 會當讀的檔案系統。)最後咧,DOS 才共代號指派予光碟機、RAM disk,猶閣有其他的硬體。一般來講,磁碟代號攏是依照驅動程式的載入順序,照字母順序指派的,毋過驅動程式嘛會使要求 DOS 指派無仝款的字母。比如講網路磁碟機的驅動程式通常會指派最後的幾个字母。
因為乎 DOS 的應用程式會直接使用遮的磁碟代號(和 Unix 類系統使用/dev kha-tá-lok-guh 的方法無仝款), 所以若是新增加需要分配磁碟代號的硬體,可能會致使這應用程式脫箠。比如講伊:若是本底硬碟中的延伸分割區內底存在邏輯磁碟區,現此時新增一粒有主分割區的硬碟的話,因為主分的割區有較懸的分配優先權,所以原本硬碟的邏輯磁碟區的代號就會改變。此外,就算是新增一粒干焦延伸分割區佮邏輯吸碟區的硬碟,嘛是會影響著 RAM disk 佮光碟機的代號。這个問題一直到九 x 系列的 Windows 攏猶閣佇咧;NT 系列才有解決的方案:磁碟代號會保留予已存在的磁碟機,除非使用者手動更改。
啟動流程
PC 相容機的啟動磁區(MBR)佇第零磁區。對於 DOS 來講,這段代碼會將 DOS 的 HAL 讀入記持體中然後執行。佇咧 DR DOS 佮 PC DOS 中,這乎 HAL 囥佇咧 IBMBIO . COM 檔案中;而且 MS DOS 是囥佇咧 IO . SYS。紲落來這个 HAL 會載入位佇 IBMDOS . COM(PC DOS 抑是 DR DOS)抑是講 MSDOS . SYS(MS DOS)內底的 DOS 核心。Windows 九 x 中附的 DOS 版本(MS DOS 七佮八)將 HAL 佮核心合併囥佇咧 IO . SYS 內底,而且 MSDOS . SYS 是文字格式的組態檔案。然後 DOS 核心會去執行 CONFIG . SYS 這个檔案。佇咧 CONFIG . SYS 中,SHELL 這个命令指定矣 SHELL 的檔案位置(通常是 COMMAND . COM)。 紲落來這个 SHELL 會予人執行,然後伊會拍開機啟動項(通常是 AUTOEXEC . BAT)
歷史
MS-DOS(閣有經授權換商標來成的 IBM PC-DOS)佮伊的前身八十六-DOS 嘿受著 Digital Research 公司的 CP / M(Control Program / ( for ) Microcomputers)啟發來完成的。CP / M 是彼陣仔使用 Intel 八千空八十佮 Zilog Z 八十這兩粒八个元 CPU 的微電腦上上受歡迎的磁碟作業系統。
佇咧一九八O年的時陣,IBM 使用 Intel 八千空八十八微處理器,開發出𪜶的頭一台微電腦。𪜶需要一套會當佇這台微電腦使用的作業系統。IBM 咧揣一套會當和 Intel 八千空八十八 ( 一千九百七十九石一千九百八十二 ) 相容的 CP / M,一開始揣著矣微軟的執行長比爾 ・ 蓋茲(可能是因為彼當陣微微仔軟落去開發出來予 CP / M 會當佇 Apple II 最執行的 Z 鋪八十 SoftCard,所以乎 IBM 相信微軟有 CP / M)。 IBM 介紹甲講 Digital Research,並且舉行了相關的會議。毋過,關於著 CP / M 的使用權的初次談判破裂矣—因為乎 Digital Research 希望以權利金的方式賣 CP / M,猶毋過 IBM 希望單一授權,而且共名稱改做 " PC-DOS "。DR 的創始人 Gary Kildall 拒絕簽約,IBM 因為按呢放棄買 CP / M。
IBM 閣再揣著比爾 ・ 蓋茲。蓋茲轉來揣著矣 Seattle Computer Products(SCP)。 SCP 的程式員 Tim Paterson 開發一軀 CP / M 鋪八十的變體作業系統,原本是按算用來試驗 SCP 為 S 抹一百匯流排新開發的十六位元 Intel 八千空八十六 CPU 介面卡。這套系統原本的名是「QDOS」(Quick and Dirty Operating System), 後來佇咧商業發行前改名做八十六-DOS。略仔軟勢買落來八十六-DOS(講成交金額為五十 , 零美元), 落尾變成一九八一年發行的 Microsoft Disk Operating System,簡稱 MS-DOS。
微軟嘛共這套系統授權予數一个電腦公司。遮電腦公司賣予𪜶的硬體使用的 MS-DOS,有時使用𪜶家己的名稱。軟勢後來要求𪜶使用 MS-DOS 這个名,除了 IBM 以外。IBM 繼續為著 IBM PC 開發新版的 PC-DOS。Digital Research 查覺著講 IBM 當咧賣 CP / M 足類似的做業系統(而且閣佮當初 IBM 談判的時陣堅持的名稱仝款), 就是欲唱聲欲提出法律訴訟。IBM 以一項共𪜶回應:IBM 予使用者會使家己選擇欲使用 PC-DOS 抑是 CP / M 鋪八十六(Kildall 開發的八千空八十六版 CP / M)。 兩个相比較,CP / M 比 PC-DOS 貴上欲兩百美金,銷售量嘛低。CP / M 漸漸無法度出,而且 MS-DOS 和 PC-DOS 著成矣 PC 和 PC 相容機的主力作業系統。
Digital Research 捌試圖挽回 CP / M 鋪八十六錯失的市場。一開始是發行矣 DOS Plus,後來閣發行矣 DR-DOS(這兩个攏同齊佮 MS-DOS 和 CP / M 鋪八十六的軟體相容)。 Digital Research 予被 Novell 買起來,DR-DOS 變成是矣 Novell DOS 七。了後,伊閣成做 Caldera Systems(以 OpenDOS 佮 DR DOS 七為名)、 Lineo 以及 DeviceLogics 的一部份。
後來,小可仔軟軟 IBM 佇咧兩套 DOS 的繼任作業系統(微軟乎 Windows 和 IBM 的 OS / 二)上發生了相連紲串爭執。𪜶咧 DOS 系統上的開發嘛就按呢分道揚鏢。MS-DOS 佇咧某一寡層面轉型做 Windows;而且 PC-DOS 的最後一个版本為一九九八年發行的 PC-DOS 兩千。
FreeDOS 計畫開始佇一九九四年六月二十六號。當工有軟微仔宣佈𪜶共無閣再賣 MS-DOS,嘛無閣提供支援。所以就是吉姆 ・ 霍爾貼一个宣言,宣佈欲開發 DOS 的開放源始碼替代品。佇咧幾禮拜內,包括講 Pat Villani 和 Tim Norman 的幾个程式員加入這个計畫。𪜶利用共享𪜶編寫抑是現有程式碼的方式,產生了核心、command . com 命令直譯器(shell 介面)猶閣有核心的公用程式。佇咧經歷了幾若版本的官方預覽版本了後,FreeDOS 一鋪零版佇二空空六年九月初三正式發佈。使用 FreeDOS 無需要付任何的著作權費用或者是權利金。
淡出
早期版本的 Microsoft Windows 只是佇咧 DOS 上執行的應用程式。大約是九零年代初,Windows 猶原誠倚靠新版本的 DOS。一直到 Windows for Workgroups 三孵一一,DOS 漸漸退居負責啟動佮載入 Windows 核心的角色。佇咧 Windows 九十五(以及其後推出的 Windows 九十八佮 Me)中,MS-DOS 核心猶閣佇咧,只是加上 Windows 當做系統的圖形介面。Windows 九十五與九十八的 MS-DOS 元件會當佇無開啟 Windows 的情況下獨立執行(猶毋過 Windows Me 袂用得)。 隨著 Windows 的普及,大部份的電腦使用者攏使用 Windows,DOS 嘛愈來愈少人使用。英特爾計畫佇二空二空年徹底放捒 Intel 平台的 UEFI CSM(即 UEFI 的 Legacy BIOS 啟動支援), 到時 Intel 平台的個人電腦將無法度振動 DOS 系統。
繼續發展
有的電腦製造商(包括講 Dell 和 HP)會想欲預載 FreeDOS 當做 OEM 作業系統出貨。
有一套以去 GPL 這个方式授權的 DOS,號做 NX-DOS,目前當咧開發中。伊是一套十六位元的即時作業系統,有網路功能,會當對軟碟片啟動,猶閣有一个無啥完整的 USB 驅動程式。NX-DOS 專案對一九九二年就開始矣,原本是個人專案,佇二零零五年的時陣以 GPL 方式放予出來。
目前猶會當得著的 DOS 系統有 DR-DOS(猶閣有加強的 DR-DOS)、 俄國人開發的 PTS-DOS、ROM-DOS、FreeDOS、NX-DOS、Multiuser DOS(以 Digital Research 的 Concurrent DOS 為基礎)等咧。
1875入式系統
因為 DOS 會當直接存取硬體,去因此伊誠適合提來控制1875入式的裝置。新版本的 DR-DOS 就準拄好這塊市場。佳能的數位相機 PowerShot Pro 七十使用 ROM-DOS 閣來做1875入式的系統。
模擬器
佇咧 Linux 落,使用 _ DOSEMU _(一套用來執行真實模式程式的 Linux 原生虛擬機器)會當執行 DOS 佮其衍生版本。另外佇每一个版本的 UNIX 下跤嘛真濟用來執行 DOS 的模擬器,有的甚至佇咧非 x 八十六的平台頂嘛會當執行,像講 DOSBox。
因為 Windows XP 和 Vista 無法度佮純 DOS 相容,DOS 模擬器佇咧這个系統頂懸嘛愈來愈流行。遮的模擬器會當用來執行過去的老軟體抑是講其他 DOS 軟體。其中的一个上出名的是 DOSBox,主要的設計目標是佇咧當前的作業系統上執行 DOS 的遊戲程式。
佇咧 Microsoft Virtual PC 下嘛會當執行 DOS 的應用程式,相容性比 DOS 模擬器好。使用者會當安裝合法的 MS-DOS,然後除了遐的上歹對付的應用程式以外,大部份的 DOS 應用程式攏會當佇頂懸執行。
佮 Microsoft Windows 的關係
純三十二位元版 Windows(對 NT 開始;包含兩千空三、XP 和 Vista)毋是以 DOS 為基礎的。𪜶遮的系統內底有含一个 NT DOS 虛擬機器(NT Virtual DOS Machine,縮寫為 NTVDM), 踮懸頂執行一个修改過的 DOS。本來以 DOS 是基礎的系統使用傳統的 COMMAND . COM 做命令列介面,而且 Windows NT 佮其衍生版本是使用 cmd . exe(猶毋過 cmd . exe 嘛徙栽誠濟 DOS 的命令)。 x 六十四架構的 Windows 嘛有 cmd . exe(命令提示字元), 但是無法度執行十六位元 DOS 程式(無咧 NTVDM)。
軟體
因為 DOS 佇長期間內底是 PC 相容機的主要平台,有真濟為 DOS 編寫的知名軟體。比如講:
- AutoCAD;一套工業用的畫圖軟體,是少數能成功由 DOS 過度至 WINDOWS 的軟體繪圖軟體
- Lotus 一孵二孵三;一套佇企業市場內底被廣泛運用的試算表軟體。予真濟人看做是 IBM PC 成功的主要
- 中文系統;吊佇咧外口 DOS 通好顯示中文字形,捷看的有靠天、震漢、空壹、國喬等等的外掛中文系統
- WordPerfect;一套目前出佇 Windows 平台的文字編輯器
- WordStar;文字編輯器
- PE;一套文字編輯器,由 IBM 公司所開發,只有簡單排版功能,彼當陣捷用編寫程式原始碼 .
- Copywrite;一套複製軟體,用以備份具防審保護的五鋪二五吋軟碟仔片 .
- CopyIIPC;另外彼軀的軟體,用與備份具防審保護的五鋪二五吋磁片 .
- WPS,DOS 時代中國上時行的文書處理軟體,現在改名做 WPS Office 執行 Windows 平台。
- CCED ; DOS 時代佇中國流行的中文字表處理軟體。
- 慧星一號,DOS 時代香港佮台灣上時行的中文書處理軟體,引入來窗仔操作概念。
- dBase;上早的資料庫軟體之一
- CLIPPER;是 dBASE 的編譯器 .
- Dr compiler;是 CLIPPER 的加強版,臺灣佇原有的 CLIPPER 加上新加入的 LIB 而成資料庫軟體之一
- Pctools ; 工具軟體整合 DOS 的 COPY DISKCOPY FORMAT 等等幾項功能佇一身的軟體,以選單形式來操作 .
- Telix ; 數據機通訊軟體,是 BBS 定定用的軟體 .
- PKZIP ; 壓縮軟體 DOS 年代已經出現的 ZIP 壓縮格式,WINDOWS 這馬內含這功能 .
- Arachne;一套 DOS 版的網路瀏覽器
- DJGPP , gcc 的 DOS 徙栽版
- 四 DOS,取代原本的命令列介面的軟體
- Borland 的整合式開發環境,包括著矣 Turbo Pascal、Turbo BASIC、Turbo C,以及 Turbo Assembler
- 撥接式電子佈告欄 ( BBS ) 架徛軟體 RemoteAccess、Spitfire、Maximus、McBBS,以及 TAG
- BASIC 語言的工具程式 BASICA 以及 GW-BASIC
- 真濟第一人稱射擊遊戲:由 Id Software 以及 Apogee Software(後來改名做三 D Realms)合資開發的德軍總部三 D;Id Software 的 Doom 以及 Quake;三 D Realms 的 Duke Nukem 三 D、Shadow Warrior,以及 Rise of the Triad。三 D Realms 開發這三套遊戲使用的攏是 DOS 上的「Build ia̋n-jín」。 Build ia̋n-jín 的作者是 Ken Silverman,這乎 ia̋n-jín 嘛予人用佇咧 Silverman 的 Ken's Labyrinth 阮這个遊戲上。
易用性
使用者介面
所有的 DOS 攏使用命令列介面。執行程式的方法是佇命令列中鍵入程式的名稱。DOS 系統包含一寡公用程式,嘛提供一寡仔毋是以程式方式存在的命令(通常予人號做 _ 內部的命令 _)。
為著提供對使用者閣較友善的操作環境,真濟的軟體廠商紛紛推出各式各樣的檔案管理程式。遮的程式通常使用選單佮圖樣做為介面。Microsoft Windows 就是其中上有名的例,落尾發展成做完整的作業系統,取代 DOS 成矣 PC 相容機上上受歡迎的作業系統。使用文字模式的使用者界面有:Norton Commander、Dos Navigator、Volkov Commander、Quarterdesk 的 DESQview,以及 SideKick。使用圖形使用者介面的程式有:Digital Research 的 Graphical Environment Manager(上早是寫予 CP / M 用的)以及 GEOS。
發展到尾仔,主要的 DOS 廠商開始佇 DOS 加入去家己的環境管理程式。MS / PC-DOS 四中有 DOS Shell;抑若年發行的 DR-DOS 五則加入了以 GEM 為基礎的 ViewMAX。
厚工
佇上起初的設計中,DOS 是一个單工的作業系統。MS / PC-DOS 使用 DOS shell 做著工課切換的功能,而且 DR-DOS 著是佇咧 DR-DOS 六中利用 _ TaskMAX _ 做到類似的功能。MS / PC-DOS 自始到尾攏無多工的能力;DR-DOS 著是佇咧 DR-DOS 七中提供了這个功能(DR-DOS 的 DPMI 你著愛啟用)。
限制
DOS 的架構有數項惱人的限制。上早的八千空八十八微處理器干焦會當定址到一 MB 的實體記持體空間。因為附加的硬體裝置嘛著愛對映到這段空間,自按呢上懸會當使用的記持體干焦六百四十 KB(予人叫做是「傳統的記持體」)。 佇咧 DOS 的結構頂懸,六百四十 KB 予人看做是上大的記持體空間,DOS 無法度定址閣較懸的所在。早期避開這个問題的做法是使用擴展記持體;八堵空二百八十六出來了後,發展出了延伸記持體。雖然遮的技術提供閣較濟記持的記持體應用程式,但是應用程式猶是愛對傳統記憶體開始執行,佔用六百四十 KB 中央的部份空間。八堵空三百八十六微處理器使用矣重新設計的保護模式,應用程式會當透過 DOS extender 佮 DOS 保護模式介面(DOS Protected Mode Interface,縮寫為 DPMI)等技術使用額外的記憶體,嘛會當有多工的功能。
DOS 猶閣有硬碟分割區大細的限制。造成這个問題的原因有兩个。首先,真濟 DOS 類的作業系統干焦支援著 FAT 十六,而且 FAT 十六佇設計上就袂當支援超過二堵一 GB 的硬碟分割區。另外咧,DOS 用硬碟的方式是透過 INT 十三這个中斷呼叫,然後向下跤閣利用 CHS 系統對應著磁碟上的資料。佇這个架構下跤,作業系統干焦看會著八 GB 的硬碟空間。較新的作業系統使用軟體的方式(比如講:三十二位元磁碟存取)存取硬碟。
FAT 十六佮 FAT 十二(用佇軟碟片)上的檔案名稱必須遵守「八堵三號名的規則」:檔案的主檔名袂使超个八个字元,副檔名是袂當超過三个字元。
命令集
(部份)
參考文獻
參見
- COMMAND . COM,DOS 和 Windows 九 x 的命令列直譯器
- DOS API
- MS-DOS
- IBM PC DOS
- DR-DOS
- FreeDOS
- 作業系統
- 作業系統列表
- 微軟作業系統列表