磁碟壓縮(英語:disk compression軟體是一種可以增加硬碟儲存資訊量的技術。與需要使用者指定要壓縮檔案的檔案壓縮工具不同,磁碟壓縮工具自動完成壓縮與解壓,使用者無需意識到其存在。

此類程式將在需要儲存資訊時壓縮資料,而在讀取資訊時解壓縮。磁碟壓縮工具將覆蓋作業系統的標準流程。因為幾乎所有應用軟體都使用這種流程訪問磁碟,因此它們可以在安裝磁碟壓縮軟體後繼續正常工作。

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

常見的磁碟壓縮解決方案

編輯

獨立的硬體解決方案

編輯

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

獨立的軟體解決方案

編輯

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

軟體捆綁的解決方案

編輯

將磁碟壓縮軟體綁售到新電腦上的想法吸引了經銷商和使用者。經銷商喜歡得到更多的儲存空間來銷售,而使用者喜歡無需自行組態軟體。捆綁的軟體套件含(按時間排序):

其他解決方案

編輯

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

磁碟壓縮如何工作

編輯

磁碟壓縮程式會建立一個大的檔案,使其成為一個虛擬硬碟。這類似將單個物理驅動器劃分為多個虛擬驅動器。壓縮的驅動器通過一個裝置驅動程式訪問(存取)。

壓縮現有驅動器

編輯

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

  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. 從已壓縮的驅動器繼續。

效能影響

編輯

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

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

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

缺點

編輯

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

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

參見

編輯

備註

編輯
  1. ^ 交叉連結檔案英語Crosslinked file,是指兩個檔案在同一個位置儲存它們的(哪怕部分)資料
  2. ^ 舉例來說,DOS會為檔案分配最多四個屬性英語FAT attributes:系統、隱藏、唯讀和存檔。預設情況下,帶有系統或隱藏屬性的檔案不會被顯示。帶有系統或唯讀屬性的檔案不能使用

參考資料

編輯
  1. ^ 1.0 1.1 1.2 Slovick, Linda. The big squeeze. InfoWorld英語InfoWorld. 1992-02-17, 14 (7): 57–63 [2015-04-06]. (原始內容存檔於2017-04-02). 
  2. ^ 2.0 2.1 2.2 2.3 Pastrick, Greg. Double - no - triple your hard disk space with on-the-fly data compression utilities. PC Magazine. 1992-01-28, 11 (2): 261 [2015-04-06]. (原始內容存檔於2017-04-02). 
  3. ^ Mendelson, Edward. Expanz! board quickly compresses files on all disk types but forfeits some DOS compatibilities. PC Magazine. 1990-11-13, 9 (19): 13 [2015-04-06]. (原始內容存檔於2017-04-01). 
  4. ^ Walkenbach, John. Squish - File compressor crams data into smaller space, but slowly. InfoWorld英語InfoWorld. 1987-02-02, 9 (6): 55 [2015-04-05]. (原始內容存檔於2017-04-02). 
  5. ^ Davis, Stephen Randy. Squish Puts a Squeeze on Files Before They Are Written to Disk. PC Magazine. 1987-02-24, 6 (4): 46 [2015-04-06]. (原始內容存檔於2017-04-01). 
  6. ^ Goldstein, Hal. 50% more file space for as little as $89.95 (PDF). The Portable Paper英語The Portable Paper (Personalized Software英語Personalized Software, now Thaddeus Computing英語Thaddeus Computing). 1989-07-08, 4 (4): 46 [2015-04-05]. (原始內容存檔 (PDF)於2020-10-22). 
  7. ^ 存档副本. [2017-04-01]. (原始內容存檔於2019-02-11). 
  8. ^ MS-DOS-Clone made in Russia. Computerwoche. 1994-05-06 [2015-04-12]. (原始內容存檔於2020-09-25).  參數|journal=與模板{{cite web}}不匹配(建議改用{{cite journal}}|website=) (幫助)
  9. ^ DR-DOS 7.02 User Guide. Caldera, Inc.英語Caldera, Inc.. 1998 [2015-04-06]. (原始內容存檔於2016-11-05). 
  10. ^ 10.0 10.1 Paul, Matthias. Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT. 1997-10-02 [2009-03-29]. (原始內容存檔於2003-10-04). 
  11. ^ Turner Hall Publishing. Squeeze 10 times as many spreadsheets on a disk - SQZ! - The data squeezer for Lotus. PC Magazine. 1986-10-14: 155 [2016-11-18]. (原始內容存檔於2016-11-19). 
  12. ^ ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/dosfs/thsfs.tgz[永久失效連結]
  13. ^ 存档副本. [2017-04-01]. (原始內容存檔於2017-01-03). 
  14. ^ 存档副本. [2017-04-01]. (原始內容存檔於2017-01-03). 
  15. ^ DMSDOS - Linux kernel driver. 2005-03-18 [2016-05-25]. (原始內容存檔於2016-11-11). 
  16. ^ DMSDOS CVF module. 1998-11-19 [2016-11-01]. (原始內容存檔於2016-11-02). 
  17. ^ Schulman, Andrew; Brown, Ralf; Maxey, David; Michels, Raymond J.; Kyle, Jim. Undocumented DOS - A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 2. Addison Wesley英語Addison Wesley. 1994. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3. 
  18. ^ Hands on - Under the Hood: Inside MS-DOS 6 - The developers of MS-DOS describe the operating system's memory optimization and disk-compression technology. BYTE Magazine英語BYTE Magazine. July 1993, 18: 197–202 [2016-11-01]. 
  19. ^ 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.

外部連結

編輯