DriveSpace（最初稱為 DoubleSpace，即雙倍空間）是一個從 MSDOS 60 版本開始提供的磁碟壓縮實用工具。DriveSpace 的目的是使用者可在磁碟空間上儲存的資料量，透過即時的透明壓縮和解壓。它主要用於硬碟，但也支援對軟盤使用。 概述 最常見的使用場景為，使用者的電腦中有一個硬碟，所有空間都已分配到一個分割槽（通常是 C）。該軟體會壓縮整個驅動器的內容到根分割槽中的一個大檔案，然後在系統啟動時，驅動程式將這個大檔案分配為驅動器 C，使檔案如往常一樣訪問。 微軟決定開發 DoubleSpace 並將其新增到 MSDOS 的原因很可能是，其他製造商（IBM 和 Novell）的基於 DOS 的作業系統事實上已開始在第三方產品中包含磁碟壓縮軟體。 相比從頭開發自己的產品，微軟取得了公司 DoubleDisk 產品的技術授權，並在將其調整後成為 DoubleSpace。比如說，控制壓縮、解壓縮的驅動程式 DBLSPACEBIN 更加深入地整合到作業系統（在 CONFIGSYS 檔案前載入）。 微軟最初試圖獲得的技術授權，它有一個名為 Stacker 的類似產品，但談判失敗了。微軟後被 Stac Electronics 成功起訴產品侵犯某些壓縮專利。在審理期間，Stac Electronics 稱微軟試圖獲取 Stacker 授權時拒絕支付任何費用，僅提供 Stac Electronics 開發增強產品的可能性。 消耗和相容情況 有部分計算機程式（特別是遊戲）與 DoubleSpace 不相容，因為它們會繞過 DoubleSpace 的驅動程式。DoubleSpace 也會顯著消耗大量，因此將很難執行佔用大量記憶體的程式。 軟體缺陷與資料丟失 在軟體釋出後不久，一些資料丟失的報告就已出現。一家名為 Blossom 軟體的公司聲稱已發現了一個可能導致資料損壞的軟體缺陷。該缺陷會在寫入檔案到嚴重碎片化的磁碟時出現，並用一個稱為 BUSTEXE 的程式證明。這家公司出售一個名為 DoubleCheck 的程式，用途是檢查可能導致此錯誤的碎片狀況。微軟的立場是，這個錯誤不太可能發生，但已在 MSDOS 62 中修復此問題。 碎片狀況與 DoubleSpace 壓縮單個簇（大小 8K）並將其適配到磁碟的方式有關， occupying fewer sectors size 512 bytes than the fixed number required without DoubleSpace 16 sectors in this example 這導致可能發生一種內部碎片問題，即 DoubleSpace 將無法找到足夠的連續扇區儲存壓縮的簇，即使有足夠的可用空間。 其他潛在的資料丟失原因包括：DoubleSpace 的記憶體區域被其他程式損壞。DoubleSpace 的記憶體區域未受保護，因為在 MSDOS 執行在真真實模式下。微軟已嘗試在 MSDOS 62 版本的 DoubleSpace 中彌補這一點，一項名為 DoubleGuard 的功能會檢查此類損壞。 將整個驅動器壓縮到單個檔案意味著，使用者有可能會意外地刪除所有資料。這可能在使用者無意間訪問到包含此檔案的託管驅動器時發生。託管驅動器通常被壓縮驅動程式對映到 H，但如果壓縮驅動程式載入失敗，使用者可能會看到它在驅動器 C 在 DoubleSpace 完成更新其資料結構前關閉計算機也可能導致資料丟失。此問題在微軟預設啟用 MSDOS 60 中 SMARTDRV 磁碟快取軟體的寫入快取後更為嚴重。由於此更改，在退出應用程式後，MSDOS 提示符可能會在所有資料寫入磁碟前出現。在那個時代，由於缺乏關機控制程式（現代作業系統中則很常見），許多使用者會將看到 MSDOS 提示符作為現在可安全關閉計算機的表象，而這在 MSDOS 60 之前也基本正確。微軟在 MSDOS 62 中處理了此問題，寫入快取仍然預設啟用，但快取會在命令列提示符出現前被強制寫入。 附加元件 AddStor 提供了一個名為的附加元件產品，它包含大量工具來增強 MSDOS 60 中提供的 DoubleSpace 的功能。這包括各種診斷功能，已壓縮可移動介質自動掛載為習慣佈局，以及後臺整理 DoubleSpace 已壓縮驅動器的磁碟碎片。為了在後臺整理檔案碎片，它可能讓 DoubleTools 替換底層的 DoubleSpace 驅動程式（DBLSPACEBIN）為 DoubleTools 提供的版本。替換這個驅動程式也能啟用此產品的其他增強功能，例如在檢測到 Intel 80386 或更高階 CPU 時使用 32 位程式碼路徑、快取功能，以及它所支援的高階記憶體區 這也允許對它的某些緩衝區使用擴充套件記憶體（減少驅動程式在和高階記憶體區上佔用的總空間，雖然這以稍微降低速度為代價）。另一個功能是在多個軟盤上分割壓縮卷，在插入第一個磁碟的情況下就能看到整個卷（並在需要時提示更換光碟）。也可以與遠端計算機共享壓縮卷。Double Tools 還能夠在壓縮的軟盤上放置一個特殊的實用程式，這樣在即使沒有 DoubleSpace（或 Double Tools）的計算機上也可以訪問壓縮的資料。 早前開發 DoubleDisk 並授權給微軟的公司 Vertisoft 後來開發並出售一個名為 SpaceManager 的 DoubleSpace 的附加元件程式，其中包含大量可用性增強，並提供改進的壓縮率。 其他產品（例如 Stac Electronics 的 Stacker 的晚期版本）可以轉換現有的 DoubleSpace 已壓縮驅動器到它們自己的格式。 後期版本 MSDOS 62 MSDOS 62 包含一個新的改進後的 DoubleSpace 版本。它已支援移除 DoubleSpace。SCANDISK 程式在此版本中引入，可以掃描壓縮和非壓縮的驅動器，包括檢查 DoubleSpace 的內部結構。安全功能（稱為 DoubleGuard）被新增，以防止記憶體損壞導致資料丟失。與 MSDOS 60 中提供的版本相比，DoubleSpace 驅動程式的記憶體佔用減少。上面討論的碎片問題已修復。 MSDOS 621 因為就的訴訟成功，微軟釋出了不含 DoubleSpace 的 MSDOS 621。法庭禁令也禁止再分發以前任何包含 DoubleSpace 的 MSDOS 版本。 MSDOS 622 MSDOS 622 包含一個磁碟壓縮軟體的重新實現版本，但這次以 DriveSpace 為名釋出。該軟體從使用者角度看與 MSDOS 62 中的 DoubleSpace 基本相同，並且相容之前的版本。 Windows 95 中的 DriveSpace Windows 95 透過一個原生 32 位驅動程式以及圖形版軟體工具完全支援訪問 DoubleSpaceDriveSpace 的壓縮驅動器。MSDOS DriveSpace 使用者可以無障礙升級到 Windows 95。此外， 包包含 DriveSpace 第三版。此版本引入了新的壓縮格式（HiPack 和 UltraPack），具有不同的效能特性，可提供更高的壓縮率，還有一種工具，可以根據檔案的使用頻率使用不同的格式重新壓縮磁碟上的檔案。可以從 DriveSpace 2 升級到 DriveSpace 3，但沒有降級到 DriveSpace 2 的路徑。雖然，可以解壓縮 DriveSpace 3 驅動器。因為新的功能，DriveSpace 3 的 DOS 裝置驅動程式的記憶體佔用大約為 150KB。這導致了使用者難以重啟到用於運行遊戲的 Windows 95 的 MSDOS 模式，因為可用的減少了。 DriveSpace 3 也在 Windows 95 OSR2 中附帶，但許多功能被停用，除非 Plus 也已安裝。DriveSpace 也不能與 FAT32 一起使用，這使其幾乎不會用在大空間的 PC 硬碟。 Windows 98 中的 DriveSpace Windows 98 附有 DriveSpace 3 作為作業系統的一部分。功能與 Windows 95 with Plus 相同。 Windows Me 中的 DriveSpace 因為真真實模式支援被移除、FAT32 走向主流和 DriveSpace 不再受歡迎，Windows Me 中的 DriveSpace 只有有限的支援。DriveSpace 不再支援硬碟壓縮，但仍支援讀取和寫入已壓縮的可移動媒體，但除此之外，DriveSpace 支援的操作是刪除和重新分配已壓縮驅動器。 複製 Windows 98 中的可執行檔案替換 Windows ME 系統中的檔案可以非正式的恢復 DriveSpace 3 的所有功能。這樣做之後，可以在 Windows 98 上如往常一樣壓縮新的驅動器。 對 Windows 其他檔案系統的壓縮 DriveSpace 工具不支援 FAT32。 NTFS 在以 Windows NT 為基礎的作業系統上有自己原生的壓縮技術，不同於 DriveSpace。 微軟外的支援 DMSDOS 是一個 Linux 核心驅動程式，開發於 1990 年代後期，支援讀取和寫入 DoubleSpaceDriveSpace 磁碟。不過，讀取和寫入到壓縮的檔案系統僅在核心版本為 20、21 和 22 時可靠。 參考資料 外部連結 DoubleSpace Overview MDFAT CVF layout MRCI Category 資料壓縮 Category 已停止開發的微軟軟體 Category 已停止開發的 Windows 元件 Category 壓縮檔案系統 CategoryDOS 技術 CategoryWindows 95 CategoryWindows 98