Zip(壓縮檔案格式)

Zip(壓縮檔案格式)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

ZIP,是一個檔案的壓縮的算法,原名Deflate(真空),發明者為菲利普·卡茲(Phil Katz)),他於1989年1月公布了該格式的資料。ZIP通常使用後綴名“.zip”,它的MIME格式為 application/zip 。目前,ZIP格式屬於幾種主流的壓縮格式之一,其競爭者包括RAR格式以及開放源碼的7-Zip格式。從性能上比較,RAR格式較ZIP格式壓縮率較高,但是它的壓縮時間遠遠高於Zip。而7-Zip(7z)由於提供了免費的壓縮工具而逐漸在更多的領域得到套用。

基本介紹

  • 外文名:Zip
  • 適合系統:電腦和手機
  • 發明者菲利普·卡茲
  • 起始時間:1989年1月
創始,Winzip面世,發展,技術,原理,壓縮方法,缺點,支持軟體,

創始

2000年4月14日,在美國威斯康星州密爾沃基的一家汽車旅館裡,人們發現了一具年輕人的屍體,檢查得知這個人的死因是酗酒、飲酒過量導致的死亡。死者被發現的時候,手中還握著一個空酒瓶,房間中還有五個空酒瓶。這樣一個酒徒的死也許在平時只是地方小報上的一條不起眼的新聞,但這個人的死卻在網際網路上掀起了軒然大波。無數人在網上發表評論與文章,紀念他的離開,寄託人們的哀思,因為他不是一個普通人,他叫菲利普·卡茲(Philip Katz),幾乎全世界的每一台個人電腦上都有用他創造的壓縮算法生成的文檔,這種文檔的後綴是“.zip”,這些文檔的的開頭都嵌有他姓名的字頭縮寫字母‘PK’。這位在全世界的電腦中留下痕跡的天才程式設計師終年僅37歲。
在DOS時代就開始使用電腦的玩家可能都會記得,那時候的處理器速度與存儲介質的容量與現在相比簡直不可同日而語,為了拷貝一個遊戲我們常常要更換數張軟碟。從那個時候起,我們認識了ZIP檔案,在沒有Windows的年代,使用字元界面和命令行方式壓縮的程式主要有PKZIP和ARJ兩種,直到過渡到Windows時代,WinZip的出現才使壓縮軟體的規格得到了統一。網際網路上無數的檔案都以“.zip”的格式進行存儲,壓縮檔案使用戶能在最短的時間裡將檔案從網上下載回自己的硬碟中,在沒有寬頻,連MODEM都僅僅是14.4K的速率的那個年代,ZIP檔案為我們節省了大量的寶貴時間與金錢。但很少有人知道ZIP檔案的由來,很少知道它的創造者菲利普·卡茲
在網際網路剛萌芽之時,也就是公元1988年,那時候網際網路還剛剛開始有了雛形,而最流行的是一種使用電話線撥號登入別人在家裡搭建的服務平台——交換信息的電子公告牌(BBS)系統。這種系統有些類似現在的論壇和新聞組,由於站長之間互相轉信也成為了一個龐大的信息網路(惠多網)。老一點的玩家可能都有印象,在沒有Internet的年代,中國大地上也曾有幾十個這樣的BBS存在,著名的字處理軟體WPS的作者求伯君和CCED的作者朱崇君當年都是非常有名的個人站長。這種方式不但可以傳遞文本信息,也可以由用戶上傳檔案到站點的計算機以供其他用戶下載。由於電話線的接入速度慢的可憐,通過BBS傳輸較大檔案實在是叫人痛苦的一件事。於是,使用檔案壓縮技術減小檔案的體積並將多個檔案壓縮到一個封包中就成為了BBS用戶的一項必須掌握的技巧。當時的美國BBS上,比較流行的是一種叫做ARC的壓縮技術,由一家名為SEA(System Enhancement Associates,系統增強夥伴)的小公司開發,運行在MS-DOS平台下,使用這種軟體進行工作是需要付費的。那時候的菲利普·卡茲是一個沉迷於BBS上的毛頭小伙,由於經常混跡於BBS上,對於ARC的收費非常不滿的他自己開發了一個程式叫PKARC,這個程式於ARC完全兼容,可以壓縮和解壓縮ARC檔案。這樣一來,大批的ARC用戶自然轉而使用菲利普·卡茲的免費軟體。ARC的製作公司一怒之下將菲利普·卡茲告上了法庭,法庭自然判決菲利普·卡茲禁止繼續開發和傳播PKARC。這種判決並沒有磨滅菲利普·卡茲的鬥志,而是激起了他要與ARC鬥爭到底的決心。在虛擬的世界中,自由、平等永遠是真正的程式設計師永久的追求。他放棄了PKARC的開發,發誓要寫出一款比ARC更好的壓縮軟體來打敗ARC。這一場官司造就了一名編程天才的橫空出世,也造就了一個後來在網際網路時代的檔案標準。幾周以後,後來統治整個BBS世界乃至Internet世界的ZIP在菲利普·卡茲手中發出了第一聲響亮的啼哭!
不鳴則已,一鳴驚人,這種名為PKZIP的程式可以將一個或多個檔案壓縮到一個後綴為“.zip”的檔案中,無論從壓縮比、壓縮速度方面都超過了商業軟體ARC。卡茲將PKZIP作為自由軟體免費發放,使其如同草原上的星星之火般在全美的各大BBS上蔓延開來,用戶以幾何級數的增長,各大BBS的站長自發將原來使用ARC格式壓縮的檔案轉換成ZIP格式,卡茲用他天才的頭腦和頑強的毅力堂堂正正的擊敗了ARC,ARC的製作公司在PKZIP的強大攻勢下很快就銷聲匿跡了。用自由軟體打敗商業公司的傳奇故事很快傳遍了整個BBS世界,疾惡如仇而又身手不凡的菲利普·卡茲如同數字世界的大俠般仗劍江湖,劫富濟貧,以一人之力擎起了壓縮軟體的大旗。這段被人們津津樂道的傳奇故事使菲利普·卡茲成為了很多熱衷於編程的年輕人心中的偶像。此後卡茲一直繼續著對PKZIP的開發和維護工作,PKZIP建立和統治了DOS時代的壓縮標準。直到Windows的誕生,使用卡茲創造的壓縮算法的軟體Winzip的出現更使ZIP格式成為Internet的傳輸標準,ZIP壓縮格式也成為壓縮文檔的事實標準。試問當今的電腦用戶,誰敢說自己的電腦中沒有ZIP檔案?
可惜,這位天才程式設計師卻從未在ZIP身上得到半點好處,堅持信念的結果往往是潦倒的生活,糟糕的個人生活和長期編寫軟體的巨大壓力使卡茲染上了酗酒的惡習,最終斷送了他那年輕的生命。他為世界貢獻了一個偉大的免費軟體,更為重要的是他締造了一種大眾化的壓縮格式,然而卻過早地離開了這個世界。他的名字也許多年後會被人們忘懷,但他創造的ZIP將在網上生生不息的流傳,他的名字縮寫嵌在了全世界數以千萬的電腦中,他的傳奇故事將永遠流傳……

Winzip面世

Windows 3.0面世之前,有兩種格式與ZIP同樣流行,一個是LHA(LHArc),另一個是ARJ(Archiver Robert Jung),直至到1995年,這3種壓縮格式都是PC套用的主流。之後,1995年,微軟發布了Windows95,當時從DOS轉移到Windows的用戶們,極度渴求對圖形界面下的優良軟體,Winzip以其優良的性能以及不太羞澀的圖形用戶界面吸引了用戶的目光,在當時占有大量的市場占有量,其實,當時的Winzip僅僅是一個調用DOS資源的GUI外殼,但是其從Windows 3就開始的製作經驗使其GUI性能和外觀都比當時的流行軟體要好。很快的,Winzip就成為了當時一個很流行的軟體。同時也帶動了ZIP的傳播,由於在前期太受歡迎,使到後期很多用戶都以為,是WinZip創造了ZIP,其實這是一個誤解。

發展

因格式開放且免費。越來越多的軟體內嵌支持解壓Zip檔案。這時,Zip檔案越來越像一個經過壓縮的透明資料夾。
  • 自Windows Me以來,Windows內嵌支持打開以及壓縮Zip檔案。
  • 一些下載軟體的工具,支持部分下載Zip檔案然後進行恢復。
  • 越來越多的軟體內嵌支持打開Zip檔案。
  • 幾乎所有的壓縮軟體都支持打開及製作Zip檔案。

技術

原理

ZIP是一種相當簡單的分別壓縮每個檔案的存檔格式。分別壓縮檔案允許不必讀取另外的數據而檢索獨立的檔案;理論上,這種格式允許對不同的檔案使用不同的算法。不管用何種方法,對這種格式的一個告誡是對於包含很多小檔案的時候,存檔會明顯的比壓縮成一個獨立的檔案(在類Unix系統中一個經典的例子是普通的tar.gz存檔是由一個使用gzip壓縮的TAR存檔組成)要大。
ZIP的規約指出檔案可以不經壓縮或者使用不同的壓縮算法來存儲。然而,在實際上,ZIP幾乎差不多總是在使用卡茨(Katz)的DEFLATE算法。
ZIP支持基於對稱加密系統的一個簡單的密碼,現在已知有嚴重的缺陷,已知明文攻擊,字典攻擊和暴力攻擊。ZIP也支持分卷壓縮。
在近來一段時間,ZIP加入了包括新的壓縮和加密方法的新特徵,不過這些新特徵並沒有被許多工具所支持並且沒有得到廣泛套用。

壓縮方法

用來對比壓縮大小使用的是[1]的內容和最大壓縮比。
Shrinking(方法1)
  • 收縮(Shrinking)是LZW的微小調整的一個異體,同樣也受到LZW專利問題的影響。從來沒有明確的是這項專利是否涵蓋反收縮,不過一些開放源碼的項目(例如Info-ZIP)決定謹慎行事,在默認的構造里不包含反收縮的支持。
Reducing(方法2-5)
  • 縮小(Reducing)包括壓縮重複位元組序列的組合,然後套用一個基於機率的編碼得到結果。
Imploding(方法6)
  • 爆聚(Imploding)包括使用一個滑動視窗壓縮重複位元組序列,然後使用多重Shannon-Fano樹壓縮得到結果。
Tokenizing(方法7)
  • 令牌化(Tokenizing)的方法數是保留的。PKWARE規約沒有為其定義一個算法。
Deflate和增強的Deflate(方法8和9)
  • 這些方法使用眾所周知的Deflate算法。Deflate允許最大32K的視窗。增強的Deflate允許最大64K的視窗。增強版完成任務稍稍成功一些,但是並沒有被廣泛的支持。
  • Deflate比較尺寸是52.1MiB(使用pkzip for Windows,版本8.00.0038測試)
  • 增強的Deflate比較尺寸是52.8MiB(使用pkzip for Windows,版本8.00.0038測試)
PKWARE Data Compression Library Imploding(方法10)
  • PKWARE數據壓縮庫爆聚(PKWARE Data Compression Library Imploding),官方ZIP格式規約就此沒有給出更多的信息。
  • 比較尺寸是61.6MiB(使用pkzip for Windows,版本8.00.0038測試,選擇二進制模式)
方法11
  • 此方法被PKWARE保留。
Bzip2(方法12)
  • 此方法使用眾所周知的bzip2算法。此算法比deflate高效但是並沒有被(基於Windows平台的)工具所支持。
  • 比較尺寸是50.6MiB(使用pkzip for Windows,版本8.00.0038測試)

缺點

由於出現於市場的時間早,今日Zip檔案與其他壓縮格式相比有眾多無法忽視的缺點。
原生並不支持Unicode檔案名稱稱,容易導致一部分的資源共享困難,在東亞文化圈的資源交流尤其顯著;無法與7z相比的壓縮比率以及如WinRAR的Recovery Record修復支援功能的缺乏亦都是其衰微的原因。

支持軟體

winrar,360壓縮等

相關詞條

熱門詞條

聯絡我們