CHECKSUM ユーティリティは,OpenVMS のファイルに対して,ファイル,イメージ,オブジェクトのチェックサムを計算します。ファイル・チェックサムの場合は,使用するアルゴリズムによって,ファイルの内部レコード構造に従うかどうかが決まります。イメージまたはオブジェクトのチェックサムの場合は,ユーティリティは常にイメージまたはオブジェクトの構造に従います。
修飾子 /FILE,/IMAGE,および /OBJECT により,どの種類のチェックサムを計算するかが決まります。修飾子ごとに省略時のファイル・タイプ (.DAT,.EXE,または .OBJ) が決まり,表示される情報量も決まります。省略時の設定である /FILE では,ファイルのレコード構造に従った XOR のファイル・チェックサムとなります。省略時のファイル・タイプは .DAT となり,SYS$OUTPUT には情報は何も出力されません。
ファイル・チェックサムの場合,CHECKSUM がどのアルゴリズムを使用して計算を実行するか指定できます。省略時の設定では,Alpha の XOR によるレコード・ベースのアルゴリズムが使用されます。代わりに,CRC アルゴリズムまたは MD5 アルゴリズムを選択することもでき,どちらもファイル全体の内容を使用してチェックサムが計算されます。 CRC アルゴリズムは,ELF-64 ファイルで使用されるアルゴリズムと同じで,PKZIP などの一般的な圧縮ツールでも使用されています (つまり,ZIP ファイル中のファイル・チェックサムは,CHECKSUM ユーティリティによって得られたチェックサムと比較することができます)。 MD5 アルゴリズムは MD5 ダイジェストであり,MD5.EXE や md5sum のような,パブリック・ドメインのツールを使用して取得できます。
イメージのチェックサムは,Alpha プラットフォームと Integrity プラットフォームで異なります。オブジェクトのチェックサムは Integrity プラットフォームだけで利用できます。プラットフォーム修飾子 /ALPHA,/I64,または /VAX を使用して,ネイティブでないイメージまたはオブジェクトのチェックサムを計算することができます。
ELF-64 イメージとオブジェクトのチェックサムでは, CHECKSUM はすべて CRC-32 アルゴリズムを使用します。 CRC は,AUTODIN II,Ethernet,FDDI CRC とも呼ばれ, VAX CRC 命令の一部として文書化されています。イメージまたはオブジェクトのチェックサムは, OpenVMS Integrity のオブジェクト・ファイルとイメージ・ファイルで使用される ELF-64 のデータ構造に従います。これらのチェックサムでは,不変のデータだけが計算で使用されます。タイムスタンプやバージョンといった可変データは,計算から除外されます。これは,異なるコンパイルおよびリンク操作の結果を比較するためです。
Alpha のイメージでは,CHECKSUM は XOR アルゴリズムを使用します。イメージのチェックサムは Alpha および VAX のイメージ構造に従い,不変のデータだけが計算で使用されます。タイムスタンプなどの可変データは計算から除外されます。これは,異なるリンク操作の結果を比較するためです。 Alpha システムと VAX システムでは,オブジェクトの不変データに基づいてオブジェクト・ファイルのチェックサムを計算することはできません。
/ALGORITHM=オプション
/ALGORITHM=XOR (省略時の設定)
ファイル・チェックサムで使用するアルゴリズムを選択します。省略時の設定はレコード内のデータに対する XOR アルゴリズムで, OpenVMS Alpha システムおよび VAX システムの以前の Checksum ユーティリティで使用されていたものと同じです。オプションには以下のものがあります。
- CRC --- ファイル内の全バイトに対する CRC-32 アルゴリズム (レコード構造があっても無視される)。このアルゴリズムは,AUTODIN II,Ethernet,FDDI CRC とも呼ばれる。
- MD5 --- Ronald L. Rivest により公開された MD5 ダイジェスト (RFC 1321) で,ファイル内の全バイトが対象となる (レコード構造があっても無視される)。
- XOR --- ファイルのレコード構造に従った,全データに対する XOR アルゴリズム。
/ALPHA
Alpha タイプのチェックサムを計算します。 I64 システムで /IMAGE 修飾子とともに指定した場合にだけ有効です (つまり,Integrity システム上で Alpha イメージのチェックサムを計算する場合です)。この修飾子は Alpha プラットフォームでは省略時の設定です。
/FILE (省略時の設定)
ファイル・チェックサムを計算します。
省略時の設定では,XOR アルゴリズム (/ALGORITHM=XOR) を使用してチェックサムが計算されます。 /FILE 修飾子では,省略時のファイル・タイプは .DAT となります。省略時の設定では,符号なし 10 進数のチェックサム値が DCL シンボル CHECKSUM$CHECKSUM に格納され,画面には出力されません。 /SHOW=DATA を指定すると,指定した入力ファイルの完全なファイル名と,符号なし 10 進数値のファイル・チェックサムが出力されます。
プラットフォーム修飾子 /ALPHA,/I64,または /VAX は,ファイル・チェックサムの結果には影響しません。しかし,/ALPHA または /VAX を指定すると, /SHOW 修飾子は指定できません。これは,Alpha システムの元の Checksum ユーティリティでは,これらの修飾子が使用できなかったためです。
/I64
I64 タイプのチェックサムを計算します。 Alpha システム上で /IMAGE または /OBJECT とともに使用した場合にだけ有用です (つまり,Alpha システム上で Integrity イメージまたはオブジェクトのチェックサムを計算する場合です)。 /I64 修飾子は,Inntegrity プラットフォームでは省略時の設定です。
/IMAGE
イメージの全バイトのチェックサムを計算します。イメージ・バイトだけをチェックサムに含めるため,イメージ構造に従って計算されます。リンカのバージョンやリンク日付といった可変データは除外されます。
Integrity イメージの場合 (つまり Integrity 形式のファイル), CRC チェックサムが計算され,以下の内容を含む追加情報も SYS$OUTPUT に出力されます。
- 完全なファイル名とイメージ・セグメントに対するチェックサム
- ヘッダのチェックサムとイメージ全体のチェックサム
出力値は 16 進数表記で表示されます。 DCL シンボル CHECKSUM$CHECKSUM にも,結果が 16 進表記で格納されます。
Alpha および VAX イメージでは,XOR チェックサムが計算され,以下に示す追加情報が SYS$OUTPUT に出力されます。
- 完全なファイル名とイメージ・セクションに対するチェックサム
- ヘッダのチェックサムとイメージ全体のチェックサム
チェックサム値は 16 進表記で出力されます。しかし,DCL シンボル CHECKSUM$CHECKSUM に格納される結果は,符号なしの 10 進表記です。
| 注意
Alpha および VAX のイメージでは,DCL シンボル CHECKSUM$CHECKSUM のチェックサム値が 10 進になっており,以前のチェックサム・ツールとの互換性が保たれています。
|
/IMAGE 修飾子を指定すると,省略時のファイル・タイプは .EXE となります。 Integrity イメージでは,この修飾子を指定すると,/SHOW 修飾子に対するキーワード値 HEADERS と SEGMENTS が,特に指定しなくても有効になります。
/OBJECT
すべての Integrity オブジェクト・バイトの CRC チェックサムを計算します。
/OBJECT 修飾子では,ELF-64 オブジェクト構造に従って,オブジェクト・バイトだけがチェックサムの対象となります。言語プロセッサのバージョンや生成日といった可変データは除外されます。
以下の内容を含む追加情報が SYS$OUTPUT に出力されます。
- 指定された入力ファイルの完全なファイル名
- 各オブジェクト・セクション,ヘッダ,オブジェクト全体に対するチェックサム
出力されるチェックサム値は,16 進表記です。 DCL シンボル CHECKSUM$CHECKSUM に格納される結果も,16 進表記です。
/OBJECT 修飾子では,省略時のファイル・タイプは .OBJ となります。また,/SHOW 修飾子に対するキーワード値 HEADERS と SECTIONS が,特に指定しなくても有効になります。
Alpha プラットフォームでは,/I64 修飾子と同時に使用した場合にだけ有効です。
/OUTPUT[=ファイル指定]
/NOOUTPUT
/OUTPUT 修飾子は,コマンドの出力をどこに送るかを制御します。 /NOOUTPUT 修飾子を指定すると,出力は行われません。
/OUTPUT およびファイル指定 (/OUTPUT=ファイル指定) を指定すると,出力は現在の出力装置 SYS$OUTPUT ではなく,指定されたファイルに書き込まれます。この修飾子を指定しないか,ファイルを指定せずに /OUTPUT 修飾子を指定した場合は,出力は SYS$OUTPUT に送られます。
/OUTPUT 修飾子を使用しても,結果 (つまり,DCL シンボル CHECKSUM$CHECKSUM) には影響しません。
/SHOW=(オプション[,...])
どのチェックサムと追加情報を装置に出力するかを制御します。
この修飾子に対するオプションは以下のとおりです。
- ALL --- 該当するオプションをすべて設定するが,以下の制限がある。
- ファイル・チェックサムの場合,DATA キーワードだけが指定可能
- イメージのチェックサムの場合,すべてのキーワードが指定可能
- オブジェクトのチェックサムでは,SEGMENT キーワードは指定不可
- DATA --- 完全なファイル名とファイル・チェックサムを出力する。互換性のため,このオプションは /FILE で使用可能。
- EXCLUDED --- イメージまたはオブジェクトのチェックサムから除外されたデータをフォーマットする。
- HEADERS --- すべての Integrity ヘッダのチェックサムを出力する。このオプションは,/IMAGE と /OBJECT では省略時の設定である。
- SECTIONS --- すべての ELF-64 セクションのチェックサムを出力する。このオプションは,/OBJECT では省略時の設定である。
- SEGMENTS --- すべての ELF-64 プログラム・セグメントのチェックサムを出力する。このオプションは,/IMAGE では省略時の設定である。
/VAX
VAX タイプのチェックサムを計算します。 Integrity または Alpha システムで,/IMAGE を使用し,非 VAX システム上での VAX イメージのチェックサムを計算する場合にだけ有用です。