知識ベース

ファイルアーカイバ

ファイルアーカイバは、複数のファイルを1つのアーカイブファイルまたは一連のアーカイブファイルにまとめて、簡単に輸送または保管できるようにするコンピュータープログラムです。ファイルアーカイバは、アーカイブのサイズを削減するために、アーカイブ形式でロスレスデータ圧縮を使用する場合があります。

基本的なアーカイバは、ファイルのリストを取得し、その内容をアーカイブに順番に連結するだけです。適切な再構築が可能な場合、アーカイブファイルには、少なくとも元のファイルの名前と長さのメタデータを保存する必要があります。より高度なアーカイバは、元のタイムスタンプ、ファイル属性、アクセス制御リストなどの追加のメタデータを保存します。

アーカイブファイルを作成するプロセスは、 アーカイブまたはパッキングと呼ばれます 。アーカイブから元のファイルを再構築することを、アーカイブ解除解凍、または抽出呼びます。

歴史

初期のアーカイバは、同じ名前のCTSSコマンドから派生したMulticsコマンドアーカイブであり、これは基本的なアーカイバであり、圧縮を実行しませんでした。 Multicsにはtaと省略された「tape_archiver」コマンドもありました。これはおそらくunixのtarの先駆けでした。

Unixアーカイバー

Unixツールartarcpioは、アーカイブではなく圧縮として機能します。 Unixツールのユーザーは、gzip、bzip2、xzなどの追加の圧縮ツールを使用して、圧縮後にアーカイブファイルを圧縮するか、アーカイブファイルを解凍する前に圧縮を解除します。ファイル名拡張子は、このプロセスの各ステップで連続して追加されます。たとえば、ファイルのコレクションをtarでアーカイブしてから、生成されたアーカイブファイルをgzipで圧縮すると、拡張子が.tar.gzのファイルが作成されます。

このアプローチには2つの目標があります。

  1. 1つのツールですべてを達成しようとするのではなく、各プログラムが完全に1つのタスクを達成するというUnixの哲学に従います。圧縮技術の進歩に伴い、ユーザーはアーカイバを変更したり放棄したりすることなく、異なる圧縮プログラムを使用できます。
  2. アーカイブは固体圧縮を使用します。ファイルが結合されると、コンプレッサーは複数のアーカイブされたファイルの冗長性を活用し、各ファイルを個別に圧縮するコンプレッサーよりも優れた圧縮を実現できます。

ただし、このアプローチには欠点もあります。

  1. 1つのファイルを抽出または変更することは困難です。 1つのファイルを抽出するには、アーカイブ全体を解凍する必要があり、これには時間とスペースがかかります。 1つを変更すると、ファイルをアーカイブに戻し、アーカイブを再度圧縮する必要があります。この操作には、追加の時間とディスク容量が必要です。
  2. アーカイブは損傷を受けやすくなります。複数のファイルの共有データを保持している領域が破損している場合、それらのファイルはすべて失われます。
  3. 圧縮ウィンドウが個々のファイルのサイズより大きくない限り、ファイル間の冗長性を利用することは不可能です。たとえば、gzipはDEFLATEを使用します。DEFLATEは通常32768バイトのウィンドウで動作しますが、bzip2は約27倍のBurrows-Wheeler変換を使用します。 xzのデフォルトは8 MiBですが、かなり大きなウィンドウをサポートしています。

Windowsアーカイバー

Microsoft Windowsの組み込みアーカイバと、WinRARや7-zipなどのサードパーティのアーカイブソフトウェアは、多くの場合、グラフィカルユーザーインターフェイスを使用します。また、オプションのコマンドラインインターフェイスも提供しますが、Windows自体にはありません。 Windowsアーカイバは、アーカイブと圧縮の両方を実行します。製品に応じて、ソリッド圧縮が提供される場合と提供されない場合があります。Windows自体はサポートしていません。 WinRARと7-zipは、オンまたはオフにできるオプションとして提供しています。