FreeDOS

**FreeDOS**（曾叫做 **Free-DOS** 和 **PD-DOS**）是一個在 IBM PC 相容機下執行的作業系統。FreeDOS 由許多不同的獨立程式組成，這些程式就是整個 FreeDOS 專案中的「包」。

它主要通過 OP 來提供磁碟存取和檔案系統，以及部分記憶體管理，但是沒有預設的 GUI（儘管 FreeDos 0.9 及以上版本推薦使用 OpenGEM）。

FreeDOS 支援老式和新式 PC，以及嵌入式系統。像 MS-DOS 一樣，它可以從軟碟、硬碟以及 ROM 啟動。 與 MS-DOS 不同的是，它支援從 CD-ROM 安裝，並且人們可以自由地建立屬於自己的客製化發行版，而不用為再發行支付使用費。FreeDOS 是自由且開源的，遵守 GNU（GPL）。但是在其 "util" 部分中，FreeDOS 也包含專有軟體，例如 4DOS。

## 歷史

FreeDOS 專案開始於 1994 年 6 月 26 日，當微軟宣佈不會發售和支援 MS-DOS。Jim Hall 隨後宣布了要開發一個開源替代品的宣言。幾個星期內，其他的程式設計師包括 Pat Villani 和 Tim Norman 加入了這個專案。一個核心，command.com 命令列解釋程式（shell）和核心實用工具通過共享自己編的原始碼而被創造出來。1.0 版於 2006 年 9 月 23 日釋出。

在 FreeDOS 1.0 最終釋出之前，有過一些官方的預釋出版:

## 發行

FreeDOS 不要求任何費用和版稅。FreeDOS 1.0 提供 CD-ROM 鏡像下載：一個只含有核心和基礎程式的基本光碟和一個擁有更多程式（例如遊戲、網路和開發）並可作為 Live CD 使用的完整光碟。另外，還存在一個可以製作 Live CD 的軟碟鏡像。這兩個版本都提供了原始碼。可以使用 BitTorrent 下載得到。

現在還有一個官方的 Live USB 版本。

一些電腦品牌可讓客戶選擇預載 FreeDOS 的電腦，通常供貨給已購買大量授權 Windows 的企業使用者，或是需安裝其他作業系統的使用者。戴爾有預裝 FreeDOS 的 n-series，但是這些產品和執行 Windows 的同一型號機器相比並沒有多便宜，而且又很難買到，戴爾公司因此受到了批評。。另外，戴爾還時常提供 FreeDOS 電腦一些像雙核心一類 FreeDOS 不能利用的特性。惠普把 FreeDOS 作為 DC5750 桌上型電腦的一個可選組態。GRC 的 SpinRite 6 引導鏡像裝載 FreeDOS，並顯示在底部的啟動畫面。華碩利用 FreeDOS 讓它們的使用者引導主機板驅動 CD 來建立 SATA 裝置驅動光碟給 Windows XP SP2 以前的 Windows 版本。

## 與 MS-DOS 的關係

FreeDOS 大部分相容 MS-DOS，並允許一些早期版本的 Windows 像在 MS-DOS 上一樣執行。

FreeDOS 跟 MS-DOS 相比有一些改進，大部分改進支援了在微軟停止支援 MS-DOS 時不存在的新標準和技術，例如國際化，進階能源管理，記憶體常駐程式並且綜合了 ASPI。另外還支援邏輯塊定址和 FAT32 檔案系統（包括從 FAT32 引導）。儘管由 6.22 版以前的 MS-DOS 不能支援這些功能，但是 MS-DOS 7.10 等的版本有了部分支援。

## 相容性

### 綜合

大部分為 DOS 家族所寫的程式可以在 FreeDOS 上有效執行。大部分類型的可執行檔已經被支援：

* .COM 可執行檔
* 標準.EXE16 位元 DOS 可執行檔
* Borland 的 16 位元 DPMI 可執行檔
* 使用 DOS 擴充器的 32 位元 DPMI 可執行檔，例如：
  * DOS/32A
  * Causeway
  * DOS/4GW
  * GO32/CWSDPMI
  * 還有更多

進一步的，由於 HX DOS 擴充器的使用，許多 Win32 終端程式也能在 FreeDOS 上執行。

#### Windows 1.0 至 3.xx

FreeDOS 能夠相容 1.0 和 2.0 版本的 Microsoft Windows。然而，已支援 i386 處理器的 3.x 版本的 Windows，卻不能在 _386 增強模式_中執行。其中，Windows 3.0 可以在真實模式或者標準模式中執行，而其他的 Windows 3.x 版本只能在標準模式中執行。 因為 Windows for Workgroups 3.11 捨棄了標準模式的支援，它不能在 FreeDOS 中執行，除非 FreeDOS 中涉及 himem.exe 和 emm386.exe 的部分被替換為 Windows 下的 himem.sys 和 emm386.exe。雖然 Windows for Workgroups 3.11 支援一個可以在 FreeDOS 下執行的除錯模式，但是這個模式會比在標準模式下執行的先前版本還要有限的多。

#### Windows 9x 和 Windows Millennium Edition

Windows 95，98 和 Me 把一個僅剩下核心的 MS-DOS 作為 Boot Loader。 FreeDOS 不能作為這個裝載器的替身；然而，它可以被安裝並通過一個引導管理器程式在這些系統之間使用，例如 FreeDOS 中包含的 "METAKERN"。

#### Windows NT/2000/XP/2003 和 ReactOS

基於 Windows NT 的作業系統，包括 Windows 2000，XP，和 2003 都沒有把 MS-DOS 當作系統的核心成分。這些系統可以使用 FAT，一個 MS-DOS 和早期版本的 Windows 所使用的檔案系統；但是，他們一般預設使用 NTFS（NT 檔案系統）。FreeDOS 不能和這些系統在一個單獨的 NTFS 或 FAT 檔案系統裡和平共處，但是 FreeDOS 核心還是可以被添加到 Windows NT Boot Loader 設定檔，**boot.ini**，或 React OS 中的 **freeldr.ini** 來引導它啟動。
FreeDOS 也可以在虛擬化軟體 Virtual PC 和 VirtualBox 或 Bochs 和 QEMU 一類模擬器軟體中執行。

## FreeDOS-32

**FreeDOS-32** 是一個有不同目標且單獨的專案。FreeDOS 要再造一個 MS-DOS，因此不僅僅有它的特點也有它的局限性。FreeDOS-32 希望在其基礎上有所擴充和改進。FreeDOS-32 可以在 FreeDOS 和其他 DOS 家族之上執行。它被計劃成為一個 32 位元系統，與 16 位元系統相比，能提供更強的效能與更多的功能。另外，這個以 32 位元執行的作業系統移除了 DOS 擴充器的需要，從真實模式轉換到了保護模式，還且擁有了對保護模式程式的支援。

## 技術細節

FreeDOS 完整的支援 FAT32，並可以從 FAT32 上啟動。根據 BIOS 的情況，容量達到 128G 的 LBA 硬碟，甚至 2TB 的容量都可能被支援。使用超大容量的硬碟需要小心，因為這到現在只經過非常少的測試，並且一些 BIOS 雖支援 LBA 但會在容量超過 32GB 硬碟上產生錯誤。一些 OnTrack 或者是 EzDrive 的驅動解決了這些問題。 FreeDOS 可以同一種叫 _DOSLFN_ 的驅動使用，它支援長檔名（參見 VFAT），但是大部分早期程式就算裝載了這個驅動也不能使用長檔名。

FreeDOS 沒有支援 NTFS 或 ext2 的計劃，但是有一些外部第三方驅動能達到使用這些檔案系統的目的。為了接受 ext2 檔案系統，LTOOLS（與 MTOOLS 相當）可以在 ext2 檔案系統上讀取和寫入資料。NTFSDOS 和 NTFS4DOS 一類產品則提供了對 NTFS 的支援。

目前 FreeDOS 專案內還沒有 USB 驅動， 但是許多新主機板 BIOS 有「Legacy USB」設定，它可以允許 USB 裝置在缺少 USB 支援的系統（如 FreeDOS）上使用。 這一般運用在滑鼠和鍵盤上，但一些 BIOS 甚至可以讓它支援儲存裝置。 一些提供給儲存裝置的外部 USB 驅動（例如 DUSE，USBASPI 和 USBMASS）在一番努力和運氣成分之下也能工作。一個更好的執行 DOS 程式並能同時使用 USB 裝置的選擇會是 DOSBox，它會從宿主系統中認出 USB 裝置並把它們扮演成「傳統埠」裝置（例如帶有遊戲埠的搖杆，並列埠的印表機，而隨身碟則會當作 DOS 下的硬碟）。

## FreeDOS 與 Windows XP 雙啟動

第一種方法是格式化磁碟分割區為 FAT32，先安裝 FreeDOS 到第一分割區，再安裝 Windows XP 到第二分割區，開機時就可以看到雙啟動選單。

第二種方法就是使用 gag4.11.zip，或者是 freedos 內建的 XOSL 1.1.5.zip 或者是 grub，可以很好的解決。

### 可啟動軟碟

FreeDOS 可以從單一軟碟安裝。

### 記憶體管理

FreeDOS 中的 HIMEM 和 EMM386 記憶體管理程式為真實模式提供了延伸記憶體（XMS）和擴充記憶體（EMS）。
EMM386 還支援 VCPI，它使得 DPMI 核心與 DOS 擴充器同 FreeDOS 和平共處。FreeDOS 還包括用於高速硬碟的 UDMA 驅動，這個驅動能和其他 DOS 相容。LBAcache 在 XMS 中留有最近存取的磁碟資料，使之得到更快的儲存速度並能較少的直接讀寫磁碟，其功能類似 MS-DOS 中的 SMARTDRV。

FreeDOS 外殼 ——FreeDOS 版 COMMAND.COM，又稱 FreeCOM—— 可以把自身一部分移動到擴充記憶體，將多至 620KB 的常規記憶體釋放出來。這對於只利用常規記憶體的 DOS 程式來說非常有用處。

FreeDOS 並沒有 100% 的相容度，但足夠執行大部分程式。高品質且使用標準 API 的程式執行良好。而執行 Windows 9x 的問題則是源於微軟設法阻止他們的產品在非微軟 DOS 執行。

## 截圖

在 Infobox 中可檢視更多截圖。

## GUI

### OpenGEM

唯一被 FreeDOS 所支援的 OpenGEM 是一個為了支援 DOS 環境而正在積極開發的圖形介面。如果你正在使用 Blair's FreeDOS 磁碟或者是 GNU/DOS 的話，你就已經擁有了 OpenGEM 的最新版本。
要啟動這個圖形介面，你只需要切換到 c:\ 並輸入 _gem_ 就可以了。

### SEAL

SEAL 是 DOS 上的一個 32 位元的圖形介面

## 參考

## 參見

* ReactOS
* FreeDOS-32
* DOSEMU
* DOSBox
* Command Prompt
* FreeRTOS
* GNU/DOS
* GRUB
* WinImage

## 外部連結

* FreeDOS Homepage (official)（頁面存檔備份，存於網際網路檔案館）
* FreeDOS Homepage (SourceForge)（頁面存檔備份，存於網際網路檔案館）
* FD-DOC FreeDOS Documentation Project
* Official Download - FreeDOS 1.0（頁面存檔備份，存於網際網路檔案館）
* Summary of FreeDOS Commands（頁面存檔備份，存於網際網路檔案館）
* Virtual Machine in Java with FreeDOS
* How to Create a BootableFreeDOS Floppy Disk（頁面存檔備份，存於網際網路檔案館）
* FreeDOS on a USB Flash DriveArchive.is 的存檔，存檔日期 2012-07-09
* Install FreeDOS without any removable media（頁面存檔備份，存於網際網路檔案館）。
* Virtual Machine for Microsoft Virtual PC 2007 with FreeDOS 1.0 O.S. （西班牙文）
* FreeDOS-32（頁面存檔備份，存於網際網路檔案館） FreeDOS-32 Homepage (SourceForge)