DriveSpace

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

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

概述[編輯]

最常見的使用場景為,使用者的電腦中有一個硬碟,所有空間都已分配到一個分區(通常是驅動器英語Drive letterC:)。該軟件會壓縮整個驅動器的內容到根分區中的一個大檔案,然後在系統啟動時,驅動程式將這個大檔案分配為驅動器C:,使檔案如往常一樣訪問。

微軟決定開發DoubleSpace並將其添加到MS-DOS的原因很可能是,其他製造商(IBMNovell)的基於DOS的作業系統事實上已開始在第三方產品中包含磁碟壓縮軟件。

相比從頭開發自己的產品,微軟取得了Vertisoft英語Vertisoft公司DoubleDisk產品的技術授權,並在將其調整後成為DoubleSpace。比如說,控制壓縮、解壓縮的驅動程式DBLSPACE.BIN更加深入地整合到作業系統(在CONFIG.SYS檔案前載入)。

微軟最初試圖獲得Stac Electronics英語Stac Electronics的技術授權,它有一個名為Stacker的類似產品,但談判失敗了。微軟後被Stac Electronics成功起訴產品侵犯某些壓縮專利。在審理期間,Stac Electronics稱微軟試圖取得Stacker授權時拒絕支付任何費用,僅提供Stac Electronics開發增強產品的可能性。

消耗和相容情況[編輯]

有部份電腦程式(特別是遊戲)與DoubleSpace不相容,因為它們會繞過DoubleSpace的驅動程式。DoubleSpace也會顯著消耗大量常規內存英語Conventional memory,因此將很難執行佔用大量內存的程式。

軟件缺陷與數據遺失[編輯]

在軟件發佈後不久,一些數據遺失的報告就已出現。一家名為Blossom軟件的公司聲稱已發現了一個可能導致數據損壞的軟件缺陷。該缺陷會在寫入檔案到嚴重碎片化的磁碟時出現,並用一個稱為BUST.EXE的程式證明。這家公司出售一個名為DoubleCheck的程式,用途是檢查可能導致此錯誤的碎片狀況。微軟的立場是,這個錯誤不太可能發生,但已在MS-DOS 6.2中修復此問題。[1]

碎片狀況與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英語Double Tools for DoubleSpace的附加元件產品,它包含大量工具來增強MS-DOS 6.0中提供的DoubleSpace的功能。這包括各種診斷功能,已壓縮抽取式媒介自動掛載為習慣佈局,以及後台整理DoubleSpace已壓縮驅動器的磁碟碎片。[2]為了在後台整理檔案碎片,它可能讓DoubleTools替換底層的DoubleSpace驅動程式(DBLSPACE.BIN)為DoubleTools提供的版本。替換這個驅動程式也能啟用此產品的其他增強功能,例如在檢測到Intel 80386或更進階CPU時使用32位元程式碼路徑、快取功能,以及它所支援的高端內存區——這也允許對它的某些緩衝區使用擴充內存(減少驅動程式在常規內存英語Conventional memory高端內存區上佔用的總空間,雖然這以稍微降低速度為代價)。[3]另一個功能是在多個軟碟上分割壓縮卷,在插入第一個磁碟的情況下就能看到整個卷(並在需要時提示更換光碟)。也可以與遠端電腦共用壓縮卷。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英語Stac Electronics專利侵權英語Patent infringement的訴訟成功,微軟發佈了不含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英語Microsoft Plus! 包包含DriveSpace第三版。此版本引入了新的壓縮格式(HiPack和UltraPack),具有不同的效能特性,可提供更高的壓縮率,還有一種工具,可以根據檔案的使用頻率使用不同的格式重新壓縮磁碟上的檔案。可以從DriveSpace 2升級到DriveSpace 3,但沒有降級到DriveSpace 2的路徑。雖然,可以解壓縮DriveSpace 3驅動器。因為新的功能,DriveSpace 3的DOS裝置驅動程式的內存佔用大約為150KB。這導致了使用者難以重新啟動到用於執行遊戲的Windows 95的MS-DOS模式,因為可用的常規內存英語Conventional memory減少了。

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內核驅動程式[4][5],開發於1990年代後期,支援讀取和寫入DoubleSpace/DriveSpace磁碟。不過,讀取和寫入到壓縮的檔案系統僅在內核版本為2.0、2.1和2.2時可靠。

參考資料[編輯]

  1. ^ Livingston, Brian. It's a good idea to 'DoubleCheck' your disk for fragmentation. InfoWorld. 1993-09-20. 
  2. ^ Halfhill, Tom R. How Safe Is Data Compression?. February 1994 [2017-01-08]. (原始內容存檔於2008-06-19). 
  3. ^ Eglowstein, Howard. Data Loss: A Cautionary Tale. February 1994 [2017-01-08]. (原始內容存檔於2005-02-19). 
  4. ^ DMSDOS - Linux kernel driver. 2005-03-18 [2016-05-25]. (原始內容存檔於2016-11-11). 
  5. ^ DMSDOS CVF module (dmsdoc.doc). 0.9.2.0. 1998-11-19 [2016-11-01]. (原始內容存檔於2016-11-02). 

外部連結[編輯]