跳至內容

ZIP格式

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

ZIP檔案格式是一種資料壓縮佮文件儲存的檔案格式,原名 Deflate,發明者為菲爾 ・ 卡茨(Phil Katz), 伊佇一九八九年一月公佈矣該格式的資料。ZIP 通常使用字尾名「.zip」,伊的 MIME 格式為 application / zip。目前,ZIP 格式屬於幾種主流的壓縮格式之一,其競爭者包括 RAR 格式以及開放原始碼的七 z 格式。對效能上較,RAR 佮七 z格式較 ZIP 格式壓縮率較懸,抑若七-Zip 因為提供了免費的壓縮工具漸漸佇閣較濟領域得著應用。Microsoft 對 Windows ME 作業系統開始內面的著 zip 格式的支援,準做是用者的電頭殼頂無安裝解壓縮軟體,嘛會當拍開佮製作 zip 格式的壓縮檔案,OS X 佮流行的 Linux 作業系統嘛對 zip 格式提供了類似的支援。因此若佇網路頂懸傳播佮分發檔案,zip 格式往往是上捷用的選擇。

歷史

前身

一九八五年一家名做 SEA(System Enhancement Associates,系統增強同伴)的小公司開發一个佇咧 MS-DOS 平台跤的商業壓縮軟體,號做 ARC。彼當陣的軟體發行方式佮這馬略仔有無仝,使用者買這个軟體,除了得著軟體的可執行檔猶閣包括一份 C 語言的這个原始碼。彼陣的卡茨佮足濟用電腦的平民仝款,欠缺資金購買大量的商業軟體,彼陣卡茨對網路頂頭下載一份 ARC 的 C 語言原始碼,而且用組合語言共伊全新編寫並編譯出來。卡茨將這个軟體名做:PKARC(Phillip Katz'ARC)。 卡茨製作的新軟體 PKARC 因為是參照原始碼編寫的,所以完全相容 ARC 並且效能上比 ARC 懸。卡茨彼當陣將這个新軟體上傳到網路頂懸。顯然,卡茨這舉造成對 SEA 公司的侵權。SEA 上頭仔希望通過聯絡卡茨使 PKARC 成做 SEA 公司旗下的一款產品,尾手卡茨拒絕了。終其尾,雙方對簿公堂,結果是卡茨敗訴,卡茨予人判以對 SEA 公司的賠款以及停止發放 PKARC。後來,卡茨佇研發過程中的 PKARC 續作也被迫重新覆寫所有的代碼,PKARC 其實是講下文講的 PKZIP 較早是身,彼卡茨無對 PKARC 趁著一分錢,抑是散潦倒,閣因為傷酒等眾濟原因,二空空空年死佇一个汽車旅館內底。

誕生

這場官司過後幾禮拜,卡茨就製作出新壓縮軟體 PKZIP(Phillip Katz'ZIP), 這款的全新的軟體比 ARC 的壓縮率、壓縮效能攏愛懸足濟的,並且包括閣較濟功能。此後,卡茨閣將 ZIP 的所有技術參數公諸於眾。ZIP(含義「速度」)這一名稱是由卡茨的朋友羅伯特 ・ 馬宏利(Robert Mahoney)建議的。𪜶想欲暗示,𪜶的產品比 ARC 佇一定時間內底愈快速。這个名往往予人寫做大寫字母,因為佇咧 DOS 系統內,通常攏是使用大寫字母做字尾的。(因為 MS-DOS 執行佇咧 FAT 檔案系統上)

Winzip 的世間

Windows 三更零面世進前,有兩種格式佮 ZIP 平平流行,一个是 LHA(LHArc),另外一个是 ARJ(Archiver Robert Jung), 一直到一九九五年,這三種壓縮格式攏是 PC 應用的主流。了後,一九九五年,微軟發布矣 Windows 九十五,彼陣對 DOS 轉移到Windows 的使用者,極度喙焦求對圖形介面下的優良軟體,Winzip 閣有其優良的效能袂赴無啥見笑的圖形化使用者介面唌著使用者的目光,佇咧彼陣占有大量的市場占有量,其實乎,彼陣的 WinZip 干焦是一個呼叫 DOS 資源的 GUI 外殼,毋過其實 Windows 三就開始的製作經驗使其 GUI 效能佮外觀攏比彼陣流行軟體較好。足緊的,WinZip 就成做彼陣一个足流行的軟體。同時嘛帶動矣ZIP 的傳播,因為佇前期太受歡迎,使到尾期足濟使用者攏想講,是 WinZip 創造了 ZIP,其實這是一个誤解,關於著 WinZip 閣較詳細的資訊,參見 WinZip。

發展

因為格式開放而且免錢。愈來愈濟的軟體內躉支援開啟 Zip 檔案。這陣,Zip 檔案愈來愈成一个經過壓縮的透明資料鋏。

  • 自 Windows Me 以來,Windows 內嵌支援拍開閣壓縮 Zip 檔案
  • 一一寡下載軟體的工具,支援部份下載 Zip 檔案然後進行恢復。
  • 愈來愈濟的軟體內嵌支援拍開 Zip 檔案。
  • 強欲所有的壓縮軟體攏支援拍開佮製作 Zip 檔案。

危機

基本上,Zip 檔案的發展攏是由 PKware 公司佮 Winzip 所推動。毋過,其兩間公司就某一寡問題頂懸互相憢疑,致使發展較慢咧。人阮這馬上想欲佇 Zip 檔案實現的目標,就是加強目前 Zip 檔案的加密能力。就這馬來講, Zip 的檔案加密能力弱甲可憐,干焦憑單單一个口令保護,根本滿足不了安全需求。雖然卡茨在世的時陣公開了格式,留有為日後升級的空間,猶毋過 Winzip 干焦是一个使用者,根本就無法度發佈新的標準,其標準的制訂權猶原保留佇咧 PKware 手中。二空空二年的時陣,PKware 開發支援兩百五十六位 AES 加密的 PKZIP 五曉空,猶毋過 Winzip 佇二空空三年發布的 Winzip 九煞予證明無法度佮之相容。雙方攏互相指責對方違背矣 Zip 的自由開放精神。這是 Zip 自誕生日起,第一个對伊來講上嚴峻的挑戰。

檔案頭

使用任何一種文字編輯器拍開任何一个 Zip 檔案,攏看會著前兩字母為:PK

技術

ZIP 是一種真簡單的分別壓縮逐个檔案的存檔格式。分別壓縮檔案允准毋免讀另外的資料而檢索獨立的檔案;理論上,這種格式允准對無仝的檔案使用無仝的演算法。不管用何種方法,著這種格式的一个告蓋是對包含真濟小檔案的時陣,存檔會明顯的比壓縮做一个獨立的檔案(佇類 Unix 系統中一个經典的例是普通的 tar . gz 存檔是由一个使用 gzip 壓縮的 TAR 存檔組成)愛大。

ZIP 的規約指出檔案會當無經過壓縮或者是使用無仝的壓縮演算法來儲存。毋過,佇實際上,ZIP 差不多總是佇咧使用卡茨(Katz)的 DEFLATE 演算法。

ZIP 支援因為對稱加密系統的一个簡單的密碼,這馬已經知影有嚴重的缺陷,有佇咧已經知明文攻擊、字典的攻擊佮暴力的攻擊。ZIP 嘛支援分割壓縮。

佇近來一段時間,ZIP 加入去矣包括新的壓縮佮加密方法的新特徵,毋過遮的新特徵並無去予濟濟工具所支援並且足廣泛應用的。

壓縮方法

用來對比壓縮大細使用的是 [一] 的內容佮上大壓縮比。

Shrinking(方法一)

收縮(Shrinking)是 LZW 的小調整的一个異體,仝款嘛受著 LZW 專利問題的影響。毋捌有明確的就是這項專利敢是涵蓋反收縮,猶毋過一寡開放原始碼的專案(比如講 Info-ZIP)決定欲謹慎行事,咧設的結構造里無包含反收縮的支援。

Reducing(方法二孵五)

縮小(Reducing)包括壓縮重複位元組序列的組合,然後應用一个基於概率的編碼得著結果。

Imploding(方法六)

爆聚(Imploding)包括使用一个趨動窗仔口壓縮重複位元組序列,然後使用偌重 Shannon-Fano 樹仔壓縮會著結果。

Tokenizing(方法七)

權拐化(Tokenizing)的方法數是保留的。PKWARE 規約無共其定義一个演算法。

Deflate 佮增強的 Deflate(方法八佮九)

遮的方法使用眾人知 Deflate 演算法。Deflate 允准上大三十二 K 的窗口。增強的 Deflate 允准上大六十四 K 的窗口。增強版完成任務小可仔成功一寡,但是並無廣泛的支援。


Deflate 比較 sài-sù 是五十二孵一 MiB(使用 pkzip for Windows,版本八堵空空 . 三十八測試)


增強的 Deflate 比較 sài-sù 是五十二孵八 MiB(使用 pkzip for Windows,版本八堵空空 . 三十八測試)

PKWARE Data Compression Library Imploding(方法十)

PKWARE 資料壓縮庫爆聚(PKWARE Data Compression LibraryImploding), 官方 ZIP 格式規約就此時無予出閣較濟的資訊。


比較 sài-sù 是六十一追六 MiB(使用 pkzip for Windows,版本八堵空空 . 三十八測試,選擇二進位模式)方法十一
此方法予人 PKWARE 保留。

Bzip 二(方法十二)

此方法使用眾所周知的 bzip 二演算法。此演算法比 deflate 高效但是並無予(是因為Windows 平台的)工具所支援。


比較 sài-sù 是五十追究六 MiB(使用 pkzip for Windows,版本八堵空空 . 三十八測試)

缺點

因為出現佇市場的時間較早,這馬乎Zip 檔案佮其他壓縮格式相比有濟濟無法度無去關注的缺點。

原生並無支援 Unicode 檔案名稱,容易致使一部份的資源共享困難,佇咧東亞文化圈的資源交流尤其是顯示;無法度佮七 z 相比的壓縮比率佮如講 WinRAR 的 Recovery Record 修復支援功能的缺乏亦攏是其衰微的原因。

針對頂懸缺點,前 WinZip 團隊有開發了後繼者 ZIPX 格式,毋過猶是無普遍。

參見

  • WinZip
  • LZW
  • LZ 七十七
  • RAR
  • 壓縮軟體列表
  • 壓縮軟體較

外部連結

  • Winzip
  • PKware
  • RARlab
  • 七-Zip
  • PeaZip