From 20aa10b2f2642121633b3c00601f358b030aabc4 Mon Sep 17 00:00:00 2001 From: Akihiro Motoki Date: Mon, 4 Jul 2022 18:15:36 +0900 Subject: [PATCH] bzip2: Update release deliverables --- manual/bzip2/release/man1/bzdiff.1 | 3 +- manual/bzip2/release/man1/bzgrep.1 | 5 ++- manual/bzip2/release/man1/bzip2.1 | 75 ++++++++++++++++++-------------------- manual/bzip2/release/man1/bzmore.1 | 8 ++-- 4 files changed, 46 insertions(+), 45 deletions(-) diff --git a/manual/bzip2/release/man1/bzdiff.1 b/manual/bzip2/release/man1/bzdiff.1 index c0a8b8ef..adcd46d3 100644 --- a/manual/bzip2/release/man1/bzdiff.1 +++ b/manual/bzip2/release/man1/bzdiff.1 @@ -8,7 +8,8 @@ .\" .\"******************************************************************* .\" -.\" Japanese Version Copyright (c) 2003 Yuichi SATO +.\" Japanese Version Copyright (c) 2003, 2022 +.\" Yuichi SATO and Akihiro Motoki .\" all rights reserved. .\" Translated 2003-04-29, Yuichi SATO .\" Translated for 1.0.8, 2021-11-24 diff --git a/manual/bzip2/release/man1/bzgrep.1 b/manual/bzip2/release/man1/bzgrep.1 index b27f0003..fd2eb228 100644 --- a/manual/bzip2/release/man1/bzgrep.1 +++ b/manual/bzip2/release/man1/bzgrep.1 @@ -8,7 +8,8 @@ .\" .\"******************************************************************* .\" -.\" Japanese Version Copyright (c) 2003 Yuichi SATO +.\" Japanese Version Copyright (c) 2003, 2022 +.\" Yuichi SATO and Akihiro Motoki .\" all rights reserved. .\" Translated 2003-05-01, Yuichi SATO .\" Translated for 1.0.8, 2021-11-24 @@ -26,7 +27,7 @@ bzgrep, bzfgrep, bzegrep \- bzip2 圧縮されている可能性のあるファ \fBbzfgrep\fP [ fgrep_options ] \fB[\ \-e\ ]\fP\fI pattern\fP \fIfilename\fP.\|.\|. .SH 説明 \fIbzgrep\fP は、 bzip2 で圧縮されたファイルに対して \fIgrep\fP を呼び出すために使われます。 指定されたすべてのオプションは -\fIgrep\fP に直接渡されます。 ファイルが指定されなかった場合は、標準入力を (必要であれば伸長した後で) \fIgrep\fP に渡ます。 +\fIgrep\fP に直接渡されます。 ファイルが指定されなかった場合は、標準入力を (必要であれば伸長した後で) \fIgrep\fP に渡します。 それ以外の場合は、指定されたファイルを (必要であれば伸長した後で) \fIgrep\fP に渡します。 .PP \fIbzgrep\fP が \fIbzegrep\fP や \fIbzfgrep\fP として呼び出された場合、 それぞれ \fIegrep\fP と \fIfgrep\fP が diff --git a/manual/bzip2/release/man1/bzip2.1 b/manual/bzip2/release/man1/bzip2.1 index a3e7d98c..2a48d240 100644 --- a/manual/bzip2/release/man1/bzip2.1 +++ b/manual/bzip2/release/man1/bzip2.1 @@ -5,7 +5,8 @@ .\" .\"******************************************************************* .\" -.\" Japanese Version Copyright (c) 2000-2003 Yuichi SATO +.\" Japanese Version Copyright (c) 2000-2003, 2012, 2022 +.\" Yuichi SATO and Akihiro Motoki .\" all rights reserved. .\" Translated 2000-12-20, Yuichi SATO .\" Updated & Modified 2003-04-29, Yuichi SATO @@ -52,7 +53,7 @@ bzip2recover \- 破損した bzip2 ファイルからデータを復元する は圧縮された出力を端末には書き出しません。 なぜなら、この出力は全く分かりにくくて、無駄なものだからです。 \fIbunzip2\fP (または \fIbzip2 \-d\fP) は、指定された全てのファイルを伸長します。 \fIbzip2\fP -で圧縮されていないファイルは検知され、無視されます。 さらに警告が出されます。 \fIbzip2\fP +で圧縮されていないファイルは検知され、無視されます。 さらに警告が出力されます。 \fIbzip2\fP は、以下のようにして圧縮ファイルの名前から伸長後のファイル名を推測します。 filename.bz2 は filename になります。 @@ -62,7 +63,7 @@ bzip2recover \- 破損した bzip2 ファイルからデータを復元する anyothername は anyothername.out になります。 ファイル名が \fI.bz2\fP, \fI.bz\fP, \fI.tbz2\fP, \fI.tbz\fP のような認識される拡張子のいずれかで終っていない場合、 -\fIbzip2\fP は元のファイル名が推測できないという警告を出し、 \fI.out\fP を付加した名前を元のファイル名として使います。 +\fIbzip2\fP は元のファイル名が推測できないという警告を出し、 \fI.out\fP を付加した名前を元のファイル名として使用します。 圧縮の場合と同様に、 ファイル名が指定されない場合は、 標準入力を伸長して標準出力に書き出します。 @@ -167,13 +168,13 @@ bzip2recover \- 破損した bzip2 ファイルからデータを復元する 伸長: 100k + ( 4 x ブロックサイズ ), または 100k + ( 2.5 x ブロックサイズ ) -大きいブロックサイズにすると、境界の返り値をすぐに減少させます。 大部分の圧縮は、最初の 200kB から 300kB のブロックサイズでつくられます。 -\fIbzip2\fP をメモリの少ない計算機で使う場合は、 このことを覚えておく価値があります。 さらに、伸長に必要なメモリは、 -圧縮時のブロックサイズの選択で決まる点を知っておくことも重要です。 +ブロックサイズを大きくした場合に得られる効果は、 ブロックサイズが大きくなるにつれて急激に減少していきます。 大部分の圧縮は、最初の 200kB から +300kB のブロックサイズで作られます。 \fIbzip2\fP をメモリの少ない計算機で使う場合は、 このことを覚えておく価値があります。 +また、伸長に必要なメモリは、 圧縮時のブロックサイズの選択で決まる点を知っておくことも重要です。 -デフォルトの 900kB ブロックサイズで圧縮されたファイルに対して、 \fIbunzip2\fP は伸長時に約 3700kB のメモリを必要とします。 -4MB のメモリの計算機でどんなファイルでも伸長できるようにするため、 \fIbunzip2\fP このメモリ量の約半分、約 2300kB -を使って伸長を行うオプションがありまぅ。 伸長速度も半分になるので、このオプションは必要な場合にのみ使うべきです。 関連するフラグとして \-s +デフォルトの 900kB ブロックサイズで圧縮されたファイルの場合、 \fIbunzip2\fP は伸長時に約 3700kB のメモリを必要とします。 4MB +のメモリの計算機でどんなファイルでも伸長できるようにするため、 \fIbunzip2\fP には、このメモリ量の約半分、約 2300kB +を使って伸長を行うオプションがあります。 伸長速度も半分になるので、このオプションは必要な場合にのみ使うべきです。 関連するフラグとして \-s があります。 一般的には、メモリの制限が許す限り一番大きなブロックサイズを使ってください。 こうすることで圧縮率が最も良くなります。 @@ -184,10 +185,11 @@ bzip2recover \- 破損した bzip2 ファイルからデータを復元する のファイルを \-9 フラグで圧縮する場合、 7600kB のメモリが確保されますが、400k + 20000 * 8 = 560kB しか使用しません。 同様に、伸長時には 3700kB が確保されますが、 100k + 20000 * 4 = 180 kB しか使用しません。 -異なるブロックサイズに対しての最大メモリ使用量をまとめたテーブルを以下に示します。 カルガリー大学のテキスト圧縮コーパス (14 個のファイル、合計 -3,141,622 バイト) を 圧縮したサイズも記録されています。 行毎に比べると、ブロックサイズによって圧縮が -どのように変わるかを知ることができます。 この数字は、大きなファイルに対して大きなブロックサイズを使うことの利点を、 控え目にしか述べていません。 -なぜなら、このコーパスが小さめのファイルで占められているためだからです。 +様々なブロックサイズに対しての最大メモリ使用量をまとめたテーブルを以下に示します。 カルガリー大学のテキスト圧縮コーパス (14 個のファイル、合計 +3,141,622 バイト) を圧縮した合計サイズも記載しています。 +この合計サイズの列を見ると、ブロックサイズによって圧縮がどのように変わるかを知ることができます。 +この数字は、大きなファイルに対して大きなブロックサイズを使うことの利点を、 控え目にしか示していません。 +なぜなら、このコーパスは小さめのファイルが多いからです。 圧縮時の 伸長時の \-s 伸長時の コーパスの フラグ 使用量 使用量 使用量 サイズ @@ -209,52 +211,47 @@ bzip2recover \- 破損した bzip2 ファイルからデータを復元する 各ブロックの圧縮された表現は、48 ビットのパターンで区切られます。 このパターンにより、妥当な確実性でブロック境界を見つけることができます。 各ブロックにはそれぞれの 32 ビット CRC があるので、 破損したブロックは破損していないものと区別できます。 -\fIbzip2recover\fP は簡単なプログラムで、.bz2 ファイルの各ブロックを検索し、 それ独自の .bz2 -ファイルに各ブロックを書き出します。 ユーザーは、 \fIbzip2\fP \-t を使って得られたファイルの完全性をテストし、 -破損していないファイルとして伸長できます。 +\fIbzip2recover\fP は簡単なプログラムで、.bz2 ファイルのブロックを探索し、 各ブロックをそれぞれ .bz2 +ファイルとして書き出します。 ユーザーは、 得られたファイルの完全性を \fIbzip2\fP \-t を使ってテストし、 +破損していないファイルを伸長できます。 \fIbzip2recover\fP は、破損したファイルの名前を唯一の引数として受け取り、 "rec00001file.bz2", "rec00002file.bz2", ..., という、抽出されたブロックが入ったファイルをたくさん書き出します。 出力ファイルの名前は、 その後の処理でワイルドカードが使えるように設計されています \-\- 例えば、 "bzip2 \-dc rec*file.bz2 > recovered_data" \-\- とすれば、ファイルを正しい順番で処理することができます。 -ほとんどの場合、 \fIbzip2recover\fP が使われるのは、大きな .bz2 ファイルに対してです。 大きな .bz2 +\fIbzip2recover\fP が使われるのは、大きな .bz2 ファイルに対してがほとんどです。 大きな .bz2 ファイルにはブロックが多く含まれているからです。 1 ブロックで構成されるファイルが破損した場合に使っても明らかに無駄です。 破損したブロックは復元できないからです。 メディアエラーや転送エラーによる潜在的なデータ損失を少なくしたいなら、 小さいブロックサイズで圧縮することを考えた方が良いでしょう。 .SH 性能に関する注意 圧縮のソートフェーズでは、ファイル内の同一の文字列を集めます。 そのため、"aabaabaabaab ..." のように同じシンボルが (数百回) -長く繰り返されているファイルは、 通常のものより圧縮が遅くなります。 バージョン 0.9.5 -以降ではそれ以前のバージョンに比べると、この点が良くなっています。 圧縮時間の最も悪い場合と平均の場合の比率は、10:1 の範囲です。 +長く繰り返されているファイルは、 通常のものより圧縮が遅くなります。 バージョン 0.9.5 以降では、 +それ以前のバージョンに比べると、この点がかなり良くなっています。 圧縮時間の最も悪い場合と平均の場合の比率は、10:1 の範囲です。 以前のバージョンでは、この比率は 100:1 でした。 もし見てみたいなら、\-vvvv オプションを使って、 詳細な圧縮過程の進行を見ることができます。 -伸長は、この現象に影響されません。 +伸長速度は、この現象に影響されません。 -\fIbzip2\fP は通常、操作のために数メガバイトのメモリを確保し、 とてもランダムな方法で確保されたメモリを変更します。 -これは、「圧縮・伸長の両方の性能は、 キャッシュにない場合に計算機が対応する速度に大きく依存する」 ということを意味します。 -そのため、キャッシュにない割合を減らすためのちょっとしたコードの変更が、 非常に大きな性能の向上をもたらしたのを見たことがあります。 \fIbzip2\fP +\fIbzip2\fP は通常、操作のために数メガバイトのメモリを確保し、 確保されたメモリ全体にわたってかなりランダムなアクセスで変更を行います。 +これは、「圧縮・伸長の両方の性能は、 キャッシュミスが起こった場合に計算機が対応する速度に大きく依存する」 ということを意味します。 +そのため、キャッシュミスの割合を減らすためのちょっとしたコードの変更が、 非常に大きな性能の向上をもたらしたのを見たことがあります。 \fIbzip2\fP は、非常に大きなキャッシュを持った計算機で、 最も良い性能を発揮すると考えられます。 .SH 警告 I/O エラーのメッセージは、それほど役立たちません。 \fIbzip2\fP は、できるだけ I/O エラーを検知してきれいに終了しようとします。 -しかし、何が問題なのかの詳細は、時としてかなり誤解しやすいものに見えます。 +しかし、何が問題なのかの詳細は、時としてかなり誤解を招きやすいものになることもあります。 -この man ページは、バージョン 1.0.8 の \fIbzip2\fP について述べています。 -このバージョンで生成された圧縮データは、 以前のパブリックリリースである -バージョン 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 とそれ以降に対して、 -前方互換と後方互換があります。 ただし、次のような例外があります: 0.9.0 以降では -複数のファイルを連結して圧縮したファイルを伸長できますが、 0.1pl2 では -伸長できず、ストリームの最初にあるファイルを伸長した後に停止します。 +この man ページは、バージョン 1.0.8 の \fIbzip2\fP について述べています。 このバージョンで生成された圧縮データは、 +以前のパブリックリリースであるバージョン 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 とそれ以降に対して、 +前方互換性と後方互換性があります。 ただし、次のような例外があります: 0.9.0 以降では複数のファイルを連結して圧縮したファイルを伸長できますが、 +0.1pl2 では伸長できず、ストリームの最初にあるファイルを伸長した後に停止します。 -1.0.2 より前の \fIbzip2recover\fP は、圧縮ファイルでのビット位置を表現するために、 -32 ビット整数を使っていました。そのため 512MB 以上の圧縮ファイルを扱えませんでした。 -バージョン 1.0.2 以降では、 64 ビット整数をサポート可能なプラットフォーム -(GNU がサポートするターゲットと Windows) では、 64 ビット整数を使用しています。 -この制限の有無について bzip2recover がビルドされているかを確認するには、 -bzip2recover を引数なしで実行してください。 -少なくとも MaybeUInt64 を符号なし 64 ビット整数型に設定して再コンパイル -することにより、 制限のないバージョンをビルドすることができます。 +1.0.2 より前の \fIbzip2recover\fP は、圧縮ファイルでのビット位置を表現するために、 32 ビット整数を使っていました。そのため +512MB 以上の圧縮ファイルを扱えませんでした。 バージョン 1.0.2 以降では、 64 ビット整数をサポート可能なプラットフォーム (GNU +がサポートするターゲットと Windows) では、 64 ビット整数を使用します。 この制限の有無について bzip2recover +がビルドされているかを確認するには、 bzip2recover を引数なしで実行してください。 少なくとも MaybeUInt64 を符号なし 64 +ビット整数型に設定して再コンパイルすることにより、 制限のないバージョンをビルドすることができます。 @@ -266,7 +263,7 @@ https://sourceware.org/bzip2/ \fIbzip2\fP に含まれているアイデアは、(少なくとも) 以下の方々のおかげです: Michael Burrows, David Wheeler (ブロックソート変換), David Wheeler (Huffman 符号化についても), -Peter Fenwick (オリジナルの \fIbzip\fP における構造化符号化モデル、そして多くの改良), +Peter Fenwick (オリジナルの \fIbzip\fP における構造符号化モデル、そして多くの改良), Alistair Moffat, Radford Neal, Ian Witten (オリジナルの \fIbzip\fP における算術符号化)。 私は、彼らの助け、サポート、助言に対して感謝しています。 ドキュメントのソースの場所については、ソース配布の中のマニュアルを参照してください。 diff --git a/manual/bzip2/release/man1/bzmore.1 b/manual/bzip2/release/man1/bzmore.1 index 1d279a45..c4915bfb 100644 --- a/manual/bzip2/release/man1/bzmore.1 +++ b/manual/bzip2/release/man1/bzmore.1 @@ -6,7 +6,8 @@ .\" .\"******************************************************************* .\" -.\" Japanese Version Copyright (c) 2003 Yuichi SATO +.\" Japanese Version Copyright (c) 2003, 2022 +.\" Yuichi SATO and Akihiro Motoki .\" all rights reserved. .\" Translated 2003-05-01, Yuichi SATO .\" Translated for 1.0.8, 2021-11-24 @@ -21,7 +22,8 @@ bzmore, bzless \- bzip2 圧縮されたテキストを CRT で見るためのフ .br \fBbzless\fP [ name ... ] .SH 注意 -以下の説明では、 \fIbzless\fP と \fIless\fP は、 \fIbzmore\fP と \fImore\fP に置き換えて使用することができます。 +以下の説明において、 \fIbzless\fP と \fIless\fP は、 \fIbzmore\fP と \fImore\fP と等価で、 +そのまま読み替えることができます。 .SH 説明 \fIbzmore\fP は、圧縮されたテキストファイルや通常のテキストファイルを ソフトコピー端末上で一度に全画面で閲覧するためのフィルタです。 \fIbzmore\fP は \fIbzip2\fP で圧縮されたファイルに対して動作します (圧縮されていないファイルに対しても動作します)。 @@ -45,7 +47,7 @@ bzmore, bzless \- bzip2 圧縮されたテキストを CRT で見るためのフ .PP .IP \fIi\|\fPz \fIi\|\fP が与えられた場合に新しいウインドウサイズになります、という以外は スペースを打った場合と同じです。 -現在のファイルの終りでは、ウインドウサイズがデフォルトの値に 戻ることに注意してください。 +現在のファイルの終わりでは、ウインドウサイズがデフォルトの値に戻ることに注意してください。 .PP .IP \fIi\|\fPs \fIi\|\fP 行分スキップし、画面いっぱいに表示します。 -- 2.11.0