Loading article…
| 原作者 | ケン・トンプソン |
|---|---|
| 開発者 | AT&T ベル研究所 |
| 初回リリース | 1971年11月3日 |
| オペレーティング·システム | Unix、Unix ライク、インフェルノ |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | コアユーティリティ: GPLv3+ |
sum は、一部のUnixおよびUnix 系 オペレーティングシステムで使用できるレガシーユーティリティです。このユーティリティは、各引数ファイルの 16 ビットチェックサムと、ディスク上で占めるブロック数を出力します。 [1] 2 つの異なるチェックサムアルゴリズムが使用されています。POSIX はcksumに取って。
sum
概要
sumプログラムは、一般的には歴史的な興味のためにのみ役立ちます。POSIX の一部ではありません。通常、BSD チェックサムと SYSV チェックサムの 2 つのアルゴリズムが利用可能です。どちらも、cksumで使用されるすでに弱い 32 ビット CRC よりも弱いです。[2]
FreeBSDおよびGNU実装のデフォルトのアルゴリズムはBSDチェックサムです。2つのアルゴリズムの切り替えはコマンドラインオプションで行います。[2] [1]
よく使われる 2 つのアルゴリズムは次のとおりです。
BSD の sum、GNU sum の -r、FreeBSD cksum の -o1:
- チェックサムを0に初期化する
- 入力ストリームの各バイトについて
- チェックサムを1ビットずつ16ビット右回転する
- バイトをチェックサムに追加し、その結果にモジュロ2^16を適用して、16ビット以内に収めます。
- 結果は16ビットのチェックサムである
上記のアルゴリズムは、Seventh Edition Unixに掲載されました。
System V sum、GNU sum の -s、FreeBSD cksum の -o2:
- checksum0 = 入力ストリームのすべてのバイトの合計を 2 ^ 32 で割ったもの
- チェックサム1 = チェックサム0 剰余 2 ^ 16 + チェックサム0 / 2 ^ 16
- チェックサム = チェックサム1 剰余 2 ^16 + チェックサム1 / 2 ^ 16
- 結果は、最初の32ビットのプレーンバイトの合計から計算された16ビットのチェックサムである。
構文
sumユーティリティは、次の構文に従って コマンド ラインから呼び出されます。
sum [オプション]... [ファイル]...
可能なオプションパラメータは次のとおりです:
- -r
- BSD チェックサムアルゴリズムを使用し、1K ブロックを使用します ( -sに無効)
- -s、--sysv
- SYSV チェックサムアルゴリズムを使用し、512 バイトのブロックを使用します。
- - ヘルプ
- ヘルプ画面を表示して終了する
- --バージョン
- バージョン情報を出力して終了する
ファイルパラメータが指定されていない場合、または FILE が-の場合、標準入力が入力ファイルとして使用されます。
使用例:
$ echo Hello > テストファイル
$ sum テストファイル
36978 1
GNU sum での -s の使用例:
$ echo Hello > テストファイル
$ sum -s テストファイル
510 1 テストファイル
改行を避けるために標準入力、-r、printf を使用する例:
$ printf こんにちは| sum -r
08401 1
参照
- GNU コアユーティリティ
- UnxUtils のネイティブ Win32 への移植
参考文献
外部リンク
- シングル UNIX ® 仕様、バージョン 2、1997、opengroup.org の sum – チェックサム アルゴリズムは指定されていません
- C.4 ユーティリティ in The Open Group Base Specifications Issue 7, 2018 edition, opengroup.org – 合計が削除されたことを示します
- – バージョン 7 Unixプログラマーズマニュアル
- – GNU coreutilsのマニュアルページ
- – FreeBSD一般コマンドマニュアル– cksum のオプション -o1 および -o2 で合計アルゴリズムを説明しています
- – Linuxユーザーマニュアル– ユーザーコマンド
- – Solaris 11.4ユーザーコマンドリファレンスマニュアル
- Unix ツリー、tuhs.org – 古いバージョンの Unix のソースコード
