cksum(1) FreeBSD 一般コマンドマニュアル

cksum

前のページ 上に戻る 次のページ

cksum


     sum [file ...]


解説

     cksum ユーティリティは、各入力ファイルに対して、空白で区切られた 3 つの
     フィールドを標準出力に出力します。これら 3 フィールドはそれぞれ、チェック
     サム CRC 、ファイル中のオクテット数、そしてファイル名です。ファイルが一つ
     も指定されない場合は標準入力が用いられ、ファイル名は表示されません。

     sum ユーティリティは cksum ユーティリティと同じですが、以降で解説するデ
     フォルトで歴史的アルゴリズム 1 を使用する点が異なります。互換性のためだけ
     に提供されています。

     オプションは以下の通りです:

     -o      デフォルトの(より優れた)アルゴリズムに代えて、歴史的なアルゴリズ
             ムを用います。

             アルゴリズム 1 は sum(1) のアルゴリズムとして歴史的な BSD システ
             ムにおいて、また、 -r オプション付きで用いる場合の sum(1) アルゴ
             リズムとして歴史的な AT&T System V UNIX システムにおいて用いられ
             てきたものです。これは加算のたびに右ローテーションを行う 16 ビッ
             トチェックサムであり、算出あふれは無視されます。

             アルゴリズム 2 はデフォルトの sum(1) アルゴリズムとして歴史的な
             AT&T System V UNIX システムで用いられてきたものです。これは 32
             ビットのチェックサムであり、以下のように定義されます:

                   s = sum of all bytes;
                   r = s % 2^16 + (s % 2^32) / 2^16;
                   cksum = (r % 2^16) + r / 2^16;

             アルゴリズム 3 は一般に `32bit CRC' アルゴリズムと呼ばれているも
             のです。これは 32-bit チェックサムです。

             アルゴリズム 1, 2 のいずれも、デフォルトアルゴリズムと同じフィー
             ルドを標準出力に書き出します。ただし、ファイルサイズはバイト単位
             ではなくブロック単位となります。歴史的理由から、アルゴリズム 1 で
             はブロックサイズは 1024、アルゴリズム 2 では 512 となっています。
             ブロックに満たない部分は切り上げられます。

     デフォルトで用いられる CRC は、ネットワークの規格 ISO/IEC 8802-3:1989 に
     おける CRC エラーチェックに用いられる多項式に基づいています。 CRC チェッ
     クサムエンコーディングは、次の生成多項式で定義されます:

           G(x) = x^32 + x^26 + x^23 + x^22 + x^16 + x^12 +
                x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1

     数学的には、与えられたファイルに対応する CRC 値は次の手順で定義されます。

           評価される n ビットは、2 を法とする n-1 次多項式 M(x) の係数とみな
           されます。これらの n ビットはファイルから得られますが、ファイルの最
           初のオクテットの最上位ビットを最上位、最後のオクテットの最下位ビッ

     >0 で終了します。


関連項目

     md5(1)

     デフォルトの計算方法は、次の ACM 論文で疑似コードを用いて記述されているも
     のと等価です。

     Dilip V. Sarwate, "Computation of Cyclic Redundancy Checks Via Table
     Lookup", Communications of the ACM, August 1988.


規格

     cksum ユーティリティは IEEE Std 1003.2-1992 (``POSIX.2'') を満していると
     考えられています。


歴史

     cksum ユーティリティは 4.4BSD から登場しました。

FreeBSD 4.4                     April 28, 1995                     FreeBSD 4.4

ABELNET VPSサービス