歴史
ファイルアーカイバ
ファイルアーカイバは、複数のファイルを1つのアーカイブファイルまたは一連のアーカイブファイルにまとめて、簡単に輸送または保管できるようにするコンピュータープログラムです。ファイルアーカイバは、アーカイブのサイズを削減するために、アーカイブ形式でロスレスデータ圧縮を使用する場合があります。
基本的なアーカイバは、ファイルのリストを取得し、その内容をアーカイブに順番に連結するだけです。適切な再構築が可能な場合、アーカイブファイルには、少なくとも元のファイルの名前と長さのメタデータを保存する必要があります。より高度なアーカイバは、元のタイムスタンプ、ファイル属性、アクセス制御リストなどの追加のメタデータを保存します。
アーカイブファイルを作成するプロセスは、 アーカイブまたはパッキングと呼ばれます 。アーカイブから元のファイルを再構築することを、アーカイブ解除 、 解凍、または抽出と呼びます。
歴史
初期のアーカイバは、同じ名前のCTSSコマンドから派生したMulticsコマンドアーカイブであり、これは基本的なアーカイバであり、圧縮を実行しませんでした。 Multicsにはtaと省略された「tape_archiver」コマンドもありました。これはおそらくunixのtarの先駆けでした。
Unixアーカイバー
Unixツールar 、 tar 、 cpioは、アーカイブではなく圧縮として機能します。 Unixツールのユーザーは、gzip、bzip2、xzなどの追加の圧縮ツールを使用して、圧縮後にアーカイブファイルを圧縮するか、アーカイブファイルを解凍する前に圧縮を解除します。ファイル名拡張子は、このプロセスの各ステップで連続して追加されます。たとえば、ファイルのコレクションをtarでアーカイブしてから、生成されたアーカイブファイルをgzipで圧縮すると、拡張子が.tar.gzのファイルが作成されます。
このアプローチには2つの目標があります。
- 1つのツールですべてを達成しようとするのではなく、各プログラムが完全に1つのタスクを達成するというUnixの哲学に従います。圧縮技術の進歩に伴い、ユーザーはアーカイバを変更したり放棄したりすることなく、異なる圧縮プログラムを使用できます。
- アーカイブは固体圧縮を使用します。ファイルが結合されると、コンプレッサーは複数のアーカイブされたファイルの冗長性を活用し、各ファイルを個別に圧縮するコンプレッサーよりも優れた圧縮を実現できます。
ただし、このアプローチには欠点もあります。
- 1つのファイルを抽出または変更することは困難です。 1つのファイルを抽出するには、アーカイブ全体を解凍する必要があり、これには時間とスペースがかかります。 1つを変更すると、ファイルをアーカイブに戻し、アーカイブを再度圧縮する必要があります。この操作には、追加の時間とディスク容量が必要です。
- アーカイブは損傷を受けやすくなります。複数のファイルの共有データを保持している領域が破損している場合、それらのファイルはすべて失われます。
- 圧縮ウィンドウが個々のファイルのサイズより大きくない限り、ファイル間の冗長性を利用することは不可能です。たとえば、gzipはDEFLATEを使用します。DEFLATEは通常32768バイトのウィンドウで動作しますが、bzip2は約27倍のBurrows-Wheeler変換を使用します。 xzのデフォルトは8 MiBですが、かなり大きなウィンドウをサポートしています。
Windowsアーカイバー
Microsoft Windowsの組み込みアーカイバと、WinRARや7-zipなどのサードパーティのアーカイブソフトウェアは、多くの場合、グラフィカルユーザーインターフェイスを使用します。また、オプションのコマンドラインインターフェイスも提供しますが、Windows自体にはありません。 Windowsアーカイバは、アーカイブと圧縮の両方を実行します。製品に応じて、ソリッド圧縮が提供される場合と提供されない場合があります。Windows自体はサポートしていません。 WinRARと7-zipは、オンまたはオフにできるオプションとして提供しています。