gzip文件壓縮程序
gzip 是 GNU zip 的縮寫,它是一個 GNU 自由軟件的文件壓縮程序,也經常用來表示 gzip 這種文件格式。軟件的作者是 Jean-loup Gailly 和 Mark Adler。
gzip 的基礎 是DEFLATE,DEFLATE 是 LZ77 與哈夫曼編碼的一個組合體。DEFLATE 最初是作為 LZW 以及其它受專利保護的數據壓縮算法的替代版本而設計的,當時那些專利限制了 compress 以及其它一些流行的歸檔工具的應用。
文件格式說明:
- 10 字節(jié)的頭,包含幻數、版本號以及時間戳
- 可選的擴展頭,如原文件名
- 文件體,包括 DEFLATE 壓縮的數據
- 8 字節(jié)的尾注,包括 CRC-32 校驗和以及未壓縮的原始數據長度
盡管這種文件格式允許多個這樣的數據拼接在一起,在解壓時也把它們當作拼接在一起的數據,但是通常 gzip 僅僅用來壓縮單個文件。多個文件的壓縮歸 檔通常是首先將這些文件合并成一個 tar 文件,然后使用 gzip 進行壓縮,最后生成的 .tar.gz 或者 .tgz 文件,這就是所謂的“tar壓縮包”或者“tarball”。
注意不要將 gzip 和 ZIP 壓縮格式混淆。ZIP 也使用 DEFLATE 算法,而且可移植性更好,并且不需要一個外部的歸檔工具就可以包容多個文件。但是,由于ZIP對每個文件進行單獨 壓縮而沒有利用文件間的冗余信息(固實壓縮),所以 ZIP 的壓縮率要稍遜于 tar 壓縮包。
zlib 是 DEFLATE 算法的實現庫,它的 API 同時支持 gzip 文件格式以及一個簡化的數據流格式。zlib 數據流格式、DEFLATE 以及 gzip 文件格式均已被標準化成了,分別是 RFC 1950、RFC 1951 以及 RFC 1952。
評論
圖片
表情
