Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tar(5) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

tar(1)

TAR(5)  —  NEWS-OS Programmer’s Manual

名称

tar − テープアーカイブファイルのフォーマット

解説

tar (テープアーカイブコマンド)は、複数のファイルを、持ち運びに 便利な媒体内の 1つのファイルにまとめてダンプします。

tar テープすなわちファイルは、一連のブロックです。 それぞれのブロックは TBLOCK のサイズになります。 テープ上のファイルは、 そのファイルを説明するヘッダブロックによって表現されます。 ヘッダブロックの後には、そのファイルの内容を表すゼロ個あるいはそれ以上 のブロックが続きます。 テープの終わりには、行末の標識として 2進数のゼロが 2つのブロックに入れられます。

それぞれのブロックは、物理的な I/O 動作によってグループ分けされます。 n 個のブロックから成るグループは、1回のシステムコールで書き込まれます (ここで、 n は、 tar(1) コマンド行における b キー文字によって設定されます。デフォルトのブロック数は 20 個です)。 9トラックのテープにおいては、 この書き込みの結果が 1つのテープ記録になります。 最後のグループは常にフルサイズで書き込まれるため、 2つのゼロブロックの後に続くブロックにはランダムデータが含まれます。 最初の読み取りの際には、指定したグループサイズあるいは デフォルトグループサイズが使用されますが、 その読み取りがテープブロックのフルサイズよりも低い値を返した場合、 それ以降の読み取りの際には、その小さくなったブロックサイズが 使用されます。

ヘッダブロックは次のようになります。

#define TBLOCK  512
#define NAMSIZ   100
 union hblock {
char dummy[TBLOCK];
struct header {
char name[NAMSIZ];
char mode[8];
char uid[8];
char gid[8];
char size[12];
char mtime[12];
char chksum[8];
char linkflag;
char linkname[NAMSIZ];
} dbuf;
};

name (名称)はナル文字で終了する文字列です。 他のフィールドは 8進数の ASCII コードで、残りはゼロが詰められます。 size (サイズ)および mtime フィールドを除いて、(幅 w の)各フィールドは、w から 2を引いた 個数の数字、スペース、ナル文字を含みます。 size および mitime フィールドは最後にナル文字を含みません。また、 chksum フィールドでは、ナル文字のあとにスペースが続きます。 name は tar コマンド行上で指定されたファイルの名称です。 ダンプされるファイルは、 コマンド行で指定されたディレクトリ内に存在していたため、 プレフィックスとしてそのディレクトリ名を、サフィックスとして /filename を持ちます。 mode (モード)は、ファイルモードであり、最上位ビットがマスクされています。

uid および gid は、そのファイルを所有するユーザおよびグループ番号です。 size (サイズ)はそのファイルのバイト単位のサイズです。 このフィールドがゼロに設定されている場合には、 リンクおよびシンボルリンクがダンプされます。 mtime は、ファイルがダンプされた時点におけるファイルの日時です。 chksum は、ヘッダブロック内のすべてのバイトの合計を表す ASCII コード の 8進値です。チェックサムが計算される際には、 chksum フィールドは、その値がすべて空白であるとして扱われます。 linkflag は、ファイルが “通常の”ファイルあるいは特殊ファイルである場合 には NULL になり、ハードリンクである場合には ASCII コード‘1’に、 シンボルリンクである場合には ASCII コード‘2’になります。 リンク先の名称がある場合、それは linkname 内に収められ、うしろにナル文字が付けられます。 ヘッダの未使用フィールドは 2進数の 0 になります (これらもチェックサムに含まれます)。

特定の i ノード番号が最初にダンプされる時には、 レギュラーファイルとしてダンプされます。 2回目以降には、リンクとしてダンプされます。 リンクエントリを検索しても、リンク先のファイルが見つからなかった場合には、 エラーメッセージが表示されます 。その場合、テープを手動で走査し直して、リンク先のファイル を復活させる必要があります。

ヘッダの符号化方式は、マシン間で移植できるように設計されています。

関連事項

tar(1)

バグ

NAMSIZ よりも長い名称あるいはリンク名を指定すると、 エラーが発生し、ダンプは行えません。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026