Gzip

gzip（ジー・ジップ）は、データ圧縮プログラムのひとつ、およびその圧縮データのフォーマットである。「GNU zip」の略であり GNUプロジェクトによって開発・メンテナンスされている。現在、多くのUNIXに標準搭載される。
それ以前に普及していたcompressの圧縮アルゴリズムはLZWだが、LZWは特許を侵害していたのでGNUプロジェクトが代替としてgzipを開発した。
フォーマットは「GZIP File Format Specification」として文書化されている。Windows（及び以前のMS-DOS）文化圏で一般的なZIPとは圧縮方法としてDeflate法が共通である以外は無関係であり、圧縮したファイルのフォーマットに互換性はない。
概要.
gzipは、Lempel-Zivアルゴリズム (LZ77) とハフマン符号を用いており、従来のcompressよりも圧縮率が高いことが特徴である。ただし非常に冗長なファイルでは、compressの方が圧縮率が高いこともある。開発者向けにライブラリとしてzlibが作成され、これにより広く使われる形式となった。gzipによって圧縮されたファイルの拡張子は慣習的にcodice_1を用いる(極初期のgzipはcodice_2を用いたが、packとの混同を避けるため変更された。1993年頃に作成されたcodice_2はgzipファイルの可能性が高い。なお、gzip自体はpack形式の伸長が可能である)。
また、gzipコマンドは標準入力から受け取ったデータを圧縮し、標準出力から取り出すことができる（gunzipは逆の動作）ため、ファイル圧縮に限らず、多様な目的に使用できる。
gzipはzip等と異なりファイルアーカイバとしての機能は持たず、複数ファイルを扱いたい場合はtarファイルをgzip圧縮するという使い方が一般的である。GNU tarにはアーカイブをgzipにフィルタする-zオプションが付いている。これによりアーカイブと圧縮を同時に、あるいは抽出と伸張を同時に行うことができる。gzip圧縮したtarアーカイブは拡張子codice_4またはcodice_5を付ける習慣がある。
HTTP 1.1にはデータを圧縮し転送量を減らす機能があるが、gzipはその際の圧縮フォーマットの一つとしても使われている。また、gzipはその仕様がRFC 1952で記述されている。
初期のうちに登場した1.2.4が安定したバージョンとして長期にわたって利用されたが、4GB超のファイルへの対応が無かったため、種々のバージョンアップが行われた。
今日では、圧縮・伸張の速度より圧縮率の高さを重視する場合には、bzip2やxzを使用することがある。
互換性.
gzipは、zip、compress、compress -H、packで圧縮されたファイルを伸張することができる。zipファイルについては、Deflate法で圧縮されファイルが1つしか含まれていない場合にだけ伸張できる。gzipがインストールされているシステムでは、gunzip、zcat、uncompressコマンドが、gzipコマンドへのハードリンクとして存在していることがある。Linux Standard Baseでも指定コマンドになっている。
拡張子.
codice_1
tarと組み合わせる場合にはcodice_4もしくはcodice_5とする。
2012年8月に発行されたRFC 6713でcodice_9が定義されて、IANAにも正式に登録された。以前はcodice_10やcodice_11などが用いられていた。
tarによるアーカイブがなされている場合は、非公式のcodice_12も用いられる。