DriveSpace

DriveSpace（最初稱為DoubleSpace，即雙倍空間）是一個從MS-DOS 6.0版本開始提供的磁盤壓縮實用工具。DriveSpace的目的是用戶可在磁盤空間上存儲的數據量，通過即時的透明壓縮和解壓。它主要用於硬盤，但也支持對軟盤使用。

**概述**
最常見的使用場景為，用戶的電腦中有一個硬盤，所有空間都已分配到一個分區（通常是驅動器C:）。該軟件會壓縮整個驅動器的內容到根分區中的一個大文件，然後在系統啟動時，驅動程序將這個大文件分配為驅動器C:，使文件如往常一樣訪問。
微軟決定開發DoubleSpace並將其添加到MS-DOS的原因很可能是，其他製造商（IBM和Novell）的基於DOS的操作系統事實上已開始在第三方產品中包含磁盤壓縮軟件。
相比從頭開發自己的產品，微軟取得了Vertisoft公司DoubleDisk產品的技術授權，並在將其調整後成為DoubleSpace。比如說，控制壓縮、解壓縮的驅動程序DBLSPACE.BIN更加深入地集成到操作系統（在CONFIG.SYS文件前加載）。
微軟最初試圖獲得Stac Electronics的技術授權，它有一個名為Stacker的類似產品，但談判失敗了。微軟後被Stac Electronics成功起訴產品侵犯某些壓縮專利。在審理期間，Stac Electronics稱微軟試圖獲取Stacker授權時拒絕支付任何費用，僅提供Stac Electronics開發增強產品的可能性。

**消耗和兼容情況**
有部分計算機程序（特別是遊戲）與DoubleSpace不兼容，因為它們會繞過DoubleSpace的驅動程序。DoubleSpace也會顯著消耗大量常規內存，因此將很難運行佔用大量內存的程序。

**軟件缺陷與數據丟失**
在軟件發佈後不久，一些數據丟失的報告就已出現。一家名為Blossom軟件的公司聲稱已發現了一個可能導致數據損壞的軟件缺陷。該缺陷會在寫入文件到嚴重碎片化的磁盤時出現，並用一個稱為BUST.EXE的程序證明。這家公司出售一個名為DoubleCheck的程序，用途是檢查可能導致此錯誤的碎片狀況。微軟的立場是，這個錯誤不太可能發生，但已在MS-DOS 6.2中修復此問題。
碎片狀況與DoubleSpace壓縮單個簇（大小8K）並將其適配到磁盤的方式有關， occupying fewer sectors (size 512 bytes) than the fixed number required without DoubleSpace (16 sectors in this example). 這導致可能發生一種內部碎片問題，即DoubleSpace將無法找到足夠的連續扇區存儲壓縮的簇，即使有足夠的可用空間。
其他潛在的數據丟失原因包括：DoubleSpace的內存區域被其他程序損壞。DoubleSpace的內存區域未受保護，因為在MS-DOS運行在真實模式下。微軟已嘗試在MS-DOS 6.2版本的DoubleSpace中彌補這一點，一項名為DoubleGuard的功能會檢查此類損壞。
將整個驅動器壓縮到單個文件意味著，用戶有可能會意外地刪除所有數據。這可能在用戶無意間訪問到包含此文件的託管驅動器時發生。託管驅動器通常被壓縮驅動程序映射到H:，但如果壓縮驅動程序加載失敗，用戶可能會看到它在驅動器C:
在DoubleSpace完成更新其數據結構前關閉計算機也可能導致數據丟失。此問題在微軟默認啟用MS-DOS 6.0中SMARTDRV磁盤緩存軟件的寫入緩存後更為嚴重。由於此更改，在退出應用程序後，MS-DOS提示符可能會在所有數據寫入磁盤前出現。在那個時代，由於缺乏關機控制程序（現代操作系統中則很常見），許多用戶會將看到MS-DOS提示符作為現在可安全關閉計算機的表象，而這在MS-DOS 6.0之前也基本正確。微軟在MS-DOS 6.2中處理了此問題，寫入緩存仍然默認啟用，但緩存會在命令行提示符出現前被強制寫入。

**附加組件**
AddStor提供了一個名為Double Tools for DoubleSpace的附加組件產品，它包含大量工具來增強MS-DOS 6.0中提供的DoubleSpace的功能。這包括各種診斷功能，已壓縮可移動介質自動掛載為習慣佈局，以及後臺整理DoubleSpace已壓縮驅動器的磁盤碎片。為了在後臺整理文件碎片，它可能讓DoubleTools替換底層的DoubleSpace驅動程序（DBLSPACE.BIN）為DoubleTools提供的版本。替換這個驅動程序也能啟用此產品的其他增強功能，例如在檢測到Intel 80386或更高級CPU時使用32位代碼路徑、緩存功能，以及它所支持的高端內存區——這也允許對它的某些緩衝區使用擴展內存（減少驅動程序在常規內存和高端內存區上佔用的總空間，雖然這以稍微降低速度為代價）。另一個功能是在多個軟盤上分割壓縮卷，在插入第一個磁盤的情況下就能看到整個卷（並在需要時提示更換光盤）。也可以與遠程計算機共享壓縮卷。Double Tools還能夠在壓縮的軟盤上放置一個特殊的實用程序，這樣在即使沒有DoubleSpace（或Double Tools）的計算機上也可以訪問壓縮的數據。
早前開發DoubleDisk並授權給微軟的公司Vertisoft後來開發並出售一個名為SpaceManager的DoubleSpace的附加組件程序，其中包含大量可用性增強，並提供改進的壓縮率。
其他產品（例如Stac Electronics的Stacker的晚期版本）可以轉換現有的DoubleSpace已壓縮驅動器到它們自己的格式。

**後期版本**

**MS-DOS 6.2**
MS-DOS 6.2包含一個新的改進後的DoubleSpace版本。它已支持移除DoubleSpace。SCANDISK程序在此版本中引入，可以掃描壓縮和非壓縮的驅動器，包括檢查DoubleSpace的內部結構。安全功能（稱為DoubleGuard）被添加，以防止內存損壞導致數據丟失。與MS-DOS 6.0中提供的版本相比，DoubleSpace驅動程序的內存佔用減少。上面討論的碎片問題已修復。

**MS-DOS 6.21**
因為Stac Electronics就專利侵權的訴訟成功，微軟發佈了不含DoubleSpace的MS-DOS 6.21。法庭禁令也禁止再分發以前任何包含DoubleSpace的MS-DOS版本。

**MS-DOS 6.22**
MS-DOS 6.22包含一個磁盤壓縮軟件的重新實現版本，但這次以DriveSpace為名發佈。該軟件從用戶角度看與MS-DOS 6.2中的DoubleSpace基本相同，並且兼容之前的版本。

**Windows 95中的DriveSpace**
Windows 95通過一個原生32位驅動程序以及圖形版軟件工具完全支持訪問DoubleSpace/DriveSpace的壓縮驅動器。MS-DOS DriveSpace用戶可以無障礙升級到Windows 95。此外，Microsoft Plus! for Windows 95 包包含DriveSpace第三版。此版本引入了新的壓縮格式（HiPack和UltraPack），具有不同的性能特性，可提供更高的壓縮率，還有一種工具，可以根據文件的使用頻率使用不同的格式重新壓縮磁盤上的文件。可以從DriveSpace 2升級到DriveSpace 3，但沒有降級到DriveSpace 2的路徑。雖然，可以解壓縮DriveSpace 3驅動器。因為新的功能，DriveSpace 3的DOS設備驅動程序的內存佔用大約為150KB。這導致了用戶難以重啟到用於運行遊戲的Windows 95的MS-DOS模式，因為可用的常規內存減少了。
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年代後期，支持讀取和寫入DoubleSpace/DriveSpace磁盤。不過，讀取和寫入到壓縮的文件系統僅在內核版本為2.0、2.1和2.2時可靠。

**參考資料**

**外部鏈接**
 cite web |url=http://www.dcee.net/Files/Programm/C/pd0836.arj |title=Microsoft DoubleSpace System Application Programming Interfaces (API) v1.00.05 and DoubleSpace Compressed Volume File (CVF) format |publisher=Microsoft |date=1993 |orig-year=1992 |dead-url=no |archive-url=https://web.archive.org/web/20160303221439/http://www.dcee.net/Files/Programm/C/pd0836.arj |archive-date=2016-03-03 |accessdate=2017-01-08 -  DoubleSpace Overviewdate=20170108064451 -  MDFATdate=20170108064441 -  CVF layoutdate=20170103010117 -  MRCIdate=20170108064426