簡介
此類程式將在需要存儲信息時壓縮數據,而在讀取信息時解壓縮。磁碟壓縮工具將覆蓋作業系統的標準流程。因為幾乎所有套用軟體都使用這種流程訪問磁碟,因此它們可以在安裝磁碟壓縮軟體後繼續正常工作。
磁碟壓縮實用程式在1990年代受到歡迎,當時微型計算機的硬碟仍然較小(20至80百萬位元組),價格昂貴,每兆位元組需要大約10美元)。對不少用戶來說,相比購買更大容量的磁碟代替當前的驅動器,這種磁碟壓縮軟體是在短期內獲取更多磁碟存儲空間的有效且經濟的手段。一個設計良好的磁碟壓縮軟體平均可將可用空間翻倍,而對速度的影響可以忽略不計。隨著硬碟技術與製造業的進步和成本降低,磁碟壓縮軟體在1990年代後期被淘汰。
常見的磁碟壓縮解決方案
獨立的硬體解決方案
部分磁碟壓縮解決方案需要硬體輔助,除軟體驅動程式外還需使用額外的壓縮/解壓縮協處理器板卡。知名解決方案包括:
•Stacker XT/8和Stacker AT/16,出自Stac Electronics
•Expanz!和Expanz! Plus,出自InfoChip Systems
•MRCI(微軟實時壓縮接口),出自微軟公司
獨立的軟體解決方案
隨著PC處理器性能增長,軟體解決方案在大多數情況下開始達到或甚至超過硬體輔助解決方案的性能。這些壓縮實用程式為獨立銷售。用戶必須具體選擇來安裝和配置軟體。
•Squish和Squish Plus,出自Sundog Software
•Stacker,出自Stac Electronics
•XtraDrive,出自Integrated Information Technology(IIT)
•SuperStor和SuperStor Pro,出自AddStor
•DoubleDisk和DoubleDisk Gold,出自Vertisoft Systems
•JAM(JAM.SYS),出自烏克蘭基輔的JAM Software
•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)的磁碟壓縮組件。
•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。DR-DOS 7.02也添加了對微軟公司DriveSpace的支持。
•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
•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 Softwarewas a bundle of Stac'sDPMS-enabled Stacker 4.01 combined withHelix Cloaking和utilities, 利用Cloaking內置的DPMS伺服器來重新定位和運行於保護模式。
•THS filesystem(1994年-1996年,由Thomas Scheuermann),一個面向Linux的壓縮的檔案系統,它可以讀取某些壓縮的卷檔案(CVF)。
•DMSDOS(1996年),一個Linux核心驅動程式,是為支持DoubleSpace、DriveSpace 2和3以及Stacker 3和4的卷的讀寫。
從Windows XP開始,微軟為NTFS檔案系統上的檔案提供本地的壓縮支持,但不是以“壓縮驅動器”為標準來實現。
磁碟壓縮如何工作
磁碟壓縮程式會創建一個大的檔案,使其成為一個虛擬硬碟。這類似將單個物理驅動器劃分為多個虛擬驅動器。壓縮的驅動器通過一個設備驅動程式訪問(訪問)。
壓縮現有驅動器
所有驅動器最初都是空的。創建驅動器的實用程式通常會提供“壓縮當前驅動器”功能。它的流程通常是:
創建一個空的壓縮驅動器,存儲在現有驅動器上。
將舊驅動器上的現有檔案傳輸到新的壓縮驅動器。
根據需要增加新的壓縮驅動器的大小,以容納更多檔案,以及在完成後留有空閒空間。
在所有檔案傳輸後,切換驅動器號。
1.創建一個空的壓縮驅動器,存儲在現有驅動器上。
2.將舊驅動器上的現有檔案傳輸到新的壓縮驅動器。
3.根據需要增加新的壓縮驅動器的大小,以容納更多檔案,以及在完成後留有空閒空間。
4.在所有檔案傳輸後,切換驅動器號。
壓縮引導驅動器
需要注意的是,訪問已壓縮驅動器時必須已載入相應的設備驅動程式。已壓縮驅動器C:需要按下列方法改變啟動程式:
BIOS載入物理驅動器的扇區0(主引導記錄)
分區扇區載入可引導分區的扇區0(卷引導記錄)。此種情況下,它是主機驅動器。
(若以DOS為例)主機驅動器的扇區0載入,DOS BIOS(IO.SYS, IBMBIO.COM等)。
DOS BIOS載入DOS核心(MSDOS.SYS, IBMDOS.COM等)。
如果該DOS支持預載入API,DOS BIOS嘗試載入可預載入的壓縮驅動程式(從主機驅動器的根目錄尋找DBLSPACE.BIN、DRVSPACE.BIN或STACKER.BIN),並嘗試通過DOS預載入API與其通信。如果該驅動程式按預期方式回響,DOS BIOS保留該驅動程式,否則丟棄它。如果保留並適當配置,驅動器號可能被交換,使壓縮的驅動器成為C:。
DOS BIOS啟動CONFIG.SYS處理;在引導驅動器的根目錄查找檔案。以DR-DOS為例,DCONFIG.SYS等。如果存在,將優先於CONFIG.SYS。
通過預載入API載入的壓縮驅動程式可能會通過DEVICE聲明載入。
根據配置情況,如果還未發生,驅動器號可能被切換,以使壓縮的驅動器變為C:。
從已壓縮的驅動器繼續。
1.BIOS載入物理驅動器的扇區0(主引導記錄)
2.分區扇區載入可引導分區的扇區0(卷引導記錄)。此種情況下,它是主機驅動器。
3.(若以DOS為例)主機驅動器的扇區0載入,DOS BIOS(IO.SYS, IBMBIO.COM等)。
4.DOS BIOS載入DOS核心(MSDOS.SYS, IBMDOS.COM等)。
5.如果該DOS支持預載入API,DOS BIOS嘗試載入可預載入的壓縮驅動程式(從主機驅動器的根目錄尋找DBLSPACE.BIN、DRVSPACE.BIN或STACKER.BIN),並嘗試通過DOS預載入API與其通信。如果該驅動程式按預期方式回響,DOS BIOS保留該驅動程式,否則丟棄它。如果保留並適當配置,驅動器號可能被交換,使壓縮的驅動器成為C:。
6.DOS BIOS啟動CONFIG.SYS處理;在引導驅動器的根目錄查找檔案。以DR-DOS為例,DCONFIG.SYS等。如果存在,將優先於CONFIG.SYS。
7.通過預載入API載入的壓縮驅動程式可能會通過DEVICE聲明載入。
8.根據配置情況,如果還未發生,驅動器號可能被切換,以使壓縮的驅動器變為C:。
9.從已壓縮的驅動器繼續。
性能影響
在硬碟性能緩慢的系統上,磁碟壓縮可能增加系統性能。這是因為兩個原因:
•在被壓縮後,存儲的數據量減少。
•一批量磁碟訪問可以獲得更多內容。
如果系統不得不頻繁等待硬碟訪問完成(I/O瓶頸),將硬碟轉換為壓縮狀態或能顯著增加系統速度。但數據的壓縮和解壓將增加CPU使用率。如果系統已遇到CPU瓶頸,磁碟壓縮會降低整體性能。
缺點
使用磁碟壓縮也有一些常見的缺點:
•並非所有壓縮工具都能在壓縮磁碟前確認FAT檔案系統中的錯誤。某些錯誤如交叉連結檔案可能導致轉換過程中額外的數據丟失。
•已壓縮驅動器僅在設備驅動程式已載入並且已壓縮驅動器已掛載時可見。而啟動盤可能不包含所需驅動程式。(這對與作業系統捆綁的解決方案來說通常不是問題,除非是啟動一個外來的作業系統。因為SYS這樣的程式默認已修改為將壓縮驅動程式複製到引導磁碟,從而相應的作業系統也能在引導盤以外的驅動器上找到它們。)
•如果已壓縮磁碟的展開數據超過正常的磁碟容量,卸載(解除壓縮)會遇到問題。
•用戶不一定能意識到一個主機驅動器上的大檔案就是已壓縮的磁碟。雖然它通常是默認“隱藏”的,用戶仍可能好奇地發現一個大檔案並可以刪除它。這通常會導致數據丟失。