热门问题
时间线
聊天
视角

磁盤壓縮

来自维基百科,自由的百科全书

Remove ads

磁盤壓縮(英語:disk compression軟件是一種可以增加硬盤存儲信息量的技術。與需要用戶指定要壓縮文件的文件壓縮工具不同,磁盤壓縮工具自動完成壓縮與解壓,用戶無需意識到其存在。

此類程序將在需要存儲信息時壓縮數據,而在讀取信息時解壓縮。磁盤壓縮工具將覆蓋操作系統的標準流程。因為幾乎所有應用軟件都使用這種流程訪問磁盤,因此它們可以在安裝磁盤壓縮軟件後繼續正常工作。

磁盤壓縮實用程序在1990年代受到歡迎,當時微型計算機的硬盤仍然較小(20至80百萬字節),價格昂貴,每兆字節需要大約10美元)。對不少用戶來說,相比購買更大容量的磁盤代替當前的驅動器,這種磁盤壓縮軟件是在短期內獲取更多磁盤存儲空間的有效且經濟的手段。一個設計良好的磁盤壓縮軟件平均可將可用空間翻倍,而對速度的影響可以忽略不計[來源請求]。隨着硬盤技術與製造業的進步和成本降低,磁盤壓縮軟件在1990年代後期被淘汰。

Remove ads

常見的磁盤壓縮解決方案

獨立的硬件解決方案

部分磁盤壓縮解決方案需要硬件輔助,除軟件驅動程序外還需使用額外的壓縮/解壓縮協處理器板卡。知名解決方案包括:

獨立的軟件解決方案

隨着PC處理器性能增長,軟件解決方案在大多數情況下開始達到或甚至超過硬件輔助解決方案的性能。這些壓縮實用程序為獨立銷售。用戶必須具體選擇來安裝和配置軟件。

軟件捆綁的解決方案

將磁盤壓縮軟件綁售到新計算機上的想法吸引了經銷商和用戶。經銷商喜歡得到更多的存儲空間來銷售,而用戶喜歡無需自行配置軟件。捆綁的軟件包含(按時間排序):

  • DR DOS 6.0英語DR DOS 6.0(1991年),出自數位研究公司,包含一個AddStor英語Addstor, Inc.「SuperStor」的自定義版本。
  • PalmDOS 1.0英語PalmDOS 1.0(1992年),出自Novell(在其收購數字研究公司後),包含一個啟用DPMS英語DOS Protected Mode Services的SuperStor。
  • MS-DOS 6.0(1993年),出自微軟公司,包含DoubleSpace,其部分基於Vertisoft Systems英語Vertisoft的「DoubleDisk」。MS-DOS 6.0引入了所謂DOS預加載API英語DOS preload API,它是一個無文檔的挑戰響應英語challenge-response輸入接口,允許磁盤組件軟件(DBLSPACE.BIN)在處理CONFIG.SYS文件前自動加載。
  • PC DOS 6.1英語PC DOS 6.1(1993年),出自IBM,原始版本未包含磁盤壓縮器,而SuperStor/DS的定製版本(在收購AddStor後)包含在之後的發布版本中,並也在PC DOS產品線中包括預加載API。
  • MS-DOS 6.2(1993年),出自微軟公司,包含一個「DoubleSpace」的改進版本。
  • Novell DOS 7英語Novell DOS 7(1993年),出自Novell,包含一個出自Stac Electronics英語Stac Electronics的啟用DPMS的Stacker 3.12英語Stacker 3.12(STACKER.BIN),其支持與也在運行Stacker的遠程NetWarePNW服務器進行已壓縮數據的交換,從而避免複製文件時不必要的重新壓縮。它也引入了DOS 6預加載API的支持,以保持與微軟公司的DoubleSpace在多重引導下的兼容性。使用了一個類似的機制來加載可選的單用戶或多用戶安全英語SECURITY.BIN組件。
  • PTS-DOS Extended 6.4英語PTS-DOS Extended 6.4(1994年),出自PhysTechSoft英語PhysTechSoft,包含一個名為Folder(FOLDER.SYS)的磁盤壓縮組件。[8]
  • PC DOS 6.3英語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英語PC DOS 7.0(1995年),出自IBM,包含一個出自Stac Electronics的啟用DPMS的Stacker 4.02英語Stacker 4.02
  • Windows 95(1995年),出自微軟公司,包含一個DriveSpace 2英語DriveSpace 2的更新版本。
  • Windows 95 OSR2(1996年),出自微軟公司,包含一個DriveSpace 3英語DriveSpace 3的簡化版本。
  • Windows 95 Plus!英語Windows 95 Plus!(1996年),出自微軟公司,包含DriveSpace 3的完全版本。
  • OpenDOS 7.01英語OpenDOS 7.01(1997年),出自Caldera(在收購Novell DOS後),包含一個啟用DPMS的Stacker 3.12。
  • DR-DOS 7.02英語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英語DR-DOS 7.03(1999年),出自Caldera,包含一個啟用DPMS的Stacker 3.12。
  • Windows 98 SE(1999年),出自微軟公司,包含一個DriveSpace 3的完全版本。
  • PTS-DOS Pro 2000英語PTS-DOS Pro 2000(1999年),出自Paragon Technology Software英語Paragon Technology Software,包含一個名為DATACOMP的磁盤壓縮組件。
Remove ads

其他解決方案

Windows XP開始,微軟為NTFS文件系統上的文件提供原生的壓縮支持,但不是以「壓縮驅動器」為標準來實現。

Remove ads

磁盤壓縮如何工作

磁盤壓縮程序會創建一個大的文件,使其成為一個虛擬硬盤。這類似將單個物理驅動器劃分為多個虛擬驅動器。壓縮的驅動器通過一個設備驅動程序訪問(存取)。

壓縮現有驅動器

所有驅動器最初都是空的。創建驅動器的實用程序通常會提供「壓縮當前驅動器」功能。它的流程通常是:

  1. 創建一個空的壓縮驅動器,存儲在現有驅動器上。
  2. 將舊驅動器上的現有文件傳輸到新的壓縮驅動器。
  3. 根據需要增加新的壓縮驅動器的大小,以容納更多文件,以及在完成後留有空閒空間。
  4. 在所有文件傳輸後,切換驅動器號。

壓縮引導驅動器

需要注意的是,訪問已壓縮驅動器時必須已加載相應的設備驅動程序。已壓縮驅動器C:需要按下列方法改變啟動程式

  1. BIOS加載物理驅動器的扇區0(主引導記錄
  2. 分區扇區加載可引導分區的扇區0(卷引導記錄英語Volume Boot Record)。此種情況下,它是主機驅動器。
  3. (若以DOS為例)主機驅動器的扇區0加載,DOS BIOS(IO.SYS, IBMBIO.COM等)。
  4. DOS BIOS加載DOS內核(MSDOS.SYS, IBMDOS.COM等)。
  5. 如果該DOS支持預加載API英語DOS preload API,DOS BIOS嘗試加載可預加載的壓縮驅動程序[17](從主機驅動器的根目錄尋找DBLSPACE.BIN、DRVSPACE.BIN或STACKER.BIN),並嘗試通過DOS預加載API與其通信。如果該驅動程序按預期方式響應,DOS BIOS保留該驅動程序,否則丟棄它。[18]如果保留並適當配置,驅動器號可能被交換,使壓縮的驅動器成為C:。
  6. DOS BIOS啟動CONFIG.SYS處理;在引導驅動器的根目錄查找文件。以DR-DOS為例,DCONFIG.SYS等。如果存在,將優先於CONFIG.SYS。[19][10]
  7. 通過預加載API加載的壓縮驅動程序可能會通過DEVICE英語DEVICE (CONFIG.SYS directive)聲明加載。
  8. 根據配置情況,如果還未發生,驅動器號可能被切換,以使壓縮的驅動器變為C:。
  9. 從已壓縮的驅動器繼續。
Remove ads

性能影響

在硬盤性能緩慢的系統上,磁盤壓縮可能增加系統性能。這是因為兩個原因:

  • 在被壓縮後,存儲的數據量減少。
  • 一批次磁盤訪問可以獲得更多內容。

如果系統不得不頻繁等待硬盤訪問完成(I/O瓶頸英語I/O bound),將硬盤轉換為壓縮狀態或能顯著增加系統速度。但數據的壓縮和解壓將增加CPU使用率。如果系統已遇到CPU瓶頸英語CPU bound,磁盤壓縮會降低整體性能。

缺點

使用磁盤壓縮也有一些常見的缺點:

  • 並非所有壓縮工具都能在壓縮磁盤前確認FAT文件系統中的錯誤。某些錯誤如交叉鏈接文件可能導致轉換過程中額外的數據丟失。[nb 1]
  • 已壓縮驅動器僅在設備驅動程序已加載並且已壓縮驅動器已掛載時可見。而啟動盤可能不包含所需驅動程序。(這對與操作系統捆綁的解決方案來說通常不是問題,除非是啟動一個外來的操作系統。因為SYS英語SYS (DOS command)這樣的程序默認已修改為將壓縮驅動程序複製到引導磁盤,從而相應的操作系統也能在引導盤以外的驅動器上找到它們。)
  • 如果已壓縮磁盤的展開數據超過正常的磁盤容量,卸載(解除壓縮)會遇到問題。
  • 用戶不一定能意識到一個主機驅動器上的大文件就是已壓縮的磁盤。雖然它通常是默認「隱藏」的[nb 2],用戶仍可能好奇地發現一個大文件並可以刪除它。這通常會導致數據丟失。

參見

備註

參考資料

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads