磁碟壓縮(英語:disk compression)軟件是一種可以增加硬碟儲存資訊量的技術。與需要用戶指定要壓縮檔案的檔案壓縮工具不同,磁碟壓縮工具自動完成壓縮與解壓,用戶無需意識到其存在。
此類程式將在需要儲存資訊時壓縮數據,而在讀取資訊時解壓縮。磁碟壓縮工具將覆蓋作業系統的標準流程。因為幾乎所有應用軟件都使用這種流程訪問磁碟,因此它們可以在安裝磁碟壓縮軟件後繼續正常工作。
磁碟壓縮實用程式在1990年代受到歡迎,當時微型電腦的硬碟仍然較小(20至80百萬位元組),價格昂貴,每百萬位元組需要大約10美元)。對不少用戶來說,相比購買更大容量的磁碟代替當前的驅動器,這種磁碟壓縮軟件是在短期內取得更多磁碟儲存空間的有效且經濟的手段。一個設計良好的磁碟壓縮軟件平均可將可用空間翻倍,而對速度的影響可以忽略不計[來源請求]。隨着硬碟技術與製造業的進步和成本降低,磁碟壓縮軟件在1990年代後期被淘汰。
部分磁碟壓縮解決方案需要硬件輔助,除軟件驅動程式外還需使用額外的壓縮/解壓縮協處理器板卡。知名解決方案包括:
- Stacker XT/8和Stacker AT/16,出自Stac Electronics
- Expanz!和Expanz! Plus,出自InfoChip Systems[1][2][3]
- MRCI(微軟即時壓縮介面),出自微軟公司
隨着PC處理器效能增長,軟件解決方案在大多數情況下開始達到或甚至超過硬件輔助解決方案的效能。這些壓縮實用程式為獨立銷售。用戶必須具體選擇來安裝和組態軟件。
- Squish[4][5]和Squish Plus,出自Sundog Software[6]
- Stacker,出自Stac Electronics[2]
- XtraDrive,出自Integrated Information Technology(IIT)
- SuperStor和SuperStor Pro,出自AddStor[1][2]
- DoubleDisk和DoubleDisk Gold,出自Vertisoft Systems[1][2]
- JAM(JAM.SYS),出自烏克蘭基輔的JAM Software[7]
- DiskDoubler,出自Salient Software
- Double Density,出自Data Becker
將磁碟壓縮軟件綁售到新電腦上的想法吸引了經銷商和用戶。經銷商喜歡得到更多的儲存空間來銷售,而用戶喜歡無需自行組態軟件。捆綁的軟件套件含(按時間排序):
- DR DOS 6.0(1991年),出自數碼研究公司,包含一個AddStor「SuperStor」的自訂版本。
- PalmDOS 1.0(1992年),出自Novell(在其收購數字研究公司後),包含一個啟用DPMS的SuperStor。
- MS-DOS 6.0(1993年),出自微軟公司,包含DoubleSpace,其部分基於Vertisoft Systems的「DoubleDisk」。MS-DOS 6.0引入了所謂DOS預載入API,它是一個無文件的挑戰響應輸入介面,允許磁碟組件軟件(DBLSPACE.BIN)在處理CONFIG.SYS檔案前自動載入。
- PC DOS 6.1(1993年),出自IBM,原始版本未包含磁碟壓縮器,而SuperStor/DS的客製化版本(在收購AddStor後)包含在之後的發佈版本中,並也在PC DOS產品線中包括預載入API。
- MS-DOS 6.2(1993年),出自微軟公司,包含一個「DoubleSpace」的改進版本。
- Novell DOS 7(1993年),出自Novell,包含一個出自Stac Electronics的啟用DPMS的Stacker 3.12(STACKER.BIN),其支援與也在執行Stacker的遠端NetWare和PNW伺服器進行已壓縮數據的交換,從而避免複製檔案時不必要的重新壓縮。它也引入了DOS 6預載入API的支援,以保持與微軟公司的DoubleSpace在多重引導下的相容性。使用了一個類似的機制來載入可選的單用戶或多用戶安全組件。
- PTS-DOS Extended 6.4(1994年),出自PhysTechSoft,包含一個名為Folder(FOLDER.SYS)的磁碟壓縮組件。[8]
- PC DOS 6.3(1994年),出自IBM,包含一個SuperStor/DS。
- MS-DOS 6.22(1994年),出自微軟公司,包含DriveSpace,它與DoubleSpace採用不同的壓縮演算法(DRVSPACE.BIN),MS-DOS 6.21因法律原因而未搭載任何磁碟壓縮軟件。
- PC DOS 7.0(1995年),出自IBM,包含一個出自Stac Electronics的啟用DPMS的Stacker 4.02。
- Windows 95(1995年),出自微軟公司,包含一個DriveSpace 2的更新版本。
- Windows 95 OSR2(1996年),出自微軟公司,包含一個DriveSpace 3的簡化版本。
- Windows 95 Plus!(1996年),出自微軟公司,包含DriveSpace 3的完全版本。
- OpenDOS 7.01(1997年),出自Caldera(在收購Novell DOS後),包含一個啟用DPMS的Stacker 3.12。
- DR-DOS 7.02(1998年),出自Caldera,包含一個啟用DPMS的的Stacker 3.12。[9]DR-DOS 7.02也添加了對微軟公司DriveSpace的支援。[10]
- PC DOS 2000(1998年),出自IBM,包含一個啟用DPMS的Stacker 4.02。
- Windows 98(1998年),出自微軟公司,包含DriveSpace 3的完全版本。
- DR-DOS 7.03(1999年),出自Caldera,包含一個啟用DPMS的Stacker 3.12。
- Windows 98 SE(1999年),出自微軟公司,包含一個DriveSpace 3的完全版本。
- PTS-DOS Pro 2000(1999年),出自Paragon Technology Software,包含一個名為DATACOMP的磁碟壓縮組件。
- Squeeze,一個適用於Lotus 1-2-3和Lotus Symphony檔案的駐留的DOS檔案壓縮器,出自Turner Hall Publishing[11]
- Squish Plus ROM,出自Sundog Software。它通過Personalized Software(現為Thaddeus Computing)專門分發,是一個特殊的唯讀記憶體板卡,其中包含只有36 KB的適用於HP Portable Plus的一個Squish Plus的客製化版本。
- Double Tools for DoubleSpace,是Addstor的一個附加產品,是為增強與MS-DOS 6.0捆綁的DoubleSpace的功能。
- Multimedia Stacker,出自Helix Software was a bundle of Stac's DPMS-enabled Stacker 4.01 combined with Helix Cloaking和utilities, 利用Cloaking內建的DPMS伺服器來重新定位和執行於保護模式。
- THS filesystem(1994年-1996年,由Thomas Scheuermann),一個面向Linux的壓縮的檔案系統,它可以讀取某些壓縮的卷檔案(CVF)。[12][13][14]
- DMSDOS(1996年),一個Linux內核驅動程式[15][16],是為支援DoubleSpace、DriveSpace 2和3以及Stacker 3和4的卷的讀寫。
從Windows XP開始,微軟為NTFS檔案系統上的檔案提供原生的壓縮支援,但不是以「壓縮驅動器」為標準來實現。
磁碟壓縮程式會建立一個大的檔案,使其成為一個虛擬硬碟。這類似將單個物理驅動器劃分為多個虛擬驅動器。壓縮的驅動器通過一個裝置驅動程式訪問(存取)。
所有驅動器最初都是空的。建立驅動器的實用程式通常會提供「壓縮當前驅動器」功能。它的流程通常是:
- 建立一個空的壓縮驅動器,儲存在現有驅動器上。
- 將舊驅動器上的現有檔案傳輸到新的壓縮驅動器。
- 根據需要增加新的壓縮驅動器的大小,以容納更多檔案,以及在完成後留有空閒空間。
- 在所有檔案傳輸後,切換驅動器號。
需要注意的是,訪問已壓縮驅動器時必須已載入相應的裝置驅動程式。已壓縮驅動器C:需要按下列方法改變啟動程式:
- BIOS載入物理驅動器的磁區0(主開機紀錄)
- 分區磁區載入可引導分區的磁區0(卷引導記錄)。此種情況下,它是主機驅動器。
- (若以DOS為例)主機驅動器的磁區0載入,DOS BIOS(IO.SYS, IBMBIO.COM等)。
- DOS BIOS載入DOS內核(MSDOS.SYS, IBMDOS.COM等)。
- 如果該DOS支援預載入API,DOS BIOS嘗試載入可預載入的壓縮驅動程式[17](從主機驅動器的根目錄尋找DBLSPACE.BIN、DRVSPACE.BIN或STACKER.BIN),並嘗試通過DOS預載入API與其通訊。如果該驅動程式按預期方式響應,DOS BIOS保留該驅動程式,否則丟棄它。[18]如果保留並適當組態,驅動器號可能被交換,使壓縮的驅動器成為C:。
- DOS BIOS啟動CONFIG.SYS處理;在引導驅動器的根目錄尋找檔案。以DR-DOS為例,DCONFIG.SYS等。如果存在,將優先於CONFIG.SYS。[19][10]
- 通過預載入API載入的壓縮驅動程式可能會通過DEVICE聲明載入。
- 根據組態情況,如果還未發生,驅動器號可能被切換,以使壓縮的驅動器變為C:。
- 從已壓縮的驅動器繼續。
在硬碟效能緩慢的系統上,磁碟壓縮可能增加系統效能。這是因為兩個原因:
- 在被壓縮後,儲存的數據量減少。
- 一批次磁碟訪問可以獲得更多內容。
如果系統不得不頻繁等待硬碟訪問完成(I/O瓶頸),將硬碟轉換為壓縮狀態或能顯著增加系統速度。但數據的壓縮和解壓將增加CPU使用率。如果系統已遇到CPU瓶頸,磁碟壓縮會降低整體效能。
使用磁碟壓縮也有一些常見的缺點:
- 並非所有壓縮工具都能在壓縮磁碟前確認FAT檔案系統中的錯誤。某些錯誤如交叉連結檔案可能導致轉換過程中額外的數據遺失。[nb 1]
- 已壓縮驅動器僅在裝置驅動程式已載入並且已壓縮驅動器已掛載時可見。而啟動磁碟可能不包含所需驅動程式。(這對與作業系統捆綁的解決方案來說通常不是問題,除非是啟動一個外來的作業系統。因為SYS這樣的程式預設已修改為將壓縮驅動程式複製到引導磁碟,從而相應的作業系統也能在引導盤以外的驅動器上找到它們。)
- 如果已壓縮磁碟的展開數據超過正常的磁碟容量,解除安裝(解除壓縮)會遇到問題。
- 用戶不一定能意識到一個主機驅動器上的大檔案就是已壓縮的磁碟。雖然它通常是預設「隱藏」的[nb 2],用戶仍可能好奇地發現一個大檔案並可以刪除它。這通常會導致數據遺失。
交叉連結檔案,是指兩個檔案在同一個位置儲存它們的(哪怕部分)數據
舉例來說,DOS會為檔案分配最多四個屬性:系統、隱藏、唯讀和存檔。預設情況下,帶有系統或隱藏屬性的檔案不會被顯示。帶有系統或唯讀屬性的檔案不能使用
Slovick, Linda. The big squeeze. InfoWorld. 1992-02-17, 14 (7): 57–63 [2015-04-06]. (原始內容存檔於2017-04-02).
存档副本. [2017-04-01]. (原始內容存檔於2019-02-11).
存档副本. [2017-04-01]. (原始內容存檔於2017-01-03).
存档副本. [2017-04-01]. (原始內容存檔於2017-01-03).
Paul, Matthias. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP (e-book) edition 3, release 157. 1997-07-30 [2015-04-05]. (原始內容存檔於2016-11-03) (德語). NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.