diff --git a/ja/handbook/anoncvs.sgml b/ja/handbook/anoncvs.sgml deleted file mode 100644 index 819758560b..0000000000 --- a/ja/handbook/anoncvs.sgml +++ /dev/null @@ -1,170 +0,0 @@ - - - - -Anonymous CVS - -

原作: &a.jkh; - -

訳: &a.sugimura;.19 July 1998. - -導入 - -

Anonymous CVS (もしくは, anoncvs として知られています) は -離れたところにある CVS リポジトリと同期を取るために FreeBSD に付属している -CVS ユーティリティに含まれている機能です. 他にもありますが, それは FreeBSD の -ユーザが, 特別な権限なしに FreeBSD プロジェクトの公式な anoncvs サーバに -読み取り専用で CVS の操作をすることができるようにするためのものです. -それを使うには, 単に CVSROOT 環境変数を設定して適切な anoncvs サーバを -指定し, そして cvs(1) コマンドを使って手元にあるリポジトリのように -アクセスするだけです. - -

anoncvs のサービスは本質的に -同じ機能ではないかということも言われていますが, ユーザが同期を取る方法を -選ぶときに影響を与えるようなさまざまなトレードオフが存在します. -要約して言えば, CVSup はネットワーク資源の使い方においては -非常に効率がよく, またはるかに技術的に洗練されたものですが, -相当な手間がかかります. CVSup を使うには, 特別なクライアントをまず -インストールして設定しなくては 1bit も取ってくることができず, またそのとき -CVSup では collections と呼んでいるかなり大きなかたまり -だけからしか取ってこれません. - -

それに対して anoncvs では, CVS モジュールの名前を指定することで -特定のプログラムの (lsgrep のような) 個々のファイルから -調べることができます. もちろん, anoncvs は CVS リポジトリの -読み取り専用の操作に対してのみ適しているので, もしあなたが -FreeBSD プロジェクトのものと共有されたなにかローカルなリポジトリを作って -そこでの開発を行おうというときには, CVSup だけが -唯一の手段となってしまいます. - -Anonymous CVS を使う - -

cvs(1) を設定して Anonymous CVS リポジトリを使うには -単に CVSROOT 環境変数を設定して FreeBSD プロジェクトの -anoncvs サーバを指定するだけのことです. -この文書を書いているときには, 次のサーバが利用できるようになっています. - - - USA: anoncvs@anoncvs.freebsd.org:/cvs - - -

CVS はかつて存在した (もしくは, 時にはこれから存在するものも :) -ほとんどどんなバージョンの FreeBSD のソースを "check out" することができますが, -あなたは cvs(1) の リビジョン (-r) のオプションや -FreeBSD プロジェクトのリポジトリの中でそれをどのように指定したらいいものか -ということをよく知っておく必要があります. - -

タグには 2 種類あって, リビジョンタグとブランチタグがあります. -リビジョンタグは特定の改訂版を指しており, それはいつも同じものを意味しています. -一方ブランチタグは, 指定されたときの指定された開発の流れにおける -最も新しい改訂版を示しています. ブランチタグは特定の改訂版を指していないために, -その意味はきょうと明日では違うものになっているでしょう. - -

ユーザが興味を持つであろうブランチタグの一覧です. - - - - -

ユーザが興味を持つであろうリビジョンタグの一覧です. - - - - -

ブランチタグを指定したときには, 普通はその開発の流れにおける最も新しい -バージョンのファイルを受け取ることができます. もし以前のバージョンのものが -欲しいときには, 日付を -D date オプションを使って指定すればよいです. - - - -

本当はなにかする前には cvs(1) のマニュアルページの全体をちゃんと -読んでからのほうがいいのですが, Anonymous CVS の使い方の本質的なところを -簡単に例を挙げて説明します. - -

-current (ls(1)) をちょっと確認してから消してみます. - - -% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs -% cvs co ls -% cvs release -d ls - - -

ls(1) のバージョンを 2.2-stable ブランチから調べてみます. - - -% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs -% cvs co -rRELENG_2_2 ls -% cvs release -d ls - - -

FreeBSD 2.2.2 と FreeBSD 2.2.6 とで ls(1) の変更点のリストを (unidiff で) -作ってみます. - - -% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs -% cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls - - -

他のどんなモジュールの名前が使われているか検索してみます. - - -% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs -% cvs co modules -% more modules/modules -% cvs release -d modules - - -他の資料 - -

次の資料は CVS を学ぶのに役に立つでしょう. - - - , Cal Poly によります. - , 商用として - CVS を維持しています. - - は FreeBSD Project の CVS のための web インターフェースです. - diff --git a/ja/handbook/authors.sgml b/ja/handbook/authors.sgml deleted file mode 100644 index b9de016b38..0000000000 --- a/ja/handbook/authors.sgml +++ /dev/null @@ -1,678 +0,0 @@ - - - - - - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - - diff --git a/ja/handbook/backups.sgml b/ja/handbook/backups.sgml deleted file mode 100644 index 75c25ad468..0000000000 --- a/ja/handbook/backups.sgml +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - -バックアップ -

訳: &a.yoshiaki; . 5 July 1998. - -

ハードウェアコンパチビリティの問題は現在のコンピュータ業界でもっ - とも多く起きる種類の問題であり, FreeBSDもこれに無縁ではありません. - 市場にある驚くほど多様な種類の製品をサポートすることによって, - FreeBSDは 安価に普及している PCハードウェアで動かすことができる - という利点はこの点では不利でもあります. - FreeBSDのサポートするハードウェアを徹底的に調べて提供することは不 - 可能ですが, このセクションでは FreeBSDに含まれるデバイスドライバとそ - のドライバがサポートするハードウェアのカタログを示します. 可能で適切 - なものについては特定の製品についての注釈を含めました. また, - このハンドブックの のセクションにも - サポートされているデバイスのリストがありますのでそちらもご覧ください. - - FreeBSD はボランティアプロジェクトでテスト部門には資金がありません - から, より多くの情報をこのカタログに載せるにはあなたがたユーザに - 頼らなければなりません. あなた自身の経験により, あるハードウェアが - FreeBSDで動くか動かないかがわかったとしたら&a.doc; - へ e-mailして知らせてください. サポートされているハードウェアについて - の質問は, &a.questions;(詳しいことは - を参照してください) へ - 宛ててください. 情報を提供したり質問をする時は FreeBSDのバージョンと使っ - ているハードウェアのできるだけ詳しい情報を含めることを忘れないでくだ - さい. - - * フロッピーへのバックアップはどうでしょう? - テープメディア -

一般的なテープメディアには 4mm, 8mm, QIC, ミニカートリッジ -DLT があります. - - 4mm (DDS: Digital Data Storage) - - -

4mm テープはワークステーションのバックアップメディアとして -QICから置き換えられつつあります. この傾向は QICドライブの製造のリーダ -であった Archiveを Connerが買収し QICドライブの製造を中止したことで加 -速しました. 4mmドライブは小型で静かですが -8mmドライブの持っているような信頼性の評判はありません. -カートリッジは 8mmカートリッジよりも安価で小型 (3 x 2 x 0.5 インチ -; 76 x 51 x 12 mm) です. 4mmドライブ は 8mm同様にヘリカルスキャン (訳 -注: VTRと同様の回転ヘッドを使う方式) を使用しているという理由でヘッド -の寿命は短いです. - - -

これらのドライブのデータスループットは 150kB/s程度から最大 -で500kB/s程度の範囲です. データ容量は 1.3GBから 2.0GBです. ハードウェア -圧縮が多くのドライブで可能で, およそ 2倍の容量になります. マルチドライ -ブテープライブラリユニットは1つの筐体に 6ドライブを持つことができ自動的 -にテープを交換します. ライブラリの容量は 240GBに達します. -1つの例外です) 送りだしリールと巻き取りリールの両方がカートリッジの中 -にあります. - - -

4mmドライブは 8mmドライブ同様にヘリカルスキャンを使います. -ヘリカルスキャンの利点と欠点は 4mmドライブ と 8mmドライブ共通です. - -

テープの寿命は 2000回のパスあるいは 100回のフルバックアップ -です. - - 8mm (Exabyte) - - -

8mmテープは SCSIテープドライブとして最もよく使われているもの -で, データ交換用として最良の選択です. ほとんどのサイトには Exabyteの -2GB 8mmテープドライブがあるでしょう (訳注: Unixワークステーションを何 -台も置いているようなサイトには1台くらいはあるというような意味です). -8mmドライブは信頼性が高く, 使いやすく, 静かです. カートリッジは安価で -小型です (4.8 x3.3 x 0.6 インチ; 122 x 84 x 15 mm). 欠点は -, テープとヘッドの相対的な速度が高速なために比較的ヘッドとテープの寿命 -が短いことです. - - -

データスループットは 250kB/s程度から 500kB/s程度の範囲です. -データ容量は 300MBから 7GBです. ハードウェア圧縮が多くのドライブで可 -能で,およそ 2倍の容量になります. 単一のユニットのドライブから, 1つの -筐体に6台のドライブと 120巻のテープを持ったマルチドライブ -テープライブラリまで利用することができます. ライブラリではテープは -ユニットにより自動的に交換されます. ライブラリの容量は -840GB以上に達します. - - -

データはヘリカルスキャンを使ってテープに記録されます. -ヘリカルスキャン方式ではヘッドはメディアに対してある傾き (約6度) に配 -置されます. テープはヘッドのある円筒の周の 270度にわたって接触します. -テープが円筒面を走行する間, 円筒は回転しています. -この結果, 高密度のデータのつまったトラックは, 狭い間隔でテープの上端と -下端の間を斜めに横切ります. - - QIC - -

QIC-150テープとドライブはたぶん最も一般的に使われている -ドライブとメディアでしょう. QICテープドライブは現実的なバックアップ -ドライブとして少なくとも高価なものではありません. -欠点はメディアのコストです. QICテープは 8mmや 4mmテープに比較して -GBあたりのデータの保存で5倍ほど高価です. -しかしあなたの必要とする量が半ダース程のテープで十分であれば, QICは正 -しい選択となるかもしれません. QICは 最も一般的なテープドライ -ブです. すべてのサイトに QICドライブのどれかの容量のものがあります. -問題は, QICは同じようなテープ (まったく同じ場合もある) に多様な記録密度 -があることです. QICドライブは静かではありません. これらのドライブはデー -タ記録を開始する前に音をたててシークしますし, リード, ライト, シークの -時にはっきりと聞こえる音を出します. - QICテープの大きさは (6 x 4 x 0.7 インチ; -152 x 102 x 17 mm). で使われている 1/4インチ幅のテープについては -別に議論します. テープライブラリやチェンジャはありません. - - -

データスループットは 150kB/sから 500kB/sの範囲です. データ容量 -の範囲は 40MBから 15GBです. ハードウェア圧縮が最近の多くのドライブで使 -えるようになっています. QICドライブは DATドライブに置き換えられつつあ -り, あまり頻繁には利用されなくなっています. - - -

データは複数のトラックにわかれてテープに記録されます. -トラックはテープメディアの長さ方向の一端からもう一方の端までです. -(訳注: 1トラックの read/write が終わるとテープの走行方向を反転させ -次のトラックの read/write を行います) -トラックの数と, それに対応するトラックの幅はテープの容量によって -変わります. すべてではありませんがほとんどの最近のドライブは -少なくとも読み出しについては (場合によっては書き込みも) -下位互換性があります. QICはデータの安全性についてはよいと -いわれています (ヘリカルスキャンドライブに比べて機構は単純でより -丈夫です). - -

テープは 5000回のバックアップで寿命となるでしょう. - - - * ミニカートリッジ - - DLT - -

DLTはここに示したドライブのタイプの中で最高速のデータ -転送レートです. - 1/2インチ (12.5mm) テープが単リールのカートリッジ (4 x 4 x 1 -インチ; 100 x 100 x 25 mm) に入っています. カートリッジのひとつの -側面全体がスイングゲートになっています. -ドライブの機構がこのゲートを開け, テープ -リーダを引き出します. テープリーダには楕円形の穴があり, ドライブ -がテープを引っ掛けるのに使います. 巻き取りのためのリールはドライブの中 -にあります. ここに挙げた他のカートリッジはすべて (9トラックテープはただ -1つの例外です) 送りだしリールと巻き取りリールの両方がカートリッジの中 -にあります. - - - データスループットは約1.5MB/sで, 4mm, 8mm, QIC テープドライブ -の3倍です. データ容量は単一のドライブで 10GBから 20GBの範囲です. -マルチテープチェンジャ,マルチテープドライブ,5から 900巻のテープを1から -20ドライブで扱うマルチドライブテープライブラリがあり, 50GBから 9TBの容量が得 -られます. - - - データは (QICテープのように) テープの走行方向と並行に複数ある -トラックへ記録されます. 2つのトラックに同時書き込みを行います. -Read/Writeヘッドの寿命は比較的長いと言えます. - テープの走行が止まればヘッドとテープの間の相対運動はありません. - - 新品のテープを最初に使う場合 -

新品の完全な空テープを読もうとしたり書き込もうとすると処理 -は失敗するでしょう. 次のようなコンソールメッセージが出るでしょう. - - st0(ncr1:4:0): NOT READY asc:4,1 - st0(ncr1:4:0): Logical unit is in process of becoming ready - - -テープに識別ブロック (Identifire Block:block number 0) がありません. -QIC-525標準の採用されている QICテープドライブのすべてで識別ブロックをテー -プに書きます. 2つの解決方法があります. - -

(訳注: 方法1)mt fsf 1 によってテープドライブは識別 - ブロックをテープに書きます. - -

(訳注: 方法2)フロントパネルのボタンを押してテープをとりだします. -

再びテープを入れ,データをテープに dump(8)します. -

dump(8) はそのうちに DUMP: End of tape -detected と表示し, コンソールには HARDWARE FAILURE -info:280 asc:80,96と表示されるでしょう. -

mt rewindを使ってテープを巻戻します. -

この次からはテープの操作は成功するでしょう. - -バックアッププログラム -

よく使われる3つのプログラムはdump(8), -tar(1), cpio(1)です. - - ダンプとリストア - -

dump(8)restore(8) は伝統的な Unixの -バックアッププログラムです. これらはドライブのファイルシステム上の -ファイル,リンク,ディレクトリをディスクブロックの集まりとして処理します. -dump(8)はデバイスやファイルシステム全体をバックアップし, -一部分のバックアップや, ln(1)によるソフトリンクや他のファイル -システムをマウントを行った, 1つ以上のファイルシステムにまたがる -ディレクトリツリーのバックアップはできません. -dump(8)はファイルやディレクトリを構成するデータブロックを -テープに書くだけで, ファイルやディレクトリをテープに書くことはありません. -dump(8)には初期の ATT UNIXのバージョン 6 (1975年ごろ) に由来する -癖が残っています. デフォルトのパラメタは 9トラックテープ (6250 bpi) に -適したものになっていて現在の高密度メディア (最大 62,182 ftpi) に適して -いません. 現在のテープドライブの容量を有効に利用するため, デフォルト -値をコマンドラインで置き換えなければなりません. - -

rdump(8)rrestore(8) は他の -コンピュータに接続されているテープドライブにネットワーク経由で -バックアップをします. -どちらのプログラムもリモートテープドライブにアクセスするために -rcmd(3)ruserok(3)に依存しています. このためユーザ -がバックアップを実行するためには rhostsによるリモートアクセス -が必要です.

rdump(8)rrestore(8)の引数は -リモートコンピュータに適切なものを用います. - -rrestore(8)はリモートコンピュータから使うのに適しています. -(例えば FreeBSDコンピュータより komodoという名前の Sunに接続されている -Exabyteテープドライブへ -/sbin/rdump -0dsbfu 54000 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&1 -として rdumpしたような場合の restoreに使います) -警告: セキュリティは rhostsの管理にかかっています. -あなたの状況を注意深く調べてください. - - Tar - -

tar(1) ATT Unix のバージョン 6 (1975ごろ) に -さかのぼる事ができます. tar(1)はファイルシステムと -協調して機能し, ファイルやディレクトリをテープに書きます. -tar(1)cpio(1)で使えるようなフルレンジのオプション -は持ちませんが cpio(1)で使うような奇妙なコマンドパイプライン -は必要ありません. - -

大部分の tar(1) にはネットワーク経由のバックアップの -機能はありませんが, FreeBSD で使用されている GNU の tar(1) は, -rdump とおなじ構文でリモートデバイスを扱うことができます. -komodo というホスト名の Sun に繋いである Exabyte のテープデバイスに対して -tar(1) を実行するには, 次のようにします. -/usr/bin/tar cf komodo:/dev/nrst8 . 2>&1 -リモートデバイスをサポートしていない tar を使用している場合は, -パイプラインと rsh(1)を使うことで, リモートテープデバイスに -データを送る事ができます. (コマンド使用例はまだです) - - Cpio - -

cpio(1) は本来, Unixファイルを磁気メディアで交換 -するためのプログラムです. cpio(1)はバイトスワッピング, -多くの異なるアーカイブフォーマットの書き込みのオプション(それ以外にも -多数のオプションがあります)があり, パイプで他のプログラムにデータを -渡す事もできます. この最後に挙げた特徴により, cpio(1)は -インストールメディアについては優れた選択です. -cpio(1)STDINからの入力でなければならず, -ディレクトリツリーの探索やファイルリストについての機能はありません. -

cpio(1)はネットワーク経由のバックアップの機能はあ -りません. リモートテープドライブにはパイプラインと rsh(1) -を使って送る事ができます. (コマンド使用例はまだです) - - Pax - - -

pax(1)tarcpio に対する - IEEE/POSIX の回答です. 長年の間, 様々なバージョンの tar や - cpio は, 互いにわずかながら非互換性を有していました. - 各々をしらみ潰しに標準化する代わりに, POSIXは新しいアーカイブ - ユーティリティを作ることにしました. pax は専用に - 開発された新しいフォーマットに加えて, いくつもの cpio や tar の - フォーマットの読み書きに対応しようと試みています. コマンド群は - tar よりも cpio の方にいくぶん似ています. - - - -

Amanda (Advanced Maryland Network Disk Archiver) は単一の -プログラムではなくクライアント/サーバ型のバックアップシステムです. -Amanda サーバは, Amandaクライアントであるネットワークでサーバに接続 -された複数のコンピュータから一つのテープドライブへバックアップを -おこないます. -このような場合の一般的な問題はいくつもの大容量のディスクからデータ -ディレクトリをテープにバックアップするには時間がかかりすぎてしまう -という事です. Amanda はこの問題を解決します. Amandaは同時に複数の -ファイルシステムのバックアップをおこなう時に 「ホールディングディスク」 -を使う事ができます. -Amandaの設定ファイルに書いたすべてのファイルシステムのフルバックアップを -特定の間隔でとるために「アーカイブセット」と呼ばれるテープグループを -作ります. これには夜間に作られるすべてのファイルシステムの増分 -(あるいは差分として) のバックアップも含みます. -障害の起きたファイルシステムの回復には最も新しいフルバックアップと -増分のバックアップが必要です. - -

設定ファイルでバックアップのコントロールと Amanda による -ネットワークトラフィック量を設定します. Amanda はデータをテープに -書くのにバックアッププログラムのいずれかを使うでしょう. -Amandaはその一部分でもパッケージでも利用可能ですが, デフォルトでは -インストールされません. - - 何もしない -

「何もしない」というのはコンピュータのプログラムでは -ありませんが, バックアップの戦略として最も広く採用されている物です. -これには初期投資が必要ありません. したがわなければならない -バックアップスケジュールもありません. ただ何もしないだけです. -もしデータに何かが起きたら, 苦笑いして耐えてください. - -

あなたにとって時間やデータの価値が少ないかあるいはまったくない -のであれば「何もしない」のはあなたのコンピュータに最も適した -バックアッププログラムでしょう. しかし注意してください. -Unix は便利なツールです. 6ヶ月も使っていれば価値のあるファイルの山が -でき上がっているでしょう. - -

「何もしない」は /usr/obj やその他の, コンピュータに -よってつくり出されたディレクトリツリーについては適切な方法です. 一つの -例はこのハンドブックのファイルで, これらは SGMLのファイルより -生成された物です. HTMLファイルのバックアップを作る必要は -ありません. SGMLのソースファイルは定期的にバックアップ -します. - - どのバックアッププログラムが最適でしょう? -

定期的に dump(8)しましょう. Elizabeth -D. Zwicky はここで検討したプログラムすべてについて拷問的なテストを -おこないました. すべてのデータと Unixファイルシステムの状態すべてを -保存するには明らかに dump(8)でしょう. Elizabethは大きく変化 -に富んだ異常な状態 (いくつかはあまり異常でもない状態のものもあります) - になっているファイルシステムで, それぞれのプログラムで -ファイルシステムのバックアップとリストアを行ってテストしました. -特色のある状態には, ホールを持つファイル, ホールとヌルブロックを持つ -ファイル, 奇妙な文字をファイル名に持つファイル, 読み出し不可, -書き込み不可のファイル, デバイスファイル, バックアップ中にファイルの -サイズを変更する, バックアップ中にファイルの作成/削除をおこなうなどが -あります. 彼女は1991年10月の LISA Vで結果の発表をしています. - -を参照してください. - - 緊急時のリストア手順 - 災難の起きる前に -

起き得るどのような災難に対しても以下の 4ステップだけが必要な -準備です. - -

ステップ 1では, ファイルシステムテーブル(/etc/fstab) -やブートメッセージで示されるすべてのディスクの disklabelをそれぞれ2コピー -づつプリント (例えば disklabel sd0 | lpr を実行します) します. - -

ステップ 2では, boot と fixitフロッピーにそのシステムの -すべてのデバイスドライバが含まれているか確認します. 最も簡単な確認の -方法は, フロッピーをドライブに入れてリブートし, ブートメッセージを -確認することです. あなたのシステムのデバイスがすべて含まれ, -機能していれば, step 3へ飛んでください. - -

そうでないなら, そのシステムのすべてのディスクをマウントでき, -テープドライブにもアクセスできる 2種類のカスタムブート -フロッピーディスクを作る必要があります. これらのフロッピーには -fdisk(8), -disklabel(8), newfs(8), mount(8), と利用したい -バックアッププログラムが入っていなければなりません. これらのプログラム -はスタティックリンクされたプログラムである必要があります. -dump(8)を使うのであればフロッピーに restore(8)を -入れる必要があります. - -

ステップ 3では, 通常の方法でバックアップを作ります. -最新のバックアップの後でおこなわれた変更は回復することはできません. -バックアップテープにライトプロテクトをしてください. - -

ステップ 4では, フロッピー (boot.flp と fixit.flp あるいは -ステップ 2で作った2枚のカスタムブートフロッピーディスクです) と -バックアップテープのテストをします. - 手順のノートを作りましょう. このノートはブートフロッピーディスク, -バックアップテープに入れておきプリントアウトしておきます. あなたが -リストアをおこなうような時はおそらく錯乱状態でしょうからこのノートは -バックアップを破壊してしまうようなことを防ぐのに役立つでしょう - (どのようにして破壊するって? -tar xvf /dev/rst0とする替りに偶然 tar cvf /dev/rst0 -とタイプしてバックアップテープに上書きしてしまうかもしれません). - -訳注: 上書きはライトプロテクトをしておけば防げますが, なんらかの原因で -プロテクトがはずれているかもしれません. -ちなみに訳者の経験から言えば上のようなミスタイプは結構起きます. - -

安全性を増すために, 毎回ブートフロッピーディスクを作り, -2巻のバックアップテープを取ります. 一方を離れた場所に保管します. -離れた場所は同じ建物の地下室ではいけません. 世界貿易センタービルに -あった数多くの会社は苦い経験よりこの教訓を得ました. -離れた場所とはコンピュータやディスクドライブからかなり離れていて -物理的に分離されていなければなりません. - -

ブートフロッピーディスクを作るスクリプトの一例 - - #!/bin/sh - # - # create a restore floppy リストアフロッピーの作成 - # - # format the floppy フロッピーのフォーマット - # - PATH=/bin:/sbin:/usr/sbin:/usr/bin - - fdformat -q fd0 - if [ $? -ne 0 ] - then - echo "Bad floppy, please use a new one" - exit 1 - fi - - # place boot blocks on the floppy フロッピーにブートブロックを書く - # - disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440 - - # - # newfs the one and only partition ただ1つのパーティションを newfs - # - newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a - - # - # mount the new floppy 新しいフロッピーをマウント - # - mount /dev/fd0a /mnt - - # - # create required directories 必要なディレクトリの作成 - # - mkdir /mnt/dev - mkdir /mnt/bin - mkdir /mnt/sbin - mkdir /mnt/etc - mkdir /mnt/root - mkdir /mnt/mnt # for the root partition - mkdir /mnt/tmp - mkdir /mnt/var - - # - # populate the directories - # - # MINIカーネルがない場合は作ります - if [ ! -x /sys/compile/MINI/kernel ] - then - cat << EOM - The MINI kernel does not exist, please create one. - Here is an example config file: - # MINIカーネルの config fileの例 - # MINI -- A kernel to get FreeBSD on onto a disk. - # - machine "i386" - cpu "I486_CPU" - ident MINI - maxusers 5 - - options INET # needed for _tcp _icmpstat _ip -stat - # _udpstat _tcpstat _udb - options FFS #Berkeley Fast File System - options FAT_CURSOR #block cursor in syscons or pcc -ons - options SCSI_DELAY=15 #Be pessimistic about Joe SCSI -device - options NCONS=2 #1 virtual consoles - options USERCONFIG #Allow user configuration with --c XXX - - config kernel root on sd0 swap on sd0 and sd1 dumps on sd0 - - controller isa0 - controller pci0 - - controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr - disk fd0 at fdc0 drive 0 - - controller ncr0 - - controller scbus0 - - device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr - device npx0 at isa? port "IO_NPX" irq 13 vector npxintr - - device sd0 - device sd1 - device sd2 - - device st0 - - pseudo-device loop # required by INET - pseudo-device gzip # Exec gzipped a.out's - EOM - exit 1 - fi - - cp -f /sys/compile/MINI/kernel /mnt - - gzip -c -best /sbin/init > /mnt/sbin/init - gzip -c -best /sbin/fsck > /mnt/sbin/fsck - gzip -c -best /sbin/mount > /mnt/sbin/mount - gzip -c -best /sbin/halt > /mnt/sbin/halt - gzip -c -best /sbin/restore > /mnt/sbin/restore - - gzip -c -best /bin/sh > /mnt/bin/sh - gzip -c -best /bin/sync > /mnt/bin/sync - - cp /root/.profile /mnt/root - - cp -f /dev/MAKEDEV /mnt/dev - chmod 755 /mnt/dev/MAKEDEV - - chmod 500 /mnt/sbin/init - chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt - chmod 555 /mnt/bin/sh /mnt/bin/sync - chmod 6555 /mnt/sbin/restore - - # - # create the devices nodes デバイスノードを作る - # - cd /mnt/dev - ./MAKEDEV std - ./MAKEDEV sd0 - ./MAKEDEV sd1 - ./MAKEDEV sd2 - ./MAKEDEV st0 - ./MAKEDEV pty0 - cd / - - # - # create minimum filesystem table 最小限のファイルシステムテーブル - # - cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < - - 災難の後に -

重要な問題は, ハードウェアが生き残ったかどうかです. -定期的なバックアップを取っていればソフトウェアについて心配する必要はあ -りません. - -

ハードウェアがダメージを受けていたら, 最初にそのダメージを -受けた部品を交換してください. - -

ハードウェアに問題がなければ, フロッピーをチェックしてくださ -い.カスタムブートフロッピーディスクを使っているのであればシングルユーザ -("boot:"プロンプトの出た時に "-s" とタイプしてください) でブートしてくださ -い. それから次の「ファイルシステムを1つずつ回復する」を読んでください. - -

boot.flp と fixit.flp を使っているのであればこのまま読み続けてくださ -い. boot.flp を入れてブートしてください. 本来のインストールメニューが表 -示されるはずです. (ここで) "fixit XXX"オプションを選びます. 指示の通り -fixit.flp を入れてください. restoreとその他の必要なプログラムは -/mnt2/standに置かれています. - -

ファイルシステムを一つずつ回復する - -

最初のディスクのrootパーティションをmount(8) (例えば mount -/dev/sd0a /mntのように) マウントして見てください. ディスクラベルが -破壊されている場合は disklabel(8)を使ってあらかじめプリントし -ておいた通りにパーティションを作り直しラベルをつけてセーブしてください. -newfs(8)を使いファイルシステムを作り直します. ルー -トパーティションを読み書き可能にマウント ("mount -u -o rw -/mnt") しなおします. バックアッププログラムとバックアップテープを -使ってこのファイルシステムのデータを回復します (例えば restore vrf -/dev/st0とします). ファイルシステムをアンマウント (umount -/mntなど) して, 障害を受けたファイルシステムそれぞれについて繰り返 -してください. - -

システムが動き出したら, 新しいテープにデータをバックアップ -してください. どのような理由で再び事故が起きたりデータが失われるかはわか -りません. これに時間を費す事で, 後々の災難から救われる事になります. - - * 災難対策をしていませんでした. どうしたらいいでしょう? diff --git a/ja/handbook/basics.sgml b/ja/handbook/basics.sgml deleted file mode 100644 index 5f8431c415..0000000000 --- a/ja/handbook/basics.sgml +++ /dev/null @@ -1,93 +0,0 @@ - - - - -Unix の基礎知識 - -

訳: &a.nakai;12 October 1996. - - - オンラインマニュアル - -

FreeBSD についてのもっとも包括的なドキュメントは - マニュアルページの形式になっているものです. - FreeBSD システム上のほとんどすべてのプログラムには基本的な - 操作方法とさまざまな引数を説明しているリファレンスマニュアル - がついています。これらのマニュアルは - man コマンドで見ることができます。 - man コマンドの使い方は簡単です : - - man コマンド名 - - コマンド名のところには知りたいコマンドの名前を入れます。 - たとえば、ls コマンドについて知りたい場合には - 次のように入力します : - - % man ls - - -

オンラインマニュアルは数字のついたセクションに分けられています : - - ユーザコマンド - システムコールとエラー番号 - C のライブラリ関数 - デバイスドライバ - ファイル形式 - ゲームとほかのお楽しみ - そのほかの情報 - システムの管理と操作のためのコマンド - - 場合によっては, 同じことがらでもオンラインマニュアルでは - 複数のセクションに記載されていることがあります。たとえば、 - chmod ユーザコマンドと chmod() - システムコールがあります。この場合、man - コマンドでどちらを参照したいかをセクションで指定することが - できます : - - % man 1 chmod - - とすればユーザコマンドとしての chmod - のマニュアルページが表示されます。オンラインマニュアル上の特定の - セクションへの参照は通常、書かれているドキュメントの - 括弧の中に示されています。ですから、chmod(1) は - chmod ユーザコマンドを、 - chmod(2) はシステムコールの方を示しています。 - -

コマンドの名前を知っていて, 単純にその使い方が分かる場合は - よいのですが、もしコマンドの名前を思い出せない場合には - どうしたらいいのでしょう? man に - -k スイッチをつければ, - コマンドデスクリプション中のキーワードから検索することができます : - - % man -k mail - - このコマンドを使うことで, 「mail」というキーワードを含むコマンドの - 一覧を参照することができます。実を言うと apropos - コマンドを使うのと機能的には同じです。 - -

それから、/usr/bin にある優れたコマンドすべてを目にしても、 - それらの大半がどういった働きをするのかまったく見当もつかないときは - どうしたらよいでしょう。単純に、 - - % cd /usr/bin; man -f * - - あるいは同じ働きをする - - % cd /usr/bin; whatis * - - としましょう。 - - - GNU の Info ファイル - -

FreeBSD には Free Software Foundation (FSF) によるアプリケーションや - ユーティリティがたくさんあります。こうしたプログラムには - manページに加えて、info ファイルと呼ばれる - ハイパーテキスト形式のドキュメントが付属になっていて、info - コマンドや、emacs をインストールしているなら - emacs の info モードで見ることができます。 - - info(1) コマンドを使うには, 単にこう入力します。 - % info おおまかなイントロダクションを - 見るには、h と入力します。 - クイックコマンドリファレンスは ? とします。 diff --git a/ja/handbook/bibliography.sgml b/ja/handbook/bibliography.sgml deleted file mode 100644 index 5a5b160913..0000000000 --- a/ja/handbook/bibliography.sgml +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - 参考図書 - -

訳: &a.nakai;12 October 1996. - -

FreeBSD オペレーティングシステムの個々の部分については - マニュアルページで定義のような説明がなされていますが, - それらにはどうやってその部分どうしをつなぎあわせて - オペレーティングシステム全体を円滑に動作させるかを - 説明していないという欠点がよく指摘されます. - それを補うためには UNIX システム管理についてのよい本や, - すぐれた利用者向けのマニュアルが欠かせません. - - - FreeBSDのためだけの書籍 & 雑誌 - -

非英語文化圏の 書籍 & 雑誌: - -

- (in Chinese). - FreeBSD入門キット 98版第二版. 宮嵜忠臣 著. - 秀和システム. ISBN 4-87966-535-5 C3055 2900円. - FreeBSD入門キット AT互換機版 第二版. 宮嵜忠臣 著. - 秀和システム. ISBN 4-87966-535-5 C3055 2900円. - ここまでできる FreeBSD パワーガイド. - 霜山 滋 仲道 嘉夫 山中右次 著. 秀和システム. - ISBN 4-87966-637-8 2600円. - . - あさだたくや 天川修平 衛藤敏寿 浜田直樹 細川達己 三田吉郎 著. - . - ISBN 4-88135-473-6 3600円. - . - 民田雅人 古場正行 増田佳泰 天池健 宮川晋 共著. - . ISBN 4-7561-1733-3 3000円. - FreeBSD ハンドブック (日本語版). - . ISBN 4-7561-1580-2 3800円. - FreeBSD mit Methode (ドイツ語版). - Computer und Literatur Verlag/Vertrieb Hanser 発行. - 1998. ISBN 3-932311-31-0 - , - published by , ISBN4-8399-0112-0 P3600E. - - -

英語の書籍 & 雑誌: - -

- , published by . - - - - 利用者向けのガイド - -

- Computer Systems Research Group, UC Berkeley. - 4.4BSD User's Reference Manual. - O'Reilly & Associates, Inc., 1994. - ISBN 1-56592-075-9 - - Computer Systems Research Group, UC Berkeley. - 4.4BSD User's Supplementary Documents. - O'Reilly & Associates, Inc., 1994. - ISBN 1-56592-076-7 - - UNIX in a Nutshell. - O'Reilly & Associates, Inc., 1990. - ISBN 093717520X - - Mui, Linda. - What You Need To Know When You Can't Find Your UNIX - System Administrator. - O'Reilly & Associates, Inc., 1995. - ISBN 1-56592-104-6 - - has written - a which is available online - in HTML and postscript format. - - . - - (日本語訳). - , 1998. - ISBN4-8399-0088-4 P3800E. - - - - 管理者向けのガイド - -

- - Albitz, Paul and Liu, Cricket. DNS and - BIND, 2nd Ed. - O'Reilly & Associates, Inc., 1997. - ISBN ISBN 1-56592-236-0 - (訳注: 邦訳は以下のものが出版されています. - 高田広章 / 小島育夫 監訳 , 小舘光正 訳. DNS & BIND 改訂版. - オライリー・ジャパン, 1998. - ISBN 4-900900-42-7) - - - Computer Systems Research Group, UC Berkeley. - 4.4BSD System Manager's Manual. - O'Reilly & Associates, Inc., 1994. - ISBN 1-56592-080-5 - - Costales, Brian, et al. - Sendmail, 2nd Ed. O'Reilly & - Associates, Inc., 1997. - ISBN 1-56592-222-0 - (訳注: 邦訳は以下のものが出版されています. - 2分冊になっています. - 原著の3章までが「システム管理」, 4章が「リファレンス」 - に対応します.) - 中村 素典 監訳, 鈴木 克彦 訳. sendmail システム管理 (Volume1). - オライリー・ジャパン, 1997. - ISBN 4-900900-40-0) - 中村 素典 監訳, 鈴木 克彦 訳. sendmail リファレンス (Volume2). - オライリー・ジャパン, 1998. - ISBN 4-900900-41-9) - - - - Frisch, Æleen. Essential System - Administration, 2nd Ed. O'Reilly & - Associates, Inc., 1995. ISBN 1-56592-127-5 - (訳注: 邦訳は以下のものが出版されています. - 谷川 哲司 監訳 黒岩 真吾 , 株式会社ユニテック - 訳. UNIX システム管理入門 改訂版. - オライリー・ジャパン, 1998. - ISBN 4-900900-14-1) - - - Hunt, Craig. TCP/IP Network Administration. - O'Reilly & Associates, Inc., 1992. - ISBN 0-937175-82-X - (訳注: 邦訳は以下のものが出版されています. - 村井純 監訳. TCP/IP ネットワーク管理. - インターナショナル・トムソン・パブリッシング・ジャパン, 1994. - ISBN 4-900718-01-7) - - - Nemeth, Evi. UNIX System Administration - Handbook. 2nd Ed. Prentice Hall, 1995. - ISBN 0131510517 - (訳注: 邦訳は以下のものが出版されています. - 井上尚司監訳. UNIX システム管理入門. - ソフトバンク, 1992. - ISBN 4-89052-362-6 - 原本は第2版だが、訳出は第1版のみ) - - - Stern, Hal Managing NFS and NIS - O'Reilly & Associates, Inc., 1991. - ISBN 0-937175-75-7 - - . - - (日本語訳). - , 1998. - ISBN4-8399-0109-0 P3300E. - - - - - プログラマ向けのガイド - -

- - Asente, Paul. X Window System - Toolkit. Digital Press. - ISBN 1-55558-051-3 - - Computer Systems Research Group, UC Berkeley. - 4.4BSD Programmer's Reference Manual. - O'Reilly & Associates, Inc., 1994. - ISBN 1-56592-078-3 - - Computer Systems Research Group, UC Berkeley. - 4.4BSD Programmer's Supplementary Documents. - O'Reilly & Associates, Inc., 1994. - ISBN 1-56592-079-1 - - Harbison, Samuel P. and Steele, Guy - L. Jr. C: A Reference Manual. 4rd ed. Prentice - Hall, 1995. ISBN 0-13-326224-3 - (訳注: 邦訳は以下のものが出版されています. - 斎藤信男監訳. - 新・詳説C言語リファレンス[H&Sリファレンス]. - ソフトバンク, 1994. - ISBN 4-89052-506-8 - 原本は第4版だが、訳出は第3版のみ。) - - - Kernighan, Brian and Dennis M. Ritchie. - The C Programming Language.. - PTR Prentice Hall, 1988. - ISBN 0-13-110362-9 - (訳注: 邦訳は以下のものが出版されています. - 石田晴久 訳. - プログラミング言語 C 第2版(訳書訂正版) - 共立出版, 1989. - ISBN 4-320-02692-6) - - - Lehey, Greg. - Porting UNIX Software. - O'Reilly & Associates, Inc., 1995. - ISBN 1-56592-126-7 - - Plauger, P. J. The Standard C - Library. Prentice Hall, 1992. - ISBN 0-13-131509-9 - (訳注: 邦訳は以下のものが出版されています. - 福富寛 / 門倉明彦 / 清水恵介 訳. - 標準 C ライブラリ ANSI/ISO/JIS C規格. - トッパン, 1995. - ISBN 4-8101-8541-9) - - - Stevens, W. Richard. Advanced - Programming in the UNIX Environment. - Reading, Mass. : Addison-Wesley, 1992 - ISBN 0-201-56317-7 - (訳注: 邦訳は以下のものが出版されています. - 大木敦雄 訳. - 詳解 UNIX プログラミング. トッパン, 1994. - ISBN 4-89052-524-6) - - - Stevens, W. Richard. UNIX Network - Programming. 2nd Ed. - PTR Prentice Hall, 1998. - ISBN 0-13-949876-1 - (訳注: 第 1 版の邦訳は以下のものが出版されています. - 篠田陽一 訳. - UNIX ネットワークプログラミング. - トッパン,1992. - ISBN 4-8101-8509-5) - - - Wells, Bill. "Writing Serial Drivers for UNIX". - Dr. Dobb's Journal. 19(15), December - 1994. pp68-71, 97-99. - - - - - オペレーティングシステム内部 - -

- - Andleigh, Prabhat K. UNIX System Architecture. - Prentice-Hall, Inc., 1990. - ISBN 0-13-949843-5 - - Jolitz, William. "Porting UNIX to the - 386". Dr. Dobb's Journal. January - 1991-July 1992. - - - Leffler, Samuel J., Marshall Kirk McKusick, - Michael J Karels and John Quarterman The Design and - Implementation of the 4.3BSD UNIX Operating - System. Reading, Mass. : Addison-Wesley, 1989. - ISBN 0-201-06196-1 - (訳注: 邦訳は以下のものが出版されています. - 中村明 / 相田仁 / 計宇生 / 小池汎平 訳. - UNIX 4.3BSDの設計と実装. 丸善, 1991. - ISBN 4-621-03607-6) - - - Leffler, Samuel J., Marshall Kirk McKusick, - The Design and Implementation of the 4.3BSD - UNIX Operating System: Answer Book. - Reading, Mass. : Addison-Wesley, 1991. - ISBN 0-201-54629-9 - (訳注: 邦訳は以下のものが出版されています. - 相田仁 / 計宇生 / 小池汎平 訳. - UNIX 4.3BSDの設計と実装. - アンサーブック, トッパン, 1991. - ISBN 4-8101-8039-5) - - - McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, - and John Quarterman. The Design and - Implementation of the 4.4BSD Operating - System. Reading, Mass. : Addison-Wesley, 1996. - ISBN 0-201-54979-4 - - Stevens, W. Richard. TCP/IP Illustrated, - Volume 1: The Protocols. - Reading, Mass. : Addison-Wesley, 1996. - ISBN 0-201-63346-9 - - Schimmel, Curt. Unix Systems for Modern - Architectures. - Reading, Mass. : Addison-Wesley, 1994. - ISBN 0-201-63338-8 - - Stevens, W. Richard. TCP/IP Illustrated, - Volume 3: TCP for Transactions, HTTP, NNTP - and the UNIX Domain Protocols. - Reading, Mass. : Addison-Wesley, 1996. - ISBN 0-201-63495-3 - - Vahalia, Uresh. UNIX Internals -- The New Frontiers. - Prentice Hall, 1996. - ISBN 0-13-101908-2 - - Wright, Gary R. and W. Richard Stevens. - TCP/IP Illustrated, Volume 2: - The Implementation. - Reading, Mass. : Addison-Wesley, 1995. - ISBN 0-201-63354-X - - - - - - セキュリティの参考資料 - -

- - Cheswick, William R. and Steven M. Bellovin. - Firewalls and Internet Security: - Repelling the Wily Hacker. - Reading, Mass. : Addison-Wesley, 1995. - ISBN 0-201-63357-4 - (訳注: 邦訳は以下のものが出版されています. - 川副博 監訳. ファイアウォール. - ソフトバンク, 1995. - ISBN 4-89052-672-2) - - - Garfinkel, Simson and Gene Spafford. - Practical UNIX Security. 2nd Ed. - O'Reilly & Associates, Inc., 1996. - ISBN 1-56592-148-8 - (訳注: 邦訳は以下のものが出版されています. - 山口英監訳. UNIX セキュリティ. - アスキー, 1993. - ISBN 4-7561-0274-3 - 原本は第2版だが、訳出は第1版のみ) - - - Garfinkel, Simson. - PGP Pretty Good Privacy - O'Reilly & Associates, Inc., 1995. - ISBN 1-56592-098-8 - - - - - ハードウェアの参考資料 - -

- - Anderson, Don and Tom Shanley. - Pentium Processor System Architecture. - 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. - ISBN 0-201-40992-5 - - Ferraro, Richard F. Programmer's Guide - to the EGA, VGA, and Super VGA Cards. - 3rd ed. Reading, Mass. : Addison-Wesley, 1995. - ISBN 0-201-62490-7 - - Intel Corporation は, 自社の CPU やチップセットに関 - する文書を自社の で公開しています. 文書のフォー - マットは通常 PDF です. - - Shanley, Tom. 80486 System - Architecture. 3rd ed. Reading, Mass. : - Addison-Wesley, 1995. ISBN - 0-201-40994-1 - - Shanley, Tom. ISA System - Architecture. 3rd ed. Reading, Mass. : - Addison-Wesley, 1995. - ISBN 0-201-40996-8 - - Shanley, Tom. PCI System - Architecture. 3rd ed. Reading, Mass. : - Addison-Wesley, 1995. ISBN - 0-201-40993-3 - - Van Gilluwe, Frank. The Undocumented PC. - Reading, Mass: Addison-Wesley Pub. Co., 1994. - ISBN 0-201-62277-7 - - - - - UNIX の歴史 - -

- - Lion, John Lion's Commentary on UNIX, 6th Ed. - With Source Code. - ITP Media Group, 1996. - ISBN 1573980137 - - Raymond, Eric s. The New Hacker's Dictonary, - 3rd edition. MIT Press, 1996. - ISBN 0-262-68092-0 - Also known as the - - - Saulus, Peter H. A quarter century of UNIX. - Addison-Wesley Publishing Company, Inc., 1994. - ISBN 0-201-54777-5 - - Simon Garfinkel, Daniel Weise, Steven Strassmann. - The UNIX-HATERS Handbook. - IDG Books Worldwide, Inc., 1994. - ISBN 1-56884-203-1 - - Don Libes, Sandy Ressler Life with UNIX - special - edition. Prentice-Hall, Inc., 1989. - ISBN 0-13-536657-7 - (訳注: 邦訳は以下のものが出版されています. - 坂本文 監訳. Life with UNIX. - アスキー, 1990. - ISBN 4-7561-0783-4 - 邦訳がSpecial 版の訳出か否かは不明) - - - BSD 系 OS の系譜図. 1997年. - - - または, FreeBSD-current マシンの. - - - BSD リリース告知コレクション. 1997. - - - - - Networked Computer Science Technical Reports Library. - - - - - Computer Systems Research group (CSRG) からの古い - BSD リリース集 - - : - この 4 枚 CD セットには, 1BSD から 4.4BSD までと - 4.4BSD-Lite2 が含まれます (残念ながら 2.11BSD は含まれて - いません). また 4 枚目の CD には, 最終ソースおよび SCCS - ファイルが含まれています. - - - - 雑誌とジャーナル - -

- - The C/C++ Users Journal. R&D Publications - Inc. ISSN 1075-2838 - - Sys Admin - The Journal for UNIX System - Administrators Miller Freeman, Inc., ISSN 1061-2688 - - - - - diff --git a/ja/handbook/boothelp.sgml b/ja/handbook/boothelp.sgml deleted file mode 100644 index 2d8d7e0999..0000000000 --- a/ja/handbook/boothelp.sgml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - -%authors; - - - -%sections; - -]> - - - - - FreeBSD のインストール - <author> - <name></name> - </author> - - <abstract>FreeBSD の世界へようこそ! このガイドは FreeBSD の - インストール方法について説明しています. - 矢印キーの<bf>上</bf>と<bf>下</bf>を使って - このガイドの読みたいセクションに移動し, - <bf>右矢印キー</bf>か<bf>リターンキー</bf>を使ってお読みください. - 一度読んだことのあるセクションは<bf>左矢印キー</bf>で - 戻って読みなおすことができます. - </abstract> - - <chapt><heading>一般的な情報</heading> - &nutshell; - &history; - &relnotes; - - &install; - &troubleshooting; - &bibliography; - &eresources; - &hw; - &contrib; - - </book> -</linuxdoc> diff --git a/ja/handbook/booting.sgml b/ja/handbook/booting.sgml deleted file mode 100644 index e975c5fad1..0000000000 --- a/ja/handbook/booting.sgml +++ /dev/null @@ -1,183 +0,0 @@ -<!-- $Id: booting.sgml,v 1.6 1997-10-19 22:13:09 max Exp $ --> -<!-- The FreeBSD Japanese Documentation Project --> -<!-- Original revision: 1.14 --> - -<!-- This is a SGML version of the text on FreeBSD boot procedures - made by Poul-Henning Kamp <phk@FreeBSD.ORG> - - This conversion has been made by Ollivier Robert. - - -<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> - - <article> - - <title>ブートの概要 - Poul-Henning Kamp, - v1.1, April 26th - - FreeBSDのブートには基本的に3つの段階があります: - カーネルの読み込み、ルートのファイルシステムの決定、そして - ユーザ領域にあるものの初期化です。このことは下に述べる - いくつかの興味深い可能性につながっているのです... - - - ---> - - FreeBSDのブート処理の流れ - -

原作: &a.phk;. v1.1, April 26th. -

訳: &a.nakai; September 6 1996. - - FreeBSDのブートには基本的に3つの段階があります: - カーネルの読み込み, ルートのファイルシステムの決定, そして - ユーザ領域にあるものの初期化です. このことは下に述べる - いくつかの興味深い可能性につながっています。 - - カーネルの読み込み -

- 現在, カーネルの読み込みには基本的に下に挙げる3つの方法が - あります: - これらはカーネルが次に何をしたらいいのかという情報をカーネルに - 与えます. - - - Biosboot - - Biosbootは「ブートブロック」に相当するもので, 2つのファイル - から構成されており, フロッピーディスクやハードディスクのブートを - 開始する側の 8K バイトにインストールされています。 - - Biosboot は FreeBSD のファイルシステムからカーネルを - 読み込むことができます. - - Dosboot - - Dosbootは DI. Christian Gusenbauerによって書かれましたが, - 不幸にしてこの場合には、コードのある一部分がマイクロソフトの - コンパイラ向けに書かれているため、FreeBSD 単体ではコンパイル - することはできません. - - Dosboot は MS-DOS のファイルから、またはディスクの - FreeBSD ファイルシステムのパーティションからカーネルをブートします。 - これは MS-DOS システムのハイメモリ領域に潜んでいるメモリマネージャ等の - さまざまな怪しい代物とメモリの取り合いをして、なんとかブートしています. - - Netboot - - Netboot はサポートされているイーサネットカードを検出し、 - BOOTP や TFTP、NFS を使ってブートするカーネルを探そうとします。 - - - - - ルートファイルシステムの決定 -

- カーネルが読み込まれ、ブートプログラムがカーネルに移行したら, - カーネルは自身の初期化をし, どんなハードウェアが組み込まれいるか - を決定し、それからルートファイルシステムを探さなくてはなりません。 - - 現在サポートされているルートファイルシステムは次の通りです : - - - UFS - - UFS は, もっとも一般的なタイプのルートシステムです。 - フロッピーディスクやハードディスク上に存在します。 - - MSDOS - - 技術的に可能ですが、あまり有用ではありません。なぜならば、 - ``FAT''ファイルシステムではリンクやデバイスノードなどの - ``UNIX 主義''を実現できないからです。 - - MFS - - MFS はカーネル内部に組み込みになっている UFS - ファイルシステムです。つまり MFS を機能させるのに - ディスクやフロッピーディスクなどのハードウェアは - 必要ではありません. - - - CD9660 - - CD9660 は CD-ROM をルートファイルシステムに使用したものです。 - - NFS - - これはルートシステムにファイルサーバを使用していて、基本的に - ディスクレスのマシンのためにあります。 - - - - ユーザ領域にあるものの初期化 -

- - ユーザ領域で動作させるようにするために、カーネルが初期化を終えると、 - カーネルは``/sbin/init'' - です。 - - /sbin/init を別なプログラム置き換えてしまうことは可能ですが、そのプロセス - には以下のような制約があります: - - pid が 1 のプロセスには stdin/stdout/stderr は割り当てられていませんので、 - プログラムは自分でこれらをオープンしないとなりません。 - このプロセスが終了するとカーネルはパニックメッセージを表示して - 停止します。 - また、このプロセスに対するシグナル処理は特殊です。 - - この例として、インストール用のフロッピーディスクにある - ``/stand/sysinstall''があります。 - - - 興味深い連係 -

- カーネルを MFS でブートするのには次のような特別の/sbin/init - を使います。 - - - /C: にマウントします。 - C:/freebsd.fs/dev/vn0 にアタッチします。 - /dev/vn0/rootfs にマウントします。 - シンボリックリンクを作ります。 - /rootfs/bin -> /bin - /rootfs/etc -> /etc - /rootfs/sbin -> /sbin - (etc...) - - - これでハードディスクのパーティションを切り直さずに FreeBSD を - 使うことができます。 - - サーバ:˜you/FreeBSD を - /nfsにマウントし、ルートディレクトリを /nfs に変更して, - そこで/sbin/initを実行します。 - - これで FreeBSD をディスクレスで実行できますが、NFS サーバを - コントロールできないままです... - - /dev/rwd0 のコピーを取って、リモートにあるテープ - ステーションやファイルサーバに書き込んでください。 - - これで一年前に取っておくべきだったバックアップをやっと - 取ることができました。 - - E -- ファイアウォール/Web サーバとして動作させる場合 (私の知っている範囲で...) - - これは特に面白いもので、書き込み禁止のフロッピーディスクから - ブートができて、ルートのファイルシステムに書き込むことができる - というものです。 - diff --git a/ja/handbook/contrib.sgml b/ja/handbook/contrib.sgml deleted file mode 100644 index fce76337b5..0000000000 --- a/ja/handbook/contrib.sgml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - -FreeBSDプロジェクトスタッフ - -

訳: &a.hanai;28 August 1996. - -

FreeBSDプロジェクトは, 以下の人々によって管理運営されています. - - FreeBSD コアチーム -

FreeBSD コアチームは, プロジェクトの運用委員会を形成し, FreeBSD - プロジェクトの全般的な目的や方針の決定を行います. さらに, - FreeBSDプロジェクトのの - 運用も行っています. - -

(姓でアルファベット順): - - - &a.asami; - &a.jmb; - &a.ache; - &a.bde; - &a.gibbs; - &a.dg; - &a.jkh; - &a.phk; - &a.rich; - &a.gpalmer; - &a.jdp; - &a.sos; - &a.peter; - &a.wollman; - &a.joerg; - - - FreeBSD の開発者たち - -

(CVSの)commitする権利を持っていて, FreeBSD のソースツリーについて - 作業をおこなっている人々がいます. すべてのコアチームのメンバはまた - 開発者でもあります. - - - &a.ugen; - &a.mbarkah; - &a.stb; - &a.pb; - &a.abial; - &a.jb; - &a.torstenb; - &a.dburr; - &a.charnier; - &a.luoqi; - &a.ejc; - &a.kjc; - &a.gclarkii; - &a.archie; - &a.cracauer; - &a.adam; - &a.dillon; - &a.dufault; - &a.uhclem; - &a.tegge; - &a.eivind; - &a.julian; - &a.rse; - &a.se; - &a.sef; - &a.fenner; - &a.jfieber; - &a.jfitz; - &a.scrappy; - &a.lars; - &a.dirk; - &a.shige; - &a.billf; - &a.gallatin; - &a.tg; - &a.brandon; - &a.graichen; - &a.jgreco; - &a.rgrimes; - &a.jmg; - &a.hanai; - &a.thepish; - &a.jhay; - &a.helbig; - &a.ghelmer; - &a.erich; - &a.nhibma; - &a.flathill; - &a.foxfair; - &a.hosokawa; - &a.hsu; - &a.mph; - &a.itojun; - &a.mjacob; - &a.gj; - &a.nsj; - &a.kato; - &a.andreas; - &a.motoyuki; - &a.jkoshy; - &a.kuriyama; - &a.grog; - &a.jlemon; - &a.truckman; - &a.imp; - &a.smace; - &a.mckay; - &a.mckusick; - &a.ken; - &a.hm; - &a.tedm; - &a.amurai; - &a.markm; - &a.max; - &a.alex; - &a.newton; - &a.rnordier; - &a.davidn; - &a.obrien; - &a.danny; - &a.ljo; - &a.fsmp; - &a.smpatel; - &a.wpaul; - &a.jmacd; - &a.wes; - &a.steve; - &a.mpp; - &a.dfr; - &a.jraynard; - &a.darrenr; - &a.csgr; - &a.martin; - &a.paul; - &a.roberto; - &a.chuckr; - &a.guido; - &a.dima; - &a.sada; - &a.wosch; - &a.ats; - &a.jseger; - &a.simokawa; - &a.vanilla; - &a.msmith; - &a.des; - &a.brian; - &a.mks; - &a.stark; - &a.karl; - &a.dt; - &a.cwt; - &a.pst; - &a.hoek; - &a.nectar; - &a.swallace; - &a.dwhite; - &a.nate; - &a.yokota; - &a.jmz; - - - FreeBSD ドキュメンテーションプロジェクト - -

は複数のサービスを提供 - しています. それぞれのサービスは, 以下の担当者とその - 副担当者によって運用されています. - -

- 副担当:&a.john; - - 副担当&a.cawimm - - - - - - - - 担当者 - -

- / &a.nik - / &a.ache - / &a.jmb; - / &a.imp - / - 責任者: &a.peter - 副責任者: &a.jdp - 国際版 (暗号) 担当: &a.markm - / &a.asami - / &a.joerg - / - &a.phk; と &a.steve; - / &a.wosch - diff --git a/ja/handbook/crypt.sgml b/ja/handbook/crypt.sgml deleted file mode 100644 index d4337d37b3..0000000000 --- a/ja/handbook/crypt.sgml +++ /dev/null @@ -1,79 +0,0 @@ - - - - -DES, MD5, と Crypt - -

原作: &a.wollman;24 September 1995. - -

訳: &a.hanai;12 September 1996. - -

UN*X システムにおいてパスワードを保護し, 簡単に覗かれるのを防 -ぐために, 従来パスワードはある方法によりスクランブルされてきました. -ベル研の Unix 第7版に始まって以来, パスワードはセキュリティの専門家がい -うところの「一方向ハッシュ関数」というものを用いることにより暗号化されるようになりました. -つまり, 可能な限りのパスワード空間を検索するという強引な -方法以外にそのオリジナルを得ることができない, といった方法でパスワードは変換 -されるのです. 不幸なことに, その当時 AT&T の研究者たちが手に入れることができ -た唯一の暗号化方法は DES(Data Encryption Standard) に基づいたものでし -た. これは営利企業にとっては大して問題ではありませんが, FreeBSDのよ -うにすべてのソースコードが自由に手に入るオペレーティングシステムにとっ -ては重大な問題となります. なぜなら, 多くの政府は DES やその他の暗号化ソフ -トウェアが国境を越えることに制限をつけようとしているからです. - -

ここで, FreeBSD チームは一つのジレンマに直面しました. つまり, どうす -れば法に触れることなく国外にあるそれらの UNIX システムのすべてに互換性を持 -たせることができるか, ということです. 私たちは ``dual track approach'' を -取ることに決めました. 規制されていないパスワードスクランブラのみを含む -配布用物件を作り, DES に基づいたパスワードハッシュを付加ライブラリ -として分けて供給するのです. パスワードをスクランブルさせる関数は, C ライブラリから -`libcrypt' と呼ばれる(それを実行する C 関数が `crypt' と -いう名前だからです)別のライブラリへ移されました. FreeBSD 1.x 及び -2.0 のリリース前のスナップショットでは, その規制されていないスクランブラは -Nate Williams によって書かれた安全でない関数を使っていますが, 次の -リリースでは RSA Data Security 社の一方向ハッシュ関数の MD5 を使う方法 -に置き換えられました. これらの関数はどれも暗号化を含んでいないため, -合衆国から持ち出し, 他の多くの国へ持ち込めるものであるとされています. - -

一方, DES に基づいたパスワードハッシュ関数に関する作業もまた進行中 -でした, まず, 合衆国及び他の国で書かれたコードの同期をとりながら, -合衆国の外で書かれた `crypt' のあるバージョンが持ち込まれました. -そしてライブラリは修正され, 二つにわけられました. すなわち -DES `libcrypt' は一方向パスワードハッシュをおこなうのに必要なコード -のみを含み, それとは別の `libcipher' は実際に暗号化をおこなう -ためのエントリポイントとして生成されました. コンパイルされたライブラリに対 -して国外に持ち出す許可を得るのを簡単にするために, コードはこのように分け -られたのです. - -`crypt' メカニズムを理解する - -

あるパスワード文字列を作るのに, DES に基づいたハッシュ関数を使っ -たのか, MD5に基づいたハッシュ関数を使ったのかは非常に簡単にわかります. -MD5 を使ったパスワード文字列は必ず `$1$' という文字 -で始まります. DESを使ったパスワード文字列はどんな特定の文字も持っていま -せんが, MD5を使ったパスワードよりも短く, `$' という文字 -を持たない64文字のアルファベットで構成されています. したがって, ドル記号で -始まっていない比較的短い文字列は DES を使ったパスワードである可能性が非常 -に高いです. - -

あなたのシステムで, どちらのライブラリが使われているかを決めるの -は, スタティックにリンクされている `init' のようなもの(その -ようなプログラムに対する唯一の方法はわかっているパスワードを試してみ -て動くかどうかを確認することです.)を除いたほとんどのプログラムについ -ては非常に簡単なことです. `crypt' を使うようなプログラムは -`libcrypt' にリンクされています. そしてそれぞれのライブラリに -対する `libcrypt' は適切な実装へのシンボリックリンクとなってい -ます. 例えば, DES 版を使っているようなシステムにおいては次のようになって -います: - - -$ cd /usr/lib -$ ls -l /usr/lib/libcrypt* -lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a -lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0 -lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a - - -MD5 に基づいたライブラリを使っているシステムにおいては, 同じようなリンクが -見られるでしょうが, そのターゲットは `libdescrypt' ではなく -`libscrypt' になっているでしょう. diff --git a/ja/handbook/ctm.sgml b/ja/handbook/ctm.sgml deleted file mode 100644 index 07be8cab48..0000000000 --- a/ja/handbook/ctm.sgml +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -CTM - -

原作: &a.phk;. 更新: 19-October-1997. - -

訳: &a.hanai;13 September 1997. - - なぜ -

を読むことを - お勧めします. - - - -

二つのものが必要でしょう: ``/usr/src/usr.sbin/にあります. - - もしFreeBSDの2.0以前のバージョンなら, 最新の - - から入手できます. - - - または、その/etc/aliasesからはじめて -

-

デルタを適用するためには, 単に - -cd /where/ever/you/want/the/stuff -ctm -v -v /where/you/store/your/deltas/src-cur.* - - とします. -

- ローカルの変更を保存する -

- 開発者としてはソースツリー中のファイルを使って実験したり変更したく - なるものです. CTM はローカルの変更を制限つきでサポートします: - ファイル foo の存在をチェックする前に, foo.ctm - を参照しにいきます. このファイルが存在する場合, CTM は foo - の代りにこれを処理します. -

- この動作はローカルの変更を保持する簡単な手段を提供します: - 単に変更したいファイルを拡張子 .ctm 付きのファイル名で - コピーするだけです. あとは自由にコードをハックでき, .ctm - ファイルの方は CTM が最新状態に保ってくれます. - - CTM のその他の面白いオプション - 更新で変更されるファイルを正確に知る -

- CTM のソースリポジトリに対する変更のリストを ``-l'' - オプションを使って決定することができます. -

- これは, 変更のログを保存したい, 変更されたファイルをなんらかの方法で - 前・後処理したい, または単にこだわりたい :-) 場合には, - 役に立つでしょう. - - 更新前にバックアップを取る -

- CTM の更新によって変更されるファイルすべてのバックアップを - 取りたくなることがあります. -

- ``-B backup-file'' オプションを指定すると CTM は - デルタで変更されるファイルすべてを backup-file - としてバックアップするようになります. - - 更新で変更されるファイルを制限する -

- CTM の更新の範囲を制限したり一連のデルタのからほんの数ファイルを - 抽出したくなることがあります. -

- ``-e'' と ``-x'' オプションを用い正規表現を - 指定することで, CTM が処理するファイルのリストを制御することが - できます. -

- 例えば, lib/libc/Makefile の最新のコピーを保存してある - CTM デルタのコレクションから抽出するには, 以下のコマンドを実行します. - -cd /where/ever/you/want/to/extract/it/ -ctm -e '^lib/libc/Makefile' ~ctm/src-cur.* - -

- CTM デルタで指定されたファイルごとに, ``-e'' そして - ``-x'' オプションがコマンドラインで指定された順序で - 適用されます. すべての``-e'' そして `-x'' - オプションが適用された後に更新対象と選択された場合に限り, - CTM はそのファイルを処理します. - - -

- 重要なもの - - - なんらかの CTM システムへの認証機構を用い, 不正な CTM の更新の - 検出を可能とする. - - - - - 残念なことに私は非常に忙しいです. 従ってこれを行なうどんな手助け - でも歓迎します. その際, 自分が何をやりたいかを私に - 言うのを忘れずに. - - その他 -

- 「DESに染まった」(例えば, 国外への持ち出しが規制された)ソースは - まったく含まれません. 手に入るのは「国際」バージョンだけです. - もし興味のある人が多いようであれば, 我々は`` - - - ありがとう! -

- - - diff --git a/ja/handbook/current.sgml b/ja/handbook/current.sgml deleted file mode 100644 index d835e4315e..0000000000 --- a/ja/handbook/current.sgml +++ /dev/null @@ -1,166 +0,0 @@ - - - - -最新のFreeBSDを追いかける - -

原作: &a.jkh;. - -

訳: &a.hanai;6 November 1996. - - - - -FreeBSD-current ってなに? - -

FreeBSD-current とは,文字通りに,日々変更されている FreeBSD のソース -のスナップショット以外の何ものでもありません.中には現在開発途上の -ソフトウェア, 実験的な変更、あるいは過渡的な機能などが含まれています. -また, この中に入っている機能がすべて次の公式リリースに入るとはかぎりません. -FreeBSD-current をソースからほとんど毎日コンパイルしている人はたくさん -いますが, 時期によっては FreeBSD-current はコンパイルさえできない状態に -なっていることもあります. これらの問題は一般的には可能な限り素早く解決 -されますが, FreeBSD-current のソースが不幸をもたらすか, それとも非常に -素晴らしい機能をもたらすかというのは文字通り, ある与えられた24時間の間 -のどの部分であなたがソースを手に入れたか, による場合もあります. - -誰が FreeBSD-current を必要としてるの? - -

FreeBSD-current は, 主に次の三つの重要なグループを対象としています. -ます. -

-

ソースツリーのある部分に関して活発に作業している FreeBSD - グループのメンバー. 彼らにとっては「最新のもの」にしておくのが - 絶対に必要なことなのです. - -

活発にテストをする FreeBSD グループのメンバー. - 彼らは, FreeBSD-current を「健全である」ことを出来るだけ確認す - るために種々の問題と戦うのに時間を費やすのを厭わない人々です. - 彼らはまた, 様々な変更に関する提案や FreeBSD の大まかな方向付 - けを行ないたいと思っている人々でもあります. - -

単に, 様々な事に目を向け, 参考のために (例えば,動かすた - めではなく 読むために) 最新のソースを使いたいと思って - いる FreeBSD (または他の) グループのまわりにいるメンバー. - これらの人々はまた, 時々コメントやコードを寄稿してくれます. - - -FreeBSD-currentに期待してはいけないことは? - -

-

なにか新しくカッコイイモノがあると聞き, 自分の周囲では - 一番にそれを持ちたいがためにリリース前のコードの断片を追いかけること. - -

バグを修正するための素早い方法. - -

我々によって「公式にサポートされている」こと. - - 私たちは3つの「公式な」FreeBSD-currentのグループの一つに実際に属する - 人々を助けるのにベストを尽くしますが, 技術的なサポートを行なうには - 単に「時間が足りない」のです. - これは我々が外の人を助けるのを好まない, ケチで意地悪い人間だと - いうことではなく (もしそうなら FreeBSD なんかやっていません), 文字通り - 我々は一日に400ものメッセージに答えかつ FreeBSD の作業をする - ことなど出来ない! ということなのです. もし, たくさんの質問に答えるか, - それとも FreeBSD を良くする作業を続けるかという選択が与えられた場合, - あなた方のほとんどは後者を支持する, と私は確信しています. - - -FreeBSD-currentを使う - -

- &a.current; と &a.cvsall; に加わって下さい. - これは単に良い考えであるというだけでなく, 必須のことなのです. - もし FreeBSD-current メーリングリストに入っていなければ, - 様々な人がシステムの現在の状態について述べているコメントを決して見ることは - ありませんし, 従って他の人が既に見つけて解決している多くの問題に戸惑っ - てあきらめてしまうでしょう. さらに言うと, システムを正常に保つため - の重要な情報を見逃してしまう可能性もあります. - - cvs-all メーリングリストでは, それぞれの変更についての - commit ログを見ることができますし, それに関して起こり得る副作用の - 情報を得ることができ, もう一つの加わるに値するメーリングリストです. - - これらのメーリングリストに入るには, &a.majordomo; へ - -subscribe freebsd-current -subscribe cvs-all - - と書いたメールを送って下さい. - オプションとして本文に `help' と書けば, Majordomo は我々がサポ - ートする様々なメーリングリストに参加/脱退する方法に関する詳しい - ヘルプを送ります. - -

ftp.FreeBSD.ORG からのソースの入手. 以下の3つの方法で行なうこと - が出来ます. - - -

下に述べられているを用いる. - 均一なレートの, 良質の TCP/IP 接続を持っていない人には, - これが一番いい方法でしょう. - -

を - - を用いて使用する. - これは 2 番目に推薦される方法です. なぜなら, cvsup によって一度全体 - を入手し, 後は変更されたところだけを入手することが出来るからです. - たくさんの人が自動的にソースを最新のもに保つために cvsup - を cron から起動しています. これを行なうための非常に簡単な - 方法は, 単に - - - pkg_add -f ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/cvsupit.tgz - - - とタイプすることです. - -

ftpを使う. FreeBSD-currentのソースツリーは常に - - に公開されています. - 我々はまた全体をcompress/tarして入手できる `wu-ftpd' を使ってい - ます. 例えば, - - usr.bin/lex - - があったとすると, - - ftp> cd usr.bin - ftp> get lex.tar.Z - - とすることにより, ディレクトリ全体(この場合, usr.bin/lex以下全体) - をcompressされたtarファイルとして入手することができます. - - - 以上のことをまとめると, 必要に応じて迅速なアクセスをする必要があり, - 接続のバンド幅が問題ではなければ cvsup か ftp を使いましょう. そう - ではなければ CTM を使いましょう. - - もしソースを, 眺めるだけでなく走らせるために入手しているので - あれば, 一部だけ選ぶのではなく, - current の全体を手に入れてください. - なぜなら, ソースの様々な部分が他の部分の更新に依存しており, 一部のみを - コンパイルしようとすると, ほぼ間違いなくトラブルを起こすからです. - - current をコンパイルする前に /usr/src にある Makefile - をよく読んでください. アップグレードの処理の一部として, - 少なくとも一回は最初に `' - を行なうべきでしょう. - &a.current; を読めば, 次のリリースへ向けて, 時々必要になる - 他のブートストラップの方法に関して常に最新情報を得ることが出来ます. - -

アクティブになって下さい! もしFreeBSD-currentを走らせているなら - 我々はそれに関するコメント, 特に拡張やバグ潰しに関する提案, を欲して - います. コードを伴う提案はもっとも歓迎されるものです! - - diff --git a/ja/handbook/cvsup.sgml b/ja/handbook/cvsup.sgml deleted file mode 100644 index 5d2521ebaa..0000000000 --- a/ja/handbook/cvsup.sgml +++ /dev/null @@ -1,618 +0,0 @@ - - - - -CVSup - -

原作: &a.jdp;. -

訳: &a.iwasaki;.27 February 1997. - -CVSup の紹介 - -

CVSup は, リモートのサーバホストにあるマスタ CVS リポジトリから -ソースツリーを配布し更新するためのソフトウェアパッケージです. FreeBSD -のソースは, カリフォルニアにある中心的な開発マシンの CVS リポジトリの -中でメンテナンスしています. CVSup を使用することで, FreeBSD ユーザは -簡単に自分のソースツリーを最新の状態にしておくことができます. - -

CVSup は pull モデルとよばれる更新のモデルを採用しています. -pull モデルでは, 各クライアントが更新したい場合に更新したい時点で, -サーバに更新の問い合わせをおこないます. サーバはクライアントからの -更新の要求を受け身の状態で待ちます. したがって, すべての更新は -クライアント主導でおこなわれます. サーバは頼まれもしない更新情報を -送るようなことはしません. ユーザは CVSup クライアントを手動で実行して -更新をおこなうか, cron ジョブを設定して定期的に自動実行する必要があります. - -

用語 "CVSup" のように大文字で表記しているものは, ソフトウェアパッケージ -全体を指します. 主な構成物は, 各ユーザマシンで実行するクライアントである -"cvsup", FreeBSD の各ミラーサイトで実行するサーバ "cvsupd" です. - -

FreeBSD の文書やメーリングリストを読んだ際に, sup についての言及を -見かけたかもしれません. sup は CVSup の前に存在していたもので, 同様の -目的で使われていました. CVSup は sup と同じように使用されており, 実際, -sup と互換性のあるコンフィグレーションファイルを使用します. -CVSup の方がより高速で柔軟性もあるので, もはや sup は FreeBSD -プロジェクトでは使用されていません. - -CVSup のインストール - -

FreeBSD 2.2 以降を使用している場合, CVSup をインストールするもっとも -簡単な方法は, FreeBSD の - または対応する を使うことです. どちらを使うかは, -CVSupを自分で作りたいかどうかによります. - -

FreeBSD-2.1.6 または 2.1.7 を使用している場合は, 残念ながら -FreeBSD-2.1.{6,7} には存在しないバージョンの C ライブラリが必要となるため -バイナリ package は使用できません. -しかし, は FreeBSD 2.2 とまったく同じように簡単に使うことができます. -単に tar ファイルを展開し, cvsup ディレクトリへ cd して "make install" -とタイプするだけです. - -

CVSup は で書かれているため, package と port 両方とも Modula-3 -ランタイムライブラリがインストールされていることが必要です. これらは -port の および package の にあります. これらのライブラリの port -や package に対して cvsup と同じ管理方法を取っていれば, CVSup の -port や package をインストールする際に, これらのライブラリも自動的に -コンパイルそして/またはインストールされます. - -

Modula-3 ライブラリはかなり大きく, これらの転送やコンパイルはすぐに -終わるものではありません. この理由から, 三つめの選択肢が提供されています. -以下のアメリカ合衆国にある配布サイトのどちらからでも, FreeBSD 用の -スタティックリンクされた CVSup 実行形式が入手可能です: - - - - (GUI 込みのクライアント). - - (GUI なしのクライアント). - - (サーバ). - - -また, 世界中にあるたくさんの FreeBSD からも入手可能です. - -

ほとんどのユーザはクライアントのみが必要になるでしょう. これらの -実行形式は完全に自己完結しており, FreeBSD-2.1.0 から FreeBSD-current -までの, どのバージョンでも動作します. - -

まとめると, CVSup をインストールするための選択肢は以下の通りです: - - - FreeBSD-2.2以降: スタティックバイナリ, port, package - FreeBSD-2.1.6, 2.1.7: スタティックバイナリ, port - FreeBSD-2.1.5 以前: スタティックバイナリ - - -CVSup のコンフィグレーション - -

CVSup の動作は, "supfile" と呼ばれるコンフィグレーションファイルで -制御します. FreeBSD-2.2 からは, supfile のサンプルがディレクトリ -の下にあります. 2.2 以前のシステムを使用している場合は, これらの -サンプルを -から入手することができます. - -

supfile には以下の cvsup に関する質問への答えを記述します: - - - - - - - - - -

次のセクションで, これらの質問に順番に答えながら典型的な supfile -を組み立てていきます. 最初に supfile の全体構造を説明します. - -

supfile はテキストファイルです. コメントは "#" から行末までです. -空行とコメントだけの行は無視します. - -

残りの各行には, ユーザが受け取りたいファイル群について記述します. -行の始めは, サーバ側で定義した論理的なファイルのグループである -「コレクション」の名称です. コレクションの名称を指定して, 欲しいファイル群を -サーバに伝えます. コレクション名の後には, ホワイトスペースで区切られた -0個以上のフィールドが続きます. これらのフィールドが上記の質問に対する -答えになります. フィールドには 2種類あります: flag フィールドと value -フィールドです. flag フィールドは "delete" や "compress" のような -単独のキーワードから成ります. また, value フィールドもキーワードで -始まりますが, キーワードの後にはホワイトスペースは入らず, "=" と -二つめの単語が続きます. 例えば, "release=cvs" は value フィールドです. - -

通常, supfile には受け取りたいコレクションを一つ以上指定します. -supfile を組み立てる一つの方法として, コレクション毎にすべての関係の -あるフィールドを明示的に指定する方法があります. しかし, これでは supfile -のすべてのコレクションに対してほとんどのフィールドが同じになるため, -行が非常に長くなってしまい不便になります. これらの問題を避けるため, -CVSup ではデフォルトを指定することのできるメカニズムが提供されています. -特殊な擬似コレクション名 "*default" で始まる行は, supfile 中の後続の -コレクションに対して使用する flag フィールドと value フィールドの -デフォルトを設定するために利用できます. 個々のコレクションで固有の値を -指定すると, デフォルト値を無効にできます. また "*default" 行を追加すると, -supfile の途中からデフォルト値の変更や追加が可能になります. - -

これまでの予備知識を基に, -のメインのソースツリーを受け取って更新するための supfile を -組み立ててみましょう. - - -どのファイルを受け取りたいのか?

CVSup を通して入手できるファイルは -「コレクション」と呼ばれる名前の付けられたグループにまとめられています. -利用可能なコレクションについては -で説明しています. ここでは, FreeBSD システムのメインのソースツリー全体 -を受け取るための設定例を紹介します. -輸出規制されている暗号化サポートのコード以外のすべてを含む "src-all" という -単一の大きなコレクションがあります. この例では私たちがアメリカ合衆国か -カナダにいるものと仮定します. その場合, "cvs-crypto" という一つの付化的な -コレクションで暗号化コードを入手することができます. supfile -を組み立てる最初のステップとして, これらのコレクションを一行に一つづつ -記述します: - - - src-all - cvs-crypto - - -

どのバージョンのものが欲しいのか?

CVSup を使用すると, かつて存在していたことのある, 事実上どのバージョンの -ソースでも受け取ることができます. これは cvsupd サーバがすべてのバージョンを含む -CVS リポジトリに基づいて動作することにより, 実現されています. -"tag=" および "date=" の value フィールドを使用して, 欲しいバージョンの -一つを指定します. - -

注意: "tag=" のフィールドの指定は正確に行うように十分注意 -してください. いくつかのタグは特定のコレクションに対してのみ有効です. -タグの綴りが違っていたり不適切なタグを指定すると, CVSupはユーザが消し -たくないファイルまで削除してしまいます. 特に "ports-*" のコレクション -に対しては "tag=." だけ を指定するようにしてください. - -

"tag=" フィールドはリポジトリ中のシンボリックタグを指定します. -tag には revision tag と branch tag の二種類があります. revision tag -は特定のリビジョンを指します. これは, 毎日同じ状態に保つことになります. -一方 branch tag は, ある時点での開発分流の最新のリビジョンを指します. -branch tag は特定のリビジョンを指定している訳ではないので, 今日と明日では -異なるリビジョンを参照することになるかもしれません. - -

以下はユーザが興味を持っていると思われる branch tag です: - - - - -

以下はユーザが興味を持っていると思われる revision tag です: - - - - -

注意: tag 名を示した通りにタイプされているか十分注意してく -ださい. CVSup は tag 名が正しいかどうかを見分けることはできません. tag -が間違っていた場合, たまたまファイルがまったく存在しない正しい tag が -指定されたものとしてCVSup は動作します. その場合は, 現在あるソースが削 -除されるでしょう. - -

branch tag を指定した際には, 通常はその開発分流の最新バージョンの -ファイルを受け取ります. いくらか前のバージョンを受け取りたい場合は, -"date=" の value フィールドを使って日付を指定することで, これを実現することが -できます. cvsup(1) のマニュアルページで, その方法を説明しています. - -

例として, FreeBSD-current を受け取りたいとします. 次の行を supfile -の始めに追加します: - - - *default tag=. - - -

"tag=" フィールドも "date=" フィールドも指定しなかった場合に -動き出す重要な特殊なケースがあります. そのケースでは, 特定のバージョンの -ファイルを受け取るのではなく, サーバの CVS リポジトリから実際の RCS -ファイルを直接受け取ります. 一般的に開発者はこの処理のモードが -好きなようです. 彼らのシステム上にリポジトリそのもののコピーを維持することで, -リビジョン履歴を閲覧し過去のバージョンのファイルを検査できるようになります. -しかし, これには大きなディスクスペースが必要になります. - -

どこから入手したいのか?

更新情報をどこから入手するかを cvsup に伝えるために "host=" -フィールドを使用します。 -のどこからでも入手できますが、ネット上での最寄りのサイトを選ぶべきでしょう。 -この例では、仮想上の FreeBSD 配布サイト "cvsup666.FreeBSD.org" を使用します: - - - *default host=cvsup666.FreeBSD.org - - -

CVSup を実行する前にホスト名を実在のものに変更する必要があります. -どのように cvsup を実行しても, この設定は "-h hostname" を -使用してコマンドラインで変更することができます. - -

自分のマシンのどこに置きたいのか?

"prefix=" フィールドは, cvsup に受け取ったファイルをどこに置くかを -伝えます. この例では, ソースファイルを直接メインのソースツリー -"/usr/src" に置きます. "src" ディレクトリはすでにファイルを受け取るために -選択したコレクションで暗黙に指定しているので, これは正しい仕様となります: - - - *default prefix=/usr - - -

どこに status ファイルを置きたいのか?

cvsup クライアントは "base" ディレクトリと呼ばれる場所に, ある -status ファイルを維持しています. すでに受け取った更新情報を追従し続け -ることで, これらのファイルは CVSup がより効果的に動作することを支援し -ます. 標準の base ディレクトリ "/usr/local/etc/cvsup" を使用します: - - - *default base=/usr/local/etc/cvsup - - -

supfile に指定がない場合は, この設定をデフォルトで使用しますので, -実際には上の行は必要ありません. - -

base ディレクトリが存在しない場合は作成しておきましょう. base -ディレクトリが存在しない場合, cvsup クライアントは実行を拒否します. - -

その他もろもろの supfileの設定: - -

通常 supfile に入れておくべき行がもう一つあります: - - - *default release=cvs delete use-rel-suffix compress - - -

"release=cvs" は, サーバがメインの FreeBSD CVS リポジトリから -その情報を取得するように指示します. ほとんどの場合はこのようにしておきますが, -ここでの説明の範疇をこえるような状況では他の指定をすることも可能です. - -

"delete" は CVSup にファイルを削除することを許可します. CVSup が -ソースツリーを完全に最新の状態に保てるようにするためには, これは常に -指定しておくべきでしょう. CVSup は, これらの責任範囲のファイルだけを -慎重に削除します. たまたま存在する他の余分なファイルについては, -まったく手をつけずに残しておきます. - -

"use-rel-suffix" は ... 神秘的なものです. これについて本当に -知りたい人は, cvsup(1) のマニュアルページをご覧ください. でなければ, -何も考えずに指定してみてください. - -

"compress" は通信チャネルで gzip 形式の圧縮の使用を有効にします. -ご使用のネットワーク接続が T1 speed 以上である場合, この圧縮を -使用しない方がよいかもしれません. そうでない場合は十分に役に立ちます. - -

supfile の例のまとめ: - -

以下は supfile の例の全体です: - - - *default tag=. - *default host=cvsup666.FreeBSD.org - *default prefix=/usr - *default base=/usr/local/etc/cvsup - *default release=cvs delete use-rel-suffix compress - src-all - cvs-crypto - - - -CVSup の実行 - -

さて, 更新の準備ができました. これを実行するコマンドラインは -実に簡単です: - - - cvsup supfile - - -

もちろん, ここでの "supfile" は作成したばかりの supfile -のファイル名です. X11 環境で実行するものと仮定して, cvsup は -通常の操作に必要なボタンを持つ GUI ウィンドウを表示します. -"go" ボタンを押して, 実行を監視してください. - -

この例では実際の "/usr/src" ツリーを更新しているので, cvsup -にファイルを更新するのに必要なパーミッションを与えるために, ユーザ root -で実行する必要があります. コンフィグレーションファイルを作ったばかりで, -しかも以前にこのプログラムを実行したことがないので, 神経質になるのは -無理もない話だと思います. 大切なファイルに触らずに試しに実行する簡単な -方法があります. どこか適当な場所に空のディレクトリを作成して, -コマンドラインの引数で指定するだけです: - - - mkdir /var/tmp/dest - cvsup supfile /var/tmp/dest - - -

指定したディレクトリは, すべての更新されるファイルの -更新先ディレクトリとして使用します. CVSup は "/usr/src" の下の -ファイルを検査しますが, 変更や削除はまったくおこないません. -かわりに "/var/tmp/dest/usr/src" に更新されたすべてのファイルが -置かれるようになります. この方法で実行した場合は, CVSup は base -ディレクトリの status ファイルを更新せずにそのままにします. -これらのファイルの新しいバージョンは指定されたディレクトリ -に書き込まれます. "/usr/src" の読み取り許可がある限り, このような -試し実行のためにユーザ root になる必要はありません. - -

X11 を利用していないとか単に GUI が気に入らない場合は, cvsup -起動時にコマンドラインに二つほどオプションを追加する必要があります: - - - cvsup -g -L 2 supfile - - -

"-g" オプションは cvsup に GUI を使用しないように伝えます. X11 -を利用していない場合には自動的に指定されますが, そうでない場合は -明示的に指定します. - -

"-L 2" オプションは cvsup にファイル更新中の詳細情報をプリントアウト -するように伝えます. 冗長性には "-L 0" から "-L 2" までの三つのレベル -があります. デフォルトは 0 であり, エラーメッセージ以外はまったく出力 -しません. - -

たくさんの他のオプション変数があります. それらの簡単な一覧は -"cvsup -H" で表示されます. より詳しい説明はマニュアルページをご覧ください. - -

動作している更新の方法に満足したら, cron(8) を使って cvsup を定期的に -実行させる準備をすることができます. cron から起動する際には, 明示的に -cvsup が GUI を使わないようにする必要があります. - -CVSup ファイルコレクション - -

CVSup 経由で入手できるファイルコレクションは階層的に組織化されています. -いくつか大きなコレクションがあり, それらは小さなサブコレクションに -分割されています. 大きなコレクションは, そのサブコレクション毎に -受信することと同じことになります. 下の一覧ではコレクション間の階層関係を -字下げして表現します. - -

最も一般的に使用するコレクションは -cvs-all release=cvs -メインの FreeBSD CVS リポジトリであり, 輸出規制された暗号化コードは含まれていません. -

- - distrib release=cvs - FreeBSD の配布とミラーに関連するファイルです. - doc-all release=cvs - FreeBSD ハンドブックおよびその他のドキュメントのソースです. - ports-all release=cvs - FreeBSD の ports コレクションです. -

- - ports-archivers release=cvs - アーカイビングのツール. - ports-astro release=cvs - 天文学関連の ports. - ports-audio release=cvs - サウンドサポート. - ports-base release=cvs - /usr/ports のトップにあるその他のファイル. - ports-benchmarks release=cvs - ベンチマークプログラム. - ports-biology release=cvs - 植物学関連のプログラム. - ports-cad release=cvs - CAD ツール. - ports-chinese release=cvs - 中国語サポート. - ports-comms release=cvs - 通信ソフトウェア. - ports-converters release=cvs - 文字コードコンバータ. - ports-databases release=cvs - データベース. - ports-deskutils release=cvs - コンピュータが発明される前に卓上で使われていたものたち. - ports-devel release=cvs - 開発ユーティリティ. - ports-editors release=cvs - エディタ. - ports-emulators release=cvs - 他の OS のエミュレータ. - ports-games release=cvs - ゲーム. - ports-german release=cvs - ドイツ語サポート. - ports-graphics release=cvs - グラフィックユーティリティ. - ports-japanese release=cvs - 日本語サポート. - ports-korean release=cvs - 韓国語サポート. - ports-lang release=cvs - プログラミング言語. - ports-mail release=cvs - メールソフトウェア. - ports-math release=cvs - 数値計算ソフトウェア. - ports-mbone release=cvs - MBone アプリケーション. - ports-misc release=cvs - 色々なユーティリティ. - ports-net release=cvs - ネットワーキングソフトウェア. - ports-news release=cvs - USENET ニュースのソフトウェア. - ports-plan9 release=cvs - Plan9 からの色々なプログラム. - ports-print release=cvs - 印刷ソフトウェア. - ports-russian release=cvs - ロシア語サポート. - ports-security release=cvs - セキュリティユーティリティ. - ports-shells release=cvs - コマンドラインシェル. - ports-sysutils release=cvs - システムユーティリティ. - ports-textproc release=cvs - 文書処理ユーティリティ(デスクトップパブリッシングは含まない). - ports-vietnamese release=cvs - ベトナム語サポート. - ports-www release=cvs - World Wide Web 関連のソフトウェア. - ports-x11 release=cvs - X window システムをサポートする ports. - ports-x11-clocks release=cvs - X11 上で動作する時計の数々. - ports-x11-fm release=cvs - X11 上で動作するファイラ. - ports-x11-fonts release=cvs - X11 のフォントとフォントユーティリティ. - ports-x11-toolkits release=cvs - X11 のツールキット. - ports-x11-wm release=cvs - X11 のウィンドウマネージャ. - - src-all release=cvs - メインの FreeBSD ソース群であり, 輸出規制された暗号化コードは含まれていません. -

- - src-base release=cvs - /usr/src のトップにあるその他のファイル. - src-bin release=cvs - シングルユーザモードで必要なユーザユーティリティ - (/usr/src/bin). - src-contrib release=cvs - FreeBSD プロジェクト外部からのユーティリティおよびライブラリ, - 比較的無修正 (/usr/src/contrib). - src-etc release=cvs - システムコンフィグレーションファイル (/usr/src/etc). - src-games release=cvs - ゲーム(/usr/src/games). - src-gnu release=cvs - GNU Public License 下にあるユーティリティ (/usr/src/gnu). - src-include release=cvs - ヘッダファイル (/usr/src/include). - src-kerberosIV release=cvs - KerberosIV セキュリティパッケージ (/usr/src/kerberosIV). - src-lib release=cvs - ライブラリ (/usr/src/lib). - src-libexec release=cvs - システムプログラムであり, 通常は他のプログラムから実行される - (/usr/src/libexec). - src-release release=cvs - FreeBSD の release を構築するために必要なファイル (/usr/src/release). - src-sbin release=cvs - シングルユーザモード用のシステムユーティリティ(/usr/src/sbin). - src-share release=cvs - 多様なシステム間で共有可能なファイル (/usr/src/share). - src-sys release=cvs - カーネル (/usr/src/sys). - src-tools release=cvs - FreeBSD の保守用の色々なツール (/usr/src/tools). - src-usrbin release=cvs - ユーザユーティリティ (/usr/src/usr.bin). - src-usrsbin release=cvs - システムユーティリティ (/usr/src/usr.sbin). - - www release=cvs - World Wide Web のデータ用のソースです. - -cvs-crypto release=cvs -輸出規制された暗号化コードです. -

- - src-crypto release=cvs - 輸出規制された FreeBSD プロジェクト外部からのユーティリティおよび - ライブラリ, 比較的無修正 (/usr/src/crypto). - src-eBones release=cvs - Kerberos および DES (/usr/src/eBones). - src-secure release=cvs - DES (/usr/src/secure). - -distrib release=self -CVSup サーバ自身のコンフィグレーションファイルです. CVSup ミラーサイトが使用します. -gnats release=current -GNATS バグトラッキングデータベースです. -mail-archive release=current -FreeBSD 関連メーリングリストのアーカイブ. -www release=current -インストールされた World Wide Web のデータです. WWW ミラーサイトが使用します. - - -詳細について - -

CVSup の FAQ や CVSup に関するその他の情報については - をご覧ください. - -

CVSup のほとんどの FreeBSD 関連の議論は &a.hackers; で -おこなわれています. ソフトウェアの新しいバージョンは &a.announce; で -アナウンスされます. - -

質問とバグ報告はプログラムの作者, へ -送ってください. diff --git a/ja/handbook/cyclades.sgml b/ja/handbook/cyclades.sgml deleted file mode 100644 index 937cc6f93f..0000000000 --- a/ja/handbook/cyclades.sgml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - -cy ドライバのコンフィグ - -

原作: &a.alex;.6 June 1996. -

訳: &a.yuki;.6 September 1996. - - Cyclades社のマルチポートカードは, 他のマルチポートカードが - 使うsioの代わりにcyドライバを使います. - コンフィグレーションは非常に簡単で, - - - cy デバイスをあなたの - に足します. - (注意. あなたのirqやiomemの設定がが違っているかもしれません) - - -device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr - - - 新しいカーネルの をします. - - - を次(8ポートと仮定しています.)のように打って作ります: - - -# cd /dev -# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done - - - もし, 必要なら - シリアルデバイス(ttyd)とそっくりにコピーして - エントリを作り, - ttydの代わりにttycを使います. 例: - - -ttyc0 "/usr/libexec/getty std.38400" unknown on insecure -ttyc1 "/usr/libexec/getty std.38400" unknown on insecure -ttyc2 "/usr/libexec/getty std.38400" unknown on insecure -[...] -ttyc7 "/usr/libexec/getty std.38400" unknown on insecure - - - 新しいカーネルで立ち上げます. - - diff --git a/ja/handbook/development.sgml b/ja/handbook/development.sgml deleted file mode 100644 index 97bba48576..0000000000 --- a/ja/handbook/development.sgml +++ /dev/null @@ -1,103 +0,0 @@ - - - - -FreeBSDの開発モデル - -

原作: &a.asami;. -18 October 1996. - -

訳: &a.asami;. -31 October 1996. - -

FreeBSDの開発は非常に開かれた, 柔軟性のあるプロセスです. を見ていただければわかる -とおり, FreeBSDは文字通り世界中の何百という人々の努力によって開発され -ています. 新しい開発者はいつでも大歓迎ですので, &a.hackers; にメールを -送ってください. また, 大勢で議論するよりは一人で静かに開発にふけりた -いという人は私たちのFTPサイトを使ってパッチや開発中のソースを公開してくださっ -て結構です. &a.announce; もありますので, 他のFreeBSDユーザに自分のやっ -ていることを宣伝したい時にはどうぞ使ってください. - -あと, FreeBSDプロジェクトとその開発プロセスについて, どなたにも知って -いていただきたいのは以下のようなことです. - - - -CVSリポジトリ - -

FreeBSDのソースツリーは -(Concurrent Versions System)によってメンテナンスされています. CVSはソー -スコード管理用のフリーソフトウェアで, FreeBSDのリリースにも含まれてい -ます. FreeBSDのは米国カリフォルニア州のコンコルド市に存在 -し, そこから世界中のたくさんのミラーサイトにコピーされています. CVSツ -リーそのもの, そしてそのチェックアウトされたバージョンであるはあな -たのマシンにも簡単に取ってくることができます. これについてはの章をご覧ください.

- -ソースツリー管理者 - -

はCVSツリー -への書き込み権限を持っている人, つまりFreeBSDのソースに変更を加えるこ -とができる人です. (CVSでリポジトリに変更を加えるにはcvs(1) -``commit'' というコマンドを使うので, これらの人々は英語では -``committers'' と呼ばれます.) 開発者にコードを送って見てもらうのに一 -番いい方法はコマンドを使うことです. もし, 何か問題があって -send-prが使えないならにメー -ルを送っていただいても結構です.

- -FreeBSDコアチーム - -

はFreeBSDプロジェク -トが会社だとすると取締役会にあたるものです. コアチームとして一番重要 -な役割はFreeBSDプロジェクトが全体としてよい方向に向かっていることを確 -認することです. 責任感あふれる開発者を上記のソースツリー管理者として -招くこと, また仕事上の都合などでコアチームをやめた人たちの後任を見つけ -ることもコアチームの役割です. 現在のコアチームのほとんどは最初は単な -る一開発者としてプロジェクトに関わりはじめ, ずるずるといつのまにか深み -にはまってしまった人です.

- -

コアチームのうち何人かは特定の -を持っており, システムのうち一部に特に重点をおいて面倒を見ています. -また, 忘れてほしくないのはコアチームのほとんどはFreeBSDについてはボラ -ンティアであり, FreeBSDプロジェクトからは何ら金銭的な支援を受けていな -いということです. ですから, ここでの「責任」は「保証されたサポート」 -ではありません. そういう意味で, 上記の取締役会という例えはあまりよく -ないかもしれません. むしろ, FreeBSDのために人生を棒に振ってしまった人 -の集まりといった方が正しいかも.... ;)

- -その他のコントリビュータ - -

最後になりますが, もっとも重要で多数をしめる開発者はフィードバック -やバグフィクスをどんどん送ってくれるユーザ自身です. FreeBSDの開発に外 -郭から関わっていきたいという人は &a.hackers; (を見てください) に参加するといいでしょう.

- -

FreeBSDのソースツリーに入っている何かを書いた人のは日に日に長くなっています. あ -なたも今日, 何か送ることからはじめてみませんか? :-)

- -

もちろんFreeBSDに貢献するにはコードを書くほかにもいろいろな方法があ -ります. 助けが求められている分野については, このハンドブックのの節を見てください.

- - - -ひとことで言うと, FreeBSDの開発組織はゆるやかな同心円状になっています. -ともすると中央集権的に見えがちなこの組織は, FreeBSDのユーザが -きちんと管理されたコードベースを容易に追いかけられるようにデザインされ -ているもので, 貢献したいという人を締め出す意図は全くありません! 私た -ちの目標は安定したオペレーティングシステムと簡単にインストールして使う -ことのできるを提供することであ -り, この方法は結構うまくはたらくのです. - -これからFreeBSDの開発にたずさわろうという人に, 私たちが望むことはただ -一つです: FreeBSDの成功を継続的なものにするために, 現在の開発者と同じ -ような情熱を持って接してください! diff --git a/ja/handbook/dialout.sgml b/ja/handbook/dialout.sgml deleted file mode 100644 index 42ce34bac5..0000000000 --- a/ja/handbook/dialout.sgml +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - -ダイアルアウトサービス - -

原作: FAQ からの情報 -

訳: 丸山剛司 . -31 December 1996. - -以下はモデムを利用して他のコンピュータと接続する方法を説明しています. -これはリモートホストとターミナル接続を確立するための適切な方法です. -

これは BBS に接続するときによく使います. -

この種の接続は PPP 接続に問題がある場合, Internet 上にあるファイルを -転送するのに非常に役に立ちます. FTP で何らかのファイルを転送したいのに -PPP 接続を確立できない場合は, ファイルを FTP 転送するためにターミナルセッション -を利用します. そして ZMODEM を利用してファイルを転送します. - - -

- あなたのシステムで - chmod 4511 /usr/bin/tip - - このコマンドは - 私の Hayes モデムはサポートされていません, どうしよう? - -

- 実際, /etc/remote ファイル中で - ``/usr/src/usr.bin/tip/tip の下の - これらの AT コマンドを入力するには? -

- /etc/remote ファイルの中で ``/dev/cuaa0 - に接続されている場合, 次のようにします: - - cuaa0:dv=/dev/cuaa0:br#19200:pa=none - - モデムがサポートする最大の bps レートを br フィールドに使います. - そして ``/dev/cuaa0がシステムに存在しない場合は, 次のようにします: - - cd /dev - ./MAKEDEV cuaa0 - -

- または root になって以下のように cu コマンドを実行します: - - cu -l ``line'' -s ``speed'' - - line にはシリアルポートを指定します (例えば /dev/cuaa0). - そして speed には接続する速度を指定します (例えば 57600). - その後 AT コマンドを実行したら, ~. と入力すれば終了します. - - - pn 機能の -

- 電話番号 (pn) 機能の中での /etc/phone にある電話番号を参照するように伝えます. - しかし /etc/remote のような - 設定ファイルの中では特殊文字となります. - バックスラッシュを使ってエスケープをおこないます: - - pn=\@ - - - - コマンドラインから電話番号を指定するには? -

- ``/etc/remote - に追加します. 例えば次のようにします: - - tip115200|Dial any phone number at 115200 bps:\ - :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: - tip57600|Dial any phone number at 57600bps:\ - :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: - - - そして `` - cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: - - そして `` - 毎回 bps レートを入力しなければいけませんか? -

- - ターミナルサーバを経由して複数のホストへアクセスしたいんです. - -

- 毎回接続されるのを待って ``/etc/remote に次のようなエントリを追加します: - - pain|pain.deep13.com|Forrester's machine:\ - :cm=CONNECT pain\n:tc=deep13: - muffin|muffin.deep13.com|Frank's machine:\ - :cm=CONNECT muffin\n:tc=deep13: - deep13:Gizmonics Institute terminal server:\ - :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: - - - これで, `` - tip を使ってそれぞれのサイトの複数の回線に接続できますか? - -

- これは大学に電話回線がいくつかあって数千人の学生が接続しようとする - 場合によくある問題です. -

- あなたの大学のエントリを /etc/remote ファイルに作成して, - @ を使います: - - big-university:\ - :pn=\@:tc=dialout - dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: - - - そして /etc/phone ファイルに大学の電話番号の一覧を書きます: - - big-university 5551111 - big-university 5551112 - big-university 5551113 - big-university 5551114 - - - - CTRL+P を 1回送るために 2度押す必要があるのはなぜ? - -

- CTRL+P は通常 ``force (強制)'' 文字であり, $HOME/.tiprc に次のように定義することで, - 任意の文字を force 文字として利用できます: - - force= - - - - 打ち込んだ文字が突然すべて大文字になりました?? -

- CTRL+A を押してしまい、caps-lock キーが壊れている場合のために設計された - tip の ``raise character'' モードに入ったのでしょう. - 既に述べたように - force=^^ - raisechar=^^ - - ^^ は SHIFT+CTRL+6 です. - - - -

- もし他の UNIX のシステムと接続しているなら, - ~p <ローカルのファイル名> [<リモートのファイル名>] - ~t <リモートのファイル名> [<ローカルのファイル名>] - - - この方法ではエラーチェックをおこないませんので, zmodem - などの他のプロトコルを使った方がよいでしょう. - - - -

- ファイルを受信するには, リモート側で送信プログラムを起動します. - そして `` diff --git a/ja/handbook/dialup.sgml b/ja/handbook/dialup.sgml deleted file mode 100644 index 7d5bdef2db..0000000000 --- a/ja/handbook/dialup.sgml +++ /dev/null @@ -1,821 +0,0 @@ - - - - - -ダイアルインサービス - -

原作: &a.ghelmer;. -

訳: &a.max;.6 September 1996. - -このドキュメントでは, FreeBSD で外部からのモデムによるアクセスを受け付 -けるための設定に関してまとめてあります. このドキュメントは筆者が -FreeBSD 1.0, 1.1 および 1.1.5.1 での経験と, 他の UNIX 系 OS での経験を -基に書いたものですが, 必ずしも十分な内容でないかもしれませんし, 掲載し -た実例もあなたが今お使いの環境とは一致しないかもしれません. また, 筆者 -はこのドキュメントに従って行われた作業でデータが失われたりシステムが破 -壊されるようなことがあっても, 一切責任をとれません. - -設定を始める前に

- -筆者は, 読者が FreeBSD に関する基本的な知識をもっていることを仮定して -このドキュメントをまとめました. まず, FreeBSD が既にインストールされ -ていて, UNIX 系環境においてファイルの編集の方法やシステムに付属のマニュ -アルを参照する方法を知っている必要があります. また, 以下に示すように, - FreeBSD の特定のバージョンが必要となりますし, いくつかの用語に関する -知識, そしてモデムや多少の配線に関する知識も必要となります. - -FreeBSD のバージョン -

- -まず, FreeBSD のバージョンは 1.1 以上を使用してください (バージョン -2.x でもかまいません. ). FreeBSD 1.0 には, 2種類のシリアル ドライバ -が含まれているので, 混乱の元となり得ます. また, FreeBSD のシリアル -ディバイス ドライバ (用語解説 -

- -以下, 簡単にいくつかの用語について解説しておきます. - - - - - -これらの用語やデータ通信一般に関して, より詳しい情報が必要な場合は, -外づけモデムと内蔵モデムについて -

- -ダイアルアップのサービスに関していえば, 外づけのモデムの方が適している -ようです. これは, 多くの外づけのモデムは設定を不揮発ラムに書き込んで半 -永久的に保存することができますし, また RS-232 に関する重要な情報を知る -ための点滅するライトによるインディケータが搭載されているからです. 点滅 -するライトは, システムを見に来た訪問者に強い印象を与えるという効果だけ -でなく, モデムが適切に動作しているかどうかを知るためにも有効です. - -一方, たいていの内蔵型のモデムには不揮発性ラムが搭載されていないため, -ディップ スイッチの変更以外に設定を保存する方法がありません. また, も -しインディケータがついていても, おそらくコンピュータのケース カバーが -外されていなければその状態を確認するのは難しいでしょう. - -モデムとケーブル -

- -以下のことに関して, 予め知っておく必要があります. - - - - コンピュータとモデムの間での通信が行えるようにするための接続方 -法. (内蔵型の場合は接続の必要はありません) - - お使いのモデムのコマンドについての知識, あるいはコマンドの解説 -の在処 - - (通信ソフトを使っての) モデムの不揮発ラムに保存可能な設定の変更 -方法 - - - -1番目のモデムの接続はたいてい簡単に行えるはずです. ほとんどのストレー -ト シリアル ケーブルが使えるでしょう. 使用すべきケーブルは, 両端に適 -切なコネクタ (DB-25 または DB-9 の雄または雌) のついた, DCE-DTE 間接 -続用のもので, 以下の信号線が接続されていなければなりません. - - - Transmitted Data ( Received Data ( Request to Send ( Clear to Send ( Data Set Ready ( Data Terminal Ready ( Carrier Detect ( Signal Ground ( - -FreeBSD で 2400bps 以上の転送速度を利用する場合には, フロー制御のため -に シリアル インタフェースについて -

- -FreeBSD では, NS8250-, NS16450-, NS16550- および NS16550A- に基づ -いた EIA RS-232C (CCITT V.24) 規格のシリアル インタフェースをサポート -しています. 8250 および 16450 ベースのディバイスには1文字のキャラクタ -バッファが搭載されています. また, 16550 系のディバイスには, 16文字分 -のバッファが搭載されていて, はるかによいパフォーマンスを得られます. -(ただし, 無印の 16550 では, バグがあって 16 文字バッファが利用できませ -んので, 可能であれば 16550A 系のディバイスを利用してください. ) 1文字 -のバッファの物は, 16550 系のものと比べて OS にかける負荷が大きいので, -16550A 系ディバイスの利用を強く推奨します. 多数のシリアル ポートを利 -用する場合や, 負荷の高いシステムにおいては, 16550A 系ディバイスを使う -ことで, エラー発生率を低く押さえることができます. - -概要 -

- -FreeBSD は以下の手順でモデムからのログインを受付ます. /dev/ttyd0) がオープンされるのを辛抱強く待ちます. - - 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 - - -ユーザがモデムに電話をかけ, モデム同士が接続されると, モデムの /usr/bin/login を起動して, パスワードの入力を要求し, その -後ユーザのシェルを起動します. - -それでは, 続いて設定についての解説です. - -Kernel の設定 -

- -通常, FreeBSD の kernel は, PC-DOS の世界で /sbin/dmesg コマンドを使って, ブート時の出力メッセージ -を確認してください. 特に, -/sbin/dmesg | grep 'sio' - - -たとえば, シリアル ポートを四つ持つシステムの場合は, 以下のようなシリ -アル ポートに関するメッセージが kernel によって表示されます. - - -sio0 at 0x3f8-0x3ff irq 4 on isa -sio0: type 16550A -sio1 at 0x2f8-0x2ff irq 3 on isa -sio1: type 16550A -sio2 at 0x3e8-0x3ef irq 5 on isa -sio2: type 16550A -sio3 at 0x2e8-0x2ef irq 9 on isa -sio3: type 16550A - - -もし, kernel に正常に認識されないポートがある場合は, おそらくカスタマ -イズした kernel を構築する必要があるでしょう. - -kernel 構築と構築のための設定に関しては, BSD System Manager's Manual -の ``Building Berkeley Kernels with Config (config コマンドによる BSD -kernel の構築) '' [ソース ファイルは -/usr/src/share/doc/smm にあります]と ``FreeBSD -Configuration Options'' [ /sys/conf/options および -/sys/arch/conf/options.arch の -archの部分をたとえばi386としたファイル ] を参照 -してください. - -kernel の設定と構築をするためには, kernel のソース - (FreeBSD 1.1 では srcdist/srcsys.??, FreeBSD 1.1.5.1 では -srcdist/sys.??, またFreeBSD 2.0 では総てのソース)を展開 -する必要があります. - -まだ自分のシステムの kernel 用のコンフィギュレーション ファイルを作っ -ていない場合は, /sys/i386/conf -device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr -device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr -device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr -device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr - - -システムに搭載されていないディバイスに関する記述は, コメントアウトまた -は削除してしまってかまいません. Boca の BB2016 のようなマルチポートの -シリアル ボードをお持ちの場合は, -できませんので注意が必要です. (マルチポートのシリアル ボードの -場合は, 複数の 16550A ベースのポートで一つまたは二つの IRQ を共有する -ための機構を備えています. ) - -コンフィギュレーション ファイルの編集が終わったら, ``Building -Berkeley Kernels with Config (config コマンドによる BSD kernel の構築)'' -および ディバイス スペシャル ファイル -

- -kernel に組み込まれているほとんどのディバイスは, /dev ディレ -クトリにある, 「ディバイス スペシャル ファイル」を介してアクセスされ -ます. /dev/ttyd? およ -び, 発信用の /dev/cua0? が利用されます. さらに, FreeBSD の -1.1.5 以降では, 初期化ディバイス (/dev/ttyi? と -/dev/cuai0?)およびロッキング ディバイス (/dev/ttyld? と -/dev/cual0?) も合わせて利用されます. 初期化ディバイスは, 通信 -ポートがオープンされる度に, そのポートの初期設定を行うために使われます. -たとえば, CTS/RTS によるフロー制御を行うモデムが接続されてい -る場合の ディバイス スペシャル ファイルの作成 -

- -ディバイス スペシャル ファイルの管理は, ディレクトリ /dev -にあるシェル スクリプト /dev/dev/ttyd? のディバイス ファイルだけでなく, -/dev/cua0? (および FreeBSD 1.1.5 以降では総ての初期化ディバイ -スとロッキング ディバイスのスペシャル ファイル) も作成します. さらに, -もしシリアル端末用のスペシャル ファイル/dev/tty0? が存在すれ -ば, それらの削除も行います. - -ディバイス スペシャル ファイルの作成後, これらのファイルのパーミション -が適切に設定されていて, これらのディバイスを利用してもよいユーザのみが -読み書きできるようになっていることを確認してください. (特に -/dev/cua* のパーミションには注意を払ってください. ) この確認 -を怠ると, 一般のユーザがあなたのモデムを使うことができるようなことにな -りかねません. デフォルトの /dev/cua* のパーミションは, 以下の -ようになっていて, たいていの場合適切なものだと思います. - - -crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01 -crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01 -crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01 - - -上の設定では, ユーザ 設定ファイル -

- -FreeBSD のシステムへのダイアル アップによるアクセスを実現するために編 -集が必要と思われる設定ファイルが, /etc ディレクトリに三つあ -ります. まず, /etc/gettytab には, -/usr/libexec/getty デーモンの設定を記述します. つぎに, -/etc/ttys に保存されている情報から, /sbin/init はど -の /etc/rc.serial スクリプトに, それ以前のものならば -/etc/rc.local スクリプトにシリアル ポートの初期化のためのコマ -ンドを記述することができます. - -UNIX にダイアル アップ モデムを接続する方法には, 二つの考え方がありま -す. 一つの方法は, ダイアル インしてくるユーザの接続速度に関係なく, 常 -にモデムとローカルのコンピュータの RS-232 インタフェースの接続速度を一 -定に保つように設定する方法です. この設定の長所は, ユーザがダイアル イ -ンして接続されると, 即座にシステムからのログイン プロンプトが送信され -るということです. 短所は, システムが実際のモデム間の速度を知ることがで -きないために, Emacs のようなフル スクリーンのプログラムが, 端末との接 -続速度が遅い場合でも, そのような場合に効果的な方法で画面出力を行わない -点です. - -もう一つは, モデムの RS-232 インタフェースとコンピュータの接続速度を, -モデム間の接続速度に応じて変化させるような設定です. たとえば, モデム間 -の接続が V.32bis (14.4 Kbps) ならば, モデムとコンピュータの間の接続を -19.2 Kbps とし, モデム間の接続が 2400 bps の時には, モデムとコンピュー -タ間も 2400 bps で接続するような設定をします. この場合, <Enter> キーを繰り返し押さなければならない -ということを知っていると仮定しています. もし接続速度が間違っている場合, -/etc/gettytab -

- -/etc/gettytab は, 固定速度の設定 -

- -モデムとコンピュータ間の通信速度を固定して使う場合, おそらく -/etc/gettytab に特に変更を加える必要はないはずです. - -可変速度の設定 -

- -/etc/gettytab に記述する必要があります. もし, 2400 bps のモ -デムをお使いになるのであれば, 既存の -# -# Fast dialup terminals, 2400/1200/300 rotary (can start either way) -# -D2400|d2400|Fast-Dial-2400:\ - :nx=D1200:tc=2400-baud: -3|D1200|Fast-Dial-1200:\ - :nx=D300:tc=1200-baud: -5|D300|Fast-Dial-300:\ - :nx=D2400:tc=300-baud: - - -高速モデムをお使いの場合は, おそらく /etc/gettytab に新たなエ -ントリを追加する必要があります. 以下の例は, 14.4 Kbps のモデムを, 最 -大インタフェース速度を 19.2 Kbps として利用するためのエントリです. - - -# -# Additions for a V.32bis Modem -# -um|V300|High Speed Modem at 300,8-bit:\ - :nx=V19200:tc=std.300: -un|V1200|High Speed Modem at 1200,8-bit:\ - :nx=V300:tc=std.1200: -uo|V2400|High Speed Modem at 2400,8-bit:\ - :nx=V1200:tc=std.2400: -up|V9600|High Speed Modem at 9600,8-bit:\ - :nx=V2400:tc=std.9600: -uq|V19200|High Speed Modem at 19200,8-bit:\ - :nx=V9600:tc=std.19200: - - -上記の例を利用した場合, FreeBSD 1.1.5 以降ではパリティなし, 8ビットの -接続が行われます. FreeBSD 1.1 では, のエントリに追加することで, パリティなし, -8ビットの接続が行われますが, このパラメータを追加しなければ接続は偶数 -パリティ, 7ビットになります. - -上記の例では, まず 19.2 Kbps (V.32bis) によるモデムとコンピュータ間の -接続を試み, 続いて 9600 bps (V.32), 2400 bps, 1200 bps, 300 bpsと順に -試み, 再び 19.2 Kbps による接続を試みるという循環に入ります. この接続 -速度の循環は, -# -# Additions for a V.32bis or V.34 Modem -# Starting at 57.6 Kbps -# -vm|VH300|Very High Speed Modem at 300,8-bit:\ - :nx=VH57600:tc=std.300: -vn|VH1200|Very High Speed Modem at 1200,8-bit:\ - :nx=VH300:tc=std.1200: -vo|VH2400|Very High Speed Modem at 2400,8-bit:\ - :nx=VH1200:tc=std.2400: -vp|VH9600|Very High Speed Modem at 9600,8-bit:\ - :nx=VH2400:tc=std.9600: -vq|VH57600|Very High Speed Modem at 57600,8-bit:\ - :nx=VH9600:tc=std.57600: - - -もし, お使いの CPU が低速のものであったり, CPU に対する負荷が高い場合 -で, 16650A 系のシリアル ポートをお使いでない場合, 57.6 Kbps の接続に -おいて, sio の ``silo'' エラーが発生するかもしれません. - -/etc/ttys -

- -/etc/ttys には, /etc/ttys は, /etc/ttys の既存の行を変更するか, あるいは新しい行を追加して, - -ttyd0 "/usr/libexec/getty xxx" dialup on - - -1番目の項目は, このエントリで対象とするディバイス スペシャル ファイル -です. 上の例では /dev/ttyd0"/usr/libexec/getty - (/etc/ttys の修正がすんだら, 以下のようなコマンドを使って -/etc/ttys を -読み込み直させてください. - - -kill -1 1 - - -ただ, もし初めてシステムを設定しているのであれば, モデムが適切に設定さ -れて接続されるまでは, 固定速度の設定 -

- -速度を固定する設定では, /etc/ttys の中で, -ttyd0 "/usr/libexec/getty std.19200" dialup on - - -別の速度でモデムのポートのスピードを固定したい場合は, -/etc/gettytab から適切なエントリを選んで, 上の例の -std. として, 適切な速度のも -のに置き換えてください. - -可変速度の設定 -

- -可変速度の設定では, /etc/gettytab -の中の適切な「自動速度調整」の初期設定のエントリを参照していなければな -りません. たとえば, もし前述の 19.2 Kbps から接続を試みる可変速度の設 -定例 ( -ttyd0 "/usr/libexec/getty V19200" dialup on - - -/etc/rc.serial または /etc/rc.local -

- -V.32, V.32bis または V.34 モデムのような高速モデムを利用する場合, ハー -ドウェア (RTS/CTS) フロー制御を行う必要があります. FreeBSD -kernel のモデム ポートにハードウェア フロー制御のフラグを設定するため -の /etc/rc.serial に, FreeBSD 1.1 では /etc/rc.local に -記述できます. - -たとえば, FreeBSD 1.1.5.1 の /etc/rc.serial のサンプルは以下 -のとおりです. - - -#!/bin/sh -# -# Serial port initial configuration - -stty -f /dev/ttyid1 crtscts -stty -f /dev/cuai01 crtscts - - -この例では, /etc/rc.local に追加されていました. - - -# Set serial ports to use RTS/CTS flow control -stty -f /dev/ttyd0 crtscts -stty -f /dev/ttyd1 crtscts -stty -f /dev/ttyd2 crtscts -stty -f /dev/ttyd3 crtscts - - -FreeBSD 1.1 には初期化のためのディバイス スペシャル ファイルがないので, -ディバイス ファイルそのものにフラグを設定して, その後はフラグをクリア -してしまうような極悪人が現れないことを願うしかありません. - -モデムの設定 -

- -もし, あなたのモデムがパラメータを不揮発ラムに保存できるタイプならば, -PC-DOS 上の Telix や FreeBSD 上の - - 接続時に 接続時に 送信時フロー制御には XON/XOFF によるフロー制御を行わない. - - 受信時のフロー制御は Quiet mode (リザルト コードを返さない) - - コマンド エコーを返さない. - - - -これらを実現するためのコマンドやディップ スイッチの設定に関しては, モ -デムのマニュアルを参照してください. - -以下に, USRobotics Sportster の 14,400 bps の外づけモデムの設定例を示 -しておきます. - - -ATZ -AT&C1&D2&H1&I0&R2&W - - -ことのついでに, たとえば, V42.bis や MNP5 のデータ圧縮を使用するかど -うかなどのモデムの他の設定について確認, 調整しておくのもよいかもしれま -せん. - -さらに, USRobotics Sportster の 14,400 bps の外づけモデムでは, 以下の -ようなディップ スイッチの設定も必要です. 他のモデムをお使いの方も, 以 -下の例を設定の参考にしてください. - - - - スイッチ1: UP - DTR 標準 - - スイッチ2: 無視 (リザルト コードを単語形式にするか数値形式にす -るか) - - スイッチ3: UP - リザルト コードを返さない - - スイッチ4: DOWN - コマンド エコーを返さない - - スイッチ5: UP - 自動着信 - - スイッチ6: UP - CD 標準 - - スイッチ7: UP - 不揮発ラムからデフォルト値をロードする - - スイッチ8: 無視 (Smart Mode/Dumb Mode) - - - -リザルト コードを返さないように設定しておかないと, 固定速度の設定 -

- -固定速度の設定では, モデムとコンピュータ間の通信速度をモデムとモデム間 -の接続速度に関係なく, 常に一定に保つように, モデムを設定する必要があり -ます. USRobotics Sportster の 14,400 bps 外づけモデムの場合, 以下のコ -マンドで, モデムとコンピュータ間の速度が, コマンド送信時の速度に固定さ -れます. - - -ATZ -AT&B1&W - - -可変速度の設定 -

- -可変速度の設定では, シリアル ポートの速度が, 着信速度に応じて変化する -ように設定しなければいけません. USRobotics Sporster の 14,400 bps 外 -づけモデムの場合, 以下のコマンドで, エラー訂正機能を利用した通信の場合 -は, コマンドを送信した時の通信速度にシリアル ポートの速度を固定し, エ -ラー訂正機能を利用しない接続では, シリアル ポートの速度が変化するよう -に設定されます. - - -ATZ -AT&B2&W - - -モデムの設定の確認 -

- -ほとんどの高速モデムには, 現在の設定をある程度人間にも理解できる形式に -して表示させるコマンドがあります. USRobotics Sporster の 14,400 bps -外づけモデムの場合は, トラブルシューティング -

- -以下の手順でダイアル アップ モデムの動作を確認することができます. - - FreeBSD システムの動作確認 -

- -モデムを FreeBSD システムに接続し, システムをブートします. あなたのモ -デムにモデムの状態を確認するためのインジケータがあれば, - 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 - 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 - - -モデムにまだ着信がない状態の時に, 以下のように上とは異なる出力があった -場合, - 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 - ^^ - - -/etc/ttys の内容を確認し, 書式などに誤りがないか -調べてみてください. また, ログ ファイル /var/log/messages に -/etc/ttys , -/etc/gettytab の二つの設定ファイルと, ディバイス スペシャル -ファイル /dev/ttyd? を確認し, 記述に誤りがないか, 足りないエ -ントリがないか, 足りないディバイス スペシャルファイルがないかといった -点について調べてみてください. - -モデムで接続してみる -

- -実際にモデムを使って別のコンピュータから接続してみてください. この時, -8ビット, パリティなし, 1ストップ ビットで接続するようにしてください. -接続後すぐにプロンプトが返ってこない場合や, 無意味な文字列が表示される -場合は, 1秒に1回くらいの割合で <Enter> キーを押してみて -ください. しばらくたって, なおも BREAK 信号を送信してみてください. この時, 端末側で使って -いるモデムが高速モデムならば, このモデムのインタフェースの接続速度を固 -定してから, 再度ダイアル インしてみてください. (たとえば, USRobotics -Sportster の場合は, AT&B1) - -それでもまだ /etc/gettytab の以下の点について再度確認してみてください. - - - /etc/ttys の対応する行の 2番目の項目で, -/etc/gettytab の中で定義されているエントリが指定されているか - -/etc/gettytab の中で定義されているもの -が指定されているか - -/etc/gettytab の中で定義されているもの -が指定されているか - - - -もしダイアル インしても, FreeBSD システム側のモデムが応答しない場合は, -FreeBSD 側のモデムが 謝辞 -

- -以下の方々から, 多くのコメントやアドバイスをいただきました. ここに謝意 -を表します. - - - - diff --git a/ja/handbook/diskless.sgml b/ja/handbook/diskless.sgml deleted file mode 100644 index 6db2dafe82..0000000000 --- a/ja/handbook/diskless.sgml +++ /dev/null @@ -1,165 +0,0 @@ - - - - - -Diskless operation - -

原作: &a.martin; -

訳: &a.yasu; - - netboot.com/netboot.romによって、 - ディスクのないクライアントで - ネットワーク経由でFreeBSDマシンのブートを行い - FreeBSDを走らせることができます。 - 2.0ではローカルなスワップを持つことができます。 - NFS経由のスワッピングもサポートされています。 - - サポートされているイーサネットカード: - Western Digital/SMC 8003, 8013, 8216 とその互換ボード, - NE1000/NE2000 とその互換カード (再コンパイルが必要) - - - セットアップの手順 - -

- サーバにするマシンを見つけます。 - このマシンには、FreeBSD 2.0のバイナリとbootpを - 記憶するだけの十分なディスクスペースが必要です。 - tftp と NFS も使えます。 - - テストしたマシン: - - HP9000/8xx / HP-UX 9.04以降 - (9.04以前では動きません) - Sun/Solaris 2.3. (bootpが必要) - - - クライアントにIP,gateway,netmaskを提供する - bootpサーバをセットアップします。 - -diskless:\ - :ht=ether:\ - :ha=0000c01f848a:\ - :sm=255.255.255.0:\ - :hn:\ - :ds=192.1.2.3:\ - :ip=192.1.2.4:\ - :gw=192.1.2.5:\ - :vm=rfc1048: - - - クライアントにブート情報を提供するTFTPサーバを - (bootpサーバと同じマシンに)セットアップします。 - このファイルの名前は、cfg.X.X.X.X (もしくは - /tftpboot/cfg.X.X.X.X)で、 - ここでX.X.X.X はクライアントのIPアドレスです。 - このファイルの内容は netbootコマンドで有効です。 - 2.0では、netboot は以下のようなコマンドを持ちます: - -help - helpリストの表示 -ip - クライアントのIPアドレスの表示/セット -server - bootp/tftp サーバのアドレスの表示/セット -netmask - netmaskの表示/セット -hostname - hostnameの表示/セット -kernel - カーネル名の表示/セット -rootfs - root ファイルシステムの表示/セット -swapfs - swap ファイルシステムの表示/セット -swapsize - diskless swapsize を Kbytes単位でセット -diskboot - ディスクからのブート -autoboot - ブートプロセスの続行 -trans - トランシーバのオン|オフ -flags [bcdhsv] - ブートフラグの設定 - - 完全にディスクレスな場合の一般的なcfgファイルは以下のようになります: - -rootfs 192.1.2.3:/rootfs/myclient -swapfs 192.1.2.3:/swapfs -swapsize 20000 -hostname myclient.mydomain - - ローカルにswapを持つマシンについては以下のようになります: - -rootfs 192.1.2.3:/rootfs/myclient -hostname myclient.mydomain - - - NFS サーバがクライアントにroot(必要ならswapも) - ファイルシステムをexportしているか、また、 - クライアントがこれらのファイルシステムに - ルートアクセスできるか確認します。 - - FreeBSDにおける一般的な /etc/exports ファイルは - 以下のようになります: - -/rootfs/myclient -maproot=0:0 myclient.mydomain -/swapfs -maproot=0:0 myclient.mydomain - - - そして、HP-UX側では以下のようになります: - -/rootfs/myclient -root=myclient.mydomain -/swapfs -root=myclient.mydomain - - - NFS経由でスワッピングを行う場合 - (完全にディスクレスな場合の設定)、 - クライアントが使用する swap ファイルを - dd で作成します。 - もし、swapfs コマンドが上記の例のように - 引数 /swapfsを持ちそのサイズが 20000 である場合、 - myclientに対するスワップファイルは - /swapfs/swap.X.X.X.X で呼び出されます。 - ここで X.X.X.X はクライアントのIPアドレスです。 - - 例: - -# dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000 - - - また、スワッピングが開始されるとクライアントのスワップスペースは - センシティブな情報を含むようになるので、不正なアクセスを防止するため、 - このファイルへの読み書きのアクセス制限がなされていることを確認して下さい: - -# chmod 0600 /swapfs/swap.192.1.2.4 - - - クライアントがそれぞれのrootファイルシステムとして使う - ディレクトリにrootファイルシステムを展開します。 - (上記の例では/rootfs/myclient). - - - - HP-UX システム: サーバはHP9000/800 シリーズのマシンで、 - HP-UX 9.04 以降が必要です。 - これ以前のバージョンではNFSを経由するデバイスファイルが - 作成ができません。 - - /rootfs/myclient/dev を - 展開する際に、いくつかのシステム(HPUX)ではFreeBSDに合った - デバイスファイルが作成されないので注意してください。 - その際には最初の起動時にシングルユーザモードに移行して - (ブートの段階でCtrl-Cを押す)、/dev に移って - "sh ./MAKEDEV all" として、クライアントからこれを - 修正してください。 - - - クライアントで netboot.com を実行するか、 - netboot.rom ファイルから EPROMを作成します。 - - - - / および /usr ファイルシステムを共有して使用する - -

今のところ、これを行う公式に認められた方法はありませんが、 - 私はそれぞれのクライアントで /usr ファイルシステムと - 個々の / ファイルシステム を共有して使っています。 - どなたかこれをきちんと行うやり方の提案がありましたら、 - 私に、もしくは &a.core; グループに知らせてください。 - - - 特定の設定についてnetbootをコンパイルする - -

/sys/i386/boot/netboot/Makefile の中の設定を変更して - コンパイルすることで、netbootでNE1000/2000 カードをサポートします。 - このファイルの先頭にあるコメントを見てください。 diff --git a/ja/handbook/disks.sgml b/ja/handbook/disks.sgml deleted file mode 100644 index 6f422bd0be..0000000000 --- a/ja/handbook/disks.sgml +++ /dev/null @@ -1,161 +0,0 @@ - - - ディスク - -

原作 &a.obrien;26 April 1998 -

訳: &a.yoshiaki;. 19 July 1998. - -

1台だけディスクのあるマシンに新しい SCSI ディスクを追加する - 場合について述べましょう. まず, コンピュータの電源を切り, - コンピュータにコントローラとドライブを接続します. これには - 様々な手順がありえるため詳細についてはこのドキュメントの範囲外 - です. - -

rootユーザとして login します. ドライブを接続した - あとで /var/run/dmesg.boot を調べて, 新しいドライブが - 認識されたことを確認します. 以下の例では, あたらしく加える - ドライブは sd1/1 へマウントしたいとします. - (IDE ドライブを加える場合はsd の代りに wdを - 使います) - -

FreeBSD は IBM-PC 互換コンピュータで動作しますので, (訳注: - 通常の場合では) - ディスクは PC BIOS パーティションに属しなければなりません. - これは伝統的な BSD パーティションとは異なります. PC のディスク - は最大4までのエントリを持ちます. もしディスク全体を FreeBSD に - わりあてるのであれば, 「ディスク全体を使用」を選ぶことが - できます. そうでないなら PC BIOS パーティションの一つに - FreeBSD を入れることになります. FreeBSD では PC BIOS - パーティションのことを slices と呼びます. 伝統的な - BSD パーティションと混同するのを防ぐためです. FreeBSD のために - つくったスライスをつかうこともできますし, ほかの OS を - インストールしてあるスライスをつかうこともできます. - これは他のオペレーティングシステムの fdisk - ユーティリティの混乱を引き起こしません. - -

スライスをつかう場合, ドライブは /dev/sd1s1e のよう - な形で加えられます. これは, SCSI ディスクの, ユニット番号1 - (2台目の SCSI ディスク), スライス1 (PC BIOS パーティション1), - e BSD パーティションという意味です. - 全体を割り当てる場合は, ドライブは /dev/sd1e - という単純な形になります. - - sysinstall を利用する -

/stand/sysinstallを利用すると, 新しいディスクの - パーティションやディスクラベルの設定をメニューから簡単に - 行うことができます. rootユーザで login するか - su コマンドを使います. /stand/sysinstall - を動かし, カスタム メニューに入ります. - カスタムメニューパーティション - を選びます. そうするとシステムに接続されているハードディスクの - リストがあらわれるでしょう. sd1がリストに無い場合は - 接続と/var/run/dmesg.boot にある dmesg の出力を - チェックする必要があります. - -

sd1を選び, FDISK パーティションエディタ - に入ります. ディスク全体を FreeBSD でつかうのであれば A - を選びます. - ``正しいパーティションエントリを保持して、このドライブには - 将来的に他のオペレーティングシステムを同居させる余地を残しますか?'' - と聞かれますので, そうしたい場合はYESを選んでください. - 変更をディスクに書き込むにはWコマンドを使います. - FDISK エディタを終了するにはqコマンドを使います. - - FDISK エディタを終了すると Master Boot Record について質問されます. - すでに動いているシステムにディスクを追加するのですから - None を選びます. - -

次に ディスクラベルエディタに入ります. ここで - BSD の伝統的パーティションをつくります. ディスクには a から h - までのラベルがついた 8区画のパーティションをつくることができます. - 一部のパーティションのラベルについては特別に扱われます. - a パーティションは root パーティション (/) に - 使われます. したがって, システムディスク(すなわち ブートを行う - ディスク)に 1つだけa パーティションをつくるべきです. - b パーティションは swap パーティションとして使われ - ます. swap パーティションは複数のディスク上につくっても - かまいません. cパーティションは「ディスク全体を使用」 - としている場合はディスク全体をさします. スライスを利用している - 場合は FreeBSD のスライス全体をさします. そのほかの - パーティションは一般的な目的に利用します. - -

sysinstall のラベルエディタは root や swap 以外の - パーティションでは e をつかうように勧めます。 - ラベルエディタでは単一のファイルシステムを作成するには - C コマンドをつかいます. - FS (ファイルシステム) か swap かを聞いてきますので ``FS'' を - 選びマウントポイントを入力(/mntのように)します. - インストール後の設定のモードではディスクの追加をするときに, - sysinstall は /etc/fstab にエントリを作成しません. - したがってここでのマウントポイントの入力は重要ではありません. - -

これでディスクへのディスクラベルの書き込みと - ファイルシステムの作成の準備ができました. W を - 押してください. sysinstall が新しいパーティションがマウント - できないことについてエラーを出しますが無視してください. - ラベルエディタから抜けて sysinstall を終了してください. - -

最後のステップは /etc/fstab の編集で, 新しい - ディスクのエントリを追加します. - - コマンドラインユーティリティの利用 - - * スライスを利用する - - ディスク全体を利用する -

新しいドライブを別のオペレーティングシステムで共有しない - 場合, ディスク全体を利用 (dedicated) mode) することも - できます. このモードではダメージが与えられるということは - ありませんが Microsoft のオペレーティングシステムが混乱する - ということを覚えておいてください. - IBM の OS/2 では認識できない場合, すべて占有されていると - 解釈します. - - - dd if=/dev/zero of=/dev/rsd1 bs=1k count=1 - disklabel -Brw sd1 auto - disklabel -e sd1 # `e' パーティションの作成 - newfs -d0 /dev/rsd1e - mkdir -p /1 - vi /etc/fstab # /dev/sd1e のエントリ - mount /1 - - - 別の方法は: - - - dd if=/dev/zero of=/dev/rsd1 count=2 - disklabel /dev/rsd1 | disklabel -BrR sd1 /dev/stdin - newfs /dev/rsd1e - mkdir -p /1 - vi /etc/fstab # /dev/sd1e のエントリ - mount /1 - - - - * 伝統的なものとは異なるドライブ - * Zip ドライブ - * Jazz ドライブ - * Sequest ドライブ - diff --git a/ja/handbook/dma.sgml b/ja/handbook/dma.sgml deleted file mode 100644 index 0047878ee9..0000000000 --- a/ja/handbook/dma.sgml +++ /dev/null @@ -1,608 +0,0 @@ - - - - - -DMAとはどういったものでどういう働きをするのか - -

原作: &a.uhclem; -訳: &a.yasu; -10 December 1996. 最終更新日 8 October 1997. - - - - Direct Memory Access (DMA)は, 中央演算処理装置 (CPU)からの干渉なく - データを計算機中である場所から別の場所に動かすための手法です. - - DMA機能の実装の方法はそれぞれの計算機アーキテクチャ間で異なるもので - あるため, ここでの議論はIBMパーソナルコンピュータ(PC), - PC/ATとその互換機におけるDMAサブシステムの実装と働きに限定します. - - PCの DMAサブシステムは, Intelの 8237 DMAコントローラをベースにして - います. 8237はそれぞれ独立にプログラムできる4つのDMAチャネルを持ち, - それぞれどのチャネルもいつでもアクティブにできます. - これらのチャネルは順に 0, 1, 2, 3となっています. - PC/ATからは, セカンド 8237 チップが追加され,それらは 4, 5, 6, 7と - なっています. - - オリジナルの DMAコントローラ(0, 1, 2, 3)は, 1回の転送で1バイト - 転送します. - セカンドDMAコントローラ(4, 5, 6, 7)は1回で 隣接する2つのメモリ番地から - 16ビット転送します. - ここで, 最初のバイトは通常偶数のアドレスになります. - 2つのコントローラは全く同じものであり, 転送量が異なるのは - セカンドコントローラがシステムに直結しているためです. - - 8237 は個々のチャネルについて, DRQと-DACKという2つの電気信号を - 持っています. その他に, HRQ (Hold Request), HLDA (Hold Acknowledge), - -EOP (End of Process)があり, バス制御信号として -MEMR (Memory Read), - -MEMW (Memory Write), -IOR (I/O Read), and -IOW (I/O Write)があります. - - 8237 DMACは, いわゆる``fly-by'' DMAコントローラです. - これは, データの移動を行う際に, データは DMACチップを通過せず, - DMACチップに格納されないことを意味します. - また, DMACはI/Oポートとメモリアドレス間でのみデータを - 転送することができますが, 2つのI/Oポートもしくは2つのメモリアドレス - 間ではできません. - - 注: 8237は, 非``fly-by''モードでは, 互いに接続された - 2つのチャネルでのメモリ-メモリ間でのDMA操作を許可します. - しかし, PCメーカは, ただでさえ乏しいこのリソースをこんなふうに - 使ったりしません。 - なぜなら, CPUを使用してメモリ間のデータを動かす方が早いからです. - - - PCアーキテクチャでは, それぞれのDMAチャネルは, 通常 - 与えられたDMAチャネルを使用するハードウェアがそのチャネルについて - DRQ線を使って転送を要求した時のみ動作します. - - - DMA転送の例 - -

DMA転送の発生と処理の手順の例をあげてみましょう. - この例では, フロッピーディスクコントローラ (FDC)が - ディスケットから1バイト読み込んで, DMAを使って,メモリの0x00123456番地に - 格納したいとします. 処理は, FDCが, DRQ2信号(DMAチャンネル2に - 対するDRQ線)を有効にして - DMAコントローラに要求を伝えることで開始されます. - - DMAコントローラはDRQ2シグナルが有効になったことを記録します. - するとDMAコントローラはDMAチャネル2がプログラムされ, マスクが - かかっていない(有効になっている)ことを確認します. - 同様に, DMAコントローラは, 他のDMAチャネルがアクティブまたは - アクティブになろうとしていないこと, そしてより高い優先度を持って - いないことを確認します. - 一旦これらのチェックが完了すると, DMACはDMACがバスを使うために - バスを開放するようにCPUに要求します. - DMACはCPUにHRQ信号を送ってバスを要求します. - - CPUはHRQ信号を検出し, 現在の指示の実行を完了します. - 一旦プロセッサがバスを開放することができる状態になると, 解放を - 行います. - 通常は CPU により駆動される信号 (-MEMR, -MEMW, -IOR, -IOW, その他)を - すべてハイインピーダンス (ハイともローとも指定しない)状態にした後, - CPUは HLDA信号を有効にして DMAコントローラにバスを明け渡したことを - 伝えます. - - プロセッサによっては, CPUはバスを使用しないいくつかの - 命令を追加して実行することもできますが, - しかし,プロセッサの内部キャッシュやパイプライン以外のメモリから - 何か読み出すといった指示に到達したら結局CPUは待たなくてはなりません. - - ここで,DMACが バスを「託される」と, - DMACはその -MEMR, -MEMW, -IOR, -IOW 出力信号をアクティブにし, - DMACから出力されるアドレスは 0x3456にセットされます.これは - 転送しようとする特定のメモリ番地をバイトで指示するのに使われます. - - するとDMACはDMA転送をリクエストしたデバイスに転送が始まることを - 知らせます.これは -DACK信号をアクティブにすることで行われます. - フロッピーディスクコントローラの場合は, -DACK2を - アクティブにすることで行われます. - - バスのデータ線に転送されるバイトにを出力することについては - フロッピーディスクコントローラが責任をもつことになります. - もし,フロッピーディスクコントローラがバス上にバイトデータを - 出力するのに余計な時間を必要としなければ - (もし周辺装置がもっと時間を必要とする場合には, READY信号を - 経由してDMACに通知します), DMAは 1 DMAクロック待ち, - メモリにバス上のバイトデータを格納するために - -MEMW および -IOR 信号を解除します. そして - FDCはバイトデータが転送されたことを認識します. - - DMAサイクルは1度に1バイトしか転送しないので, - FDCはDRQ2信号を止めて, DMACに転送が終了したことを知らせます. - DMACは-DACK2信号を解除して, FDCはバス上へのデータ出力を - 停止しなくてはならないことを知らせます. - - 次にDMACは他のDMAチャネルのいずれかに要求がきていないか - チェックを行います. もしどのチャネルのDRQも有効になっていなければ, - DMAコントローラは処理を完了して, -MEMR, -MEMW, -IOR, -IOW および - アドレス信号をハイインピーダンス状態にします. - - 最後に, DMAはHRQ信号を解除します. CPUはこれを見ると,HOLDA信号を - 解除します. そしてCPUは自らの -MEMR, -MEMW, -IOR, -IOW 信号および - アドレス線を有効にし, 命令の実行やメインメモリや周辺機器へのアクセスを - 再開します. - - 典型的なフロッピーディスクの1セクタについては, 上記のプロセスが - それぞれのバイトについて1回行われ, 全部で512回繰り返されます. - 1バイト転送される毎に,DMAC内のアドレスレジスタはインクリメントされ, - 同じくDMAC内にある, 何バイト転送すればよいかを示すカウンタが - デクリメントされます. - - カウンタが0になると, DMAはEOP信号を送ります. この信号は - カウンタが0であり, DMAコントローラがCPUによって再び - プログラムされるまで, これ以上データは転送されないことを - 示すものです. - - このイベントはターミナルカウント(TC)とも呼ばれます. - EOP信号は1本しかありません. そして, 一度にアクティブにできる - DMAチャネルは一本だけなので, 現在アクティブであるDMAチャネルこそが, - たった今処理を終了したDMAチャネルだと言うことができます. - - もし, バッファの転送が完了した時に周辺機器から割り込みを発生させたい - とき, 周辺機器は -DACKn信号およびEOP信号の両方が同時に発信されたか - どうかをテストします. その場合, DMACはCPUの介在がなければ - これ以上はその周辺機器についての情報を転送しません. - その後で, 周辺機器はプロセッサに割り込みを生じさせるために, - 何らかの割り込み信号を発生させることができます. PCアーキテクチャ - においては, DMAチップ自身が割り込みを生じさせることはできません. - 周辺機器とそれに関連するハードウェアが割り込みを生成する責任を - 持ちます. また, DMAを使用する周辺機器が割り込みを使用しない - 可能性もあります. - - DMACが要求を出したときにはCPUは常にバスをDMACに開放しますが, - この動作は, DMACがアクティブになった時にプロセッサが命令を実行するのに - かかる時間がわずかに変化することを除いては, アプリケーション, - オペレーティングシステムの両方からはわからないということを - 理解することが重要です. - そのため, プロセッサが確かにDMA転送が完了したことを知るためには, - 周辺装置やDMAチップ中のレジスタを調べたり,周辺装置からの割り込みを - 受け取る必要があります. - - -DMA ページレジスタ および 16メガ アドレス空間制限 - -

これまで述べたのとは異なり, DMACはアドレス線を 0x0123456 にセットする - 代わりに 0x3456 だけをセットすることにあなたは気づいたかも - しれません. この理由について少し説明します. - - オリジナルのIBM PCがデザインされた時, IBMは, DMACと割込み制御チップの - 両方を, 8085(8ビットプロセッサで, 16ビットのアドレス空間(64k)を持つ)と - 組み合わせて使うように設計されたチップを使うことを選びました. - IBM PCが64k以上のメモリをサポートしていたため, - DMACが64kを越えるメモリ番地に読み込み又は書き込みを行うために - 変更を行う必要が生じました. - この問題を解決するためにIBMが行ったのは, それぞれのDMAチャネルに, - 読み込み元または書き込み先のアドレスの上位ビットを保持するための - 外部的なラッチを追加することでした. - DMAチャネルがアクティブな時はいつでも, - このラッチの内容はアドレスバスに書かれて, そのチャネルのDMA操作が - 終了するまでそこに保持されます. - IBMはこれらのラッチを「ページレジスタ」と呼んでいます. - - そのため上記に示した例では, DMACはアドレスの0x3456の部分をバス上に - 置き, DMAチャネル2に対するページレジスタは, 0x0012xxxxをバス上に - 置きます. これらの2つの値が組み合わされてアクセスされるメモリ中の完全な - アドレスを形成します. - - ページレジスタのラッチはDMAチップとは独立であるので, - 読み込まれる又は書き込まれるメモリ領域は, 64kの物理的境界を - またいではなりません. 例えば, もし - DMACがメモリの0xffff番地をアクセスした場合, データの転送後, - DMACはアドレスレジスタをインクリメントし, 0x0000番地にある次のバイトを - アクセスします. 0x10000番地ではありません. - これはおそらく意図されたものとは異なっているでしょう. - - 注: 「物理的な」 64Kの境界を 8086モードの - 64k「セグメント」と混同してはいけません. セグメントは, セグメント - レジスタに数学的にオフセットレジスタを加算して作られるものです. - ページレジスタにはアドレスのオーバーラップも無く,数学的に - ORを取られることもありません. - - さらに複雑なことには, PC/ATでは外部のDMAアドレスのラッチは - 8ビットしか保持しません. よって8+16で24ビットになり, これは - DMAが0から16メガの間のメモリ番地しか指し示せないことを - 意味します. 16メガ以上のメモリを持ったより新しいマシンにおいても, - 標準的なPCコンパチブルなDMAでは16メガ以上のメモリ番地には - アクセスできません. - - この制限を避けるために, オペレーティングシステムは - 16メガ以下にある物理的な64kの境界をまたがない領域にRAMバッファを - 予約します. そして, DMACはデータを周辺機器からそのバッファに - 転送するようにプログラムされます. 一旦DMACがこのバッファに - データを動かすと, オペレーティングシステムは本当にデータを - 格納したいアドレスにバッファからデータをコピーします. - - 16メガを越えるアドレスからDMAベースの周辺機器にデータを - 書き込む際には, データは16メガ以下に位置したバッファから最初に - コピーされなくてはならず, その後, DMACはバッファからハードウェアに - データをコピーすることができます. FreeBSDでは, これらの予約バッファは - 「バウンスバッファ」と呼ばれます. MS-DOSの世界では, - これらは「スマートバッファ」などと呼ばれます. - - 注意: 82374と呼ばれる8237の新しい実装においては, - ページレジスタを16ビットで指定して, バウンスバッファを使用しなくても, - 32ビットのアドレス空間全体にアクセスすることが可能です. - - - DMA操作モードとその設定 - -

8237 DMA はいくつかのモードで動作します. 主なモードは, - 以下のとおりです. - - - - シングル転送モード - シングルバイト(もしくはワード)が転送されます. - DMAは1バイト毎にバスを開放し, - 再び要求しなくてはなくてはなりません. - これは一般に, すぐにはデータのブロック全てを転送できないデバイスに - よって使用されます. - 周辺装置は次の転送の準備ができる毎にDMAを要求します. - - 標準的なPCコンパチブルなフロッピーディスクコントローラ(NEC 765)は - 1バイトのバッファしか持たないので, このモードを使用します. - - - ブロック/デマンド転送モード - 一旦DMACがシステムバスを取得すると, 最大64kまでのデータブロック - 全体が転送されます. - もし周辺装置が余分に時間を必要とするときは, - 転送を一時中断するためにREADY信号を有効にします. - READY信号は過度に使われるべきではなく, 遅い周辺装置の転送の場合は - シングル転送モードを代わりに使うべきです. - - ブロック転送モードとデマンド転送モードの違いは, 一旦ブロック転送が - 始まると,転送カウンタか0になるまでそれが行われるところです. - DRQは-DACKが有効になるまでの間は有効でなければなりません. - デマンドモードはDRQが有効な間転送が続けられます. - DRQが有効でなくなった場合, DMAはその時点で転送を中断し, - バスを解放してCPUに返します. - その後、DRQが有効になると, 転送は中断したところから再開されます. - - データの転送, 特に転送に使われるメモリ番地が16Mを越える場合に, - CPUを使った方が効率がよくなるまでCPUの速度が向上する以前の - 古いハードディスクコントローラはデマンドモードを使っていました. - - - カスケード転送モード - このメカニズムはDMAチャネルがバスを要求することを許可する - ものですが, 接続されたデバイスはバス上のアドレス情報の配置に - ついてDMACに代わって責任を持ちます. - これは「バスマスタ」と呼ばれる技術の実装に利用されます. - - カスケードモードのDMAチャネルがバスのコントロールを受け取ると, - DMAは通常行われるようなバス上のアドレスとI/Oコントロール信号の - 出力を行いません. 代わりに, DMAはアクティブなチャネルの -DACK信号を - 有効にします. - - この時点で, アドレスとバスコントロール信号の供給は - DMAチャネルに接続された周辺機器が担当します. - 周辺機器はシステムバスの完全なコントロールを行い, - 16メガ以下の任意のアドレスの読み込みおよび書き込みを行うことが - できます. 周辺機器はバスの使用を終えるとDRQ線を無効にするので, - DMAコントローラはCPUもしくは他のDMAチャネルに制御を返すことが - できます. - - カスケードモードは複数のDMAコントローラを相互接続するのに - 使われます. PC内ではDMAチャネル4がまさにこの用途に使われています. - 周辺機器がDMAチャネル0, 1, 2, 3でバスを要求すると, - スレーブDMAコントローラは HLDREQ を有効にしますが, - この線はCPUではなく, 実際にはプライマリDMAコントローラのDRQ4に - 接続されています. - その後, チャンネル4になにか仕事があるものと見なしたプライマリの - DMAコントローラは HLDREQ を使ってCPUにバスを - 要求します. バスが与えられると, -DACK4が有効になりますが, - この線は実際にはスレーブDMAコントローラの HLDA信号に - 接続されています. - スレーブDMAコントローラはその後要求したDMAチャネル - (0, 1, 2, 3) に対してデータを転送するか, SCSIコントローラのような - バスマスタリングを要求する周辺機器にバスを許可します. - - このような配線がおこなわれているため, PC/ATシステムの - 周辺機器ではDMAチャネルは - 0, 1, 2, 3, 5, 6, 7のみが使用できます. - - 注: - 初期のIBM PCコンピュータでは, DMAチャネル0は操作の - リフレッシュのために予約されていますが, - 最近のシステムでは通常, 周辺機器によって使用することができます. - - - 周辺機器がバスマスタリングを行っている時は, - システムバスを保持している間絶えずメモリにもしくはメモリから - データを転送することが重要です.もし, 周辺機器がこのように - できないときは, システムがメインメモリのリフレッシュを - 行なえるようにしばしばバスを開放しなくてはなりません. - - 全てのPCでメインメモリとして使われるダイナミックRAMは, - 中身が「満たされている」ビットを保持するため - 頻繁にアクセスされなくてはなりません. - ダイナミックRAMは, それぞれが1ビットのデータを記憶するコンデンサが - たくさん集まって構成されています. これらのコンデンサは充電された - 状態で"1", 充電されていない状態で"0"を表します. - 全てのコンデンサは放電するため, "1"の値を保持するために, - 一定の間隔で電力を加える必要があります. - 実際にRAMチップはRAMの適切な場所に電力を送る作業を行ないますが, - メモリのリフレッシュ作業がRAMを普通にアクセスする時と - 衝突しないように, それをいつ行なうかを - コンピュータが休止状態の時に知らせなくてはなりません. - もしコンピュータがメモリのリフレッシュを行なえない場合は, - メモリの中身はわずか数ミリ秒で壊れてしまいます。 - - メモリの読み込みと書き込みのサイクルはリフレッシュサイクルとして - カウントされる(ダイナミックRAMのリフレッシュサイクルは - 実際には不完全なメモリ読み込みサイクルになります)ので, - 周辺機器のコントローラが連続するメモリ番地からデータの読み込み - または書き込みを行う間は, メモリの全てがリフレッシュされます. - - バスマスタリングはいくつかのSCSIホストインターフェースやその他の - ハイパフォーマンスな周辺機器コントローラに見られます. - - - 自動初期化転送モード - このモードにおいてDMAはバイト, ブロック, デマンド転送を行いますが, - DMA転送カウンタが0になると, カウンタとアドレスはDMAチャネルが - もともとプログラムされた時のものに戻されます. - これは, 周辺機器が転送を要求している間は転送が続けられることを - 意味します. - 転送領域としてDMACにプログラムされた固定バッファの中で, - 出力操作でDMACがデータを読み出す前もって新しいデータを - 書き込んだり入力操作でDMACが書き込んだあとに, - そこから新しいデータを読み出す作業はCPUが受け持ちます. - - このテクニックは, サンプリング用のバッファが小さいもしくは - それを持たないオーディオデバイスによく使われます. - この「環状」バッファの管理は更なるCPUオーバーヘッドになりますが, - DMAカウンタが0になり, 再プログラムされるまでDMAが停止してしまう - ことによって起きる遅延は, この方法でしかなくす事ができない - 場合もあります. - - - DMAのプログラミング - -

プログラムされるDMAチャネルは, 通常, 設定を行う前に - 「マスクする」べきです. - これはハードウェアが予期せずそのチャンネルに対してDRQを有効に - した場合, たとえ全てのパラメータが - 満たされてない場合や更新されていない場合でも, DMACは - それに応答してしまう可能性があるからです. - - マスクを行ってから,ホストは転送の方向(メモリからI/O, - もしくはI/Oからメモリ)と, 転送に使用するDMA操作のモード - (シングル, ブロック, デマンド, カスケードなど)を設定し, 最後に - アドレスや転送の長さを設定します. - 設定される長さはDMACに転送させたい量よりも1少なくなります. - アドレスや転送長のLSBとMSBは同じ8ビットI/Oポートに書き込まれます. - そのためDMACが最初のバイトをLSBとして, 2番目のバイトをMSBとして - 受け取ることを保証するために, 最初に別のポートに書き込みを行なって - LSBとMSBの判別を行なうフリップフロップをクリアしておく必要があります. - - そして,DMAのページレジスタを更新します. これはDMACの外部にあり - I/Oポートの別のセットを通してアクセスされます. - - すべての設定ができると, DMAチャネルはマスクを解除することができます. - そのDMAチャネルは「準備ができた」とみなされ, そのチャンネルのDRQが - 有効になると応答します. - - 8237のプログラミングの正確な詳細については, - ハードウェアデータブックを参照してください. - PCシステムにおけるI/Oマップについても参照する必要があるでしょう. - このマップにはDMAおよびページレジスタのポートがどこに位置するのかを - 書いてあります. 以下に完全なポートのマップテーブルを示します. - - - DMAポートのマップ - -

IBM-PCとPC/ATに基づくすべてのシステムでは, 同じI/Oポートに配置された - DMAハードウェアを持っています. その完全なリストを以下に示します. - DMAコントローラ2に割り当てられたポートは, AT以外のデザインでは - 未定義になっています. - -0x00 - 0x1f DMA コントローラ #1 (Channels 0, 1, 2 and 3) - -

DMA アドレス および カウントレジスタ - - -0x00 write Channel 0 starting address -0x00 read Channel 0 current address -0x01 write Channel 0 starting word count -0x01 read Channel 0 remaining word count - -0x02 write Channel 1 starting address -0x02 read Channel 1 current address -0x03 write Channel 1 starting word count -0x03 read Channel 1 remaining word count - -0x04 write Channel 2 starting address -0x04 read Channel 2 current address -0x05 write Channel 2 starting word count -0x05 read Channel 2 remaining word count - -0x06 write Channel 3 starting address -0x06 read Channel 3 current address -0x07 write Channel 3 starting word count -0x07 read Channel 3 remaining word count - - -DMA コマンドレジスタ - - -0x08 write Command Register -0x08 read Status Register -0x09 write Request Register -0x09 read - -0x0a write Single Mask Register Bit -0x0a read - -0x0b write Mode Register -0x0b read - -0x0c write Clear LSB/MSB Flip-Flop -0x0c read - -0x0d write Master Clear/Reset -0x0d read Temporary Register (新しいバージョンでは利用不可) -0x0e write Clear Mask Register -0x0e read - -0x0f write Write All Mask Register Bits -0x0f read Read All Mask Register Bits (Intel 82374にのみ存在する) - - -0xc0 - 0xdf DMA コントローラ #2 (Channels 4, 5, 6 and 7) - -

DMA アドレス および カウントレジスタ - - -0xc0 write Channel 4 starting address -0xc0 read Channel 4 current address -0xc2 write Channel 4 starting word count -0xc2 read Channel 4 remaining word count - -0xc4 write Channel 5 starting address -0xc4 read Channel 5 current address -0xc6 write Channel 5 starting word count -0xc6 read Channel 5 remaining word count - -0xc8 write Channel 6 starting address -0xc8 read Channel 6 current address -0xca write Channel 6 starting word count -0xca read Channel 6 remaining word count - -0xcc write Channel 7 starting address -0xcc read Channel 7 current address -0xce write Channel 7 starting word count -0xce read Channel 7 remaining word count - - -DMA コマンドレジスタ - - -0xd0 write Command Register -0xd0 read Status Register -0xd2 write Request Register -0xd2 read - -0xd4 write Single Mask Register Bit -0xd4 read - -0xd6 write Mode Register -0xd6 read - -0xd8 write Clear LSB/MSB Flip-Flop -0xd8 read - -0xda write Master Clear/Reset -0xda read Temporary Register (Intel 82374には存在しない) -0xdc write Clear Mask Register -0xdc read - -0xde write Write All Mask Register Bits -0xdf read Read All Mask Register Bits (Intel 82374にのみ存在する) -0xdf read Read All Mask Register Bits - - -0x80 - 0x9f DMA ページレジスタ - -

-0x87 r/w Channel 0 Low byte (23-16) page Register -0x83 r/w Channel 1 Low byte (23-16) page Register -0x81 r/w Channel 2 Low byte (23-16) page Register -0x82 r/w Channel 3 Low byte (23-16) page Register - -0x8b r/w Channel 5 Low byte (23-16) page Register -0x89 r/w Channel 6 Low byte (23-16) page Register -0x8a r/w Channel 7 Low byte (23-16) page Register -0x8f r/w Low byte page Refresh - - -0x400 - 0x4ff 82374 Enhanced DMA Registers - -

-Intel 82374 EISA System Component (ESC)は1996年の初めに発表されました. この中 -には機能的には8237のスーパーセットであり, 1つのパッケージの中にその他の -PC互換機のコアとなる周辺コンポーネントをも含んだDMAコントローラも含まれています. -このチップはEISAとPCI両方のプラットホームをターゲットにしたものであり, -scatter-gather I/O やリングバッファを始めとして, システムDMAをして32ビットの -アドレス空間全体に直接アクセスする能力も提供しています. - -

-これらの機能を使用する場合でも, 過去16年間のPC互換機で利用されてきた -同等機能を提供するコードも含めておく必要があります. 互換性の問題から, 82374の -レジスタの一部は, 従来の8237のレジスタをプログラムしたに, -転送の度にプログラムされる必要があります. 8237のレジスタに書き込みを行うとき, -ソフトウェアの下位互換性のために, 82374で追加された一部のレジスタの内容が -強制的に0にクリアされるからです. - - -

-0x401 r/w Channel 0 High byte (bits 23-16) word count -0x403 r/w Channel 1 High byte (bits 23-16) word count -0x405 r/w Channel 2 High byte (bits 23-16) word count -0x407 r/w Channel 3 High byte (bits 23-16) word count -0x4c6 r/w Channel 5 High byte (bits 23-16) word count -0x4ca r/w Channel 6 High byte (bits 23-16) word count -0x4ce r/w Channel 7 High byte (bits 23-16) word count - -0x487 r/w Channel 0 High byte (bits 31-24) page Register -0x483 r/w Channel 1 High byte (bits 31-24) page Register -0x481 r/w Channel 2 High byte (bits 31-24) page Register -0x482 r/w Channel 3 High byte (bits 31-24) page Register -0x48b r/w Channel 5 High byte (bits 31-24) page Register -0x489 r/w Channel 6 High byte (bits 31-24) page Register -0x48a r/w Channel 6 High byte (bits 31-24) page Register -0x48f r/w High byte page Refresh - -0x4e0 r/w Channel 0 Stop Register (bits 7-2) -0x4e1 r/w Channel 0 Stop Register (bits 15-8) -0x4e2 r/w Channel 0 Stop Register (bits 23-16) -0x4e4 r/w Channel 1 Stop Register (bits 7-2) -0x4e5 r/w Channel 1 Stop Register (bits 15-8) -0x4e6 r/w Channel 1 Stop Register (bits 23-16) -0x4e8 r/w Channel 2 Stop Register (bits 7-2) -0x4e9 r/w Channel 2 Stop Register (bits 15-8) -0x4ea r/w Channel 2 Stop Register (bits 23-16) -0x4ec r/w Channel 3 Stop Register (bits 7-2) -0x4ed r/w Channel 3 Stop Register (bits 15-8) -0x4ee r/w Channel 3 Stop Register (bits 23-16) -0x4f4 r/w Channel 5 Stop Register (bits 7-2) -0x4f5 r/w Channel 5 Stop Register (bits 15-8) -0x4f6 r/w Channel 5 Stop Register (bits 23-16) -0x4f8 r/w Channel 6 Stop Register (bits 7-2) -0x4f9 r/w Channel 6 Stop Register (bits 15-8) -0x4fa r/w Channel 6 Stop Register (bits 23-16) -0x4fc r/w Channel 7 Stop Register (bits 7-2) -0x4fd r/w Channel 7 Stop Register (bits 15-8) -0x4fe r/w Channel 7 Stop Register (bits 23-16) - -0x40a write Channels 0-3 Chaining Mode Register -0x40a read Channel Interrupt Status Register -0x4d4 write Channels 4-7 Chaining Mode Register -0x4d4 read Chaining Mode Status -0x40c read Chain Buffer Expiration Control Register - -0x410 write Channel 0 Scatter-Gather Command Register -0x411 write Channel 1 Scatter-Gather Command Register -0x412 write Channel 2 Scatter-Gather Command Register -0x413 write Channel 3 Scatter-Gather Command Register -0x415 write Channel 5 Scatter-Gather Command Register -0x416 write Channel 6 Scatter-Gather Command Register -0x417 write Channel 7 Scatter-Gather Command Register - -0x418 read Channel 0 Scatter-Gather Status Register -0x419 read Channel 1 Scatter-Gather Status Register -0x41a read Channel 2 Scatter-Gather Status Register -0x41b read Channel 3 Scatter-Gather Status Register -0x41d read Channel 5 Scatter-Gather Status Register -0x41e read Channel 5 Scatter-Gather Status Register -0x41f read Channel 7 Scatter-Gather Status Register - -0x420-0x423 r/w Channel 0 Scatter-Gather Descriptor Table Pointer Register -0x424-0x427 r/w Channel 1 Scatter-Gather Descriptor Table Pointer Register -0x428-0x42b r/w Channel 2 Scatter-Gather Descriptor Table Pointer Register -0x42c-0x42f r/w Channel 3 Scatter-Gather Descriptor Table Pointer Register -0x434-0x437 r/w Channel 5 Scatter-Gather Descriptor Table Pointer Register -0x438-0x43b r/w Channel 6 Scatter-Gather Descriptor Table Pointer Register -0x43c-0x43f r/w Channel 7 Scatter-Gather Descriptor Table Pointer Register - - diff --git a/ja/handbook/eresources.sgml b/ja/handbook/eresources.sgml deleted file mode 100644 index 22ae4f8c29..0000000000 --- a/ja/handbook/eresources.sgml +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - インターネット上のリソース - -

原作: &a.jkh;. - -

訳: &a.yuki;.28 August 1996 - -

FreeBSDの進歩が急速であるため, 最新の開発をフォローするためには, - 印刷したメディアは実用的でなくなっています. - 大抵の場合, 最新情報を入手する方法としては, 電子的なリソースが - ベストです. FreeBSDはボランティアの努力によって, - ユーザコミュニティ自体が, 一種の「テクニカルサポート部門」としての - 役割も通常果たしており, 電子メールやUsenetのニュースがこれらのコミュ - ニティにたどり着く最も効果的な方法になっています. - - 以下に, FreeBSD ユーザコミュニティに連絡を取る場合の最も重要な点についての - 概略を示します. もしここに書かれていない他のリソースに気がついた場合は, - それらを &a.doc に送って頂ければ, それらをここに含めるかもしれません. - - - メーリングリスト -

多くのFreeBSDの開発メンバはUSENETを読むことができますが, -もし, comp.unix.bsd.freebsd.*のグループの一つに質問を投稿したとしても -タイムリにその質問を受け取るということは保証できません. -質問を適切なメーリングリストに投稿すれば, 私たちかFreeBSDの関係者から, -よりよい (そして少なくともより早い) 反応がいつでも得られることでしょう. - -

さまざまなメーリングリストの憲章をこのドキュメントの最後に記載しま -す. 私たちは, メーリングリストの質, 特に技術面に関する質を高く保つ -ために努力しているので, メーリングリストに参加する前にその憲章を読んで -ください. 私たちのメーリングリストの参加者のほとんどは, 現在非常 -にたくさんのFreeBSDに関連したメッセージを毎日受け取っており, メーリン -グリストに対するふさわしい用いられ方をするための憲章やルールを決めるこ -とによって, メーリングリストのS/N比を高くする保つように励んでいます. -そうしないと, 結果的に, メーリングリストがプロジェクトにとって -事実上のコミュニケーションの手段になってしまうでしょう. - -メーリングリストはいずれもアーカイブされており, それらは - で検索することができます. -キーワード検索可能なアーカイブの提供は, -良くある質問に対する回答を見つけるすぐれた方法ですから, -質問を投稿する前に調べてみるべきでしょう. - -メーリングリストの概説 - -

一般的なメーリングリスト: 以下のものは誰でも自由に参加できる -(そしておすすめの) 一般的なものです: - -リスト 目的 ----------------------------------------------------------------------- -freebsd-advocacy FreeBSD の福音伝道 -freebsd-announce 重要なイベントやプロジェクトのマイルストン -freebsd-bugs バグレポート -freebsd-chat FreeBSD コミュニティに関連する技術的ではない話題 -freebsd-current FreeBSD-current の使用に関連する議論 -freebsd-isp FreeBSD を用いているインターネットサービスプロバイダの話題 -freebsd-jobs FreeBSD 関連の雇用機会に関する話題 -freebsd-newbies FreeBSD 初心者ユーザの活動と議論 -freebsd-questions ユーザからの質問と技術サポート -freebsd-stable FreeBSD-stable の使用に関連する議論 - - -技術的なメーリングリスト: 以下のメーリングリストは, 技術的な -議論のためのものです. それらの利用や内容のためにしっかりとしたガイドラ -インがあるので, これらのメーリングリストに入ったり, どれか一つにメール -を送ったりする前には, それらのメーリングリストの憲章を注意深く読むべきで -す. - -リスト 目的 ----------------------------------------------------------------------- -freebsd-afs FreeBSD へのAFSの移植 -freebsd-alpha FreeBSD の Alpha への移植 -freebsd-doc FreeBSD 関連ドキュメントの作成 -freebsd-database FreeBSD 上でのデータベースの利用や開発に関する議論 -freebsd-emulation Linux/DOS/Windows のような他のシステムのエミュレーション -freebsd-fs ファイルシステム -freebsd-hackers 一般的な技術の議論 -freebsd-hardware FreeBSD の走るハードウェアの一般的な議論 -freebsd-isdn ISDN 開発者 -freebsd-java Java 開発者や, FreeBSD へ JDK を移植する人たち -freebsd-mobile モーバイルコンピューティングについての議論 -freebsd-mozilla mozilla の FreeBSD への移植に関する議論 -freebsd-net ネットワークおよび TCP/IP ソースコードに関する議論 -freebsd-platforms Intel 以外のアーキテクチャのプラットフォームへの移植 -freebsd-ports ports コレクションに関する議論 -freebsd-scsi SCSI サブシステム -freebsd-security セキュリティに関する話題 -freebsd-small 組み込みアプリケーションにおける FreeBSD の利用 -freebsd-smp 対称/非対称のマルチプロセッシングの設計に関する議論 -freebsd-sparc FreeBSD の Sparcへの移植 -freebsd-tokenring FreeBSD でのトークンリングのサポート - - -制限されているメーリングリスト: 以下のメーリングリストは参加 -するにはの -認可が必要ですが, それぞれの憲章の範囲内であれば, 提案やコメントは誰で -も自由に投稿することができます. - -メーリングリスト 目的 ----------------------------------------------------------------------- -freebsd-admin 管理に関する話題 -freebsd-arch アーキテクチャや設計の議論 -freebsd-core FreeBSDコアチーム -freebsd-hubs ミラーサイトを運営している人達 (基盤のサポート) -freebsd-install インストール関係の開発 -freebsd-security-notifications セキュリティに関する通知 -freebsd-user-groups ユーザグループの調整 - - -CVSメーリングリスト: 以下のメーリングリストはソースツリーの -さまざまな場所の変更のログメッセージを見ることに興味のある人向けです. -これらは読み専用のリストで, これらにメールを送る事は出来ません. - -メーリングリスト ソースの範囲 (ソースの) 範囲の説明 ----------------------------------------------------------------------- -cvs-all /usr/src ツリーのすべての変更 (スーパーセット) - - -参加方法 - -

どのメーリングリストもFreeBSD.ORGにあるので, -メーリングリストにメールを送るには, ただ -listname@FreeBSD.ORG にメールを送るだけです. -すると, メーリングリストに登録されている世界中のメンバに再配布されます. - -メーリングリストに参加するには, - -subscribe [] - -という内容をメッセージの本文に含むメールを &a.majordomo に送ります. -例えば, freebsd-announce に参加したい場合は次のようにします: - -% mail majordomo@FreeBSD.ORG -subscribe freebsd-announce -^D - -もし, あなたが, 自分自身を違う名前 (メールアドレス) で登録したい場合, -あるいは, ローカルなメーリングリスト (注意:もしあなたのサイトに, -興味を持った仲間がいるなら, これはより有効ですし, -私たちにとっても非常に嬉しいことです.) -を登録する申し込みをおこないたいのであれば, 次のようにします: - -% mail majordomo@FreeBSD.ORG -subscribe freebsd-announce local-announce@somesite.com -^D - -最後に, majordomoに対して -他のタイプのコントロールメッセージを送ることで -メーリングリストから脱退したり, メーリングリストの他のメンバのリストを -得たり, 再びメーリングリストのリストを見たりすることも可能です. -利用できるコマンドの完全なリストを入手するには, 次のようにします: - -% mail majordomo@FreeBSD.ORG -help -^D - -再度言いますが, 私たちは技術的なメーリングリストでは技術的な議論を保つよう -要求します. もし, 「高いレベル」にのみ興味があるなら, freebsd-announce -に参加するように勧めます. これは少ないトラフィックの予定です. - -メーリングリストの憲章 - -

全てFreeBSDメーリングリストは誰でもそれらを利用することに -固守しなければいけないという一定の簡単なルールがあります. これらのルー -ルに従わないと, 結果としてFreeBSDのから2回までは警 -告を受けます. 3回違反すると, 投稿者は全てのFreeBSDのメーリングリストか -ら削除され, そのメーリングリストへのさらなる投稿から締め出されるでしょ -う. これらのルールや対策が必要なのは残念です. しかし,今日のインターネッ -トはずいぶんいやらしい環境になっており, 一般の人々は, その(対策の)メカ -ニズムがいかにもろいかという事すら認識する事が出来ていないと思われます. - -

道標 - -いかなる投稿記事もそのメーリングリストの基本的な憲章を守るべきで - す. 例えば, そのメーリングリストが技術的な問題に関するものであ - れば, 技術的な議論を含む投稿でなければなりません. 現在継続中の - 不適切な憲章やフレイムは, 所属している全ての人に対してメーリングリスト - の価値を下げてしまうだけですし, 許される行為ではないでしょう. - とくに話題のない自由形式の議論に対してはメーリ - ングリストが自由に認可されているので, かわりに使うべきでしょう. - -一度に 3 つ以上のメーリングリストには決して投稿すべきではありません. - 2 つのメーリングリストには双方に明確な必要性がある場合にのみ - 投稿すべきです. どのリ - ストに対しても, (メーリングリストの)参加者は(複数のメーリングリ - ストに)重複して参加しており, 関連する部分が少ない(例えば, - "-stable と -scsi")メーリングリストを除いては, 一度に複数のメー - リングリストに投稿する理由は全くありません. もし, Ccに複数の - メーリングリストがそのような形で現れて, あなたに届いたのであれば, - 再びそのメールに返事を出す前に, ccの部分もまた編集するべきです. - 元記事を書いたのが誰であっても, あなた自身のクロスポストに - まだ責任があります. - -ユーザであれ開発者であれ, (議論の中で) 個人を攻撃したり冒涜した - りすることは許されません. 個人的なメールを引用したり再投稿したり - する許可をもらえなかったり, もらえそうにない時に, それをおこなう - ようなネチケット (訳注: ネットワークにおけるエチケット) に対する - ひどい違反は好まれませんが, してはならないと特別に定められている - わけではありません. しかしながら, そのような内容がメー - リングリストの憲章に沿う場合はほとんどありません。このため、メー - リングリストの憲章に違反しているということだけで警告 (または禁止) - に値するものと考えていいでしょう。 - -FreeBSD以外の関連する製品やサービスの広告は, 絶対に禁止し, spam - による違反者が宣伝していることが明確であったら, すぐに禁止しま - す. - - - -

個々のメーリングリストの憲章: - -

- -Andrew ファイルシステム -このリストは, CMU/TransarcのAFSの移植や使用に関する議論のためです. - -管理上の話題 -このリストは, 純粋にfreebsd.org関係の議論のためのメーリングリストで,プ -ロジェクトの資源の問題や乱用の報告を行ないます. これはクローズドなリ -ストですが, 誰でも問題(私達のシステムを含みます!)を報告できます. - -重要なイベント/マイルストン -これは, 単にたまに発表される重要なfreebsdのイベントに関心がある人のた -めのメーリングリストです. これは, スナップショットやその他のリリースに -ついてのアナウンスを含みます. そのアナウンスは新しいFreeBSDの機能のア -ナウンスを含んでいます. ボランティア等の呼びかけがあるかもしれませ -ん. これは流通量の少ないメーリングリストで, 完全なモデレートメーリング -リストです. - -アーキテクチャと設計の議論 -これは,FreeBSDの設計に関する議論を行うモデレートメーリングリスト -です. 内容は, 技術的な内容にほぼ限定されます. 稀に, 全てのリスト -登録者に配送する必要があると思われるメッセージを, モデレータが -送る場合もあります. - -適切な話題の例: - -複数のカスタマイズされたビルドを同時に行うには, ビルドシステムを -どういじり直せばよいか - VFS で Heidemann レイヤを動作させるには, 何を修正する必要があるか - 同一のドライバを複数のバスやアーキテクチャで美しく使うには -デバイスドライバインターフェースをどう改変すれば良いか - -不適切な話題の例: - -ネットワークドライバをかくにはどうすればいいか - -議長はこのリストに投稿されたメッセージに対し、たいして重要ではない編集 -(スペルチェック、文法の修正と整頓) を行う権限を持っています. -このメーリングリストの流通量は少ないでしょう. 活発な議論が行われて -いる場合は, 論議がおさまるまで新たなトピックの投稿を遅らせなければ -ならないかも知れません. - -バグレポート -これは, FreeBSDのバグレポートのためのメーリングリストです. 可能である -場合はいつでも, バグは ``send-pr(1)'' を使うか, を用い -て送られる必要があります. - -FreeBSDのコミュニティに関する - 技術的ではない話題 -このメーリングリストは技術的ではなく, 社会的な情報について, -他のメーリングリストでは取り扱わない話題を含みます. -これは, Jordanがシロイタチに似ているかどうか, -大文字で打つかどうか, 誰がたくさんコーヒーを飲むか, -どこのビールが一番うまいか, 誰が地下室でビールを作っているか, -などについての議論を含みます. 時々重要なイベント (将来開催されるパーティーや, -結婚式, 誕生日, 新しい仕事など) のお知らせが, 技術的なメーリングリストから -でてきます. しかし, フォローは直接 -chatメーリングリストにするべきです. - -FreeBSDコアチーム -これは, コアメンバが使う内部メーリングリストです. FreeBSDに関連する深 -刻なやっかい事の裁定やハイレベルな綿密な調査を要求するときに, このメー -リングリストにメッセージを送る事が出来ます. - -FreeBSD-currentの使用に関する議論 -これは freebsd-current のユーザのためのメーリングリストです. -メーリングリストでの話題は, -current で登場した新しい機能について, -その新機能によってユーザに影響することについての注意, および -current -のままでいるために必要な手順についての説明を含みます. -"current" を走らせている人はこのメーリングリストに登録しなくてはなりません. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -FreeBSD-currentの使用に関する議論 - freebsd-currentメーリングリストのダイジェスト版です. こ -のダイジェストはfreebsd-currentに送られたすべてのメッセージをまとめた -ものを, 1つのメールにして送り出します. 平均のサイズは約40kbyteです. こ -のメーリングリストは読み専用で, メールを送るような事はしない -で下さい. - -ドキュメンテーションプロジェクト -このメーリングリストは、の発行物や FreeBSD 用のドキュメントの作成に関 -わるプロジェクトに関する議論を行なうためのものです. -このメーリングリストに参加しているメンバーを「 FreeBSD ドキュメンテー -ションプロジェクト」と呼びます. -このメーリングリストは公開されているので自由に参加・投稿することができます。 - -ファイルシステム -FreeBSDのファイルシステムに関する議論 -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -ISDNコミュニケーション -このメーリングリストは, FreeBSDに対するISDNサポートの開発の議論を -おこなう人のためのものです. - -Javaの開発 -このメーリングリストは, FreeBSD 向けのの重要なJavaアプリケーションの開発や, -JDKの移植やメンテナンスの議論をする人のためのものです. - -技術的な議論 -これはFreeBSDに関する技術的な議論のためのフォーラムです. -これは最もテクニカルなメーリングリストです. -このメーリングリストは, FreeBSD 上でアクティブに活動をしている人のためのもので, -問題を持ち出したり, 代わりの解決法を議論します. -技術的な議論をフォローするのに興味がある人も歓迎します. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -技術的な議論 -freebsd-hackersメーリングリストのダイジェスト版です. このダイジェスト -はfreebsd-hackersに送られたすべてのメッセージをまとめたものを, 1つのメー -ルにして送り出します. 平均のサイズは約40kbyteです. このメーリングリス -トは読み専用で, メールを送るような事はしないで下さい. - -FreeBSDのハードウェアの一般的な議論 - FreeBSDが走っているハードウェアのタイプや, -何を買ったり避けたりするかに関する様々な問題や, 提案に関する議論. - -インストールに関する議論 -このメーリングリストは将来のリリースのインストールに関する開発の -議論のためのもので, クローズドなメーリングリストです. - -インターネットサービスプロバイダのについての話題 -このメーリングリストは, FreeBSDを用いたインターネット -サービスプロバイダ (ISP) に関する話題の議論のためのものです. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -初心者の活動の議論 -どのメーリングリストでも扱われていなかった初心者の活動すべてを -カバーします. 独学や問題解決, リソースの見つけ方や使い方, 質問のしかた, -メーリングリストの使い方, どのメーリングリストを読めばいいのか, -普通の世間話, 間違いの犯し方, 自慢話, アイディアの共有, 物語, -道徳的な (技術的でない) お手伝い, FreeBSD コミュニティでの貢献のしかた -などの話題をが含まれます. -これらの問題を取り扱い, freebsd-questions へ質問できるようサポートします. -また, 初心者の頃にはまった同じ事柄に悩んでいる他の初心者との出会いの場として -freebsd-newbies を活用してください. - -Intel以外のプラットフォームへの移植 -クロスプラットフォームのFreeBSDの問題. -Intel以外のプラットフォームへのFreeBSDの移植についての一般的な議論や提案. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -``ports'' の議論 -FreeBSD の ``ports コレクション'' (/usr/ports) や, 移植の提案, -ports コレクションの基盤の変更, 一般的な整合化活動についての議論. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -ユーザからの質問 -FreeBSDに関する質問のためののメーリングリストです. -その質問がかなり技術的だと思わないのであれば, -「どのようにして」という質問を技術的なメーリングリストに送るべきではありません. - -ユーザからの質問 -freebsd-questionsメーリングリストのダイジェスト版です. -このダイジェストはfreebsd-questionsに送られたすべてのメッセージをまとめたものを, -1つのメールにして送り出します. 平均のサイズは約40kbyteです. - -SCSIサブシステム -これはFreeBSDのためのscsiサブシステムについて作業している人向けです. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -セキュリティの関連の話題 -FreeBSDコンピュータのセキュリティの話題 (DES, Kerberos, よく知られている -セキュリティホールや, それらのふさぎ方など) -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -セキュリティ関連の通知 -FreeBSD のセキュリティ問題や, 修正に関する通知を行ないます. -このメーリングリストは議論を行なうためのメーリングリストではありません. -議論は FreeBSD-security で行ないます. - -FreeBSD 組み込み技術 -特殊な FreeBSD 小型システムおよび FreeBSD の組み込み技術に関する議論. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -FreeBSD-stable の使用に関する議論 -これは freebsd-stable のユーザ用のメーリングリストです. -メーリングリストでの話題は, -stable で登場した新しい機能について, そ -の新機能によってユーザに影響することについての注意, および -stable -のままでいるために必要な手順についての説明を含みます. -"stable" を走らせている人はこのメーリングリストに登録すべきです. -これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. - -ユーザグループの調整のメーリングリスト -これは, ローカルなユーザグループがお互いに, または, -コアチームが指定した個人と問題を議論する, -それぞれのローカルエリアのユーザグループからの調整人向けの -メーリングリストです. -このメーリングリストはユーザグループ間の -ミーティングの概要やプロジェクトの調整に制限されるべきです. -これはクローズドなメーリングリストです. - - - - - Usenet ニュースグループ - -

2つのFreeBSD用のニュースグループがあります. ここでは - FreeBSDの議論をするたくさんの様々な人がおり, - 他にもFreeBSD関連するユーザがいます. - これらのいくつかのニュースグループは Warren Toomey - <wkt@cs.adfa.oz.au> によって で, - 検索できるようになっています. - - - BSD用のニュースグループ - -

- - - - - - 関連する他のUnixのニュースグループ - -

- - - - - - - - - - - - - - - - - X Window システム - -

- - - - - - - - - - - - World Wide Web サイト - -

- - 本家のサーバ. - - オーストラリア/1. - - オーストラリア/2. - - オーストラリア/3. - - ブラジル/1. - - ブラジル/2. - - ブラジル/3. - - ブルガリア. - - カナダ. - - カナダ/2. - - デンマーク. - - エストニア. - - フィンランド. - - フランス. - - ドイツ. - - ドイツ/2. - - ドイツ/3. - - ハンガリー. - - アイスランド. - - アイルランド. - - 日本. - - 韓国. - - ラトビア. - - マレーシア. - - オランダ. - - ノルウェー. - - ポーランド. - - ポルトガル/1. - - ポルトガル/2. - - ポルトガル/3. - - ルーマニア. - - ロシア/1. - - ロシア/2. - - ロシア/3. - - Russia/4. - - スロバキア. - - スロベニア. - - スペイン. - - 南アフリカ/1. - - 南アフリカ/2. - - スウェーデン. - - トルコ. - - ウクライナ/1. - - ウクライナ/2. - - イギリス. - - アメリカ/インディアナ. - - アメリカ/オレゴン. - - アメリカ/テキサス. - - diff --git a/ja/handbook/esdi.sgml b/ja/handbook/esdi.sgml deleted file mode 100644 index cafea936d5..0000000000 --- a/ja/handbook/esdi.sgml +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - -ESDIハードディスクの使い方 - -

原作および Copyright © 1995, &a.wilko;.24 September 1995. - -

訳: &a.ts;2 September 1996. - -ESDIとは Enhanced Small Device Interfaceの略語です. この技術は, 馴染み -深い ST506や ST412といったインタフェースに基づくものであり, 世界初の普 -及型 5.25インチのウィンチェスタディスクを造ったSeagate Technology社に -よって最初に作られました. - -ESDIの Eは拡張 (Enhanced) を表しており, 実際そのとおりです. まず, イン -タフェースの速度は速く, 10 ないし 15Mビット/秒であり, ST412インタフェー -スに接続したドライブの 5Mビット/秒よりも高速です. また, 上位レベルのコ -マンドがいくつか追加されて, オペレーティングシステムレベルのドライバ作 -成者にとって, ESDIインタフェースはある程度インテリジェントなものとなり -ました. ただし SCSIほどにインテリジェントではありません. ESDIは ANSIが -標準化をおこなっています. - -トラックごとのセクタ数を増やすことで, ESDIドライブの記憶容量は引き上げ -られました. 通常, トラックあたり 35セクタですが, 今までに筆者がみたド -ライブの中で大容量のものは, トラックあたり 54セクタもありました. - -ESDIは IDEや SCSIといったインタフェースの普及によって消えつつあります -が, 無料あるいは在庫処分の格安なドライブが入手可能であることを考えると, -少ない (もしくは現状の) 予算で縛られたシステムにとって, ESDIドライブは -理想的です. - -ESDIのコンセプト -

-物理的な接続 -

-ESDIインタフェースでは, ドライブごとに2つのケーブルを接続します. 第 1 -のケーブルは34ピンのフラットケーブルエッジコネクタで, コントローラとド -ライブ間のコマンドおよびステータスの両信号のやりとりのためのものです. -コマンド用ケーブルは, すべての ESDIドライブをデイジーチェーンで結び -ますから, すべてのドライブを接続したバスを構成することになります. - -第2のケーブルは20ピンのフラットケーブルエッジコネクタで, ドライブへの -データ入出力に使います. このケーブルは放射状に接続しますから, ドライブ -ごとにコントローラへの専用接続を持つことになるわけです. - -筆者の経験によれば, PC向け ESDIコントローラには, コントローラあたり最 -大 2 台までのデバイス接続が可能という制限がありました. これは, ドライ -ブのアドレス割り当てのために, 単一ビットだけを用意したという WD1003か -ら持ち越された互換 (?) 機能なのだと思われます. - -デバイスのアドレス指定 -

-1本のコマンドケーブルには最大で 7つのデバイスと 1つのコントローラを接 -続することができます. どのドライブをコントローラがアドレスしているのか -を個別に認識できるようにするために, ESDIデバイスは, デバイスアドレスを -設定するためのジャンパかスイッチを備えています. - -PC向けコントローラでは, 最初のドライブにはアドレス0を設定し, 第2番目の -ディスクへはアドレス1を設定します. いつも留意すべきことは, -ディスクごとに固有のアドレスを必ず設定するということです! つまり, コン -トローラあたり最大2台のドライブというような PC向けのものでは, 第1 ドラ -イブは第0番ドライブで, 第2ドライブは第1番ドライブだということです. - -ターミネート処理 (termination) -

-デイジーチェーン接続用コマンドケーブル (34ピンのケーブルであることを覚 -えていますか? ) では, 最後のチェーン接続ドライブでターミネートしなけれ -ばなりません. このために, ESDIドライブにはターミネート用抵抗ネットワー -クが付属しており, ターミネートする必要がないときにはその抵抗をドライブ -から外したり, またはジャンパで無効 (disable) にすることができるようになっ -ています. - -したがって, ひとつのドライブ, すなわちコマンドケーブルの最終端に位置す -るドライブだけが, そのターミネート用抵抗を有効 (installまたは enable) -にすることができます. コントローラは自動的にコマンドケーブルのもう一方 -の端のターミネート用抵抗を有効にします. ご注意いただきたいのは, コント -ローラは必ずコマンドケーブルのいずれかの端に位置しなければならず, けっ -して途中に位置するようにしては いけない ということです. - -ESDIディスクの FreeBSDでの使い方 -

-ESDIを初めて動かすようにすることが, どうしてこうも大変なことなのでしょ -うか ? - -ESDIディスクを FreeBSDで動かそうと試みた人たちが激烈なイライラを募らせ -たことは知られています. 今までまったく ESDIを知らない場合には, 複数の -要因の組み合わせが悪く働いて, ESDIへの理解を妨げることになるかもしれま -せん. - -このことは, ESDIと FreeBSDの組み合わせは選んではいけないという俗説も生 -み出しました. 以下の節において, 落し穴のすべてとその解決策を -述べてみようと思います. - -ESDI速度の違い -

-すでに簡単に紹介したように, ESDIは2種類の速度を持っています. 旧式のド -ライブとコントローラは 10Mビット/秒のデータ転送速度ですが, 新しいもの -では 15Mビット/秒が利用できます. - -仮に 10Mビット/秒のコントローラへ 15Mビット/秒のドライブを接続したよ -うな場合に問題が生じることを予想することは簡単です. したがって必ず, コ -ントローラ および ドライブのマニュアルを参照して, それぞれの -転送速度が一致しているかどうかを調べるようにしてください. - -トラックについて -

-主流の ESDIドライブは, トラックあたり34ないし36個のセクタを持ちます. -しかし大部分の (古い) コントローラは36個以上のセクタを扱うことができま -せん. - -新しい大容量のドライブでは, トラックごとにさらに多くの数のセクタを持つ -ことができます. たとえば筆者の 670MBのドライブは, トラックあたり 54セ -クタも持たせることができます. - -筆者のコントローラは54セクタ数をサポートしていませんでしたが, トラック -あたり35セクタという設定で, 問題なく動作しました. しかし, これが意味す -るのは大量のディスク容量を失うということです. - -もう一度, 詳しい情報についてハードウェアのドキュメントを調べてください. -この例のような仕様からはずれた設定をしたときには, うまく動くかもしれま -せんが, 動かないこともあります. そのようなときには, 別のより多くの機能 -をもつコントローラで試してみるようにしてください. - -ハードセクタとソフトセクタ -

-多くの ESDIドライブでは, ハードセクタまたはソフトセクタによる処理を, -ジャンパ設定で指定することができます. ハードセクタとは, 新しいセクタの -開始位置において, ESDIドライブにセクタパルス (sector pulse) を発生させ -ることです. コントローラはこのパルスを利用して, 書き込みや読み取りのタ -イミングを指示します. - -ハードセクタではセクタのサイズを選ぶことができます (通常はフォーマット -後セクタあたり256, 512, および1024バイト). FreeBSDは512バイトのセクタ -サイズを使います. トラックあたりのセクタ数は, 同じように選択に幅があり -ますが, フォーマット後のセクタのバイト数はすべて同じです. セクタごとの -未フォーマット のバイト数は, コントローラがどの程度の調整用の -バイト数を必要とするかによって異なります. トラックあたりのセクタ数を多 -くすれば記憶容量は増えますが, もしドライブから与えられるバイト数よりも -多くのものをコントローラが必要とするのであれば, 問題を生じることがあり -ます. - -ソフトセクタでは, コントローラ自身が読み書きの始まりと終りの位置を決め -ます. なお, ESDI (筆者が知り得たものすべて) では, ハードセクタがデフォ -ルトのようです. ソフトセクタを試みる必要性は感じたことがありません. - -通常, FreeBSDをインストールする以前に, まずセクタ処理の設定を試される -ことをおすすめします. というのも, セクタ処理の設定を変えるたびに, 物理 -フォーマット (low-level format) をしなければならないからです. - -物理フォーマット処理 -

-ESDIドライブは, 使い始める前に, 物理フォーマットをおこなう必要があります. -もしトラックあたりのセクタ数を変えたり, ドライブの物理的な設置方法 (水 -平や垂直方向) を変えたときには, ふたたびフォーマットする必要があります -から, よく検討した後でフォーマットしてください. フォーマット処理の所要 -時間を短く予想してはいけません. 大容量のディスクでは数時間を要します. - -物理フォーマットが終わったならば, サーフィススキャン (surface scan) を -おこない, バッドセクタの検出とフラグの処理をします. ほとんどのディスクには, -メーカが作成したバッドブロックリストを記録した用紙またはステッカーが付 -いています. さらに, ほとんどのディスク内にもバッドブロックリストが記録 -されています. メーカが作成したリストを利用するようにしてください. この -時点で不良部分をマップし直す方が, FreeBSDのインストール後におこなうよりも, -はるかに簡単です. - -物理フォーマットプログラムのなかでも, トラックの中にひとつでもバッドセ -クタがあれば, 同じトラック内の残りのすべてのセクタを不良とするようなプ -ログラムがありますから, そのようなものは利用しないようにしてください. -ディスクスペースの浪費だけでなく, より重大な bad144と関連した悲劇の原 -因にもなるからです (bad144の節を参照のこと). - -トランスレーション -

-トランスレーションが, ESDIだけに限定された問題ではないにもかかわらず, -重大な困難になることがあります. トランスレーションにはいくつかの側面が -あります. 多くに共通なものは, IBM PC/ATのオリジナルの設計に起因するディ -スクジオメトリに関する制限を, うまく回避するような調整を試みるものです -(IBM に感謝 ! ). - -まずはじめに, 1024シリンダに関する (悪) 名高い制限があります. すなわ -ち, ブート可能なシステムについて, システム関連ファイルは (オペレーティ -ングシステムがどのようなものであっても) , ディスクの先頭部分の 1024シ -リンダ内になければいけない, という制限です. シリンダ番号を表すためには -10ビットしか与えられていません. セクタの総数については, 上限は 64 (0か -ら 63) です. この1024シリンダの制限を, 16ヘッドの制限 (これも ATの仕様 -による) と組み合わせると, かなり限定されたディスク容量しか利用できませ -ん. - -この難点を解消するために, PC 向け ESDIコントローラのメーカは, 自社のコ -ントローラボードへ BIOS PROM拡張を施しました. この BIOS拡張の内容は, -ブート時のディスクI/Oを (OSによっては すべて のディスクI/Oも) -, トランスレーションを用いておこなうというものです. すなわち, 大容量のディ -スクを, あたかも32ヘッドかつトラックあたり64セクタであるようなデバイス -として OSへ知らせるのです. この結果, 総シリンダー数は 1024よりも少なく -なりますから, 上記の難点などなかったものとして大容量ディスクを使うこと -ができるようになります. なお, 注目いただきたいことは, FreeBSDカーネル -の起動以降, FreeBSDはこの BIOS拡張機能を使わないということです. 詳しく -は後ほどご説明いたします. - -トランスレーションの第2の存在理由は, 多くの旧いシステムBIOSが, トラッ -クあたり17セクタのドライブだけしか扱えない (ST412という古い仕様) から, -というものです. 比較的新しい BIOSは通常, 自由な値を設定できるドライブ -タイプ (多くの場合ドライブタイプ47) を持っています. - -この文書を読み終えられた後で, どのようにトランスレーションを利用す -るにせよ, ぜひご留意いただきたいことがあります. もし複数の OSをひとつ -のディスクにインストールするときには, 必ず同じトランスレーションを使わ -なければなりません. - -トランスレーションに関して, 筆者が使用したコントローラは, ひとつのドラ -イブを複数のパーティションに論理的に分けることができる機能を BIOSのオ -プションとして持っていました (このような製品はいくつかあると思われる). -しかし, ひとつのドライブにはひとつのパーティションに限定しました. なぜ -なら, このコントローラはパーティション情報をディスクへ書き出すからです. -つまり, 電源を入れると, コントローラはこの情報を読み取り, OSに対してディ -スクから読みとった情報に基づくデバイスとして知らせるからです. - -代替セクタ処理 -

-多くの ESDIコントローラはバッドセクタを取り替える機能を備えています. -ディスクの物理フォーマット処理の途中もしくは終了時に, バッドセクタであ -ることを記録して, 代わりのセクタを壊れたセクタの位置へ (論理的に) 置き -ます. - -通常この置き換え処理は, トラック内のN-1個のセクタを実際のデータ記録に -使い, 第N番目のセクタだけを代替セクタとすることで実現します. ここでNと -いう値はトラック内の物理的セクタの総数です. このアイデアが生まれた背景 -は, オペレーティングシステムが壊れたセクタを持たない「完全」なディスク -を想定している, というものです. しかし FreeBSDではこのアイデアを使うこ -とはできません. - -理由は, 使用不可 (bad) から 使用可能 への変換をおこなう -のが ESDIコントローラ上の BIOSだからなのです. FreeBSDは, 真の 32ビット -のオペレーティングシステムであるために, ブート後には BIOSを使いません. -代わりに FreeBSDが使うのは, ハードウェアと直接「対話」するデバイスドラ -イバというものです. - -結論: 代替セクタ処理やバッドブロックマッピングなど, コントローラ・ -メーカがなんと呼ぶかは判りませんが, それらに似た機能を FreeBSDのディス -クへは使わないでください. - -バッドブロックの取り扱い -

-前節から残された問題があります. すなわち, コントローラによるバッドブロッ -ク処理は利用できない状況であるにもかかわらず, FreeBSDのファイルシステ -ムが想定しているのはあくまで完全無欠なディスクである, という問題で -す. これを解消するために, FreeBSDは bad144 というツールを採用 -しています. この bad144 (この名前は DEC社の標準となったバッドブロック -処理に由来している) は, FreeBSDのスライスごとにバッドブロックを調べま -す. バッドブロックを見つけ出すと, bad144は傷ついたブロック番号によるテー -ブルを FreeBSDスライスの末尾へ書き込みます. - -ディスクが動作し始めると, ディスクから読みとられたテーブルを基に, ディ -スクアクセスを調べます. この bad144リストに記録されたブロック番号への -要求が起こると, 代わりのブロック (同じく FreeBSDスライスの末尾に位置す -る) を使います. このように, bad144による置換手続きによって「完全」なディ -スクを FreeBSDファイルシステムへ提供しているのです. - -Bad144の使用により陥るかもしれない落し穴があります. まず, ひとつのス -ライスには126個以上のバッドセクタを持てません. もしドライブに126個以上 -のバッドセクタがあったときには, 複数の FreeBSDのスライスに分けて, 各ス -ライスのバッドセクタが126個以下となるようにする必要があります. くれぐ -れも, ひとつのトラック内にたったひとつの欠陥セクタが見つかっただけで, -そのトラック内セクタ すべて を傷ついたものとして記録するよう -な物理フォーマットプログラムを使わないようにしてください. 簡単にお解り -いただけると思いますが, このような物理フォーマットをおこなえば, 126個の制 -限は短時間で達成してしまいます. - -次に, もしスライスが rootファイルシステムを含んでいるときには, 1024シ -リンダ以内という BIOSの制限を守っていなければなりません. ブート処理の -ときですから, bad144リストは BIOSを使って読み取りますので, このリスト -が1024シリンダ限界以内に位置していなければ読みとれません. 注意 - いただきたいのは, この制限は root ファイルシステム だけ -が1024シリンダ限界以内にあれば十分ということではなく, rootシステムを含 -んだ スライス 全体が1024シリンダ限界以内におさまっている必要 -があります. - -カーネルのコンフィグレーション -

-ESDIディスクを扱うドライバは, IDEや ST412 MFMディスクなどと同じ -wd ドライバです. この wd ドライバは, すべての WD1003 -互換インタフェースにも利用できるはずです. - -大部分のハードウェアは, ジャンパの設定によって, ふたつの I/Oアドレス範 -囲と IRQ値のうちから, それぞれひとつを選ぶことができます. したがって, -wdタイプのふたつのコントローラをひとつのシステムで使うことができます. - -もし設定しようとしているハードウェアが標準以外の割り当てをサポートして -いれば, 適切な設定情報をカーネルのコンフィグレーションファイルに記述す -ることで, この非標準割り当てを利用できます. 次にカーネルのコンフィグレー -ションファイルの例を示します (このファイルがあるディレクトリは -/sys/i386/conf である). - - -# First WD compatible controller -controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr -disk wd0 at wdc0 drive 0 -disk wd1 at wdc0 drive 1 - -# Second WD compatible controller -controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr -disk wd2 at wdc1 drive 0 -disk wd3 at wdc1 drive 1 - - - - -ESDIハードウェアの例 -

-Adaptec 2320コントローラ -

-筆者は, ACB-2320でコントロールされた ESDIディスクへ, FreeBSDをインストー -ルすることができました. なお, このディスクには他のオペレーティングシス -テムをインストールしていません. - -インストールするために, まず, NEFMT.EXE (www.adaptec.com から -ftp可能) でディスクを物理フォーマットし, かつトラックを代替セ -クタとともにフォーマットするかどうかの設問に NOと答えました. また -ACB-2320の BIOSは使わないように設定しました. そしてシステム BIOSがブー -トできるように, システム BIOSの「自由に設定可能」オプションを使いまし -た. - -実は, NEFMT.EXEを使う以前に, まず ACB-2320 の BIOSに組み込まれているフォー -マットプログラムでディスクをフォーマットしてみましたが, 使えないことが -判りました. なぜなら, 代替セクタの処理をおこなわないようにするオプションが -用意されていないからです. 代替セクタ処理をおこなうようにすると, FreeBSDの -インストール作業は bad144の実行の段階で失敗しました. - -もし ACB-232xyをお持ちであれば, そのバージョン番号に注意してください. -文字 xには0か2が入りまして, ボード上にフロッピーコントローラがあるかど -うかを見分けることができます. - -文字 yはさらに興味深いもので, ブランクか, A-8か, または Dのいずれかで -す. ブランクは, 単純な10Mビット/秒のコントローラであることを表します. -A-8は, 15Mビット/秒のコントローラで, かつ 52セクタ/トラックをサポート -しているものであることを表します. Dは, 15Mビット/秒のコントローラで, -かつ 36セクタ/トラック以上 (52セクタも可能か?) のドライブをサポートし -ているものであることを表します. - -このコントローラのすべてのバージョンはインターリーブ比 1:1に対応してい -るはずです. FreeBSDは充分高速なので, ぜひ 1:1と指定してください. - -Western Digital WD1007コントローラ -

-筆者は, WD1007でコントロールされた ESDIディスクへ, FreeBSDをインストー -ルすることができました. 正確には WD1007-WA2というコントローラでした. -これ以外の複数のバージョンも WD1007にあります. - -利用できるようにするために, セクタトランスレーションとWD1007の BIOSと -を使わないように設定しました. この設定の意味は, BIOSに組み込まれた物理 -フォーマットプログラムを使えないようにしたということです. 代わりに, -www.wdc.comから WDFMT.EXEを入手して, ディスクをフォーマットし -ました. 以後, 順調に動いています. - -Ultrastor U14Fコントローラ -

-ネットに流れたいくつかの報告によれば, Ultrastorの ESDIボードも FreeBSD -で動作するようです. 実際の設定についての詳しい情報はありません. - - - - -追加資料

-本格的に ESDIのプログラミングを計画している方は, 次の公式規格仕様書を -入手なさることをおすすめします. - -最新の ANSI X3T10 委員会の文書は次のものです: - - -Enhanced Small Device Interface (ESDI) [X3.170-1990/X3.170a-1991] - [X3T10/792D Rev 11] - - -USENETのニュースグループ は, 詳しい情報を得ることができる注目すべきもので -す. - -World Wide Web (WWW) もまた便利な情報源です. Adaptec社の ESDIコントロー -ラについては を参照ください. -Western Digital社のコントローラについては を参照ください. - -感謝 -

-Andrew Gordon氏より, テスト用の Adaptec 2320コントローラと ESDIディス -クを送っていただきました. - - diff --git a/ja/handbook/firewalls.sgml b/ja/handbook/firewalls.sgml deleted file mode 100644 index e5f8f270d2..0000000000 --- a/ja/handbook/firewalls.sgml +++ /dev/null @@ -1,574 +0,0 @@ - - - - - ファイアウォール - -

原作: &a.gpalmer;, &a.alex;. -

訳: &a.saeki;. -11 November 1996. - -ファイアウォールは, インターネットに参加している人はもちろんのこと, -プライベートネットワークのセキュリティ向上のためのアプリケーションを -探している人にとっても, ますます興味深くなりつつある分野です. -このセクションではファイアウォールとは何か, ファイアウォールの使用法, -そしてファイアウォールを構築するために FreeBSD のカーネルで -提供されているファシリティ (機能) の使用法について説明したいと思います. - - 注: 社内のネットワークと「巨大かつ信頼のおけない -インターネット」との間にファイアウォールを構築することで -セキュリティ上のすべての問題が解決できると考える人がいます. -ファイアウォールはセキュリティ上の問題を解決する助けになる場合もありますが, -充分な設定がなされていないファイアウォールは, まったくファイアウォールを -持たない場合よりもセキュリティ上の危険を増大させてしまいます. - -ファイアウォールにできることは, あなたのシステムにもう一つのセキュリティ層を -追加することだけで, 本気でアタックをしかけてくるクラッカーが内部ネットワークに -侵入するのを妨げることはできません. -ファイアウォールを侵入不可能と過信して -内部のセキュリティをおろそかにすることは, -単にクラッカーの仕事を少し簡単にするだけでしかありません. - - ファイアウォールとは何か ? - -

現在インターネットで普通に使用されているファイアウォールには -二つの異なるタイプがあります. -一つは, 厳密には パケットフィルタリングルータ と -呼ばれるタイプのものです. これはマルチホームのホストマシン (複数の -ネットワークに接続されているマシン) のカーネルが, ある規則にしたがって -パケットを転送したりブロックしたりするものです. -もう一つは, proxy (代理) サーバ として知られているタイプのものです. -これは, おそらくはマルチホームのホストマシン上で, カーネルによるパケット転送を -禁止して, デーモンにより認証の提供とパケットの転送とをおこなうものです. - -

二つのタイプのファイアウォールを組み合わせて使用して, -特定のマシン ( 要塞ホスト と呼ばれる) だけが -パケットフィルタリングルータを通して内部ネットワークへ -パケットを送ることができるよう設定しているサイトがしばしば存在します. -proxy (代理) サービスは通常の認証メカニズムよりもセキュリティを強化してある -要塞ホストで動作させます. - - -

FreeBSD は (IPFW として知られる) カーネルパケットフィルタ込みで -提供されています. このセクションの後の方では, このフィルタについての -説明を集中しておこないます. -サードパーティから提供されるソフトウェアを使用することにより, Proxy サーバを -FreeBSD 上に構築することができます. しかし, 現在入手可能な proxy サーバは -たいへんバラエティに富んでいるので, このドキュメントでそれらすべてを -カバーすることは不可能です. - - パケットフィルタリングルータ - -

ルータとは, 二つまたはそれ以上のネットワークの間でパケットの転送をおこなう -マシンのことです. パケットフィルタリングルータは, そのカーネルの内部に, -一つ一つのパケットをルールリストと比較して転送するかしないかを決める -特別なコードを持っています. -最近の IP ルーティングソフトウェアのほとんどは, 内部に -パケットのフィルタリングをおこなうためのコードを持っていて, デフォルトでは -すべてのパケットを転送するようになっています. -このフィルタを有効にするためには, パケットの通過を許すべきかどうかを決める -ルールを自分で定義する必要があります. - -

パケットを通すべきか通すべきでないかを決めるために, -パケットヘッダの内容にマッチするものがルールリストから探されます. -マッチするルールが見つかると, ルールアクションが実行されます. -ルールアクションには, パケットを捨てる, パケットを転送する, -またはパケットの発信元に ICMP メッセージを送り返すというものがあります. -ルールの検索は先頭から順番におこなわれ, 通常は最初にマッチしたものだけが -適用されます. -そのため, このルールリストは「ルールチェーン」と呼ばれることもあります. - -

パケットマッチングの基準は使用するソフトウェアによって異なりますが, -通常はパケットの発信元 IP アドレス, 宛先 IP アドレス, 発信元ポート番号, -宛先ポート番号 (ポート番号はポートをサポートするプロトコルの場合のみ), -パケットタイプ (UDP, TCP, ICMP など) に基づくルールを指定することができます. - -Proxy サーバ - -

Proxy サーバとは通常のシステムデーモン (telnetd, ftpd など) を -特別なサーバで置き換えたマシンのことです. -これらのサーバは, 通常は中継をおこなって特定方向への接続だけを許すため, -proxy サーバ と呼ばれます. - (例えば) proxy telnet サーバをファイアウォールホストで走らせておきます. -外部からユーザがファイアウォールに対して telnet を実行すると, -proxy telnet サーバが応答して, 何らかの認証メカニズムを実行します. -これを通過した後で, 内部ネットワークへのアクセスがおこなえるように -なるのです. (内部ネットワークからの信号は proxy サーバがかわりに受け取り, -外へ向けて送り出します.) - -

Proxy サーバは通常, 普通のサーバより堅固に構築されていて, -しばしば「使い捨て」パスワードシステムなどを含む, -多様な認証メカニズムを持っています. -「使い捨て」パスワードシステムとは, どういうものなのでしょうか. -仮に誰かが何らかの方法で, あなたが使用したパスワードを手に入れたとします. -しかし, 一度使用したことで, そのパスワードは既に無効になっているのです. -ですから, そのパスワードをもう一度使用したとしても, あなたのシステムへ -アクセスすることはできないというわけです. -これらのサーバは中継をおこなうだけで, 実際のところサーバホスト自身への -アクセスをユーザに許してはいません. そのため, 何者かがセキュリティシステムに -侵入用の裏口を取り付けることは, より困難になっています. - -

proxy サーバはアクセス制限の方法をいくつも持っていて, 特定のホスト -だけがサーバへのアクセス権を得ることができるようになっていることがあり -ます. そして目的のマシンと通信できるユーザを制限するように -設定することもできます. -もう一度言いますが, どんなファシリティ (機能) が使えるかは, -どんな proxy サービスをおこなうソフトウェアを選ぶかに大きく依存します. - - IPFW で何ができるか - -

FreeBSD とともに配布されている IPFW は, カーネル内部にあって -パケットのフィルタリングとアカウンティングをおこなうシステムであり, -ユーザ側のコントロールユーティリティである ipfw(8) を -含んでいます. ルーティングの決定をおこなう際に, これらは互いに協力して, -カーネルで使用されるルールを定義したり, 現在使用されているルールを -問い合わせたりすることができます. - -

IPFW は互いに関連する二つの部分からなっています. -ファイアウォールセクションはパケットフィルタリングをおこないます. -また, IP アカウンティングセクションはファイアウォールセクションのものと -似たルールに基づいてルータの使用を追跡します. -これにより, (例えば) 特定のマシンからルータへのトラフィックがどのくらい -発生しているか調べたり, どれだけの WWW (World Wide Web) トラフィックが -フォワードされているかを知ることができます. - -

IPFW は, ルータではないマシンにおいても入出力コネクションの -パケットフィルタリングのために使用することができるように設計されています. -これは一般的な IPFW の使用法とは異なる特別な使い方ですが, -こういった状況でも同じコマンドとテクニックが使用されます. - -FreeBSD で IPFW を有効にする - -

IPFW システムの中心となる部分はカーネル内部にあります. -そのため, どのファシリティ (機能) を必要とするかによって, 一つまたは -それ以上のオプションをカーネルコンフィグレーションファイルに追加し, -カーネルを再コンパイルする必要があるでしょう. -カーネルの再コンパイル方法の詳細については, - を参照してください. - -

現在, IPFW に関係するカーネルコンフィグレーションオプションは -三つあります: - - -syslogd(8) を通じて -パケットのログを取るためのコードを有効にします. -フィルタルールでパケットのログを取るように指定しても, -このオプションが指定されていなければ, ログを取ることはできません. - -syslogd(8) を通じて -ログを取るパケットの数をエントリ毎に制限します. -敵対的な環境においてファイアウォールの動作のログを取りたいけれど, -syslog の洪水によるサービス拒絶攻撃に対し無防備でありたくないという場合に, -このオプションを使用したいと思うことがあるかもしれません. - -

チェーンエントリのログが指定された制限数に達すると, -そのエントリに関するログ取りは停止されます. -ログ取りを再開するには, ipfw(8) ユーティリティを使用して -関連するカウンタをリセットする必要があります: - - -ipfw zero 4500 - - -4500 とは, ログ取りを続行したいチェーンエントリの番号です. - - - -以前のバージョンの FreeBSD は IPFIREWALL_ACCT というオプションを -持っていました. -しかし, ファイアウォールコードがアカウンティングファシリティ (機能) を -自動的に含むようになったため, 現在では使用されることはなくなっています. - -IPFW の設定 - -

IPFW ソフトウェアの設定は ipfw(8) ユーティリティを -通じておこないます. このコマンドの構文は非常に複雑に見えますが, -一旦その構造を理解すれば比較的単純です. - -

このユーティリティでは今のところ四つの異なるコマンドカテゴリが -使用されています: それは追加 / 削除, 表示, フラッシュ, およびクリアです. -追加 / 削除はパケットの受け入れ, 拒絶, ログ取りをどのようにおこなうか -というルールを構築するのに使用します. -表示はルールリスト (またはチェーン) と (アカウンティング用) パケットカウンタの -内容を調べるのに使用します. -フラッシュはチェーンからすべてのエントリを取り除くのに使用します. -クリアは一つまたはそれ以上のアカウンティングエントリをゼロにするのに -使用します. - -IPFW ルールの変更 - -

この形式での使用法は: - -ipfw [-N] コマンド [index] - アクション [log] プロトコル アドレス -[ オプション ] - - -

この形式で使用する際に有効なフラグは一つだけです: - - - - - コマンド は一意である限り短縮可能です. -有効な コマンド は: - - - - - -以前のバージョンの IPFW では, ファイアウォールエントリと -パケットアカウンティングエントリが別々に利用されていました. -現在のバージョンでは, それぞれのファイアウォールエントリ毎に -パケットアカウンティングエントリが備えられています. - -

index が指定されていると, エントリはチェーン中の -index で示される位置に置かれます. index が指定されて -いなければ, エントリは (65535 番のデフォルトルールである -パケット拒絶を別にして) 最後のチェーンエントリの index に 100 を足した -位置 (チェーンの最後) に置かれます. - -

カーネルが IPFIREWALL_VERBOSE つきでコンパイルされている場合, -log オプションはマッチしたルールをシステムコンソールに出力させます. - -

有効な アクション は: - - - -pass および -accept) - - - -

それぞれの アクション は一意な先頭部分だけでも認識されます. - -指定可能な プロトコル は以下の通り: - - - - - -

アドレス の指定は: - -from <address/mask>[port] to - <address/mask>[port&rsqb [via <interface>] - - -

port はポートをサポートする プロトコル (UDP と TCP) の -場合にだけ指定可能です. - -

via は必須ではなく, 特定のインターフェースを通ってきたパケット -だけにマッチするように, IP アドレスまたはローカル IP インターフェースの -ドメイン名, またはインターフェース名 (例えば ed0) を -指定することができます. -インターフェースユニット番号はオプションで, ワイルドカードで指定することが -できます. 例えば, ppp* はすべてのカーネル PPP インターフェースに -マッチします. - -

<address/mask> の指定は: - -<address> - -または - -<address>/mask-bits - -または - -<address>:mask-pattern - - -

IP アドレスのかわりに有効なホスト名を指定することも可能です. -mask-bits はアドレスマスクで上位何ビットを1にするべきかを -示す十進数値です. 例えば次の指定, - -192.216.222.1/24 - -はクラス C のサブネット (この場合 192.216.222) の任意のアドレスにマッチする -マスクを作成します. mask-pattern は与えられたアドレスと -論理 AND される IP アドレスです. -キーワード any は「任意の IP アドレス」を指定するために -使用することができます. -

ブロックするポート番号は以下のように指定します: - -port[,port[,port[...]]] - -のように単独のポートまたはポートのリストを指定します. または - -port-port - -のようにポートの範囲を指定します. 単独のポートとポートのリストを -組み合わせて指定することも可能ですが, その場合は常に範囲の方を -最初に指定しなければなりません. - -

使用可能な オプション は: - - - -spec/IP ヘッダが spec に指定された -カンマで区切られたオプションのリストを含んでいればマッチします. -サポートされている IP オプションのリストは: -ssrr (ストリクトソースルート), -lsrr (ルーズソースルート), rr (レコードパケットルート), -そして ts (タイムスタンプ) です. -特定のオプションを含まないことを指定するには '!' を先頭につけます. - -established ルールをチェーンの最初の方に置くことで, -ファイアウォールのパフォーマンスを向上させることができます. - -flags/TCP ヘッダが flags に指定された -カンマで区切られたフラグのリストを含んでいればマッチします. -サポートされているフラグは, fin, syn, rst, -psh, ackurg です. -特定のフラグを含まないことを指定するには '!' を先頭につけます. - -types/ICMP タイプが types リストに -存在していればマッチします. リストはタイプの範囲または個々のタイプを -カンマで区切った任意の組合せで指定できます. -一般的に使用されている ICMP タイプは: -0 エコーリプライ (ping リプライ), -3 相手先到達不可能, -5 リダイレクト, -8 エコーリクエスト (ping リクエスト), そして -11 時間超過 (traceroute(8) で使用されているように, -TTL 満了を示すのに使用されます) です. - - - - IPFW ルールリストの表示 - -

この形式での使用法は: - -ipfw [-atN] l - - -

この形式で使用する際に有効なフラグは三つあります: - - - -ipfw(8) ユーティリティで使用される入力形式と -互換性がありません. - - - -IPFW ルールのフラッシュ - -

チェーンをフラッシュするには: - -ipfw flush - - -

カーネルに固定されているデフォルトルール (インデックス 65535 番) -以外の, ファイアウォールチェーンの中のすべてのエントリを削除します. -デフォルトではすべてのパケットが拒絶されるので, 一旦これを実行すると, -パケットを許可するエントリがチェーンに追加されるまで, -あなたのシステムがネットワークから切り放されてしまいます. -そのため, ルールのフラッシュをおこなうときは注意が必要です. - - IPFW パケットカウンタのクリア - -

一つまたはそれ以上のパケットカウンタをクリアするためには: - -ipfw zero [index] - - -

index が指定されていなければ, すべてのパケットカウンタが -クリアされます. -index が指定されていれば, 特定のチェーンエントリだけが -クリアされます. - - ipfw に対するコマンドの例 - -

このコマンドはルータを介して転送される, -ホスト evil.crackers.org から -ホスト nice.people.org の telnet ポートへの -すべてのパケットを拒絶します: - - -ipfw add deny tcp from evil.crackers.org to nice.people.org 23 - - -

次の例は, ネットワーク crackers.org (クラス C) 全体から -マシン nice.people.org (の任意のポート) への -任意の TCP トラフィックを拒絶し, ログを取ります. - - -ipfw add deny log tcp from evil.crackers.org/24 to nice.people.org - - -あなたの内部ネットワーク (クラス C のサブネット) に対する X セッションを -張れないようにする場合, 以下のコマンドで必要なフィルタリングがおこなえます: - - -ipfw add deny tcp from any to my.org/28 6000 setup - - -アカウンティングレコードを見るには: - -ipfw -a list - -または短縮形式で - -ipfw -a l - -最後にチェーンエントリがマッチした時刻を見ることもできます. - -ipfw -at l - - - パケットフィルタリングファイアウォールの構築 - -

注: 以下の提案は, ただの提案にすぎません: -必要な処理はそれぞれのファイアウォールで異なるため, -あなた独自の要求にあったファイアウォールを構築する方法を -ここで述べることはできないのです. - -

最初にファイアウォールをセットアップするとき, -コントロールされた環境でファイアウォールホストの設定がおこなえるような -テストベンチセットアップが用意できない場合には, カーネルのログ取りを -有効にしてログ取り版のコマンドを使用することを強くおすすめします. -そうすることで, 大した混乱や中断なしに問題となる範囲の特定と処置を -素早くおこなうことができます. -初期セットアップフェーズが完了してからであっても, -アタックの可能性のあるアクセスをトレースしたり, -要求の変化に応じてファイアウォールルールを変更したりできるので, -`deny' に対するログ取りをおこなうことをおすすめします. - - 注: accept コマンドのログ取りをおこなっていると, -ファイアウォールをパケットが一つ通過する毎に 1 行のログが生成されるため -大量の ログデータが発生します. -そのため, 大規模な ftp/http 転送などをおこなうと, システムが非常に -遅くなってしまいます. -また, パケットが通過するまでにカーネルにより多くの仕事を要求するため, -パケットのレイテンシ (latency) を増加させてしまいます. -syslogd もログをディスクに記録するなど, より多くの CPU タイムを -使用し始め, 実に容易に /var/log が置かれているパーティションを -パンクさせてしまう可能性があります. - -

現状では, FreeBSD はブート時にファイアウォールルールをロードする -能力を持っていません. -私は /etc/netstart スクリプトにロードをおこなうスクリプトを -追加することをおすすめします. IP インターフェースの設定がおこなわれる前に -ファイアウォールの設定がおこなわれるように, netstart ファイル中の -充分に早い位置にルールをロードするスクリプトを配置してください. -こうすることで, ネットワークがオープンな間は常に抜け道が塞がれている -ことになります. - -

ルールをロードするために使用するスクリプトは, -あなたが作成しなければなりません. -現在のところ ipfw は 1 コマンドで複数のルールを -ロードするユーティリティをサポートしていません. -私が使用しているシステムでは以下のようにしています: - - -# ipfw list - - -ファイルに現在のルールリストを出力し, テキストエディタを使用して -すべての行の前に ``ipfw '' と書き足します. -こうすることで, このスクリプトを /bin/sh に与えてルールをカーネルに再読み込み -させることができます. これは最も効率的な方法とはいえないかもしれませんが, -きちんと動作しています. - -

次の問題は, ファイアウォールが実際には何を する べきかです ! -これは外部からそのネットワークへのどんなアクセスを許したいか, -また内部から外界へのアクセスをどのくらい許したいかに大きく依存します. -いくつか一般的なルールを挙げると: - - - - 1024 番以下のポートへのすべての TCP 入力アクセスをブロックします. -ここは finger, SMTP (mail) そして telnet など, 最もセキュリティに敏感な -サービスが存在する場所だからです. - - すべての 入力 UDP トラフィックをブロックします. -これは UDP を使用しているサービスで有用なものは極めて少ないうえ, -有用なトラフィック (例えば Sun の RPC と NFS プロトコル) は, -通常セキュリティに対する脅威となるためです. -UDP はコネクションレスプロトコルであるため, -入力 UDP トラフィックを拒絶することは -すなわち出力 UDP トラフィックに対する返答をも -ブロックすることになるので, このことはそれなりの不利益をもたらします. -たとえば外部の archie (prospero) サーバを使用している (内部の) ユーザに -とって問題となる可能性があります. -もし archie へのアクセスを許したければ, 191 番と 1525 番のポートから -任意の UDP ポートへ来るパケットがファイアウォールを通過することを -許可しなければなりません. -123 番のポートから来るパケットは ntp パケットで, -これも通過の許可を考慮する必要があるもう一つのサービスです. - - 外部から 6000 番のポートへのトラフィックをブロックします. -6000 番のポートは X11 サーバへのアクセスに使用されるポートで, -セキュリティに対する脅威となりえます. (特に自分のワークステーションで -xhost + をおこなう癖を持っている人がいればなおさらです). -X11 は実際に 6000 番以降のポートを使用する可能性があるため, 通過許可に -上限を定めると, そのマシンで走らせることのできる X ディスプレイの -個数が制限されます. -RFC 1700 (Assigned Numbers) で定義されているように, 上限は 6063 です. - - 内部のサーバ (例えば SQL サーバなど) がどのポートを使用するかを -チェックします. -それらのポートは通常, 上で指定した 1-1024 番の範囲から外れていますので, -これらも同様にブロックしておくことはおそらく良い考えです. - - - -

これとは別のファイアウォール設定に関するチェックリストが CERT から -入手可能です. - - -

前にも述べたように, これはただの ガイドライン にすぎません. -ファイアウォールでどのようなフィルタルールを使用するかは, あなた自身が -決めなければなりません. -これまでのアドバイスにしたがったにも関わらず, 誰かがあなたのネットワークに -侵入してきたとしても, 私は「いかなる」責任もとることはできません. diff --git a/ja/handbook/german.sgml b/ja/handbook/german.sgml deleted file mode 100644 index 5e2c31700c..0000000000 --- a/ja/handbook/german.sgml +++ /dev/null @@ -1,15 +0,0 @@ - - - - -ドイツ語(ISO 8859-1) -

-Slaven Rezic - - -が FreeBSD上でウムラウトを使う方法についてのチュートリアルを書きました. -チュートリアルはドイツ語で書かれていて, - -でご覧になれます. diff --git a/ja/handbook/glossary.sgml b/ja/handbook/glossary.sgml deleted file mode 100644 index b23623d5d9..0000000000 --- a/ja/handbook/glossary.sgml +++ /dev/null @@ -1,6 +0,0 @@ - - - - -* Glossary - diff --git a/ja/handbook/goals.sgml b/ja/handbook/goals.sgml deleted file mode 100644 index 28dfd8393e..0000000000 --- a/ja/handbook/goals.sgml +++ /dev/null @@ -1,33 +0,0 @@ - - - - -FreeBSDプロジェクトの目的 - -

原作: &a.jkh; -

訳: &a.kiroh;24 September 1996. -

-FreeBSDプロジェクトの目的は、いかなる用途にも使用でき、何ら制限のない -ソフトウェアを供給することです。私たちの多くは、コード(そしてプロジェ -クト)に対してかなりの投資をしてきており、これからも多少の無駄はあって -も投資を続けて行くつもりです。ただ、他の人達にも同じような負担をするよ -うに主張しているわけではありません。FreeBSD に興味を持っている一人の残 -らず全ての人々に、目的を限定しないでコードを提供すること。これが、私た -ちの最初のそして最大の``任務''であると信じています。そうすれば、コード -は可能な限り広く使われ、最大の恩恵をもたらすことができるでしょう。これ -が、私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であ -ると、私は信じています。 - -

-私たちのソースツリーに含まれるソースのうち、GNU一般公有使用許諾(GPL)ま -たはGNUライブラリ一般公有使用許諾(GLPL)に従っているものについては、多 -少制限が科されています。ただし、ソースコードへのアクセスの保証という、 -一般の制限とはいわば逆の制限(訳注1)です。ただしGPLソフトウェアを商用で -利用する場合、さらに複雑になるのは避けられません。そのため、それらのソ -フトウェアを、より制限の少ないBSD著作権に従ったソフトウェアで置き換え -る努力を、可能な限り日々続けています。 - -

-(訳注1) GPL では、「ソースコードを実際に受け取るか、あるいは、希望しさ -えすればそれを入手することが可能であること」を求めています。 - diff --git a/ja/handbook/history.sgml b/ja/handbook/history.sgml deleted file mode 100644 index 431edd0402..0000000000 --- a/ja/handbook/history.sgml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - -FreeBSD 小史 - -

原作: &a.jkh;. - -

訳: &a.masaki;, &a.hino;.19 December 1996. - -FreeBSD プロジェクトは 1993年の始めに ``Unofficial 386BSD Patchkit'' -の最後の 3人のまとめ役によって, 部分的に patchkit から派生する形で開始 -されました. ここでの 3人のまとめ役というのは, Nate Williams と, Rod -Grimes と, 私 (Jordan K. Hubbard) です. - -私たちのもともとの目標は, patchkit という仕組みではもう十分に解 -決できなくなってしまった 386BSD の数多くの問題を修正するための, 386BSD -の暫定的なスナップショットを作成することでした. こういった経緯を経てい -るので, このプロジェクトの初期の頃の名前が ``386BSD 0.5'' や ``386BSD -暫定版 (Interim)'' であったということを覚えている人もいるでしょう. - -386BSD は, Bill Jolitz が (訳注: バークレイ Net/2 テープを基に) 作成し -たオペレーティングシステムです. 当時の 386BSD は, ほぼ一年にわたって放っ -ておかれていた (訳注: 作者がバグの報告を受けても何もしなかった) という -ひどい状況に苦しんでいました. 作者の代わりに問題を修正し続けていた -patchkit は日を追うごとに不快なまでに膨張してしまっていました. このよ -うな状況に対して, このままではいけない, 何か行動を起こさなければ, とい -うことで異議を唱えるものは私たちのなかにはいませんでした. そして私たち -は挑戦することを決断し, 暫定的な「クリーンアップ」スナップショットを作 -成することで Bill を手助けしようと決めたのです. しかし, この計画は唐突 -に終了してしまいました. Bill Jolitz が, このプロジェクトに対する受け -入れ支持を取り下げることを突然決意し, なおかつこのプロジェクトの代わり -に何をするのかを一切言明しなかったのです. - -たとえ Bill が支持してくれないとしても, われわれの目標には依然としてや -る価値があると決心するのにさしたる時間はかかりませんでした. そこで -David Greenman が考案した名称 ``FreeBSD'' を私たちのプロジェクトの名前 -に採用し, 新たなスタートを切りました. この時点でのプロジェクトの初期目 -標は, すでにこのシステム (訳注: 386BSD + Patchkit) を使っていた利用者 -たちと相談して決められました. プロジェクトが実現に向けて軌道に乗ってき -たことが明確になった時点で, 私は Walnut Creek CDROM 社に連絡してみまし -た. CDROM を使って FreeBSD を配布することによって, インターネットに容 -易に接続できない多くの人々が FreeBSD を簡単に入手できるようになると考 -えたからです. Walnut Creek CDROM 社は FreeBSD を CD で配布するというア -イデアを採用してくれたばかりか, 作業するためのマシンと高速なインターネッ -ト回線を私たちのプロジェクトに提供してくれました. 当時は海のものとも山 -のものともわからなかった私たちのプロジェクトに対して, Walnut Creek -CDROM 社が信じられないほどの信頼を寄せてくれたおかげで, FreeBSD は短期 -間のうちにここまで大きく成長したのです. - -CDROM による最初の配布 (そしてネットでの, ベータ版ではない最初の一般向 -け配布) は FreeBSD 1.0 で, 1993年 12月に公開されました. これは カリフォ -ルニア大学バークレイ校の 4.3BSD-Lite (``Net/2'') を基とし, 386BSD や -Free Software Foundation からも多くの部分を取り入れたものです. これは -初めて公開したものとしては十分に成功しました. 続けて 1994年 5月に -FreeBSD 1.1 を公開し, 非常に大きな成功を収めました. - -この時期, あまり予想していなかった嵐が遠くから接近してきていました. バー -クレイ Net/2 テープの法的な位置づけについて, Novell 社と カリフォルニ -ア大学バークレイ校との間の長期にわたる法廷論争において和解が成立したの -です. 和解の内容は, Net/2 のかなりの部分が「権利つき (encumbered)」コー -ドであり, それは Novell 社の所有物である, というバークレイ校側が譲歩し -たものでした. なお, Novell 社はこれらの権利を裁判が始まる少し前に -AT&T 社から買収していました. 和解における譲歩の見返りにバークレイ -校が得たのは, 4.4BSD-Lite が最終的に発表された時点で, 4.4BSD-Lite は権 -利つきではないと公式に宣言されること, そしてすべての既存の Net/2 の利 -用者が 4.4BSD-Lite の利用へと移行することが強く奨励されること, という -Novell 社からの「ありがたき天からの恵み」でした. (訳注: 4.4BSD-Lite は -その後 Novell 社のチェックを受けてから公開された.) FreeBSD も Net/2 を利 -用していましたから, 1994年の 7月の終わりまでに Net/2 ベースの FreeBSD -の出荷を停止するように言われました. ただし, このときの合意によって, 私 -たちは締め切りまでに一回だけ最後の公開をすることを許されました. そして -それは FreeBSD 1.1.5.1 となりました. - -それから FreeBSD プロジェクトは, まっさらでかなり不完全な 4.4BSD-Lite -を基に, 文字どおり一から再度作り直すという, 難しくて大変な作業の準備を始めまし -た. ``Lite'' バージョンは, 部分的には本当に軽くて, 中身がなかったので -す. 起動し, 動作できるシステムを実際に作り上げるために必要となるプログ -ラムコードのかなりの部分がバークレイ校 の CSRG (訳注: BSDを作っている -グループ) によって (いろいろな法的要求のせいで) 削除されてしまっていた -ということと, 4.4BSD の Intel アーキテクチャ対応が元々かなり不完全であっ -たということがその理由です. この移行作業は結局 1994年の 12月までかかり -ました. そして 1995年の 1月に FreeBSD 2.0 をネットと CDROM を通じて公 -開しました. これは, かなり粗削りなところが残っていたにもかかわらず, か -なりの成功を収めました. そしてその後に, より信頼性が高く, そしてインス -トールが簡単になった FreeBSD 2.0.5 が 1995年の 6月に公開されました. - -私たちは 1996年の 8月に FreeBSD 2.1.5 を公開しました. この出来が非常に -良く, 特に業務で運用しているサイトや ISP での人気が高かったので, 私た -ちは 2.1-STABLE 開発分流から更に公開をおこなうことにメリットがあると考 -えました. それが FreeBSD 2.1.7.1 で, 2.1-STABLE 開発分流の最後を締めく -くるものとして, 1997年の 2月に公開されました. 2.1-STABLE 開発分流 -(RELENG_2_1_0) は現在, 保守のみをおこなう状態になっており, 今後は, セ -キュリティの改善や他の何か重要なバグフィックスのみがおこなわれるでしょ -う. - -FreeBSD 2.2 の開発は, RELENG_2_2 開発分流として, 開発の本流 -(``-current'') から 1996年 11月に分岐し, そして 1997年 4月に最初の公開 -(2.2.1) がおこなわれました. 2.2 開発分流からはさらに 97 年の夏と秋に公 -開がおこなわれ、98 年 7 月の終わりには最新版の 2.2.7 が登場しました. -FreeBSD 3.0 の初めての公式なリリースが 1998 年 10 月上旬に登場し、2.2 -開発分流からの最後のリリースである 2.2.8 が 1998 年 11 月に登場しまし -た. - -1999 年 1 月 20 日には, FreeBSD の開発ツリーが再び分岐しました. -4.0-current と 3.x-stable の分流です. 3.x-stable からは 3.1 が 1999 年 -2 月 15 日にリリースされる予定です. - -長期的な開発プロジェクトは 4.0-current 開発分流で続けられ, -スナップショットの CDROM (もちろん, ネットワーク上でも) で公開されます. diff --git a/ja/handbook/hw.sgml b/ja/handbook/hw.sgml deleted file mode 100644 index 408f6a84af..0000000000 --- a/ja/handbook/hw.sgml +++ /dev/null @@ -1,1027 +0,0 @@ - - - - - - - - -PC ハードウェアコンパチビリティ -

訳: &a.yoshiaki; . 23 March 1998. - -

ハードウェアコンパチビリティの問題は現在のコンピュータ業界でもっ - とも多く起きる種類の問題であり, FreeBSDもこれに無縁ではありません. - 市場にある驚くほど多様な種類の製品をサポートしたことで,安価に普及し - ている PCハードウェアで動かすことができるという FreeBSDの利点はこの - 点では不利でもあります. - FreeBSDのサポートするハードウェアを徹底的に調べて提供することは不 - 可能ですが, このセクションでは FreeBSDに含まれるデバイスドライバとそ - のドライバがサポートするハードウェアのカタログを示します. 可能で適切 - なものについては特定の製品についての注釈を含めました. また, - このハンドブックの のセクションにも - サポートされているデバイスのリストがありますのでそちらもご覧ください. - - FreeBSD はボランティアプロジェクトでテスト部門には資金がありません - から, より多くの情報をこのカタログに載せるにはあなたがたユーザに - 頼らなければなりません. あなた自身の経験により, あるハードウェアが - FreeBSDで動くか動かないかがわかったとしたら&a.doc; - へ e-mailして知らせてください. サポートされているハードウェアについて - の質問は, &a.questions;(詳しいことは - を参照してください) へ - 宛ててください. 情報を提供したり質問をする時は FreeBSDのバージョンと使っ - ているハードウェアのできるだけ詳しい情報を含めることを忘れないでくだ - さい. - -インターネット上のリソース -

以下のリンクはハードウェアを選ぶのに役に立ちます. FreeBSDに対して -は必要のない (あるいは適用できない) ように見えるかもしれませんが, ここ -からのハードウェアの情報のほとんどは OSに依存しないものです. -購入をする前にはあなたの選んだものがサポートされているか FreeBSDハード -ウェアガイドを注意して読んでください.

- -

- - - - - -

訳注: 日本国内でFreeBSDの動くハードウェアの情報を提供してい -るWWWサーバがあります. - - - - - -これ以外にも情報を提供しているサーバはあります. いくつかの URLについて -は -からたどることができます. - -組合せの見本 -

以下のハードウェアの組合せのサンプルリストはハードウェアベンダや -FreeBSD プロジェクトが保証するものではありません. この情 -報は公共の利益のために公開しているものであり, 極めて数多くあるであろう -異なったハードウェアの組合せの中からのある経験のカタログに過ぎません. -やり方はいろいろあります. -場合によってはうまく行かないこともあります. 十分気をつけてください. - - Jordan氏の選んだ組合せ -

私の作ったワークステーションとサーバの構成はまずまずうまく行っ - ています. 私はこれを保証できるわけでもありませんし, ここにあげた組 - 合せがずっと "best buys"であるわけではありません. 私はできればリス - トを更新して行きますがそれがいつになるかはわかりません. - -訳注: &a.jkh; 氏は FreeBSDプロジェクトのメンバです. - - マザーボード -

Pentium Pro (P6)システム用で気に入っているのは - - S1668 デュアルプロセッサマザーボードです. これは Intel PR440FX 同様 - オンボードの WIDE SCSI と 100/10MB Intel Etherexpress NIC が - ついています. - これを使えば最高の小型のシングルあるいはデュアルプロセッサシステム - (FreeBSD 3.0ではサポートされています)を作ることができます. - Pentium Pro 180/256K チップの価格は非常に安くなっていますが, - いつまで手にはいるかはわかりません..

- -

Pentium II には, どちらかと言えばひいき目ですが, Adaptec SCSI - WIDE コントローラのついた - マザーボードです.

- -

For Pentium machines, the ASUS - はミッドレンジからハイエンドの Pentiumサーバあるいはワークステーショ - ンシステムにはよい選択です. - - フォルトトレラントシステムを構築したいのであればパリティメモリを - 使い, 真に24時間/週7日間動作させ続けるアプリケーションであれば - ECCメモリを使うべきでしょう. ECCメモリはいくらか性能のトレードオ - フがあります (それが重要なものであるかそうでないかはあなたのアプ - リケーションによりますが). しかし, メモリエラーに対しては明らかに - フォルトトレランス性が強化されます. - - ディスクコントローラ -

これはいくらかトリッキーです. 私は ISAから PCIまですべてコンパチブ - ルな コント - ローラを使うようにすすめていましたが, 現在では ISAでは - 1542CF, EISA - では Bt747c, PCIでは Adaptec 2940UW をすすめるよう変わってきています. - - NCR/Symbios の PCIカードも私のところではうまく動いています, ただ - し BIOS-less モデルのボード(SCSI ボード上に ROMらしいものがない - 場合は, マザーボード上に SCSIアダプタのための BIOSが必要な - ボードである可能性があります 訳注: SC-200など) を使うのであれば - マザーボードがそれをサポートしているかどうか注意しなくてはなりま - せん. - -

PCIマシンで2つ以上の SCSIコントローラが必要となるのであれば, - PCIバスの不足を防ぐために Adaptec 3940 カードを考えてもいいでしょ - う. これは1つのスロットで2台の SCSIコントローラ(と内部バス)を持ち - ます. 市場には2つのタイプの 3940 がありますので注意しましょう. - - 古いモデルでは AIC 7880 チップを使っていますが, 新しいモデルでは - AIC 7895 を使っています. 新しいモデルでは - - ドライバのサポートが必要です. これはまだ FreeBSD の一部では - ありません. 自分で付け加えるか, CAM binary snapshot リリースから - インストールする必要があります(URLを参照してください). - - ディスクドライブ -

私は,極々特殊な状況を除いて 「それだけのお金をかけることができる - なら SCSIは IDEよりもよい」 と言っています. 小規模なデスクトップ構成 - のシステムでも, SCSIであればディスクが安くなっていった時にサーバの - (古い入れ換えた) ディスクを比較的簡単に移し替えることができます. あ - なたが複数のマシンの管理をしているのであれば単純に容量について考え - るのではなく, 食物連鎖のように考えましょう. 重要なサーバの場合は - 議論の余地はありません. SCSI機器と品質の良いケーブルを使いましょう - :)

- -CDROM ドライブ -

私は SCSIの方が好みであるのでもちろん SCSI CDROMを選びました. - のドライブは - 常に(スピードがどうであっても)お気に入りでしたが, 古い PX-12CS ドライブも - 好きです. 高々 12倍速のドライブですが, 高い性能と信頼性を提供して - くれています. - -

一般的には, 大部分の SCSI CDROM ドライブは私の見た限りではほと - んどしっかりした構造ですので 多分 HPや NECの SCSI CDROMでも問題が起き - ることはないでしょう. SCSI CDROM の価格はここ数ヶ月でかなり下落したよ - うで, 技術的に 優れた方法でありながら 現在では IDE CDROMと同じ程度の価 - 格になって います. もし IDE と SCSI の CDROM ドライブの間で選択す - ることができるのなら, 特に IDE を選ぶ理由はないでしょう. - - CD-R (CD Recordable: WORM) ドライブ -

この原稿を書いている時点で, FreeBSDは 3種類の CDRドライブ - (私は これらすべては結局は Phillips社のドライブであるのではない - かと考えているのですが) をサポートしています : Phillips CDD 522 - (Plasmon のドライブと同様の動作をします), PLASMON RF4100, HP 6020i - です. 私は HP 6020i を CDROMを焼くのに使っています(2.2 以降の - システムで動きます. - それい以前のリリースの SCSIコードでは動きません). - 非常に調子よく動いています. システムの - を見てください. ISO9660ファイルシステムイメージ (RockRidge拡張) を作 - るスクリプトと それをHP6020i CDR で焼くためのスクリプトの例があり - ます. - - テープドライブ -

私はたまたま の - の - を持っています. - -

バックアップのためであれば, より本質的に丈夫な (また, より容量が大きい) - Exabyteの 8mmテープの方がおすすめできます. - - ビデオカード -

もし (米国では) 99USドルをかけて商品の Xサーバをから買うことができる - なら間違いなく - カードをおすすめします. このカードは無償提供されている (現在のバージョンは - 3.3.2です) のサーバでも非常によく動きます. - - の - S3 Vision 868と 968 ベースのカード (the 9FX series) はわりあいと速く, - の S3サーバで - うまくサポートされています. 加えて現在では非常に低価格です. まず - 問題も起きないでしょう. - - モニタ -

私の持っている は非常に調子がいいので, 同じ (トリ - ニトロン) ブラウン管を使っている Viewsonicをおすすめします. 17"よりも - 大きなモニタ, 例えば 21"のモニタが実際に必要だとしたらこの文章の執 - 筆時点では 2,000USドル以下のもの (20"のモニタでは - 1,700USドル以下のもの) はまったくすすめられません. 20"以上のク - ラスでよいモニタは(いくつも)ありますし, 20"クラスで安いモニタもあり - ます. うまくいかないことに安くてよいモニタはほとんどありません!

- - ネットワーキング -

まず最初に, Intel EtherExpress Pro/100B カードをすすめます. - ISAカードでは Ultra 16 コントローラ, いくらか安めのPCIベースのカード - では SMC 9392DST, SMC EtherPower と Compex ENET32カードがおすすめ - できます. 一般的に DECの DC2104x イーサネットコントローラチップを - 使っている Zynx ZX342 や DEC DE435 などのカードはうまく動く - でしょうし, (firewall や rooter に便利な) 2-port 品や 4-port 品を - よく見つけることができますが, Pro/100B カードは最も少ない - オーバーヘッドで最高の性能を出すでしょう.

- -

もう一方, できるだけ低コストでそこその性能で動くものを探しているな - ら, ほとんどの NE2000のクローンは極めて低価格でうまく動いてくれます. -

- - (特殊な) シリアル -

高速のシリアル ネットワーク インタフェース (同期シリアルカード) - を探しているのであれば 製の シリーズのド - ライバが今の FreeBSD-currentにあります. も 提供 - するソフトウェアによりT1/E1の性能が得られるボードを製造しています. - もっとも私が直接これらの製品を動かした経験があるわけではありません. - - 訳注:Emerging TechnologiesのWebページを見るとカードのスペックに - Operating Systems: MS-DOS, MS-WINDOWS, System V UNIX, BSD/OS, - FreeBSD, NetBSD and Linux と書いてあります. また - "BSD/OS, FreeBSD and LINUX Router Card Solutions" というページ - もあってサポートは良さそうです. - -

マルチポートカードの選択の幅はかなり広いですが, FreeBSDがサポー - トするいう点では の製品が最も信頼できるでしょう. この最大の理由はこ - の会社が私たちに十分な評価用ボードとスペックを供給することを約束し - てくれているからです. 私は Cyclom-16Y が最高の性能価格比であると聞 - いていましたが最近は価格のチェックはしていません. - - 訳注: cycladesの WWWサーバでも Supported Operating Systemsに - Linuxや BSDi, FreeBSD が明記されています. - - 他のマルチポートカードで評判がよいのは BOCAおよび ASTのカードと - で, このカードには で非公式なドライバが提供されてい - るようです. - - オーディオ -

私は現在 AWE32 を - 使っています. もっともクリエイティブラボ製品が現在一般的にうまく - 動いているから, ということにすぎませんが. 他のタイプのサウンド - カードは同様にうまくは動かないと聞いています. 単に私の経験が - 乏しいということにすぎないと言うことなのかも知れませんが. - (私は以前は GUS のファンでしたが, Gravis はサウンドカード - から撤退してしまいました).

- - ビデオキャプチャー -

ビデオキャプチャーについては2つのいい選択肢があります - Hauppage - や WinTV などの Brooktree BT848 チップベースのボードは FreeBSD で - 非常にうまく動きます. もう一つの動作するボードは - - - カードです. FreeBSD はクリエィティブラボの古い video spigotカードの - サポートはしていますがこれは見つけるのは非常にむずかしいでしょう. - Meteor は 440FX チップセットベースのマザーボードでは - 動きませんので注意してください. 詳細はの節を参照してください. このような場合には BT848 ベースの - ボードを使った方がよいでしょう. - -中心部/プロセッサ - -マザーボード, バス, チップセット - * ISA - * EISA - * VLB - PCI -

原作: &a.obrien; 投稿者: &a.rgrimes;. - 25 April 1995.

-

更新: &a.jkh;.最終更新 - 26 August 1996.

-

訳: &a.yoshiaki;.12 October 1996.

- -

Intelの PCIチップセットについて, 以下にさまざまな種類 - の既知の不具合と問題の程度のリストを示します. -

- -

- - Mercury: ISAバスマスタがISAとPCIブリッジの向 - こう側にある場合は,キャッシュコヒーレンシ(一貫性)の - 問題があります. このハードウェア欠陥に対処してうま - く動かす方法はキャッシュを offにする以外にはありません. - - Saturn-I (82424ZX の rev 0, 1 ,2): - ライトバックキャッシュのコヒーレンシに問題があります. - このハードウェア欠陥に対処してうまく動かす方法は外部キャッ - シュをライトスルーにすること以外にはありませ - ん. Saturn-IIにアップデートしましょう. - - Saturn-II (82424ZX の rev 3 or 4): - 問題なく動きます. ただし多くのマザーボードではライトバッ - ク動作に必要な 外部ダーティビット SRAMが実装されていま - せん. 対策としてはライトスルーモードで動かすか, ダーティ - ビット SRAMをインストールするかがあります. - (これは ASUS PCI/I-486SP3G の rev 1.6 以降で使われています) - - Neptune: 2つより多くの(3台以上の)バスマスタデ - バイスを動かすことができません. Intelは設計の欠陥を - 認めています. 2つを越えるバスマスタを許さない, 特別な - 設計のハードウェアで PCIバスアービタを置き換えることに - より解決されています. (Intelの Altair boardや他にはい - くつかの Intelサーバグループマザーボードに見られます). そして, - もちろん Intelの公式の回答は Triton チップセットへの - 移行で, 「こちらでは修整した」ということです. - - Triton (430FX): - 知られているキャッシュコヒーレンシ - やバスマスタの問題はありませんがパリティチェック機能が - ありません. パリティを使いたいような場合は, 可能であ - れば Triton-II ベースのマザーボードを選びましょう. - - Triton-II (430HX): このチップセット - を使っているマザーボードに関するすべての報告によれば今の - ところ好評です. 既知の問題はありません. - - Orion: このチップセットの初期のバージョンでは - PCI write-posting にバグがあり, 大量の PCIバストラフィッ - クのあるアプリケーションでは性能の著しい低下があるとい - う障害がありました. B0以降のリビジョンのチップセットで - は問題は解決されています. - - :これは に対応したチップセットで, 初期の - Orionチップセットにあったような問題は見られず, 問題なく動 - いているようです. また, これは ECCやパリティを含んだ広い - 種類のメモリに対応しています. 既知の問題は Matrox Meteor - ビデオキャプチャカードに関するものだけです. - -

- -CPU/FPU -

原作 &a.asami;.27 December 1997.

- P6 クラス (Pentium Pro/Pentium II) -

Pentim Pro, Pentim IIとも FreeBSDで使うのに全く問題はありません. - 実際, 私たちのメイン FTPサイトである - (世界一大きな FTPサイト "ftp.cdrom.com" - としても知られています) では Pentium Proで FreeBSDを使っています. - 詳しいことが知りたい人は, へどうぞ. - - Pentium クラス -

Intel Pentium (P54C), Pentium MMX (P55C), AMD K6と Cyrix/IBM - 6x86MXプロセッサは全て FreeBSDで動作確認がされています. どの - CPUが速いかということはここでは述べません. - インターネットを探せばあれが速いとかこっちの方がいいとか教えてくれるサイトはいっぱいありますので, - そちらをご覧ください. :) - -

一つ注意しないといけないのは, - CPUによって必要な電源電圧や冷却の仕様が異なるということです. - マザーボードが指定された電圧を供給できることを必ず確認しましょう. - 例えば, 最近の - MMXチップにはコアと入出力で違う電圧を使うもの (コア 2.9V, - 入出力 3.3Vなど) がたくさんあります. また, AMDと Cyrix/IBMのチップには - Intelの製品より熱くなるものがいくつかあります. - その場合には強力なヒートシンク/ファンを使いましょう. - (各社のホームページにお勧めの部品のリストがあります.) - - クロックスピード -

原作 &a.rgrimes;.1 October 1996.

-

更新 &a.asami;.最終更新 27 December 1997.

-

Pentium クラスのマシンはシステムのいくつかの部分で異なったクロックスピードを使っています. - これは CPU, 外部メモリバス, PCIバスです. - 別々のクロックスピードが使われるために 「高速な」 - CPUを使ったシステムが 「低速な」 - システムよりも必ずしも速いとは限りません. - それぞれの場合の違いを以下の表に示します. -

- - CPUクロック 外部クロック 外部クロックと PCIバス - とメモリバス 内部クロック クロック - MHz MHz** の比 MHz - - 60 60 1.0 30 - 66 66 1.0 33 - 75 50 1.5 25 - 90 60 1.5 30 - 100 50* 2 25 - 100 66 1.5 33 - 120 60 2 30 - 133 66 2 33 - 150 60 2.5 30 (Intel, AMD) - 150 75 2 37.5 (Cyrix/IBM 6x86MX) - 166 66 2.5 33 - 180 60 3 30 - 200 66 3 33 - 233 66 3.5 33 - - * Pentium 100 は 50MHzの外部クロックの 2倍または - 66MHz の 1.5倍の両方で動かすことができます. - ** 66 MHz は実際には 66.667 MHzかもしれませんが, - そうだと決まっているわけでもありません. - -

3倍クロック以上の - CPUではメモリアクセス速度が不足気味であるという点には注意していただきたいですが, - 上の表を見るかぎりでは 100, 133, 166, 200, 233 - MHzを使うのが最良だというのがわかります. - - AMD K6のバグ -

AMDの K6プロセッサで大きなコンパイルをすると, - セグメンテーションフォルトでプロセスが落ちることがあるという事例が - 1997年に多数報告されました. これは '97年の第3四半期に直ったようです. - 情報を総合すると, チップ上の製造年週が "9733" (97年の - 第33週に製造) 以降のものは大丈夫ということのようです. - - * 486 クラス - * 386 クラス - 286 クラス -

FreeBSDは 80286マシンでは動きません. 現在の巨大なフ - ルスペックの UNIXをこのようなハードウェアで動かすことはほとんど - 不可能でしょう. - -メモリ -

FreeBSDをインストールするのに最低限必要なメモリ量は 5 MBです. - いったんシステムが起動してことができるならば, もっと少ないメモリ - で動かすこともできます. boot4.flp を使えば 4 MB しかメモリがなく - てもインストールできます. - -* BIOS - -入力/出力デバイス - -* ビデオカード -* サウンドカード -シリアルポートとマルチポートカード - - &uart; - &sio; - &cy; - -* パラレルカード -* モデム -* ネットワークカード -* キーボード -* マウス -* その他 - -記憶装置 -&esdi; -&scsi; - -* ディスク/テープ コントローラ - * SCSI - * IDE - * フロッピー - -ハードディスクドライブ -&scsihd; - * IDE ハードディスクドライブ - - テープドライブ -

原作: &a.jmb;.2 July 1996.

-

訳: &a.yoshiaki;.13 October 1996.

- - 一般的なテープアクセスコマンド -

mt(1) はテープドライブへの一般的なアクセス方法を提 - 供します. rewind, erase, statusなど - の共通コマンドがあります. マニュアルページの mt(1)を見 - てください. より詳しい解説があります. - - コントローラインタフェース -

テープドライブにはいくつかの異なったインタフェースがあり - ます. SCSI, IDE, フロッピー, パラレルポートのインタフェース - です. 非常に多くの種類のテープドライブがこれらのインタフェー - スで使えます. コントローラについての議論はにあります(訳注:現在未完成です). - - SCSI ドライブ -

st(4) ドライバは 8mm (Exabyte), 4mm (DAT: Digital - Audio Tape), QIC (1/4インチカートリッジ), DLT (デジタルリニアテー - プ), QIC ミニカートリッジ, 9トラック (大きなリールがハリウッドの - コンピュータルームで回っているのを見たことがあるでしょう)をサポー - トします. - st(4) マニュアルページにより詳しい解説があります. - -

以下のドライブリストは現在 FreeBSDコミュニティのメンバが - 使っているものです. これらだけが FreeBSDで動くドライブという - わけではありません. これらは単にたまたま私たちのうちの誰かが使っ - ているというだけです. - - 4mm (DAT: Digital Audio Tape ) -

-

-

-

-

-

-

8mm (Exabyte) -

-

-

- - QIC (1/4 インチカートリッジ) -

DLT (Digital Linear Tape) -

Mini-Cartridge -

Autoloaders/Changers -

- - * IDE ドライブ - フロッピードライブ -

* パラレルポートドライブ - 詳細な情報 - - -

このドライブのブートメッセージの識別子は "ARCHIVE -ANCDA 2750 28077 -003 type 1 removable SCSI 2"です. -

これは QIC テープドライブです. -

QIC-1350テープを利用した場合の標準の容量は 1.35GBです. -このドライブは QIC-150 (DC6150), QIC-250 (DC6250), QIC-525 (DC6525) の -テープを問題なく読み書きすることができます. -

dump(8)を使った時のデータ転送レートは 350kB/sです. - における転送レートは -530kB/sと報告されています. -

このドライブは既に生産中止になっています. -

このテープドライブの SCSIバスコントローラは他のほとんどの - SCSIドライブとピン配置が逆です. Anaconda テープドライブの前後でSCSIケー -ブルを1/2ひねることができるくらいSCSIケーブルが長いことを確認しておく -か, 他の SCSIデバイスのピン配置を入れ換えておく必要 -があります. -

そして, このドライブではカーネルコードの変更が 2箇所必要です. そ -のままではうまく動かないでしょう. -

SCSI-2コントローラを持っているなら, ジャンパの 6番をショート -してください. そうしないとこのドライブは SCSI-1として働きます. SCSI-1の -デバイスとして動作する時, このドライブはテープのfsf (早送り), rewind (巻 -戻し),rewoffl (巻戻してオフラインにする) 等を含む操作を行っている間, -SCSIバスをロックします. -

NCR SCSIコントローラを使う場合, /usr/src/sys/pci/ncr.c (以 -下を参照してください)にパッチを行って, カーネルを作り直し, 新しいカーネ -ルをインストールしてください. - - -*** 4831,4835 **** - }; - -! if (np->latetime>4) { - /* - ** Although we tried to wake it up, ---- 4831,4836 ---- - }; - -! if (np->latetime>1200) { - /* - ** Although we tried to wake it up, - - -

報告者: &a.jmb; - - - -

このドライブのブートメッセージの識別子は "ARCHIVE -Python 28454-XXX4ASB" "type 1 removable SCSI 2" "density code -0x8c, 512-byte blocks" です. -

これは DDS-1 テープドライブです. -

90m テープを使った場合の標準容量は 2.5GBです. -

データ転送速度は不明です. -

このドライブは Sun マイクロシステムが再パッケージして model - 411として出しています. -

報告者: Bob Bishop rb@gid.co.uk - - -

このドライブのブートメッセージ識別子は "ARCHIVE -VIPER 60 21116 -007" "type 1 removable SCSI 1"です. -

これは QICテープドライブです. -

標準の容量は 60MB です. -

データ転送レートは不明です. -

このドライブは生産中止になっています. -

報告者: Philippe Regnauld regnauld@hsc.fr - - -

このドライブのブートメッセージの識別子は "ARCHIVE -VIPER 150 21531 -004" "Archive Viper 150 is a known rogue" "type -1 removable SCSI 1"です. このドライブのファームウェアには多くのリビジョ -ンがあります. あなたのドライブではことなった数字が表示されるかもしれま -せん(例えば "21247 -005"). -

これは QICテープドライブです. -

標準容量は 150/250MBです. 150MB (DC6150) テープと - 250MB (DC6250)テープの記録フォーマットがあります. 250MBテープは -およそ67% 150MBテープより長いです. このドライブは 120MBのテープを問題 -なく読むことができます. 120MBテープに書き込むことはできません. -

データ転送レートは100kB/sです. -

このドライブは DC6150 (150MB) と DC6250 (250MB) テープの読み -書きができます. -

このドライブの奇妙な癖は SCSIテープデバイスドライバはあら -かじめ (st(4)) にあらかじめ組み込まれています. -

FreeBSD 2.2-currentでは, ブロックサイズの設定を設定するためmt -blocksize 512としてください. (ファームウェアリビジョンが -21247 -005 である場合の問題です. 他のリビジョンのファームウェアでは異 -なる場合があります.) これ以前の FreeBSDバージョンにはこの問題はありません. -

このドライブは生産中止になっています. -

報告者: Pedro A M Vazquez vazquez@IQM.Unicamp.BR -

Mike Smith msmith@atrad.adelaide.edu.au - - -

このドライブのブートメッセージの識別子は "ARCHIVE -VIPER 2525 25462 -011" "type 1 removable SCSI 1"です. -

これは QICテープドライブです. -

標準容量は 525MBです. -

データ転送レートは 90inch/secの場合で 180kB/sです. -

QIC-525, QIC-150, QIC-120, QIC-24のテープを読むことができま -す. QIC-525, QIC-150, QIC-120 に書き込むことができます. -

ファームウェアのリビジョンが "25462 -011" 以前の物はバグが -多く, 正しく機能しません. -

このドライブは生産中止になっています. - - - -

このドライブのブートメッセージの識別子は "Conner tape" です. -

これはフロッピーコントローラを使うミニカートリッジテープド -ライブです. -

標準容量は不明です. -

データ転送レートは不明です. -

このドライブは QIC-80テープドライブを使います. -

報告者: Mark Hannon mark@seeware.DIALix.oz.au - - -

このドライブのブートメッセージの識別子は "CONNER -CTMS 3200 7.00" "type 1 removable SCSI 2" です. -

これはミニカートリッジテープドライブです. -

標準容量は不明です. -

データ転送レートは不明です. -

このドライブは QIC-3080テープカートリッジを使います. -

報告者: Thomas S. Traylor tst@titan.cs.mci.com - - -

このドライブのブートメッセージの識別子は "DEC -TZ87 (C) DEC 9206" "type 1 removable SCSI 2" "density code 0x19" です. -

これは DLTテープドライブです. -

標準容量は 10GBです. -

このドライブはハードウェアデータ圧縮の機能があります. -

データ転送レートは 1.2MB/sです. -

このドライブは Quantum DLT2000と同一の物です. このドライブ -のファームウェアは Exabyteの 8mmドライブ等のよく知られたいくつかのドラ -イブのエミュレートをおこなうよう設定ができます. -

報告者: &a.wilko; - - -

このドライブのブートメッセージ識別子は "EXABYTE EXB-2501"です. -

これはミニカートリッジテープドライブです. -

MC3000XLミニカートリッジを使った時の標準容量は 1GBです. -

データ転送レートは不明です. -

このドライブは DC2300 (550MB), DC2750 (750MB), MC3000 -(750MB), MC3000XL (1GB) ミニカートリッジの読み書きができます. -

注意: このドライブは SCSI-2の仕様に適合していません. -このドライブは, フォーマット済みのテープ以外を入れた場合, SCSI -MODE_SELCTコマンドで完全にロックアップしてしまいます. このドライブを使 -う前に, テープブロックサイズを次のように設定します. - - mt -f /dev/st0ctl.0 blocksize 1024 - -ミニカートリッジは最初に使う前にフォーマットしなければなりません. -FreeBSD 2.1.0-RELEASE およびそれ以前の場合は - - /sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0" - -(あるいは, FreeBSD 2.1.5/2.2から scsiformatシェルスクリプトを -コピーして持ってきた場合と) FreeBSD 2.1.5およびそれ以降の場合は - - /sbin/scsiformat -q -w /dev/rst0.ctl - -とします. -

今のところ, FreeBSDではこのドライブはあまりおすすめできません. -

報告者: Bob Beaulieu ez@eztravel.com - - -

このドライブのブートメッセージの識別子は "EXABYTE EXB-8200 - 252X" "type 1 removable SCSI 1"です. -

これは8mmテープドライブです. -

標準容量は 2.3GBです. -

データ転送レートは 270kB/sです. -

このドライブはブート時の SCSIバスへの応答はわりあい遅いです. -カスタムカーネルが必要かもしれません (SCSI_DELAYを 10秒に設定しましょう). -訳注: GENERICカーネルの設定では 15秒になっています. -

このドライブには非常に多くのファームウェアの構成があります. -あるドライブでは特定のベンダのハードウェアにカスタマイズしてあります. -ファームウェアは EPROMを置き換えることで変更できます. -

このドライブは生産中止になっています. -

報告者: Mike Smith msmith@atrad.adelaide.edu.au - - -

このドライブのブートメッセージの識別子は "EXABYTE -EXB-8500-85Qanx0 0415" "type 1 removable SCSI 2" です. -

これは 8mmテープドライブです. -

標準容量は 5GBです. -

データ転送レートは 300kB/sです. -

報告者: Greg Lehey grog@lemis.de - - -

このドライブのブートメッセージ識別子は "EXABYTE -EXB-85058SQANXR1 05B0" "type 1 removable SCSI 2"です. -

これは 圧縮機能を持った 8mmテープドライブで, EXB-5200 と - EXB-8500に対する上位互換品です. -

標準容量は 5GBです. -

このドライブはハードウェアデータ圧縮機能があります. -

データ転送レートは 300kB/sです. -

報告者: Glen Foster gfoster@gfoster.com - - -

このドライブのブートメッセージの識別子は "HP -C1533A 9503" "type 1 removable SCSI 2"です. -

これはDDS-2テープドライブです. DDS-2 とはデータ容量を増や -すためにハードウェア圧縮と狭いトラックを採用したものです. -

120mテープを使った場合の標準容量は4GBです. このドライブは -ハードウェアデータ圧縮機能があります. -

データ転送レートは510kB/sです. -

このドライブはヒューレットパッカード社の6000eUおよび6000iテー -プドライブ, C1533A DDS-2 DAT ドライブに使われています. -

このドライブは 8接点のディップスイッチがあります. FreeBSDで -の適切な設定は 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8 ON です. - -スイッチ 1 2 結果 - ON ON 電源投入時に圧縮ON, ホストによるコントロール可能 - ON OFF 電源投入時に圧縮ON, ホストによるコントロール不可 - OFF ON 電源投入時に圧縮OFF, ホストによるコントロール可能 - OFF OFF 電源投入時に圧縮OFF, ホストによるコントロール不可 - -

スイッチ3は MRS (Media Recognition System :メディア認識システ -ム) をコントロールします. MRS テープは透明なテープリーダ部分にしま模 -様があります. これはテープが DDS (Digital Data Storage) グレードである -ことを示します. しま模様のないテープはライトプロテクトされたものとして -扱います. スイッチ3をOFFにすると MRSが有効になります. スイッチ3をONに -すると MRSは無効になります. - -訳注: 安価な音楽用のDATテープを使うには MRSをOFFにしておきます - -

このドライブの設定についてのより詳しい情報は - および - -をご覧ください. - -

注意: これらのドライブの品質管理は非常に幅がありま -す. ある FreeBSDコアチームのメンバは このドライブを2つ返品しました. -

報告者: &a.se; - - -

このドライブのブートメッセージの識別子は "HP -HP35470A T503" type 1 removable SCSI 2" "Sequential-Access -density code 0x13, variable blocks"です. -

これは DDS-1テープドライブです. DDS-1 は最初の DAT -テープフォーマットです. -

90m テープを使った場合の標準容量は 2GBです. -

データ転送レートは 183kB/sです. -

ヒューレットパッカード社の -SureStore テープドライブ, C35470A DDS フォーマット DATドライブ, C1534A DDS -フォーマット DATドライブ, HP C1536A DDS フォーマット DATドライブと -同じ機構を使用しています. -

HP C1534A DDSフォーマット DATドライブはグリーンと黄色(アンバー) -の2つの表示ランプがあります. グリーンのランプは動作状 -態を示し, ローディング中はゆっくり点滅, ローディングが終了すると点灯, -read/write動作中は速く点滅します. 黄色のランプは警告灯で, クリーニング -が必要であるかまたはテープが寿命に近くなるとゆっくり点滅, 致命的なエラー -の場合は点灯します(工場での修理が必要かもしれません). -

報告者:Gary Crutcher gcrutchr@nightflight.com - - -

このドライブのブートメッセージの識別子は未確認です. -

これはテープチェンジャ付の DDS-2テープドライブです. DDS-2 とはデータ容量を増や -すためにハードウェア圧縮と狭いトラックを採用したものです. -

120mテープを使用した場合の標準容量は 24GB です. -このドライブはハードウェアデータ圧縮機能があります. -

データ転送レートは510kB/s (標準) です. -

このドライブはヒューレットパッカード社の SureStore -テープドライブに使われています. -

このドライブはリアパネルに2つの選択スイッチがあります. -ファンに近いスイッチは SCSI IDです. もうひとつは 7に設定しておきます. -

内部に 4個のスイッチがあります. これらは 1 ON; 2 ON; 3 ON; -4 OFF に設定しておきましょう. -

現在のカーネルドライバはボリュームの終りで自動的にテープを -交換しません. ここに示す shellスクリプトでテープを交換できます. - - -#!/bin/sh -PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH - -usage() -{ - echo "Usage: dds_changer [123456ne] raw-device-name - echo "1..6 = Select cartridge" - echo "next cartridge" - echo "eject magazine" - exit 2 -} - -if [ $# -ne 2 ] ; then - usage -fi - -cdb3=0 -cdb4=0 -cdb5=0 - -case $1 in - [123456]) - cdb3=$1 - cdb4=1 - ;; - n) - ;; - e) - cdb5=0x80 - ;; - ?) - usage - ;; -esac - -scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5" - - - -

このドライブのブートメッセージの識別子は"HP -HP35450A -A C620" "type 1 removable SCSI 2" "Sequential-Access -density code 0x13" です. -

これは DDS-1テープドライブです. DDS-1 は最初の DAT -テープフォーマットです. -

標準容量は 1.2GBです. -

データ転送レートは 160kB/sです. -

報告者: mark thompson mark.a.thompson@pobox.com - - -

このドライブのブートメッセージの識別子は "HP -HP35470A 9 09" type 1 removable SCSI 2"です. -

これは DDS-1テープドライブです. DDS-1は最初の DAT -テープフォーマットです. -

90mテープを使用した時の標準容量は 2GBです. -

データ転送レートは 183kB/sです. -

これはヒューレットパッカード社の -SureStore テープドライブ, C35470A DDSフォーマットDATドライブ, C1534A -DDSフォーマットDATドライブ, HP C1536A DDS フォーマットDATドライブと同 -じ機構が使われています. -

注意: これらのドライブの品質管理には非常に大き -な幅があります. ある FreeBSDコアチームのメンバは 5台のドライブを返品し -ました. 9ヶ月以上もったものはありません. -

報告者: David Dawes dawes@rf900.physics.usyd.edu.au (9 09) - - -

このドライブのブートメッセージの識別子は -"HP HP35480A 1009" "type 1 removable SCSI 2" "Sequential-Access -density code 0x13" です. -

これは DDS-DCテープドライブです. DDS-DCはハードウェアデータ -圧縮のついたDDS-1です. DDS-1は最初のDATテープフォーマットです. -

90mテープを使った場合の標準容量は 2GBです. 120mテープは使用 -できません. このドライブはハードウェア圧縮機能があります. -適切なスイッチ設定に関しては, -の節を参照してください. - -

データ転送レートは 183kB/sです. -

このドライブはヒューレットパッカード社の SureStore - , テープドラ -イブ, C35480A DDS フォーマット DAT ドライブと同じ機構を使っています. -

このドライブは時々, テープの eject操作 (mt offline) -を行っている時にハングアップすることがあります. テープをejectさせたり, -ドライブを回復させるにはフロントパネルのボタンを押してください. -

注意: HP 35480-03110 では特有の問題がありました. -少なくとも2回, FreeBSD 2.1.0 で IBM Server 320に 2940W SCSIコントローラ -をつけてこのドライブを使っている時にすべての SCSIディスクのパーティショ -ンが失われたことがあります. この問題は解析も解決もできていません. - -

これらには少なくとも DDS-1のものと DDS-2のものの2つのモデルが -あります. DDS-1のものは "SDT-5000 3.02"です. DDS-2のものは "SONY -SDT-5000 327M" です. DDS-2バージョンには 1MBのキャッシュがあります. この -キャッシュによりあらゆる状況でテープのデータの流れを途切れさせません. -

このドライブのブートメッセージの識別子は "SONY -SDT-5000 3.02" "type 1 removable SCSI 2" "Sequential-Access -density code 0x13"です. -

120mテープを使用した場合の標準容量は 4GBです. このドライブ -はハードウェアデータ圧縮機能があります. -

データ転送レートはドライブのモデルによります. - "SONY SDT-5000 327M" でデータ圧縮を行った場合のレートは 630kB/s -です. "SONY SDT-5000 3.02"では 225kB/sです. -

Kenneth Merry ken@ulc199.residence.gatech.eduの報告によれば -このドライブからデータを読むためには, ブロックサイズを 512バイトにしま -す (mt blocksize 512). -

"SONY SDT-5000 327M" の情報は Charles Henrich - henrich@msu.edu による報告です. -

報告者: &a.jmz; - - -

このドライブのブートメッセージの識別子は -"TANDBERG TDC 3600 =08:" "type 1 removable SCSI 2"です. -

このドライブはQIC テープドライブです. -

標準容量は150/250MBです. -

このドライブには奇妙な癖があることが知られていますが, - SCSIテープドライバ (st(4)) には問題なく動くコードが含まれてい -ます. 問題の修整とSCSI 2へのコンパチビリティを得るためにファームウェ -アをある (具体的には不明の) バージョンより上にしてください. -

データ転送レートは80kB/sです. -

IBMと Emerald製品のユニットは動かないでしょう. -問題を解決するためにファームウェア EPROMを交換してください. -

報告者: Michael Smith msmith@atrad.adelaide.edu.au - - -

これはドライ -ブに非常によく似ています. -

報告者: &a.joerg; - - -

このドライブのブートメッセージの識別子は -"TANDBERG TDC 4222 =07" "type 1 removable SCSI 2"です. -

これは QICテープドライブです. -

標準容量は2.5GBです. このドライブは 60M (DC600A) 以上のすべての -カートリッジを読むことができ, 150MB (DC6150) 以上のすべてのカートリッジを -読み書きできます. ハードウェア圧縮は 2.5GBカートリッジを使用した時のオプションとしてサポートされています. -

このドライブには奇妙な癖がありますが, FreeBSDの2.2-current以降の -SCSIテープデバイスドライバ (st(4)) には対応が組み込まれています. -それ以前のバージョンの FreeBSDではmtを用いてテープから1ブロッ -ク読み, テープを巻戻してからバックアッププログラムを実行してください. -(mt fsr 1; mt rewind; dump ...). -

データ転送レートは 600kB/s (データ圧縮時のベンダによる公称) - で, start/stop モードでも 350kB/s にはなります. 容量の小さいカー - トリッジを使った場合にはレートは下がります. -

報告者: &a.joerg; - - -

このドライブのブートメッセージの識別子は "WANGTEK -5525ES SCSI REV7 3R1" "type 1 removable SCSI 1" "density code 0x11, 1024-byte -blocks"です. -

これは QICテープドライブです. -

標準容量は 525MBです. -

データ転送レートは 180kB/sです. -

60, 120, 150, 525MB のテープを読むことができます. -60MB (DC600カートリッジ) には書き込むことはできません. 120および150テー -プに確実に上書きするには, 先にテープを消去 (mt erase) します. -120および 150のテープは 525MBのテープより幅の広いトラックを使用してい -ます(テープ当たりのトラック数は少なくなります). -トラックの幅の「外側」には上書きされませんので, テープが消去されない限り -両側に古いデータが残ったまま新しいデータが置かれることになります. -

このドライブの奇妙な癖は知られていて, SCSIテープドライバ - (st(4)) に組み込まれています. -

他のファームウェアのリビジョンで動くことが確認されているも - のは M75Dです. - -

報告者: Marc van Kempen marc@bowtie.nl "REV73R1" - Andrew Gordon Andrew.Gordon@net-tel.co.uk "M75D" - - -

このドライブのブートメッセージの識別子は "WANGTEK -6200-HS 4B18" "type 1 removable SCSI 2" "Sequential-Access density -code 0x13"です. -

これは DDS-1テープドライブです. -

90mテープを使用した場合の標準容量は 2GBです. -

データ転送レートは 150kB/sです. -

報告者: Tony Kimball alk@Think.COM - - * 問題のあるドライブ - -CD-ROM ドライブ -

原作: &a.obrien;.23 November 1997.

- -

- でふれられているように FreeBSD プロジェクトでは一般的には - IDE CDROM よりも SCSI CDROM の方が好まれています. しかし全ての SCSI - CDROM ドライブが同じであるというわけではありません. - いくつかの SCSI CDROM ドライブの品質は IDE CDROM ドライブよりも - 低いものであると感じている人もいます. 東芝は信頼性が高いという評判が - ありましたが, 12倍速の XM-5701A は, SCSI メーリングリストでは ( - オーディオ CDROM の再生で) 何種類かのオーディオ再生ソフトウェアで - ボリュームのコントロールができない, という不満のメールを大量に - 見ることがありました. - - SCSI CDROM のメーカー間の競争のもう一つの局面は, - に対する忠実度です. - 多くの SCSI CDROM は ターゲットアドレス(ID)の - に応答します. - 既知の規格違反デバイスにはティアックの6倍速ドライブ CD-56S 1.0D - があります. - - -* その他 - -* その他 -* PCMCIA diff --git a/ja/handbook/install.sgml b/ja/handbook/install.sgml deleted file mode 100644 index 013783a28e..0000000000 --- a/ja/handbook/install.sgml +++ /dev/null @@ -1,886 +0,0 @@ - - - - - -FreeBSDのインストール - -

原作: 不明 - -

訳: &a.mita;, &a.hanai;, &a.iwasaki;. -26 January 1997. - -

それでは, FreeBSD のインストールに挑戦してみましょう. - この章には, あなたが何をする必要があるかの簡単なガイドが - 書いてあります. FreeBSD は, CD-ROM, フロッピーディスク, 磁気テープ, - MS-DOSのパーティション, ネットワーク接続しているところでは - anonymous FTP や NFS を通じてインストールすることができます. - - どのインストールメディアを利用する場合も, まず後で説明するよう - なインストールディスクの作成から始めます. すぐにイン - ストールするわけではない場合であってもこのディスクであなたのコ - ンピュータを立ち上げることで, FreeBSD とあなたのハードウェアと - の相性に関する重要な情報を手に入れることができ, このハードウェ - アではどんなインストールオプションが使えるかを指定することがで - きます. もしもあなたが anonymous FTP を使用してインストールす - る予定なら, インストールフロッピーだけをダウンロードして作成す - るだけで OK です - インストールプログラム自身がさらに必要なも - のを (Ethernet 接続やモデムによるダイアルアップなどを用いて) - 直接ダウンロードしてくれます. - - FreeBSDの配布に関する情報は, 付録の - をご覧ください. - - 仕事にとりかかるには, 以下のような手順を踏みます. - - -

このインストールガイドの の節を読んで, あなたのハードウェアが - FreeBSD でサポートされていることを確認します. SCSI コントローラだとか, - イーサネットアダプタだとか, サウンドカードだとかの, あなたのマシンが - 装備している特別なカードのリストを作っておくと便利です. この - リストには, 割り込み番号 (IRQ) とか, IO ポートのアドレスとかの, カードに - 関係する設定も書いておきましょう.

-

FreeBSD を CDROM メディアからインストールする場合, いく - つかの異なる選択肢があります. - -

もし CD のマスターが El Torrito ブートサポートで焼か - れており, あなたのシステムが CDROM からのブートをサポートして - いるなら(多くの古いシステムはサポートしていません), - 単にドライブに CD を入れてブートするだけです.

- -

もしDOS を動かしていて CD へアクセスするための適切な - ドライバを持っているならば, CD に入っている install.bat スクリ - プトを起動します. これは, DOS から直接 FreeBSD のインストール - へと進みます(注: これは本当の DOS から行なわなければいけま - せん. Windows の DOS プロンプトからでは駄目です). また, - DOS パーティションから FreeBSD をインストールしたい場合 (恐らく, - CDROM ドライブが FreeBSD で全くサポートされていない場合でしょ - う), setup プログラムを起動します. setup プログラムは, まず CD - から適切なファイルを DOS パーティションにコピーし, インストー - ルへと進みます.

- -

上記二つのうちのどちらかがうまくいったなら, この節の - 残りは必要ありません. そうでないならば, 最後の選択肢は - floppies\boot.flp イメージからブートフロッピーを作る - ことです─そのやり方の説明はステップ 4 へ進みます.

-

- -

もし CDROM を持っていないなら, ファイルをあなたの - ハードディスクにダウンロードしてきます. ブラウザのコマンドでは, - display ではなくて save を選ぶことに注意してください. - - 注意: このディスクイメージは, 1.44 メガバイトの 3.5 インチフロッピーディスクのみで使用可能です.

- -

このイメージファイルからブートディスクを作成します, - -

MS-DOSを使っている場合: - をダウンロードするか, CDROM から - tools\fdiomage.exe を取り, これを実行します. - -E:\> tools\fdimage floppies\boot.flp a: - -このプログラムは, A: ドライブをフォーマットした後 boot.flp の内容を書き込みます -(ここでは通常の通り, FreeBSD の配布物のトップレベルディレクトリにおり, フロッピーイメージ -は floppies ディレクトリにあると仮定しています).

- -

UNIX システムを使っている場合: - -% dd if=boot.flp of=disk_device - -を実行します. ここで, disk_device はフロッピードライブに -対応する /devの中のエントリです. FreeBSD では, -/dev/rfd0 が A:ドライブに, /dev/rfd1 が B:ドライブに -対応しています.

- -

- -

インストールディスクを A:ドライブに入れて, コンピュータを -立ち上げ直します. そうすると次のようなプロンプトが出てくるはずです. - ->> FreeBSD BOOT ... -Usage: [[[0:][wd](0,a)]/kernel][-abcCdhrsv] -Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1 -Use ? for file list or press Enter for defaults -Boot: - - ここで何もタイプしない場合, 5秒間の待ち時間の後に FreeBSD は - 自動的にデフォルトの設定で立ち上がります. 立ち上げの際, どんな - ハードウェアが装備されているかを検出 (プローブ) します. この結果は - スクリーン上に表示されます.

- -

立ち上げプロセスが終了したら, FreeBSD インストールメニューが - 表示されます.

- - -

もしも問題が起こった場合 - -

PC アーキテクチャの制限のため, 100パーセントの信頼をもって検出する - ことは不可能です. もしもあなたのハードウェアが間違って認識されたり, - 検出途中でコンピュータが固まってしまうようなことが起こった場合, - まずこのガイドの - の節を読んで, あなたのハードウェアが本当に - FreeBSD でサポートされているかどうかを確かめてください. - -

ハードウェアがサポートされていた場合, リセットして - Boot: プロンプトが出てきたところで, -c と打ち込んで - ください. こうすると, FreeBSD はコンフィグレーションモードになり, - ハードウェアに関する情報を FreeBSD に与えることができるようになります. - インストールディスクの FreeBSD カーネルは, 多くのデバイスの IRQ, - IO アドレスが工場出荷時の値に設定されているものと仮定して作られています. - もしもあなたのハードウェアの設定を変更したなら, -c - オプションで立ち上げて, 設定がどうなっているかを指定してあげること - が必要になるでしょう. - -

存在しないデバイスを検出すると, 実際に存在している他のデバイスの - 検出に失敗することが考えられます. そのような場合は, 衝突している - デバイスを無効にしなくてはなりません. スクリーンデバイス - (sc0)などインストールに必要なデバイスを無効にしてはい - けません. - -

コンフィグレーションモードでは, - - カーネルに組み込まれているデバイスドライバの一覧を表示する - あなたのシステムにないハードウェアのデバイスドライバを無効にする - デバイスドライバの IRQ, DRQ, IO ポートアドレスなどの変更する - - などができます. -

config> プロンプトが出ているところで, help - と打ち込むと, 使用可能なコマンドについての詳しい説明が出てきます. - あなたのマシンのハードウェア設定に合うようにカーネルを変更したら, - config> プロンプトが出たところで quit と打ち込んで, - 新しい設定でマシンを立ち上げます. - - FreeBSD のインストールがひとたび終了した後は, コンフィグレーションモード - での変更はずっと保持されますので, 立ち上げのたびに設定変更をする必要は - なくなりますが, あなたのシステムの性能を高めるために, - カスタムカーネルを作るのが好ましいでしょう. カスタムカーネルの作成に関しては, - - の章をご覧ください. - - サポートされている設定一覧 - -

現在 FreeBSD は, ISA, VL, EISA, PCI バスや, 386SX から Pentium クラス - までのさまざまな種類の PC で動作します (386SXはおすすめではありません). - IDE, ESDIドライブや, さまざまな SCSI コントローラ, ネットワークカードや - シリアルカードにも対応しています. - - FreeBSD を走らせるには, 最低 4メガバイトの RAM が必要です. X Window System を - 走らせるには最低でも 8メガバイトの RAM が推奨されます. - - 以下のリストでは, FreeBSD で動作が確認されているディスクコントローラ - やイーサネットカードです. 他の設定でもうまく動いてくれると - 思いますが, 私たちのところには情報は入ってきていません. - - ディスクコントローラ - -

- - WD1003 (あらゆる MFM/RLL) - WD1007 (あらゆる IDE/ESDI) - IDE - ATA - - Adaptec 1505 ISA SCSI コントローラ - Adaptec 152x シリーズ ISA SCSI コントローラ - Adaptec 1535 ISA SCSI コントローラ - Adaptec 154x シリーズ ISA SCSI コントローラ - Adaptec 174x シリーズ EISA SCSI コントローラ - (スタンダード, エンハンスドモード) - Adaptec 274x/284x/2940/2940U/3940 - (Narrow/Wide/Twin) - シリーズ EISA/VLB/PCI SCSI コントローラ - Adaptec AIC7850 オンボード SCSI コントローラ - Adaptec - - AIC-6360系のボード - AHA-152x や SoundBlaster SCSI などがこれにあたります. - - 注意: Soundblaster カードには, オンボード BIOS - が載っていないので, このカードからは FreeBSD を起動できません. - オンボード BIOS とは, システム BIOS の I/O ベクタにブートデバイスを - 登録するときに必要なものです. このカードは外部テープであるとか, - CD-ROM であるとかその他の場合には十分利用可能です. - 同じことは, ブート ROM の載っていない AIC-6x60 系のカードにもいえます. - いくつかのシステムでは実際にブート ROM を持っています. - それは電源を入れるかリセットしたとき, 最初に表示されます. - 詳しくはあなたのシステムやボードの解説書をご覧ください. - - - Buslogic 545S & 545c - 注意: Buslogic社は古くは Bustek社といっていました. - Buslogic 445S/445c VLバス SCSI コントローラ - Buslogic 742A, 747S, 747c EISA SCSI コントローラ. - Buslogic 946c PCI SCSI コントローラ - Buslogic 956c PCI SCSI コントローラ - - NCR 53C810 , 53C825 PCI SCSI コントローラ. - NCR5380/NCR53400 (``ProAudio Spectrum'') SCSI コントローラ. - - DTC 3290 EISA SCSI コントローラ (1542 エミュレーション) - - UltraStor 14F, 24F, 34F SCSI コントローラ. - - Seagate ST01/02 SCSI コントローラ. - - Future Domain 8xx/950 シリーズ SCSI コントローラ. - - WD7000 SCSI コントローラ. - - - - サポートされている SCSI コントローラのすべてで, ディスク, テープドライブ - (含む DAT), CD-ROM ドライブなどの周辺機器との通信に SCSI-I, - SCSI-II が利用可能です. - - 現在, 次にあげるタイプの CD-ROM ドライブがサポートされてます. - - Soundblaster SCSI , ProAudio Spectrum SCSI (cd) - ミツミ (全モデル) 独自のインタフェース (mcd) - 松下 / Panasonic (Creative) - CR-562/CR-563 インタフェース (matcd) - ソニー インタフェース (scd) - ATAPI IDE インタフェース - (まだまだお試し段階で, クオリティは低いです) - (wcd) - - - イーサネットカード - -

- - - Allied-Telesis AT1700, RE2000 カード - - SMC Elite 16 WD8013 Ethernet インタフェース, - その他多くの WD8003E, WD8003EBT, WD8003W, WD8013W, - WD8003S, WD8003SBT や WD8013EBTなどの互換品. - SMC Elite Ultra 及び 9432TX ベースのカードもサポートされています. - - DEC EtherWORKS III ネットワークインタフェースカード (DE203, DE204, DE205) - DEC EtherWORKS II ネットワークインタフェースカード (DE200, DE201, DE202, DE422) - DEC DC21040/DC21041/DC21140 ベースのネットワークインタフェースカード: - - ASUS PCI-L101-TB - Accton ENI1203 - Cogent EM960PCI - Compex CPXPCI/32C - D-Link DE-530 - DEC DE435 - Danpex EN-9400P3 - JCIS Condor JC1260 - Kingston KNE100TX - Linksys EtherPCI - Mylex LNP101 - SMC EtherPower 10/100 (Model 9332) - SMC EtherPower (Model 8432) - SMC EtherPower (2) - Zynx ZX314 - Zynx ZX342 - - DEC FDDI (DEFPA/DEFEA) ネットワークインタフェースカード - - 富士通 FMV-181, FMV-182 - - 富士通 MB86960A/MB86965A - - Intel EtherExpress - - Intel EtherExpress Pro/100B 100Mbit. - - Isolan AT 4141-0 (16 bit) - Isolink 4110 (8 bit) - - Lucent WaveLAN ワイアレスネットワークインターフェイス - - Novell NE1000, NE2000, NE2100 イーサネットインタフェース - - 3Com 3C501 カード - - 3Com 3C503 Etherlink II - - 3Com 3c505 Etherlink/+ - - 3Com 3C507 Etherlink 16/TP - - 3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III - - 3Com 3C590, 3C595 Etherlink III - - 3Com 3C90x カード - - HP PC Lan Plus (27247B と 27252A) - - 東芝 イーサネットカード - - IBM , National Semiconductor社 PCMCIA - イーサネットカードもサポートされています. - - -

注意: FreeBSD は今のところ, いくつかのイーサネットカードの - PnP (プラグ&プレイ) 機能には対応していません. もし PnP で問題が起こる - ようでしたら, PnP 機能を無効にしてください. - - その他のデバイス - -

- - AST 4 ポート シリアルカード (シェアード IRQ 使用) - - ARNET 8 ポート シリアルカード (シェアード IRQ 使用) - - BOCA IOAT66 6 ポート シリアルカード (シェアード IRQ 使用) - - BOCA 2016 16 ポート シリアルカード (シェアード IRQ 使用) - - Cyclades Cyclom-y シリアルボード - - STB 4 ポート カード (シェアード IRQ 使用) - - SDL Communications Riscom/8 シリアルボード - - SDL Communications RISCom/N2 と N2pci 同期シリアルカード - - Digiboard Sync/570i high-speed 同期シリアルカード - - Decision-Computer Intl. "Eight-Serial" 8 ポートシリアルカード - (シェアード IRQ 使用) - - Adlib, SoundBlaster, SoundBlaster Pro, - ProAudioSpectrum, Gravis UltraSound, Gravis UltraSound MAX - Roland MPU-401 などのサウンドカード - - Matrox Meteor video フレームグラバー - - Creative Labs Video spigot フレームグラバー - - Omnimedia Talisman フレームグラバー - - Brooktree BT848 チップベースのフレームグラバー - - X-10 power コントローラ - - PC ジョイスティックおよびスピーカ - - FreeBSD は今のところ, IBM社のマイクロチャネルアーキテクチャ (MCA) バスには - 対応していません. - - インストールの下準備 - -

FreeBSD のインストール方法はさまざまあります. それぞれの - インストール方法に対して, どのような下準備が必要かをこれから説明します. - - CD-ROM からインストールする前に - -

あなたの CD-ROM ドライブがサポートされていないタイプの場合は, - - に飛んでください. - Walnut Creek の FreeBSD CD-ROM からインストールする場合は, 大した下準備 - をしないでもうまくインストールできることでしょう (その他の CD-ROM - でもうまくいくでしょうが, その CD-ROM がどうやって作られているか, 私たち - はわかりませんので確実なことは言えません). - Walnut Creek の CD-ROM に収録されている, ``install.bat'' で直接 FreeBSD - を立ち上げることもできますし, ``makeflp.bat'' でブートフロッピーディスクを - つくることもできます. [注意: もし FreeBSD 2.1-RELEASE を使っていて - IDE CD-ROM ドライブを持っている場合, install.bat のかわりに - inst_ide.bat もしくは atapiflp.bat を使ってください. ] - - DOS から最も楽なインタフェースを使いたい場合は ``view'' と打ち込みます. - そうすると DOS でのメニューが立ち上がって, 可能なオプション - すべてを選択できます. - - あなたが UNIX マシンでブートフロッピーディスクを作成している場合は, - を参考にしてください. - - DOS から, もしくはフロッピーディスクから起動をおこなうと, - メニュー ``Media'' から, インストールメディアとして CDROM を - 選択することで, 配布ファイルをロードすることができるようになります. - 他の種類のインストールメディアは不要なはずです. - - システムインストールがすべて終了して, ハードディスクから起動 - しなおしてからは, mount /cdrom とタイプする - ことでいつでも CD-ROM のマウントをすることができるようになります. - - CD-ROM を取り出す前には umount /cdrom と打ち込まなくてはならない - ことを覚えておいてください. 単純にドライブから取り出さないように! - - 特別な注意: インストールに入る前に, - CD-ROM をドライブに入れておいて, インストールフロッピーディスクが立ち上がる - ときに CD-ROM を見つけられるようにしておくようにしましょう. CD-ROM を - デフォルトでシステムにつけ加えたい場合も CD-ROM を入れておきます - (インストールメディアとして実際に CDROM を選択しない場合も同様). - - - おわりに, あなたのマシンの CD-ROM を直接使って, FTP 経由で別のマシンに - FreeBSD をインストールさせたいとします. やり方は簡単です. - あなたのマシンのインストールが終了した後に, vipw コマンドを使って, - passwd ファイルに以下の行を追加します. - - -ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent - - - こうするとあなたのマシンにネットワーク接続できる人 (そして, - login 許可を持っている人) は, メディアタイプとして FTP を選択できるように - なります. 具体的には, FTP サイトの選択メニューから ``Other'' を選択して, - ftp://あなたのマシンのアドレス - を入力します. - - フロッピーディスクからのインストールの前に - -

あなたがフロッピーディスクからのインストールをしなくては - ならない場合, その理由はハードウェアがサポートされてなかったためか, - 単にいばらの道を通ることを楽しんでいるからでしょうが, インストール用の - フロッピーディスクを用意する必要があります. - - 最低でも bin (基本配布ファイル) ディレクトリ内のすべてのファイル - を入れられるだけの 1.44 メガバイトか 1.2 メガバイトのフロッピーディスク - が必要です. これらのフロッピーディスクを DOS で作成している場合は, - フロッピーディスクは「MS-DOS の FORMAT コマンドでフォーマット」 - されなくてはなりません. Windows をお使いの場合は, Windowsの - ファイルマネージャの初期化コマンドを使用してください. - - 工場での初期化済みディスクを「信用しないでください」. 念のためにあなた - 自身でフォーマットし直してください. ユーザからのトラブル報告の多くは - ちゃんと初期化されていないディスクを使用していたことが原因となっています. - 私が特にフォーマットし直してくださいと述べているのも, この理由からです. - - 他の FreeBSD マシンでフロッピーディスクを作成している場合, - フォーマットすることは悪いことではありません. いちいち DOS - ファイルシステムのフロッピーディスクを作成する必要はありませんので, - `disklabel' コマンドと `newfs' コマンドを使って, 次のような手順で - (3.5 インチ 1.44 メガバイトディスク用の) UFS ファイルシステムを - 作成することもできます. - - - fdformat -f 1440 fd0.1440 - disklabel -w -r fd0.1440 floppy3 - newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0 - -(5.25 インチの 1.2 メガバイトディスクの場合は "fd0.1200" と "floppy5" にしてください) - - - これで他のファイルシステムと同様に mount して書き込むことができます. - - フォーマットされたフロッピーディスクを用意したら, それらにファイル - をコピーしなくてはなりません. 配布ファイルはいくつかのかたまり - にわかれていて, これらのかたまり五つで一般的な 1.44 メガバイトの - フロッピーディスクに収まるようになっています. フロッピーディスクに - 入るだけファイルを入れていって, 配布ファイルをすべてコピーしてください. - それぞれの配布ファイルはサブディレクトリにコピーする必要があります. 例えば, - a:\bin\bin.aaとか, - a:\bin\bin.abといった感じです. - - インストールメディアの選択場面になったら, ``Floppy'' を選択して, - 残りの指定をやってください. - - ハードディスクの MS-DOS パーティションからインストールする前に - - -

- - ハードディスクの MS-DOS パーティションからインストールするときは, - まずファイルを C:\FREEBSD にコピーします. - CD-ROM にあるディレクトリ構造を反映してコピーしなくてはなりません. - DOS の xcopy コマンドの使用をおすすめします. - - 例えば, FreeBSD の最低限のインストールをするには, このような手順で - コピーします. - -C> MD C:\FREEBSD -C> XCOPY /S E:\BIN C:\FREEBSD\BIN\ -C> XCOPY /S E:\MANPAGES C:\FREEBSD\MANPAGES\ - - - ここで, C:ドライブには十分なディスクスペースが残っており, - CD-ROM は E:ドライブに接続されているものとします. - - MS-DOS からたくさんの `配布ファイル (DISTS)' をインストールしたい - (そしてディスクの余裕がある) 場合は, それぞれ C:\FREEBSD - ディレクトリにコピーします - BIN 配布ファイルは, - 最低限必要なものです. - - QIC/SCSI テープからのインストールの前に - -

テープからのインストールは, おそらく FTP を利用したオンライン - インストールか, CD-ROM を利用したインストールができない場合の, - もっとも簡単な方法でしょう. インストールプログラムは, 以下のような - コマンドを使用して, 単純に配布ファイルがテープ上に tar されていることを - 期待しています. - - -cd /freebsd/distdir -tar cvf /dev/rwt0 (または /dev/rst0) dist1 .. dist2 - - - インストールに入る前に, テンポラリ (一時使用) ディレクトリに - 十分なディスクスペースを確保して, 作成したテープのすべての - ファイルを格納できることを確認してください (テンポラリディレクトリは - 自分で選ぶことができます). テープの特性上, ランダムにアクセスするこ - とができませんので, 一時的に極めて大量の容量を必要とします. - テープに準備しただけの量のディスクスペースを一時的に使用することに - 留意してください. - - - 注意: インストールに入るときは, ブートフロッピーディスク - から立ち上げるにテープをドライブに入れておかなくてはなりません. - さもないとインストール時のデバイス検出のときにテープを見つけられません. - - -ネットワーク経由のインストールの前に - -

三つの物理的な接続形態で, ネットワーク経由のインストールを - おこなうことができます. - - シリアルポート SLIP もしくは PPP 方式. - パラレルポート PLIP (laplink ケーブル使用) - イーサネット 標準的なイーサネットコントローラ - (いくつかの PCMCIA カードにも対応) - - - SLIP のサポートはまだまだ原始的とも呼べる方法なので, ラップトップと - 他のコンピュータをシリアルケーブルで接続するといった具合いに, - 直接接続してなくてはいけません. SLIP インストールは, ダイヤル機能を - 持っていませんので, インストールするためには直接接続しなくてはなりません. - PPP インストールではダイヤルアップ接続が可能ですので, できれば PPP 接続の - 方を選択しましょう. - - もしもあなたがモデムを使用しているなら, あなたに残された選択肢は - ほぼ間違いなく PPP インストールでしょう. インストール時に必要になりますので, - サービスプロバイダ (ISP) に関する情報を用意しておきましょう. - PPP ダイヤルの際は, とてもシンプルな端末エミュレーターで作業する - ことになりますので, お手持ちのモデムで ISP にダイヤルするため - の「ATコマンド」の使い方を知っておく必要があります. もし PAP - や CHAP を用いるなら, 「term」を入力する前に「set authname」や - 「set authkey」といったコマンドを入力する必要があるでしょう. - これ以上の情報については, - や のユーザー PPP - エントリーを参照して下さい. 問題が起きた場合には, に書いてあります. - サポートされている PCMCIA カードを使っている場合には, ラップトップの電源を - 入れる「前」に差し込んでおくことにも注意してください. 残念ながら今の - FreeBSD は, インストール時の活線挿抜には対応していません. - - ネットワークでの IP アドレス, あなたのアドレスクラスに対応した - ネットマスク, マシン名を知っておくことも必要です. ネットワーク管理者の方に - たずねればどんな値を使ったらよいかを教えてくれるでしょう. もしも他のホストを - IP アドレスではなくて名前で引きたい場合, ネームサーバとゲートウェイ - のアドレスも知らなくてはなりません (PPP をご使用の場合は, プロバイダの - IP アドレスになります). これらのうちのすべて, またはいくつかを - 知らない場合は, イーサネット経由でのインストールを始める前に「まず」 - ネットワーク管理者に相談してください. - - 何らかのネットワーク接続ができたら, 続けてインストールを NFS か - FTP 経由でおこないます. - - NFS インストールのための下準備 - -

NFS インストールはまったく単純明解です. FreeBSD の配布ファイルを - サーバの好きな場所にコピーしておいて, メディア選択で NFS を選択します. - - もしサーバが ``privileged (特権) ポート'' へのアクセスのみをサポート - している場合, (Sun ワークステーションの標準ではこうなっています) - インストールを進める前に Options メニューを選択して, ``privileged - port'' オプションを選択してください. - - イーサネットカードの性能が悪くて, 転送速度が遅くて困っている場合も, - 適当な Options を選択するとよいでしょう. - - NFS 経由でインストールするためには, サブディレクトリも - 含めたマウントにサーバが対応している必要があります. 例えば, - FreeBSD &rel.current; の配布ファイルが - ziggy:/usr/archive/stuff/FreeBSD - にあるとすると, マシン ziggy では /usr や - /usr/archive/stuff だけではなく, - /usr/archive/stuff/FreeBSD の直接マウントが可能に - なっていなければなりません. - - FreeBSD の /etc/exports ファイルでは, このことは - ``-alldirs'' オプションによって制御されています. - 他の NFS サーバの場合だとまた話が違ってくるかもしれません. - もしもサーバから `Permission Denied' というメッセージが - 返ってくるようでしたら, サブディレクトリマウントをちゃんと - 有効にできていないことが考えられます. - - FTP インストールのための下準備 - -

FTP 経由のインストールは, FreeBSD &rel.current; の最新バージョンを - ミラーしているどのサイトからでも可能です. 世界中の妥当な FTP サイトの - 選択肢をメニューに並べておきました. - - このメニューに出ていない他の FTP サイトからインストール - する場合や, ネームサーバの設定に問題が生じた場合は, - メニューでサイト ``Other'' を選ぶところで, お好みの - URL でサイトを指定することができます. URL として直接 IP - アドレスで指定してもよく, 直接指定した場合はネームサーバ - がなくても FTP インストールが可能になります. 例えば, - -ftp://165.113.121.81/pub/FreeBSD/&rel.current;-RELEASE - - のような感じですね. - - FTP 経由のインストールモードとして, このようなものが - 使用可能です: - - - FTP Active - - すべての FTP 転送の際に ``Active'' モードを使用します. - ファイアウォール内部のマシンではうまく動きませんが, - passive モードをサポートしていない古い FTP サーバでも - 動作します. passive モードでの FTP 転送 (こちらが - デフォルトです) が失敗した場合は, active を使ってください. - - FTP Passive - - すべての FTP 転送の際に ``Passive'' モードを使用します. - このモードを使用することで, ランダムポートアクセスインを - 許さないファイアウォールを越えることができるようになります. - - - - 注意: Active, passive モードは `proxy' - 接続と同じではありません! proxy FTP サーバは FTP 要求 - を受け付け実際の FTP サーバへ転送します. - - 通常 proxy FTP サーバ に対しては, ユーザ名の一部として - @ 記号に続いて実際に接続したいサーバの名称を与える必要が - あります. そうすると proxy サーバは本当のサーバの「ふり」 - をするようになります. 例えば: ftp.freebsd.org から ポート番号 - 1234 で要求を待つ proxy FTP サーバ foo.bar.com を使って - インストールしたいとします. - - この場合では, 「オプション」メニューで FTP username を - ftp@ftp.freebsd.org, パスワードとして自分の電子メールアドレス - を指定します. インストールメディアとして FTP (または proxy - サーバがサポートしていれば passive FTP), URL を以下のようにします: - -ftp://foo.bar.com:1234/pub/FreeBSD - - ftp.freebsd.org の /pub/FreeBSD に対する FTP 要求については - foo.bar.com が代理で処理をおこなうことになり, 「むこう」 - のマシンからインストールすることができます (インストール時 - の要求により ftp.freebsd.org からファイルをもってきます). - - FreeBSD のインストール - -

インストールの下準備を適切に書き留めておけば, なんの - 問題もなく FreeBSD のインストールができることと思います. - - 何かうまくいかなかった場合は, あなたが使おうとしている - インストールメディアのことが書いてある箇所まで戻って - もう一度読むとよいでしょう. おそらく最初読んだときに - 見落していた, 有効なヒントがあるものと思います. - ハードウェアの問題が出てきたとか, FreeBSD がまったく - 立ち上がらない場合は, boot フロッピーディスクに提供されている - Hardware Guide を読んで, 何か解決方法はないか探してください. - - FreeBSD のブートフロッピーディスクには, インストールをおこなうために - 必要と思われるすべてのオンラインドキュメントを用意してあります. - もしもそのドキュメントがお望みのものでないようでしたら, - 私たちはあなたが何にもっとも困っているのかを知りたいと思います. - コメントを &a.doc; にお送りください. FreeBSD のインストールプログラム - (sysinstall) を, うっとうしい ``step-by-step'' ガイドなしに, - プログラム自身で使用方法がわかるようにするのが最終目標です. - 目標達成までには時間がかかりそうですが, ともかくそれが - 目標なのであります. - - - 閑話休題. ここに, 「典型的なインストールの手順」を - まとめてみましたので, お役にたてるものと思います. - - ブートフロッピーディスクから起動します. ハードウェアの性能に - よりますが, 起動には 30秒から 3分かかります. 起動したら - 初期選択画面が出てくるでしょう, もしもフロッピーディスクから - まったく起動しなかったり, どこかの段階で起動が止まってしまった - 場合は, ハードウェアガイドの Q&A を読んで, 理由を - 探ってみます. - - F1 キーを叩きます. メニューシステムとインストールプログラム - 全般に対しての使い方が表示されます. このメニューシステムを - 使ったことがない場合は, 「徹底的に」読んでください. - - Options を選択し, 他に必要な特別な選択を - おこないます. - - 典型的なインストールでおまかせしたい方は Novice を, - インストールのそれぞれの段階をいちいちコントロールしたい方は Custom を, - (可能であれば適切なデフォルトを使用して) 簡単にさっさと済ませたい方は - Express を, それぞれ好みに応じて選んでください. - FreeBSD を初めて使う方には, Novice を一番におすすめします. - - final configuration メニューからは, メニュー形式のさらに - 進んだ設定をおこなうことができます. ネットワーク周りの - 設定は, 特に CD-ROM / テープ / フロッピーディスクから - インストールして, まだネットワーク設定をおこなっていない - 人にとっては特に重要でしょう. インストールの時点できちんと - 設定しておけば, ハードディスクからシステムを立ち上げ直した - 時点でネットワーク接続ができるようになっていることでしょう. - - - - - - - MS-DOS ユーザのためのQ&A - -

多くのFreeBSD ユーザは, MS-DOS が入っている PC に FreeBSD を - インストールしたいと考えます. そのようなシステムに - FreeBSD をインストールする際によく聞かれる質問を集めて - あります. - -

助けて! ディスクスペースが余ってないのです. - 最初に MS-DOS のファイルを全部削除しないといけませんか? - - もしあなたのマシンですでに MS-DOS が走っていて, FreeBSD の - インストール用の空きスペースが少ないか, まったくない場合でも - 大丈夫です. FreeBSD の CD-ROM や, FTP サイトの tools - ディレクトリに FIPS プログラムというのがありますが, - これが非常に役立ちます. - - FIPS を使えば, すでに存在している MS-DOS のパーティションを - 二つに分けることができ, さらにもともとのパーティションは - 残してくれて, 二つめのパーティションを FreeBSD の - インストールに使用することができるようになります. - まず DOS6.xx についてくる DEFRAG か, Norton Disk ツールを使って, - MS-DOS パーティションからフラグメント情報を取り去って, その後に - FIPS を走らせます. FIPS ユーティリティから必要な情報が - 手に入ります. その後マシンを立ち上げ直して, 空いた場所に - FreeBSD をインストールします. どのくらいの空きスペースが - インストールに必要かは, Distributions メニューを - 参考にしてください. - - FreeBSD で MS-DOS の圧縮ファイルシステムにアクセス - できますか? - - いいえ. もし Stacker(tm) や DoubleSpace(tm) のような - ユーティリティをお使いの場合, FreeBSD は非圧縮の部分にしか - アクセスできません. 残りの場所は一つの大きなファイルとして - (stack された, もしくは doublespace されたファイルとして) - 見えます. そのファイルを削除しないでください!! - 削除してしまうと後できっと後悔します. - - 非圧縮の MS-DOS の基本区画を作って, そちらを MS-DOS と - FreeBSD とのやり取りに使うのがよろしいでしょう. - - MS-DOS 拡張フォーマットをマウントできますか? - - はい. DOS 拡張パーティションは FreeBSD の他の「スライス」の最後に - マップされます. 例えば D:ドライブ が /dev/sd0s5, E:ドライブが - /dev/sd0s6, といった具合いです. もちろん, この例では拡張 - パーティションが SCSI ドライブ 0 にあることを仮定しています. - IDE ドライブでは当然, ``sd'' が ``wd'' となります. 他の DOS ドライブを - マウントするのと同様に, 次のようにして拡張パーティションもちゃんと - マウントできます: - - -mount -t msdos /dev/sd0s5 /dos_d - - - MS-DOS のバイナリを FreeBSD で実行できますか? - - BSDI が BSD のコミュニティに対して寄贈した DOS エミュレータが - あり, これが FreeBSD 用に移植されています. - - またこれとは別に, - には, pcemu という (技術的に) 素晴らしいアプリケーションがあり, - これをつか うことで多くの MS-DOS のテキストモードで動くプログ - ラムを完全な 8088CPU のエミュレーション環境で走らせることがで - きます. - diff --git a/ja/handbook/isdn.sgml b/ja/handbook/isdn.sgml deleted file mode 100644 index d49501fc42..0000000000 --- a/ja/handbook/isdn.sgml +++ /dev/null @@ -1,223 +0,0 @@ - - - - -ISDN - -

最終更新: &a.wlloyd;. -

訳: &a.kiroh;.11 December 1996. - -

ISDN 技術とハードウェアに関しては, - がよい参考になるでしょう. - -ISDN の導入手順は, 簡単にいって以下のようになります. - -ヨーロッパ在住の方は, ISDN カードの節に進んでください. - -ISDN を使って, インターネットプロバイダに(専用線は使用せず), ダ -イアルアップ接続しようとしている場合は, ターミナルアダプタの使用を考え -てみてください. この方法はもっとも柔軟性があり, プロバイダを変更した場 -合の問題も少ないでしょう. - -2つの LAN の間を接続しようする場合や, ISDN 専用線を使用する場合 -には, スタンドアローンルータ/ブリッジの使用を勧めます. - - - -

どの方法を用いるかを決定するには, 費用が重要な要素になってきます. -以下に, 最も安価な方法から, 高価な方法まで順に説明していきます. - -ISDN カード - -

著者:&a.hm;. - -

このセクションの記述は, DSS1/Q.931 ISDN 標準がサポートされている国 -のユーザにのみ有効です.

- -

最近増えてきている PC ISDN カードのうちいくつかは, FreeBSD 2.2.x 以 -降で isdn4bsd ドライバパッケージによりサポートされています. -依然として開発中ではありますが, ヨーロッパ中でうまく動作しているという報告があります. -

- -

最新の isdn4bsd は, - -から入手できます. -この ftp サイトでは, ユーザ名として isdn4bsd を使い, パスワードにメー -ルアドレスを使ってログインする必要があります. ログインできたら -"pub" ディレクトリに移動してください. ユーザー名 -"ftp" や "anonymous" によるログインでは, 必要なファ -イルにたどりつけません.

- -

isdn4bsd は, IP over raw HDLC もしくは同期 PPP を利用して他の ISDN -ルータと接続できます. 留守番電話アプリケーションも使えます. - -

Siemens ISDN チップセット (ISAC/HSCX) を使用したものを主に多くのカードが -サポートされています. 他のチップセット (Motorola, Cologn Chip -Designs) のサポートは現在開発中です. サポートされるカードの最新のリス -トは, -を参照してください.

- -

他の ISDN プロトコルを追加したい場合や, サポートされていない ISDN -PC カード サポートしたい場合など isdn4bsd を拡張したい場合は, - までご連絡ください.

- -

majordomoによるメーリングリストが利用できます. 参加するには, 本文に

- -

subscribe freebsd-isdn

- -

と記入したメールを宛てに送ってください.

- -ISDN ターミナルアダプタ - -

ターミナルアダプタ (TA) はISDN に対して, 通常の電話線に対するモデ -ムに相当するものです. - -

ほとんどの TA は, 標準のヘイズ AT コマンドセットを使用しているので, -単にモデムと置き換えて使うことができます. - -TA は, 基本的にはモデムと同じように動作しますが, 接続方法は異なり, 通 -信速度も古いモデムよりはるかに速くなります. -の設定を, モデムの場合と同じように行ってください. とくにシリアル速度を -使用できる最高速度に設定するのを忘れないでください. - -プロバイダへの接続に TA を使用する最大のメリットは, 動的 PPP を行える -ことです. 最近 IP アドレスが不足してきているため, ほとんどのプロバイダ -は, 専用の IP アドレスを割り当てないようになっています. ほとんどのスタ -ンドアローンルータは, 動的 IP アドレスに対応していません. - -訳注: 最近の ISDN ルータでは, IP アドレスの動的割り当てに対応している -ものも多いようです. ただし制限がある場合もありますので, 詳しくはメーカ -に問い合わせてください. - -TA を使用した場合の機能や接続の安定性は, 使用している PPP デーモンに完 -全に依存します. そのため, FreeBSD で PPP の設定が完了していれば, 使用 -している既存のモデムを ISDN の TA に簡単にアップグレードすることができ -ます. ただし, それまでの PPP のプログラムに問題があった場合, その問題 -は TA に置き換えてもそのまま残ります. - -最高の安定性を求めるのであれば, ユーザープロセス ではなく, カーネルを使用してく -ださい. - -

以下の TA は, FreeBSD で動作確認ずみです. - - -Motorola BitSurfer および Bitsurfer Pro -Adtran - - -他の TA もほとんどの場合うまく動作するでしょう. TA のメーカーでは, TA -がほとんどの標準モデム AT コマンドセットを受け付けるようにするよう, 努 -力しているようです. - -外部 TA を使う際の最大の問題点は, モデムの場合と同じく良いシリアルカー -ドが必要であるということです. - -シリアルデバイスの詳細, そして非同期シリアルポートと同期シリアルポート -の差については, ハンドブックの の -節を参照してください. - -標準の PC シリアルポート(非同期)に接続された TA は, 128Kbs の接続を行っ -ていても, 最大通信速度が 115.2Kbs に制限されてしまいます. 128Kbs の -ISDN の性能を最大限に生かすためには, TA を同期シリアルカードに接続しな -ければなりません. - -内蔵 TA を購入して, 同期/非同期問題を片付けてしまおうとは思わないでく -ださい. 内蔵 TA には, 単に標準 PC シリアルポートのチップが内蔵されてい -るだけです. 内蔵 TA の利点といえば, シリアルケーブルを買わなくていいと -いうことと, 電源コンセントが一つ少なくて済むということくらいでしょう. - -同期カードと TA の組合せは 386 の FreeBSD マシンの場合でも, スタンドア -ローンのルータと同程度の速度は確保できます. またこの組合せでは, ルータ -より柔軟な設定が可能です. - -同期カード/TA を選ぶか, スタンドアローンルータを選ぶかは, 多分に宗教的 -な問題です. メーリングリストでもいくつか議論がありました. 議論の内容に -ついては, -を参照してください. - -スタンドアローン ISDN ブリッジ/ルータ - -

ISDN ブリッジやルータは, OS 特有のものではありません. もちろん -FreeBSD 特有のものでもありません. ルーティングやブリッジング技術に関す -る詳細は, ネットワークの参考書をご覧ください. - -このページでは, ルータとブリッジにどちらでもあてはまるように記述します. - -

ISDN ルータ/ブリッジは, ローエンドの製品のコストが下がってきている -こともあり, より一般的に使用されるようになるでしょう. ISDN ルータは, -外見は小さな箱で, ローカルのイーサネットネットワーク(もしくはカード)と -直接, 接続します. また, 自身で他のブリッジ/ルータとの接続を制御します. -PPP や他のプロトコルを使用するためのソフトウェアは, すべて組み込まれて -います. - -ルータは, 完全な同期 ISDN 接続を使用するため, 通常の TA と比較してスルー -プットが大幅に向上します. - -ISDN ルータ/ブリッジを使用する場合の最大の問題点は, 各メーカーの製品間 -に相性の問題がまだ存在することです. インターネットプロバイダとの接続を -考えている場合には, プロバイダと相談することをお勧めします. - -

事務所の LAN と家庭の LAN の間など, 二つの LAN セグメントの間を接続 -しようとしている場合は, ブリッジ/ルータの使用がもっともメンテナンスが -簡単で, 努力が少なくてすむ方法です. 両側の機材を購入するのであれば, メー -カー間の接続性の問題もないでしょう. - -たとえば家庭の LAN や出張所の LAN を本社のネットワークに接続するために -は, 以下のような設定が使用できます. - -出張所 LAN または 家庭 LAN - -ネットワークは, 10 Base T イーサネットです. ルータとネットワークの間は, -必要に応じて AUI/10BT トランシーバを使って接続します. - - ----Sun ワークステーション -| ----FreeBSD マシン -| ----Windows 95 (別に勧めているわけじゃありません) -| -スタンドアローンルータ - | -ISDN BRI ライン - -家庭/出張所 LAN で, 一台しかコンピュータを接続しないのであれば, クロス -のツイストペアケーブルを使用して, スタンドアローンルータと直結も可能で -す. - -本社 LAN や他の LAN - -ネットワークは, ツイストペアイーサネットです. - - -------Novell サーバ - | | - |ハ ---Sun - | | - | ---FreeBSD - | | - |ブ ---Windows 95 - | | - |___---スタンドアローンルータ - | - ISDN BRI ライン - - -ほとんどのルータ/ブリッジでは, 別々の二つのサイトに対して, 同時にそれ -ぞれ独立した二つの PPP 接続が可能です. これは, 通常の TA ではサポート -されない機能で, ルータ/ブリッジ接続の大きな利点です (シリアルポートを -二つもつ特殊(そして高価な) TA では可能です). チャンネル割り当てや MPP -などと混同しないでください. - -これは, 大変便利な機能です. たとえば事務所で専用線インターネット ISDN -接続を使用していて, 別の ISDN ラインを購入したくないとします. この場合, -事務所のルータは, 一つの専用線 B チャンネル接続(64Kbs)を維持しつつ, 別 -の B チャンネルを他の用途に使用することができます. たとえば, 他の場所 -とのダイアルイン, ダイアルアウトに使用したり, バンド幅を増やすために, -インターネットとの接続への動的に割り当て(MPP など)に使用したりすること -が可能です. - -

またイーサネットブリッジは, IP パケットだけでなく IPX/SPX などすべての -プロトコルのパケットを中継することが可能です.

diff --git a/ja/handbook/jcontrib.sgml b/ja/handbook/jcontrib.sgml deleted file mode 100644 index eeff8fd753..0000000000 --- a/ja/handbook/jcontrib.sgml +++ /dev/null @@ -1,83 +0,0 @@ - - - -FreeBSD Handbook 日本語化について - -

FreeBSD 日本語ドキュメンテーションプロジェクトは, FreeBSD 関係の日本語 - ドキュメントが少ないことを嘆いた数人の FreeBSD ユーザの提唱によって - 1996年2月26日にスタートし, その最初の作業として, FreeBSD Handbook - の日本語への翻訳を始めました. - 当初の予定から大幅に遅れながらもなんとか完成することができましたが, - これで終りではありません. - オリジナルの FreeBSD Handbook は日毎に更新されており, 私たちもまた - これに追い付くために作業を続けていきます. もちろん, 新しいメンバも大歓迎 - です. - 日本語翻訳版について, 何かお気づきの点がありましたら, &a.doc-jp; -までご連絡ください. - また, もし私たちの作業を手伝ってくれるなら, - をご覧の上, 是非参加してください. - - 翻訳者 (五十音順) - -

- - &a.asami - &a.arimura - &a.graphite - &a.iwasaki - &a.yoshiaki - &a.candy - &a.kimura - &a.koga - &a.masaki - &a.motoyuki - &a.saeki - &a.simokawa - &a.sugimura - &a.yasu - &a.mihoko - &a.ts - &a.nakai - &a.ikuo - &a.max - &a.hanai - &a.kiroh - &a.hino - &a.shou - &a.yuki - &a.maruyama - &a.mita - &a.kmiyakoda - &a.miyasita - &a.condle - &a.tomo - - - 査読者 (五十音順) - -

- - &a.asami - &a.iwasaki - &a.yoshiaki - &a.kanou - &a.koga - &a.saeki - &a.sugimura - &a.max - &a.hanai - &a.nao - &a.kiroh - &a.hino - &a.shou - &a.yuki - &a.mrt - - - ツール作成者 - -

- - &a.katsu - &a.iwasaki - diff --git a/ja/handbook/jmembers.sgml b/ja/handbook/jmembers.sgml deleted file mode 100644 index 94b686269b..0000000000 --- a/ja/handbook/jmembers.sgml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -"> - - - -"> - -"> - -"> - -"> - - - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - - - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - - - -"> - -"> - -"> - -"> - -"> diff --git a/ja/handbook/kerberos.sgml b/ja/handbook/kerberos.sgml deleted file mode 100644 index 9cf4511321..0000000000 --- a/ja/handbook/kerberos.sgml +++ /dev/null @@ -1,491 +0,0 @@ - - - - -Kerberos - -

原作: &a.markm; (&a.md; からの寄稿に基づいています). - - 訳: &a.arimura;. - - Kerberosは, サーバのサービスによってユーザが安全に認証を受けられる - ようにするための, ネットワークの付加システム及びプロトコルです. - リモートログイン, リモートコピー, システム間での安全なファイルのコピ - ーやその他のリスクの高い仕事がかなり安全に, そしてこれまでより制御 - できるようになります. - - 以下の文章は, FreeBSD用として配布されているKerberosをセットアップ - する際のガイドとして読むことができます. - しかし, 完全な説明が必要な場合には, マニュアルページを読んだ方がよい - でしょう. - - FreeBSDのKerberosは, オリジナルの4.4BSD-Liteの配布に含まれている - ものではなく, FreeBSD 1.1.5.1のときに移植されたeBonesです. - これはアメリカ/カナダの外で作成されており, これら以外の国の人々にも - 手に入れられるものです. - - このソフトウェアを合法的な配布物として得るために, アメリカも - しくはカナダのサイトから持ってこないでください. - でないと, そのサイトが大変な問題に巻き込まれます. - 合法的な配布は, 南アフリカのftp.internat.freebsd.org - や、FreeBSD の公式ミラーサイトから入手することができます. - - - 初期データベースの作成 - -

この作業はKerberosサーバだけでおこないます. まず, 古いKerberosの - データベースが存在しないことを確認してください. - ディレクトリ/etc/kerberosIVに移って, 次のファイルだけが - 存在することをチェックします: - - -grunt# cd /etc/kerberosIV -grunt# ls -README krb.conf krb.realms - - -

もし他のファイル (principal.*master_key) が - 存在する場合には, kdb_destroyというコマンドで古い - Kerberosデータベースを消してください. - Kerberosが走っていなければ, 単に余計なファイルを消せばよいです. - - まず, krb.confkrb.realmsを編集してKerberosの - 管理領域 (realm) を定義してください. ここでは管理領域がGRONDAR.ZA - で, サーバ名がgrunt.grondar.zaであるとします. - krb.confというファイルを次のように編集してください: - - -grunt# cat krb.conf -GRONDAR.ZA -GRONDAR.ZA grunt.grondar.za admin server -CS.BERKELEY.EDU okeeffe.berkeley.edu -ATHENA.MIT.EDU kerberos.mit.edu -ATHENA.MIT.EDU kerberos-1.mit.edu -ATHENA.MIT.EDU kerberos-2.mit.edu -ATHENA.MIT.EDU kerberos-3.mit.edu -LCS.MIT.EDU kerberos.lcs.mit.edu -TELECOM.MIT.EDU bitsy.mit.edu -ARC.NASA.GOV trident.arc.nasa.gov - - -

この例にあるような他の管理領域は, 実際には必要ありません. - この例は複数の管理領域を認識する方法を示したものですので, - これらの行は含めなくても結構です. - - 1行目はこのシステムが動いている管理領域の名前です. - 他の行は管理領域とホスト名のエントリです. - 行の1つめの単語が管理領域で, 2つめがその管理領域の中で - ``鍵配布センター''(Key Distribution Center) として働くホスト名です. - ホスト名の次に ``admin server'' と書いてある場合には, そのホストが - ``管理データベースサーバ''(Administrative Database Server) も提供 - することを意味します. - これらの単語について詳しく知りたい場合にはKerberosのマニュアル - ページをご覧ください. - - ここで, GRONDAR.ZAという管理領域にgrunt.grondar.za - およびその他の.grondar.zaドメインのすべてのホストを追加し - なければなりません. krb.realmsは次のようになります: - - - grunt# cat krb.realms - grunt.grondar.za GRONDAR.ZA - .grondar.za GRONDAR.ZA - .berkeley.edu CS.BERKELEY.EDU - .MIT.EDU ATHENA.MIT.EDU - .mit.edu ATHENA.MIT.EDU - - -

もう一度注意しますが, 他の管理領域を書く必要はありません. - これらは複数の管理領域を認識できるようにマシンを設定する方法を - 示した例ですので, これらの行は消して構いません. - - 1行目は名前をつけた管理領域に特定のシステムを含めるための - ものです. 残りの行は名前をつけた管理領域にサブドメインのデフォルトの - システムを含めるためのものです. - - これでデータベースを作成する準備ができました. この操作はKerberos - サーバ (鍵配布センター) を起動するだけです. kdb_initコ - マンドを次のように実行してください: - - -grunt# kdb_init -Realm name [default ATHENA.MIT.EDU ]: GRONDAR.ZA -You will be prompted for the database Master Password. -It is important that you NOT FORGET this password. - -Enter Kerberos master key: - - -

ここで鍵を保存して, ローカルのマシンにあるサーバが取り出せるように - します. それにはkstashコマンドを使用します. - - -grunt# kstash - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - - -

これで暗号化されたマスタパスワードが - /etc/kerberosIV/master_keyに保存されました. - - - すべてが動くようにするための設定 - -

Kerberosを導入するそれぞれのシステムのデータベースに, 2つ - のprincipal (主体名) を追加する必要があります. その名前は - kpasswdrcmdです. これら2つのprincipalは, 個々 - のシステムにおいて, システム名と同じ名前のインスタンスと組にして作成 - されます. - - これらのkpasswdrcmdというデーモンによって, 他の - システムからKerberosのパスワードを変更したり, rcpや - rlogin, rshといったコマンドを実行したりできるよ - うになります. - - それでは実際にこれらのエントリを追加しましょう: - - -grunt# kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: passwd -Instance: grunt - -, Create [y] ? y - -Principal: passwd, Instance: grunt, kdc_key_ver: 1 -New Password: <---- ここは「RANDOM」と入力してください -Verifying password - -New Password: <---- ここは「RANDOM」と入力してください - -Random password [y] ? y - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: rcmd -Instance: grunt - -, Create [y] ? - -Principal: rcmd, Instance: grunt, kdc_key_ver: 1 -New Password: <---- ここは「RANDOM」と入力してください -Verifying password - -New Password: <---- ここは「RANDOM」と入力してください - -Random password [y] ? - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- 何も入力しないと終了します - - - - サーバファイルの作成 - -

次に, 各マシンにおけるサービスを定義している, すべてのインスタンス - を展開します. これにはext_srvtabというコマンドを使用しま - す. このコマンドで作成されるファイルは, Kerberosの各クライアン - トの/etc/kerberosIVディレクトリに安全な方法でコピーまたは - 移動する必要があります. このファイルはそれぞれのサーバとクラ - イアントに存在しなければならず, またKerberosの運用において重要なも - のです. - - -grunt# ext_srvtab grunt - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Generating 'grunt-new-srvtab'.... - - -

このコマンドは一時的なファイルを作成するだけです. ファイル名をすべ - てのサーバが読めるようなsrvtabという名前に変更しな - ければなりません. mvコマンドを用いてシステムの場所に移動 - してください. - - -grunt# mv grunt-new-srvtab srvtab - - -

そのファイルがクライアントに配るためのもので, ネットワークが安全で - はないと思われる場合には, <client>-new-srvtabを移動 - 可能なメディアにコピーして物理的に安全な方法で運んでください. クラ - イアントの/etc/kerberosIVディレクトリで, 名前を - srvtabに変更し, modeを600にするのを忘れないでください: - - -grumble# mv grumble-new-srvtab srvtab -grumble# chmod 600 srvtab - - - - データベースへのユーザの追加 - -

ここで, ユーザのエントリをデータベースに追加する必要があります. - 始めに, ユーザjaneのエントリを作成してみましょう. - kdb_editを用いて次のように作成してください: - - -grunt# kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: jane -Instance: - -, Create [y] ? y - -Principal: jane, Instance: , kdc_key_ver: 1 -New Password: <---- 安全なパスワードを入れてください -Verifying password - -New Password: <---- もう一度パスワードを入れてください - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- 何も入力しないと終了します - - - - すべてのテスト - -

まず始めにKerberosデーモンを起動する必要があります. - /etc/rc.confファイルを正しく編集してあれば, マシンを再 - 起動することでに自動的にデーモンが起動します. これはKerberosサー - バでのみ必要です. Kerberosクライアントは/etc/kerberosIVか - ら必要なものを自動的に入手します. - - -grunt# kerberos & -grunt# Kerberos server starting - Sleep forever on error - Log file is /var/log/kerberos.log -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - -Current Kerberos master key version is 1 -Local realm: GRONDAR.ZA -grunt# kadmind -n & -grunt# KADM Server KADM0.0A initializing -Please do not use 'kill -9' to kill this job, use a -regular kill instead - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - - -

さあ, これで上で作成したjaneというIDのチケットを - kinitコマンドで得ることができます: - - -grunt$ kinit jane -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jane" -Password: - - -

klistコマンドを用いてトークンを見て, きちんとチケットを持って - いるかどうか確認してください: - - -grunt$ klist -Ticket file: /tmp/tkt245 -Principal: jane@GRONDAR.ZA - - Issued Expires Principal -Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA - - -

passwdコマンドを用いてパスワードを変更して, kpasswdデーモ - ンがKerberosデータベースに対して認証されるかどうかチェックして - ください: - - - -grunt$ passwd -realm GRONDAR.ZA -Old password for jane: -New Password for jane: -Verifying password -New Password for jane: -Password changed. - - - - su特権の追加 - -

root権限が必要なユーザは誰でも, suコマンドのパス - ワードをユーザ毎に別のものとして持つことができます. - rootsuできる権利を与えられたidを追加します. - これは, principalに付いているrootというインスタンスに - よって制御されています. kdb_editを用いて - jane.rootというエントリをKerberosデータベースに作成します: - - -grunt# kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: jane -Instance: root - -, Create [y] ? y - -Principal: jane, Instance: root, kdc_key_ver: 1 -New Password: <---- 安全なパスワードを入れます -Verifying password - -New Password: <---- もう一回パスワードを入れます - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- ここは短くしてください -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- 何も入力しないと終了します - - -

実際にトークンをもらって, ちゃんと働いているかどうか確認しましょう: - - -grunt# kinit jane.root -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jane.root" -Password: - - -

ここでrootユーザの.kloginファイルにユーザを追加する必要が - あります. - - -grunt# cat /root/.klogin -jane.root@GRONDAR.ZA - - -

suしてみましょう: - - -[jane@grunt 10407] su -Password: -grunt# - - - どのトークンを持っているか見てみましょう: - - -grunt# klist -Ticket file: /tmp/tkt_root_245 -Principal: jane.root@GRONDAR.ZA - - Issued Expires Principal -May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA - - - - 他のコマンドの使用 - -

ここまでの例では, janeというprincipalをrootとい - うインスタンス付きで作成しました. これはユーザと同じ名前をprincipalと - しており, Kerberosのデフォルトの値です; - <username>.rootという形式の - <principal>.<instance>で, 必要なエント - リがrootのホームディレクトリの.kloginファイルに - あれば, <username>がrootにsuすることができま - す. - - -grunt# cat /root/.klogin -jane.root@GRONDAR.ZA - - -

同様に, ユーザのホームディレクトリの.kloginファイルに次の - ような行がある場合には: - - -[jane@grunt 10543] cat ~/.klogin -jane@GRONDAR.ZA -jack@GRONDAR.ZA - - -

janeまたはjackという名前で (前述のkinit - によって) 認証されているGRONDAR.ZAという管理領域のユーザ - なら誰でもrloginrsh, rcp等によってこ - のシステム (grunt) のjaneのアカウントまたはファ - イルにアクセスできます. - - 例えば, Janeが他のシステムにKerberosを用いてloginします: - - -[jane@grumble 573] kinit -MIT Project Athena (grunt.grondar.za) -Password: -[jane@grumble 574] rlogin grunt -Last login: Mon May 1 21:14:47 from grumble -Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 - The Regents of the University of California. All rights reserved. - -FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 - -[jane@grunt 10567] - - -

次の例では, Jackが同じマシンのJaneのアカウントにloginします. Janeは - .kloginファイルを前述のように設定しており, - Kerberosではjackというprincipalをインスタンスなしで設定してあ - ります. - - -[jack@grumble 573] kinit -[jack@grumble 574] rlogin grunt -l jane -MIT Project Athena (grunt.grondar.za) -Password: -Last login: Mon May 1 21:16:55 from grumble -Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 - The Regents of the University of California. All rights reserved. - -FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 - -[jane@grunt 10578] - diff --git a/ja/handbook/kernelconfig.sgml b/ja/handbook/kernelconfig.sgml deleted file mode 100644 index a0b5feef93..0000000000 --- a/ja/handbook/kernelconfig.sgml +++ /dev/null @@ -1,1257 +0,0 @@ - - - - - FreeBSDカーネルのコンフィグレーション - -

原作: &a.jehamby;. 6 October 1995. - -

訳: - &a.tomo;, - &a.yoshiaki;. - 2 November 1996. - - この章はシステムに合わせたカーネルの再構築の基礎について - 述べたものです. この章は, システム管理の初心者から - Unixシステム管理に十分な経験を積んだ人までを対象としています. - - なぜカスタムカーネルを作るか? - -

システムに合わせたカーネルの構築はすべての - Unixシステム管理者が - 避けて通ることのできない最も重要な通過儀礼の1つです. - この作業は, 多くの時間を必要としますが, あなたの FreeBSD - システムに多くの利益をもたらします. GENERICカーネルは, - めったに使われることのないハードウェアをサポートするとともに, - 考えられるすべての SCSIカードやネットワークカードをサポート - しなければなりませんが, システムに合わせたカーネルは - あなたの PC のハードウェアのみをサポートします. - これは, 次にあげるような利益をもたらします. - - - - あなたが持っていないハードウェアについては検出をおこなわな - いので, ブートにかかる時間が短くなります. - - システムに合わせたカーネルは多くの場合メモリ使用量が - 減ります. カーネルはいつもメモリ上に存在するので, - 不必要なコードがあると本来プログラムが利用できるはずの - RAM (実メモリ) を占めてしまいますのでこれは重要なことだ - といえます. - したがって, メモリが少ないシステムでは, - カーネルの再構築は大変重要です. - - 必要に応じていくつかのカーネルオプションは調整すること - ができ, またサウンドカードのような GENERICカーネルには - ないデバイスドライバをカーネルに含めることが - できます. - -

- - カスタムカーネルの構築とインストール - -

まず, カーネル再構築に必要なディレクトリをざっと見てみましょう. - ここではディレクトリはすべて /usr/src/sys以下の相対位 - 置で示します. また, /sysからもアクセス可能です. - ここには, カーネルの各部分を構成するサブディレクトリが - いくつもあります. しかし, 私たちの目的では - 最も重要なのは i386/confです. ここで, あなたの - システムに合わせてカーネル コンフィグレーションを編集します. - それから compileディレクトリ, ここはカーネルが作られる - 場所です. サポートされているデバイスやファイルシステムのディレ - クトリツリーがオプション毎にサブディレクトリに分かれている論理 - 的構成に注意してください. また, i386のディレクトリは - PCのハードウェアのみを扱い, i386以外のディレクトリは - FreeBSDが他のプラットフォームに移植される際には共有されるコー - ドです. - - /usr/src/sys - 以下のディレクトリがなければ, カーネルのソースが - インストールされていません. もっとも簡単な方法は (rootで) - /stand/sysinstall を用いて以下のようにします. - 「設定(Configure)」を選んでから 「配布ファイル(Distribution)」 - を選択し, 「src」の中の「sys」をインストールしてください. - - - つぎに, i386/confに移動して, GENERIC - コンフィグレーションファイルをカーネルに与えたい名前に - コピーしてください. たとえば: - -# cd /usr/src/sys/i386/conf -# cp GENERIC MYKERNEL - - 慣習として, この名前はすべて大文字でつづられます. もし, - いくつかの異なるハードウェアの FreeBSDマシンを扱うなら, - この名前にホスト名を含めるとよいでしょう. - ここでは, 例として MYKERNEL と呼ぶことにします. - - - - では, MYKERNELをあなたの好きなエディタで編集してください. - もし, システムをインストールしたばかりならば, 利用できる - エディタは viだけかもしれません. ここでは使い方 - の説明はしませんが, にあるような多くの本で詳しく説明 - されていますので, そちらを参照してください. - まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ - レーションに合せて変更した点などを記述して GENERICと区別がつく - ようにしておきましょう. - - もし SunOSや他の BSDオペレーティングシステムでカーネルの - 再構築をしたことがあれば, このファイルはとても親しみ - やすいでしょう. しかし, DOSのようなその他の - オペレーティングシステムしか知らない人から見れば, - GENERICコンフィグレーションファイルはとても - なじみにくいものかもしれません. そのような場合は, - の節をゆっくりと注意深く読んでください. - - config(8)を取ってくる必要があるかもしれません. これは - /usr/src/usr.sbinにあります. したがってこれらのソースをダ - ウンロードする必要があります. 次のコマンドを実行する前に - (configを)作りインストールをしておいてください. - - 編集し終ったら, 次のコマンドによってコンパイル, インストール - を行ってください. - -# /usr/sbin/config MYKERNEL -# cd ../../compile/MYKERNEL -# make depend -# make -# make install - - 新しいカーネルはルートディレクトリに /kernelという - 名前でコピーされ, 今までのカーネルは /kernel.old - という名前へ変更されます. では, システムをシャットダウン, リブー - トして新しいカーネルを使ってください. うまく行かない場合は, - この章の終りの - - を参照してください. この章の新しい - - 場合のリカバリの方法を注意深く読んでおいてください. - - /devディレクトリで - デバイスノードを追加しなければならないかもしれません. - 詳しくは, を読んでください. - - コンフィグレーション ファイル -

コンフィグレーション ファイルの一般的なフォーマット - はとてもシンプルです. 各行は1つのキーワードと1つ以上の - 引数を含んでいます. 見やすくするために, ほとんどのキーワードは - 引数を1つしか書いてありません. - #に続くものはすべてコメントとして扱われ, - 無視されます. ここでは, それぞれのキーワードについて - だいたい GENERICに出てくる順番で説明します. しかし, - お互いに関係のあるキーワードは, 実際には GENERICファイル上に - バラバラに現れていても, (ネットワーキングのように)1つにまとめ - てあります.

カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ - うとしています. 従来は, 各々のオプションは単純にカーネルの - Makefile中の CFLAGS行の -Dスイッチに変換されて - いました. 自然とオプションは際限なく増えて行きます. だれも実際に - はどのオプションがどのファイルで参照されているかは知りません. - -

新しい方法では、すべてのオプション依存の #ifdefは当該オプショ - ンを opt_foo.h (これらのファイルはconfigによって compileディレ - クトリに作られます) から読み込むように変わりました. - config の有効なオプションのリストは2つのファイルにお - かれます. アーキテクチャに依存しないオプションは - /sys/conf/optionsに置かれ, アーキテクチャ依存のオプショ - ンは/sys/arch/conf/optionsに置かれま - す. archの部分は例えば i386となります. - - - 必須キーワード - -

ここにあるキーワードはカーネルの構築に必要不可欠です. - - - - machine ``i386'' - -

最初のキーワードは machineです. - FreeBSDは Intelの 386とその互換チップ上でしか - 動かないので, i386を指定します. - - 注: 数字を含むキーワードはすべて - クォーテーションマークで囲む必要があります. - そうしないと, configは混乱し, - 386を実際の数値として扱ってしまいます. - - cpu ``cpu_type'' - -

次のキーワードは cpuです. - FreeBSDでサポートしている CPUの中から記述します. - cpu_typeとして指定可能な値は - 次の通りです. - - I386_CPU - I486_CPU - I586_CPU - I686_CPU - - GENERICカーネルのように cpuの行の - cpu_typeが異なった値を持つものが - 複数あってもかまいません. カスタムカーネルでは, - あなたが持っている cpuを1つだけ指定するのが - 一番です. 例えば, もし Intelの Pentiumを持っていれば, - cpu_typeには, I586_CPU - を使ってください. - - ident machine_name - -

次は, カーネルの識別名となるidentです. - GENERICからあなたがカーネルに与えたい名前に - 変えてください. ここでは, MYKERNELとします. - identに与えた名前はカーネルの - ブート時に表示されるので, 普段のカーネルとは別に - カーネルに違う名前を与えたいとき(例えば, - 実験用のカーネルを作りたい時など), 便利でしょう. - 数字を含む名前にしたい場合は machineや - cpuの時と同じようにクォーテーションマークで - 囲む必要があります. - - Cコンパイラに -Dスイッチで渡されるので, - DEBUGのような名前にしたり, vax - といった他のCPUの名前など紛らわしい名前にしないで - ください. - - maxusers number - -

これは, 重要なシステムテーブルのサイズを決めます. ここ - で与えられる数字はマシンに同時にログインすると考えられ - るおよそのユーザ数です. しかし, 通常の使用環境であれば, - 特に X Window System を立ち上げたり, ソフトウェアを - コンパイルするような使用であれば maxusersには少 - なくとも4以上を指定したほうがいいでしょう. その理由は, - maxusersで決るテーブルで最も重要なものはプロセス - の最大数であるからです. プロセス最大数は 20 + - 16 * maxusersで与えられ, maxusersを1 - にすると36プロセスしか同時には持てません. この中にはブー - ト時にシステムによって起動する18個ぐらいのプロセス, Xを - 起動する時の15程度のプロセスも含みます. - manページを読むという1つのタスクでさえ, フィ - ルタやファイル伸長や表示のために9つのプロセスを起動し - ます. maxusersを4にすれば, 同時に84個のプロセ - スを持つことができるのでどんな人でも十分な数だといえる - でしょう. - それでも他のプログラムを起動した場合に, あるいは, - (Walnut Creek CDROMのFTPサイトのように) 同時に多くの - ユーザを抱えるサーバを走らせた場合に ``proc table - full''というおぞましいエラーが起きる場合はこの値を増や - し, カーネルを再構築してください. - - maxuserはあなたのマシン - にログインできるユーザの数を制限するものでは - ありません. 単に, あなたのシステムに - ログインするユーザ数の最大値と各々のユーザが - いくつのプロセスを走らせるかを考慮することに - よってさまざまなテーブルの値を適切な値に設定 - するだけです. これに対し, remote loginsというキーワードは - 同時にリモートログインできるユーザ数を制限 - します. - - config kernel_name root on root_device - -

これはカーネルの位置と名前を特定します. - 伝統的にカーネルは vmunixと呼ばれますが, - FreeBSDでは kernelとふさわしい名前になりました. - kernel_nameにはいつも kernelを - 使ってください. 名前を変えると多くのシステム - ユーティリティが使えなくなります. 2番目の部分は - ルートファイルシステムとカーネルのあるディスクと - パーティションを指定してください. - SCSIドライブでなければ, wd0を, - SCSIドライブならば sd0です. - - - 一般的なオプション - -

以下はカーネルのサポートするさまざまなファイルシステムおよ - びその他のオプションです. - - - -

これは, 数値演算コプロセッサがない - コンピュータ (386や486SX) で数値演算コプロセッサ - のエミュレーションを可能にします. もし, Pentiumや - 486DX, あるいは387や487があれば, コメントアウト - できます. - - 注: FreeBSD付属の数値演算 - コプロセッサエミュレータはあまり正確では - ありません. 非常に正確な計算をおこないたい - ならば, より優れた GNUのエミュレータである - GPL_MATH_EMULATEに変えることを - おすすめします. これはライセンスの関係でデフォルトでは - 含まれていません. - - options ``COMPAT_43'' - -

4.3BSDとの互換性のためのオプションです. - そのままにしておいてください. コメントアウトすると, - いくつかのプログラムで動作がおかしくなります. - - options BOUNCE_BUFFERS - -

ISAデバイスやISA互換モードで動作する EISAデバイス - では DMA (Direct Memory Access) は16MB以下のメモリに対し - てのみ動作します. このオプションによりメモリが16MB以上 - のシステムでDMAを使うデバイスを動作させることができます. - - options UCONSOLE - -

ユーザがコンソールを横取り (grab) できるようにします. - これは X Window System 上で便利です. 例えば, コ - ンソール xtermを xterm -Cとタイプして作ると, - そこに `write', `talk'などのメッセージがカーネルからコ - ンソールへ送られるメッセージと同じように表示されます. - - options SYSVSHM - -

このオプションは System V の共有メモリを提供します. - X Window System の XSHM拡張での利用がもっとも一般に見 - られる例で, 多くのグラフィックを多用したプログラム - (movie player の Xanimや Linux DOOMなど) ではこれを - 利用することで速度が増加するというメリットがあります. - X Window System を利用するのであればこれは間違いな - く含めたくなるでしょう. - - options SYSVSEM - -

System V のセマフォをサポートします. 一般的に利用される - ことは少ないですがカーネルサイズの増加は数百バイトだ - けです. - options SYSVMSG - -

System V のメッセージをサポートします. これを指定した場 - 合もカーネルサイズの増加は数百バイトだけです. - - ipcs(1) コマンドは - これらの System V の機構を利用しているプロセスを表示し - ます. - - 訳注: 共有メモリ, セマフォ, メッセージ(メッ - セージキュー) は System V系 で一般的なプロセス間通信の機 - 構です. くわしくは System Vのプロセス間通信に関する文 - 献, 「詳解 UNIXプログラミング」 (ソフトバンク) , 「UNIXネッ - トワークプログラミング」 (トッパン) などを参照してくださ - い. - - - - - ファイルシステムオプション - -

これらのオプションはさまざまなファイルシステムへのサポート - を追加します. 少なくともブートするためのデバイスのサポートを含 - める必要があります. 標準的にはハードディスクからブートするので - あれば FFS , ディスクレスワークステーションとしてイー - サネットからブートするのであれば NFSです. - 一般的に利用される他のファイルシステムをカーネルに含め, あまり - 利用しないファイルシステム (多分 MS-DOSファイルシステム?) のサポー - トをコメントアウトすることができます. これは Loadable Kernel - Module ディレクトリ /lkm から, 最初にそのタイプのファイ - ルシステムがマウントされる時に動的にドライバがロードされるからです. - - - - options FFS - -

基本的なハードドライブ ファイルシステムです. ハードディ - スクからブートする場合は残しておいてください. - - options NFS - -

ネットワーク ファイルシステムです. Ethernet経由で Unixファ - イルサーバからパーティションをマウントする予定がない場 - 合はコメントアウトすることができます. - - options MSDOSFS - -

MS-DOS ファイルシステムです. ブート時に DOSフォーマット - のハード ドライブをマウントする予定のない場合はコメン - トアウトしても安全です. 先に示したように, DOSパーティ - ションをマウントする時に自動的にロードされます. また - (ports コレクションにある) mtools という素晴 - らしいソフトウェアにより mount , unmountなしで DOSフロッ - ピーにアクセスすることができます (これは MSDOSFSも必要 - ありません). - - options ``CD9660'' - -

CD-ROMのための ISO 9660 ファイルシステムです. CD-ROMを - 持っていないか, 時々 データ CDをマウントするだけならコ - メントアウトしましょう (データ CDを最初にマウントする - 時に動的にロードされます). オーディオ CDはこのファイル - システムは必要ありません. - - options PROCFS - -

プロセス ファイルシステムです. これは疑似的なファイルシ - ステムで /procにマウントされ, ps(1)などのプロ - グラムがプロセスに関してより詳しい情報を与えてくれるよ - うになります. - - options MFS - -

メモリマップド ファイルシステムです. これは基本的に一時 - ファイルを記憶するための高速な RAMディスクで, 大きな - swap領域がある場合に有効です. MFSパーティションをマウ - ントするに適した場所は多くのプログラムが一時ファイルを - 置く /tmpです. MFS RAMディスクを /tmp - にマウントするには以下の内容を /etc/fstabに追 - 加してリブートするか mount /tmpとタイプします. - - -/dev/wd1s2b /tmp mfs rw 0 0 - - - /dev/wd1s2bをあなたが使用して - いるswap パーティションに置き換えてください. これは以 - 下のように /etc/fstabに書かれているでしょう. - -/dev/wd1s2b none swap sw 0 0 - - - - /tmpデ - バイスにアクセスすることはできません). そのためいまの - ところは使わない方が無難です. --> また, MFSファ - イルシステムは動的にロードすることはできません - . したがって使いたい場合はコンパイル時に - カーネルに含める必要があります. - - - options "EXT2FS" - -

Linux のファイルシステム. - ext2fs のサポートにより, Linux パーティションを読み書きすることができます. - これは, FreeBSD と Linux のデュアルブートシステムにおいて両者でデータを共有したい場合に有用です. - - options QUOTA - -

ディスククォータを有効にします. アクセスが公開されてい - るシステムで (一人のユーザが) /homeパーティショ - ン (全体) をあふれさせることができないようにそれぞれのユーザ - にディスククォータを発行することができます. - ディスククォータについての詳しい内容はの章を見てください. - - - 基本的なコントローラとデバイス - -

この節では FreeBSDでサポートされているディスク, テー - プ, CD-ROMコントローラについて示します. - コントローラと カードについ - ては別の節になっています. - - - - controller isa0 -

FreeBSDのサポートするすべての PCで必要です. IBM PS/2 (マイ - クロチャネルアーキテクチャ) では現時点では FreeBSDは動 - きません. - - controller pci0 - -

PCIバスを持つマザーボードの場合は含めます. これにより - PCIカードの自動認識と PCIから ISAバスへのゲートウェイが - 可能になります. - - controller fdc0 - -

フロッピードライブコントローラです. - fd0 は ``A:'' ドライブで - fd1 は ``B:'' ドライブです. ft0 は - フロッピーコントローラに接続する QIC-80 テープドライブで - す. 対応するデバイスがない場合はそれぞれの行をコメント - アウトしてください. - - ft(8)というフィルタプログラムが必要です. - くわしくはマニュアルページを見てください. - - controller wdc0 - -

プライマリIDEコントローラです. wd0 と - wd1はそれぞれマスタ, スレーブドライブで - す. wdc1 は セカンダリの IDEコントローラで3台 - 目, 4台目のハードディスクまたは IDE CD-ROMのある場合に - 使います. 利用しない行はコメントアウトしてください (例え - ば, SCSIハードディスクのみを使う場合は6行全部をコメント - アウトしてもよいかもしれません). - - device wcd0 - -

このデバイスは IDE CD-ROMのサポートをします. - wdc0を有効にしておく必要があり, もし 2つ以上の IDE - コントローラがあり, そのうちの 2つ目のカードに CD-ROMを接 - 続する場合 options ATAPIを書いておく必要もあります. - - device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr - -

npx0はFreeBSDハードウェアコプロセッサとソフト - ウェアエミュレータ両方の浮動小数点演算ユニットへのインタ - フェースです. これは device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr - -

Wangtek と Archive の - QIC-02/QIC-36 テープドライブのサポートです. - - Proprietary CD-ROM support - -

以下のようなドライブを proprietary(独自の) - CD-ROMドライブと呼ぶことにします. これらのドライブは専 - 用のコントローラを持つか, サウンドブラスタ16などのサウ - ンドカードに接続します. これらは IDEでも SCSIでもあ - りません. 多くの標準速や2倍速の古い CD-ROMはこれら - のインタフェースを持っていますが, より新しい四倍速の - ものは でしょう. - - - - - device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr - -

ミツミ製 CD-ROM (LU002, - LU005, FX001D)です. - - device scd0 at isa? port 0x230 bio - -

ソニー製 CD-ROM (CDU31,CDU33A)です. - - controller matcd0 at isa? port ? bio - -

松下/パナソニック製 CD-ROM (サウンドブラスタ用 - クリエィティブ ラボ製として販売されていました) です. - - - - - - SCSI デバイスのサポート - -

この節では FreeBSDのサポートするいろいろな SCSIコント - ローラとデバイスのサポートについて書きます. - - - - SCSI コントローラ - -

以下の十数行は異る種類の SCSIコントローラのサポートです. - 使用しているもの以外の部分はコメントアウトしてください. - - - - controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr - -

ほとんどの Buslogic社のコントローラです. - - controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector uhaintr - -

UltraStor 14F と 34F です. - - controller ahc0 - -

Adaptec 274x/284x/294x です. - - controller ahb0 at isa? bio irq ? vector ahbintr - -

Adaptec 174x です. - - controller aha0 at isa? port ``IO_AHA0'' bio irq ? drq 5 vector ahaintr - -

Adaptec 154x です. - - controller aic0 at isa? port 0x340 bio irq 11 vector aicintr - - -

Adaptec 152x や サウンドカードなどに使われている Adaptec - AIC-6360 チップです. (slow!) - - controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr - - -

NCR 5380を使っている ProAudioSpectrum や Trantor T130 で - す. - - controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr - -

Seagate ST01/02 8 ビットコントローラです. (slow!) - - controller wds0 at isa? port 0x350 bio irq 15 drq 6 vector wdsintr - -

Western Digital WD7000コントローラです. - - controller ncr0 - -

NCR 53C810, 53C815, 53C825, 53C860, 53C875 チップを使った - PCI SCSI コントローラです. - - - - options ``SCSI_DELAY=15'' - -

このオプションによりカーネルはそれぞれの SCSIデバイスを - プローブする前に 15秒間待ちます. IDEドライブのみを使用 - している場合は無視して構いません. ブートを速くするため - にこの数値を 5秒ぐらいまで小さくしたいでしょう. そうし - た場合, FreeBSDが SCSIデバイスを認識しにくくなるかもし - れません. その時は、もちろんこのオプションの値は元に戻 - さないといけません. - - - controller scbus0 - -

SCSIコントローラがある場合, この行で SCSI全般のサポー - トを与えます. SCSIのない場合, この行と以下の3つの行をコメ - ントにすることができます. - - device sd0 - -

SCSIハードディスクのサポートです. - - device st0 - -

SCSIテープドライブのサポートです. - - device cd0 - -

SCSI CD-ROM のサポートです. - -

上のエントリについている 0はいくらか誤解を招き - やすいかもしれません. これらのデバイスはすべてカーネルが - 見つけた時に割り当てがおこなわれ, SCSIバスに何台つながってい - るか, ターゲット IDが何番であるかはここの記述とは関係あ - りません. - - 明示的に「固定的な」ターゲット IDの特定のデバイスへの - 割り当てをおこないたい場合は LINT カーネルコンフィグレーションファイルの - 該当する部分の説明を参照してください. - - - - コンソール, バスマウス, Xサーバのサポート - -

2つのタイプのコンソールからどちらか1つを選ぶ必要があります. - 標準ではない方の vt220 コンソールを選んだ場合, X Window System - を利用するには XSERVER オプションを有効にする必要があります - (訳注: sc0 には XSERVER オプション相当の機能が始めから入っています). - またバスマウスとPS/2マウスのオプションもあります. - - - - device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr - -

sc0 はデフォルトのコンソールドライバで SCOコン - ソールに似ています. このデバイス, あるいは VT220コンパ - チブルドライバの vt0いずれを使う場合もほとんど - のフルスクリーンプログラムは termcapなどのターミ - ナルデータベースライブラリを通してアクセスしますので, - あまり違いはないでしょう. - このコンソールを使う場合でフルスクリーンプログラムでト - ラブルが起きる場合にはログインした時に TERM変数の値を - ``scoansi''にしてください. - - device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint - -

これはVT-220コンパチブルコンソールドライバで VT100/102の - 上位互換です. これは sc0の使えない種類のラッ - プトップ機でもうまく動きます. ログイン時に TERM変数の値 - を``vt100'' か ``vt220''にしてください. また, このドラ - イバはネットワークを介して多くの異るマシンから接続する - 場合も便利です. sc0デバイスのための - termcapterminfoエントリは必ずしも - 利用できるわけではありませんが -- ``vt100''はいずれの - プラットフォームでも利用可能でしょう. - - - - options ``PCVT_FREEBSD=210'' - -

vt0 コンソールドライバを使う場合に必要で - す. - - options XSERVER - -

vt0 コンソールドライバを使う時のみ有効です. - これは vt0 コンソールドライバのもとで - XFree86 X サーバを動かすのに必要なコードを含めます. - - - - device mse0 at isa? port 0x23c tty irq 5 vector ms - -

Logitech や ATIのバスマウス入力カードを利用する場合のデ - バイスです. - - ポート(おそらくはCOM1)を有効にしてくだ - さい. - - device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector psmintr - -

このデバイスは PS/2マウスポートにマウスを接続する場合に - 使います. - - - - シリアル, パラレルポート - -

ほとんどすべてのシステムにこれらはあります. プリンタを接続す - る場合は の章が非常 - に役に立つでしょう. モデムを使う場合は に非常に詳しいシリアルポートの設定とデ - バイスの使い方があります. - - - - device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr - -

sio0からsio3は MS-DOSにおける COM1から - COM4に相当する4本のシリアルポートです. - COM4に内蔵モデムがあり COM2を使う場合, FreeBSDからアク - セスするためにはモデムのIRQを2へ変更する必要があるとい - うことを注意しておきます (技術的な理由より IRQ 2 = IRQ - 9となります). - マルチポートシリアルカードを使う場合にマニュアルページ - のsio(4)にはこのオプションで使う値などのよ - り多くの情報があります. ビデオカードの中には (特に S3 - チップベースのものには) IOアドレスの 0x*2e8から - を利用するものがあり, また多くの安価なシリアルカードは - IOアドレス空間を16-bitフルデコードしていませんので, こ - れらのカードは衝突します. この場合 COM4ポートは実質上 - 利用できません. - - それぞれのシリアルポートは (割込みの共有をサポートした - マルチポートカードを利用していないのであれば) 別々の IRQ - を割り当てる必要がありますので COM3と COM4のデフォルトの - IRQは利用できません. - - device lpt0 at isa? port? tty irq 7 vector lptintr - -

lpt0 から lpt2は利用可能な3本のプリン - タポートです. 多くの場合は1本のみですので他の2本はない - のであればコメントアウトして構いません. - - - - ネットワーク - -

FreeBSDでは他の一般的な Unixと同様にネットワークが - 非常に 重視されています. イーサネットカードが - なくても必須のオプションとダイヤルアップ ネットワークのサポー - トに注意してください. - - - - options INET - ネットワーキングのサポートです. ネットワークに接続する予定がな - くても残しておいてください. 多くのプログラムは少なくともループ - バックネットワーキングが必要です(つまり, PCの中でネットワーク - コネクションをおこないます). したがってこのオプションは本質的 - に不可欠です. - - Ethernet cards - -

以下にさまざまなイーサネットカードを有効にするオプショ - ンを示します. ネットワークカードがなければこれらすべてを - コメントアウトすることができます. そうでなければ利用す - る特定のイーサネットカードをサポートするオプションを残 - しておきます. - - - - device de0 - -

DECの DC21040, DC21041, DC21140チップを使った PCIイー - サネットアダプタです. - - - device fxp0 - -

Intel EtherExpress Pro/100B 高速イーサネットカード - です. - - device vx0 - -

3Com の 3C590, 3C595です (いくらか bugがあります). - - device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr - -

Cronyx/Sigma の マルチポート同期/非同期カードです. - (with Cisco or PPP framing) - - device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr - -

Western Digital と SMC の 80xx, 8216 Elite Ultra ; - ノベル NE1000, NE2000; 3Com の 3C503; HPの PC Lan Plus - (HP27247B とHP27252A) です. - - device el0 at isa? port 0x300 net irq 9 vector elintr - -

3Com の 3C501 です. (slow!) - - device eg0 at isa? port 0x310 net irq 5 vector egintr - -

3Com の 3C505です. - - device ep0 at isa? port 0x300 net irq 10 vector epintr - -

3Com の 3C509 です(バグがあります). - - device fe0 at isa? port 0x240 net irq ? vector feintr - -

富士通 MB86960A/MB86965A ベースのイーサネットカード - です. - - device fea0 at isa? net irq ? vector feaintr - -

DEC DEFEA EISA FDDI アダプタです. - - device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr - -

AT&T StarLAN 10 と EN100; 3Com の 3C507; - NI5210; Intel EtherExpress 16 です. - - device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr - -

DEC の EtherWorks 2 and EtherWorks - 3 (DEPCA, DE100, DE101, DE200, DE201, DE202, - DE203, DE204, DE205, DE422)です. - - device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr - -

Lance/PCnet カード (Isolan, Novell NE2100, - NE32-VL)です. - - device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr - -

IBM/ナショナルセミコンダクタの PCMCIA イーサネット - コントローラです. - - device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr - -

3Com の PCMCIA Etherlink III です. - - - - - - pseudo-device loop - -

loop は TCP/IPの一般的なループバックデバイスで - す. telnet や FTPを localhost (127.0.0.1) - に対して行なうとこの疑似デバイスを通して帰ってきます. - 不可欠です. - - pseudo-device ether - -

etherはイーサネットカードがある場合のみ必要で - 一般的なイーサネットプロトコルを含めます. - - pseudo-device sl number - -

sl は SLIP (Serial Line Internet Protocol) をサポー - トします. これはほとんど完全に, より簡単に設定ができ, モ - デム to モデム接続に適した, よりパワフルな PPPに取って代 - わられています. slの後の number は同 - 時にいくつの SLIPセッションをサポートするかを示します. - SLIPの設定のより詳しい情報はこのハンドブックの - 「PPPとSLIP」の章の - - と について書かれた節にあります。 - - pseudo-device ppp number - -

pppはダイヤルアップ インターネット接続のための - カーネルモード PPP (Point-to-Point Protocol) をサポート - します. ユーザアプリケーションとして tun を - 利用する PPPの実装もあり, こちらはより柔軟性がありデマ - ンドダイアリング(プログラムが接続要求を出した時に自動 - 的にダイヤルをおこなう)などの機能もあります. それでもこ - の PPPドライバを利用したい場合は の節を読んでください. - slデバイスと同じように numberは同時 - に PPP接続できる数を示します. - - pseudo-device tun number - -

tun はユーザモード PPPソフトウェアが利用しま - す. このプログラムは設定が簡単で非常に高速です. - また自動ダイヤル オン デマンドなどの機能を持ちます. - tunの後のnumber は同時におこなうことのできる - PPPセッションの数を示します. の節により多くの情報があ - ります. - - pseudo-device bpfilter number - -

バークレイ パケットフィルタです. この疑似デバイスはネッ - トワークインタフェースを無差別 (promiscuous) モードにし - てネットワーク (例えば単一のイーサネット) にブロードキャス - トされるすべてのパケットを取り入れることを可能にします. こ - れらのパケットはディスクに取り入れられたり - tcpdump(1) によって検査されます. この機能の実現 - はネットワーク全体のセキュリティとの微妙な妥協点であるこ - とに注意してください. - bpffilter の後の numberは同時に検査することの - できるインタフェースの数を示します. - 危険の可能性について十分解っている場合を除いてこのオプ - ションは奨めません. すべてのネットワークカードでこの機能 - をサポートをしてはいません. - - - - サウンドカード - -

ここは GENERICカーネルに含まれていない最初のセクションです. - サウンドカードのサポートをするためには LINTコンフィグレーショ - ンファイル(これにはすべてのデバイスが含まれています)か - ら以下のような適切な行をコピーする必要があります. - - - - controller snd0 - -

サウンドドライバ一般のコードです. - pcaを除く以下のすべてのサウンドカードで必要で - す. - - device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr - -

ProAudioSpectrum のオーディオ と MIDI です. - - device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr - -

SoundBlaster です. - - irq 7irq - 5に書き換え, キーワード conflictsを削除し - てください. さらに options ``SBC_IRQ=5''の行を - 加える必要があります. - - device sbxvi0 at isa? drq 5 - -

SoundBlaster 16 の 16-bit オーディオです. - - drq 5を適切な値に書き直 - して, (DMA 6の場合) options "SB16_DMA=6"を付け - 加えてください. - - device sbmidi0 at isa? port 0x330 - -

SoundBlaster 16 の MIDI インタフェースです. - SoundBlaster 16を使う場合必ずこの行を含めてコンパイル - してください. - - device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr - -

Gravis Ultrasound です. - - device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr - -

Microsoft Sound System です. - - device opl0 at isa? port 0x388 conflicts - -

AdLib FMシンセサイザオーディオです. - AdLib, SoundBlaster, ProAudioSpectrum を使い - playmidi (ports にあります) などのプログラムで - MIDIの演奏をしたい場合にこの行を含めます. - - device mpu0 at isa? port 0x330 irq 6 drq 0 - -

Roland MPU-401 カードです. - - device uart0 at isa? port 0x330 irq 5 vector ``m6850intr'' - -

MIDIインタフェースの 6850 UART です. - - device pca0 at isa? port ``IO_TIMER1'' tty - -

PC のスピーカーを使ったオーディオです. これは非常に品質 - が悪く, CPUの性能, 負荷に強く依存します, と言っておき - ます (サウンドカードは必要ありませんが). - - - - /usr/src/sys/i386/isa/sound/sound.docにあります. - また, これらのデバイスを追加する場合は, サウンドを作る必要があり - ます. - - 疑似デバイス - -

疑似デバイスドライバはデバイスドライバと同様に働きますがマ - シン上に対応する実際のハードウェアがないカーネルの部分です. - 関連の - 疑似デバイスはそちらのセクションに示しました. ここでは残りにつ - いて示します. - - - - pseudo-device gzip - -

gzipgzipによって圧縮された FreeBSDの - プログラムを実行できるようにします. /standにあるプログ - ラムは圧縮されているのでカーネルにこのオプションをつけ - ておくのはいい考えでしょう. - - pseudo-device log - -

log はカーネルエラーのログを取るのに使います. - 不可欠です. - - pseudo-device pty number - -

pty は「仮想ターミナル」や仮想ログインポート - です. 外部からの telnetrloginセッ - ション, xterm, emacsなどのアプリケーションが使います. - numberは作ることのできる ptyの数を示 - します. - GENERICのデフォルトは16で, 同時の xtermウィンドウやリモー - トログインのために増やす場合は最大で 64までです. - - pseudo-device snp number - -

スヌープデバイスです. この疑似デバイスはあるターミナル - セッションが watch(8) commandによって他のター - ミナルを監視することを可能にします. この機能の実現はセ - キュリティとプライバシに対して極めて微妙な関係があり - ます. snpの後の numberは同時におこなうことのでき - るスヌープセッションの総数です. 選択可能です. - - pseudo-device vn - -

Vノードドライバです. ファイルを vnconfig(8)コマ - ンドによってデバイスとして取り扱うことを可能にします. - このドライバによりフロッピーディスクイメージを操作したりファ - イルをスワップデバイスとして (MS Windowsのスワッ - プファイルなどを)用いることができます. 選択可能です. - - - pseudo-device ccd number - -

ccd (concatenated disk)デバイスはいくつかのディスクパーティ - ションを融合して大きなディスクのように見せることができます. - ccdの後の numberは同時に作ることのできる疑似ディスクの数です. - (詳しいことは ccd(4)ccdconfig(8)のマニュ - アルを参照してください.) 選択可能です. - - - - ジョイスティック, スピーカー, その他 - -

この節は FreeBSDのここまでに示した以外のハードウェア - デバイスへのサポートについて示します. これらは GENERICカーネル - には含まれませんのでこのハンドブックや LINT (このファイルには - すべてのデバイスのサポートが含まれます) からコピーする必 - 要があります. - - - - device joy0 at isa? port ``IO_GAME'' - -

PC のジョイスティックです. - - pseudo-device speaker - -

IBM BASIC スタイルの PC内蔵スピーカーのサポートです. - シェルスクリプトで簡単な演奏をする - /usr/sbin/spkrtest やキーボードを使って単純なピ - アノのように演奏することができる - /usr/games/piano (gamesパッケージをイ - ンストールした場合にはあります) のようないくつかのプロ - グラムで使われます. また素晴らしいテキストロールプレイ - ングゲームである NetHack (ports コレクションにあります) - はゲーム中の楽器の演奏でこのデバイスを使うように設定を - することができます (訳注:日本語化されたJNetHackもportsに - あります). - -

デバイスの - 項も参照してください. - - - - デバイスノードを作る - -

カーネル内のほとんどすべてのデバイスは対応する ``node'' エント - リが /dev ディレクトリにあります. これらのノードは普 - 通のファイルのように見えますが, 実際にはプログラムがデバイスに - アクセスするのに用いるカーネル内への特別なエントリです. - シェルスクリプトである /dev/MAKEDEVはオペレーティング - システムを最初にインストールする時に実行され, サポートされてい - る大部分のデバイスのノードを作ります. - しかし, すべてのノードが作られるわけではありませんので - 新しいデバイスのサポートを加える時は対応するエントリがこのディ - レクトリにあるかどうか確認してもしなければ, 作ってください. - 以下に例を示します. - - IDE CD-ROMのサポートをカーネルに加えるとします. 次の行 - を加えます. - - -controller wcd0 - - - これにしたがって, /devディレクトリに wcd0で始ま - るエントリを捜してください. 1文字が後ろにつくかもしれません. 後 - ろについた文字が `c'であるか先に `r'のつくエントリは `raw'デバ - イスを示します. - それらのファイルがないことが明らかになったとします. そこで - /dev ディレクトリに移動して次のようにタイプします. - - - -# sh MAKEDEV wcd0 - - - スクリプトの実行が終ったら /devwcd0c と - rwcd0c エントリがあることを確認してください. これによ - り正しく実行されたことがわかります. - - - サウンドカードの場合のコマンドは次の通りです. - -# sh MAKEDEV snd0 - - - これにより対応するエントリが作られます. - 注: サウンドカードのようなデバイスのノードを作る場合で, もし他 - の人がマシンにアクセスするようであれば, そのデバイスを - /etc/fbtabファイルに追加して外部からのアクセスから - 保護するのが望ましいでしょう. このファイルの詳細については - man fbtab を参照してください. - - GENERICに含まれていないデバイスはエントリがありませんから,以上 - の簡単な手順をおこなうことになります. - - /devの - エントリを使用しますのでノードを作る必要はありません. またネッ - トワークカードと SLIP/PPP疑似デバイスは /devにはエント - リがありませんのでこれらについても作る必要がありません. - - -問題が起きた場合には - -

カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま - す. - - - - Config コマンドの失敗 - -

カーネルにあなたの設定をおこなった場合で configコ - マンドが失敗したのであれば, 多分どこかで単純な間違いを - やっているのでしょう. さいわい, configはトラ - ブルの起きた行番号を出力しますので viで素早く - 見つけることができます. 例えばもし次のように出力されれ - ば, - - - -config: line 17: syntax error - - - viのコマンドモードで ``17G''とタイプすればあな - たは問題のところへ飛ぶことができます. GENERIC カーネル - のファイルや他のリファレンスと比較して注意深く修正して - ください. - - - Make コマンドの失敗 - -

make コマンドが失敗した場合には, カーネル設定で - configがとらえられなかったような間違いをして - いることが多いようです. ふたたびコン - フィグレーションを見直してください. それでも問題を解決 - することができなければ &a.questions - へあなたのカーネルのコンフィグレーションをつけてメー - ルしてください. 誰かが素早く間違いを見つけてくれるで - しょう. - - カーネルがブートしない - -

新しいカーネルがブートしなかったり, デバイスの認識をしな - い場合でもあわてないでください! さいわい, BSDは利用で - きないカーネルから復帰する優れたメカニズムがあります. - FreeBSDの bootプロンプトでリターンキーを押すかわりに - 単にブートさせたいカーネルの名前 (例えば - ``kernel.old'') をタイプするだけです. カーネルの再設定 - をおこなう場合に現在のカーネルを利用できるように取ってお - くのはよい考えです. - - 問題のないカーネルでブートした後にあなたのコンフィグレー - ションファイルを調べ, 再び構築を試みてください. - /var/log/messages ファイルにはすべての成功した - ブートのカーネルのメッセージやその他の記録があり, これ - は助けになる情報の一つでしょう. また, - dmesg(8)コマンドは現在のブート時のカーネルメッ - セージを出力します. - - kernel. oldは新しいカーネルをインストールする - 時に, その一つ前にインストールしたうまく動かないかもしれ - ないカーネルで上書きされてしまいますので当てにできませ - ん. またできる限り早く動作しているカーネルを本来の - ``kernel''の位置に移動させてください. そうしないと - ps(1)のようなコマンドが正しく動きません. - make でインストールされたカーネルのファイルを - (別のカーネルに戻すために) 「アンロック」するための特別 - のコマンドは - -# chflags noschg /kernel - - です. また, 新しい置き換えたカーネルあるいは重要ファイ - ルを動かしたり変更されないように「ロック」するには - 次のようにします. - -# chflags schg /kernel - - - - カーネルは動くが ps は動かない! - -

システムユーティリティと異るバージョンのカーネルをインス - トールした場合, 例えば 実験的に ``2.2.0''のカーネルを - 2.1.0-RELEASEシステム上にインストールするような場合, - ps(1)vmstat(8)のような多くのシ - ステムステータスコマンドは動かなくなります. libkvm を - 再コンパイルしてこれらのユーティリティを作りなおす必要がありま - す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ - ンのカーネルを使うことが普通はあまりよくない理由の一つです. - - diff --git a/ja/handbook/kerneldebug.sgml b/ja/handbook/kerneldebug.sgml deleted file mode 100644 index 1e15fc3a0d..0000000000 --- a/ja/handbook/kerneldebug.sgml +++ /dev/null @@ -1,540 +0,0 @@ - - - - -カーネルデバッグ - -

原作 &a.paul; and &a.joerg; -

訳: &a.yoshiaki;. - 18 March 1997. - -kgdbによるカーネルのクラッシュダンプのデバッグ - -

ここではクラッシュダンプ (crash dump : 訳注 この文脈では kernel 自身 - の異常によって停止した場合に出力されるイメージを指します) によるカー - ネルデバッグの方法を示します. - - ここではダンプするための十分なスワップ (swap) の容量があるものとし - ます. - もし複数のスワップパーティションを持ち, 最初のパーティションがダンプ - を保持するのに十分な大きさを持たない場合は別のダンプデバイスを使うよ - うに (config kernel 行で) カーネルのコンフィグをおこなうか, - dumpon(8)コマンドを使って別のデバイスを示すことができます. - dumpon(8)を使うもっともよい方法は変数 dumpdev を - /etc/rc.conf で設定することです. 一般的には - /etc/fstab で設定されているスワップデバイスが使われる - でしょう. - スワップ - に使えないデバイスへのダンプ, 例えばテープへのダンプは現在サポートさ - れていません. カーネルのコンフィグは config -g によって行っ - てください. - - には FreeBSDのカーネルの設定の詳細がありますので参照してください. - - dumpon(8)コマンドを使ってどこへダンプするかカーネルに伝えて - ください(swapon(8)によってそのパーティションがスワップとして設定された - 後でなければならないことに注意してください). これは普通は - /etc/rc.conf/etc/rcで設定されます. あるいは - 別の方法としてカーネルコンフィグレーションファイルの - `config'行の `dump'節 で - ダンプデバイスをハードコードすることができます. この方法はあまりよくは - ありません. カーネルがブート時に crash する場合のクラッシュダンプを取り - たい時だけ使うべきです. - - 注: 以下では `kgdb'という用語は gdbを - カーネルデバッグモードで動かしていることを意味します. gdbを - -kオプションをつけて起動するか kgdbという名前でリン - クして起動することでこのモードになります. デフォルトでは このリンク - は作られていません. また, このアイデアは GNU関係者たちが彼らのツール - を別の名前で呼び出した時に異なった動作をするということを好まない, と - いう点で不評です. あるいは将来この機能を廃止することになるかもしれません. - - カーネルを作った時にそのコピーを kernel.debugという名前で作 - りましょう. また, オリジナルに対して strip -dを実行します. - オリジナルを普通にインストールします. また strip していないカーネル - も同様にインストールすることができますが, シンボルテーブルの参照時間 - がいくつかのプログラムでは劇的に増加するでしょう. また, カーネル全体 - はブート時に読み込まれスワップアウトされないため数メガバイトの物理メ - モリが無駄になります. - - 例えばブートプロンプトで新しいカーネルの名前をタイプすることによって, - 新しいカーネルをテストした場合で, 再びシステムを動かすのに別のカーネ - ルで立ち上げることが必要な場合はブートプロンプトで -sフラグ - を使いシングルユーザの状態にしてください. そして以下のような操作をおこな - います. - - fsck -p - mount -a -t ufs # /var/crash 用のファイルシステムを書き込み可能にする - savecore -N /kernel.panicked /var/crash - exit # ...マルチユーザモードへ移行 - - ここに示した savecore(8)は (現在動いているものとは別の) カー - ネルのシンボル名の抽出をおこなうために使っています. 抽出はデフォルトで - は現在動いているカーネルに対しておこなわれ, クラッシュダンプとカーネルシンボ - ルのくい違いのためにまったく何もしません (訳注:そのためにオプション - で実際にダンプをおこしたカーネルを指定します). - - クラッシュダンプの起きた後に /sys/compile/WHATEVERへ行き -kgdbを動かします. kgdb より次のようにします. - - symbol-file kernel.debug - exec-file /var/crash/kernel.0 - core-file /var/crash/vmcore.0 - - こうすると, クラッシュダンプを使ってカーネルソースを他のプログラムと同様に -デバッグすることができます. - - 次に kgdb での手順のセッションのログを示します. 長い行は読 - みやすくするために改行しました. また, 参照のために行番号を入れてあり - ます. ただし, これは実際の pcvtコンソールドライバの開発中の実際のエ - ラーのトレースです. - - 1:Script started on Fri Dec 30 23:15:22 1994 - 2:uriah # cd /sys/compile/URIAH - 3:uriah # kgdb kernel /var/crash/vmcore.1 - 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel...done. - 5:IdlePTD 1f3000 - 6:panic: because you said to! - 7:current pcb at 1e3f70 - 8:Reading in symbols for ../../i386/i386/machdep.c...done. - 9:(kgdb) where - 10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767) - 11:#1 0xf0115159 in panic () - 12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698) - 13:#3 0xf010185e in db_fncall () - 14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073) - 15:#5 0xf0101711 in db_command_loop () - 16:#6 0xf01040a0 in db_trap () - 17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723) - 18:#8 0xf019d2eb in trap_fatal (...) - 19:#9 0xf019ce60 in trap_pfault (...) - 20:#10 0xf019cb2f in trap (...) - 21:#11 0xf01932a1 in exception:calltrap () - 22:#12 0xf0191503 in cnopen (...) - 23:#13 0xf0132c34 in spec_open () - 24:#14 0xf012d014 in vn_open () - 25:#15 0xf012a183 in open () - 26:#16 0xf019d4eb in syscall (...) - 27:(kgdb) up 10 - 28:Reading in symbols for ../../i386/i386/trap.c...done. - 29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\ - 30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\ - 31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\ - 32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ - 33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\ - 34:ss = -266427884}) (../../i386/i386/trap.c line 283) - 35:283 (void) trap_pfault(&frame, FALSE); - 36:(kgdb) frame frame->tf_ebp frame->tf_eip - 37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done. - 38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\ - 39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403) - 40:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); - 41:(kgdb) list - 42:398 - 43:399 tp->t_state |= TS_CARR_ON; - 44:400 tp->t_cflag |= CLOCAL; /* cannot be a modem (:-) */ - 45:401 - 46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) - 47:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); - 48:404 #else - 49:405 return ((*linesw[tp->t_line].l_open)(dev, tp, flag)); - 50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ - 51:407 } - 52:(kgdb) print tp - 53:Reading in symbols for ../../i386/i386/cons.c...done. - 54:$1 = (struct tty *) 0x1bae - 55:(kgdb) print tp->t_line - 56:$2 = 1767990816 - 57:(kgdb) up - 58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\ - 59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126) - 60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); - 61:(kgdb) up - 62:#2 0xf0132c34 in spec_open () - 63:(kgdb) up - 64:#3 0xf012d014 in vn_open () - 65:(kgdb) up - 66:#4 0xf012a183 in open () - 67:(kgdb) up - 68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\ - 69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\ - 70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \ - 71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \ - 72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673) - 73:673 error = (*callp->sy_call)(p, args, rval); - 74:(kgdb) up - 75:Initial frame selected; you cannot go up. - 76:(kgdb) quit - 77:uriah # exit - 78:exit - 79: - 80:Script done on Fri Dec 30 23:18:04 1994 - - 上の出力についてのコメントをします. - - -trap()関数の位置で - す. -tp->t_lineはコンソールデバイスの規定 - する行を参照しているので, もっと小さな整数でなければなりませ - ん. ) - - -DDD によるクラッシュダンプのデバッグ - -

カーネルのクラッシュダンプは ddd のようなグラフィカルな -デバッガで調べることもできます. 通常はコマンドラインで - -k オプションをつけてddd を起動します. たとえば: - - ddd -k /var/crash/kernel.0 /var/crash/vmcore.0 - - クラッシュダンプを DDDのグラフィカルなインターフェースを - 使って見ることができます. - -突然ダンプした場合の解析 - -

カーネルが予想もしない時にコアダンプして config -g - を行ってコンパイルされていなかった場合にはどうしたらよいでしょう. - すべてが失われるわけではありません. パニックを起こさないでください. - - もちろん, クラッシュダンプを使えるようにする必要があります. - 使い方は前述の部分を見てください. - - カーネルのコンパイルディレクトリで, (Makefileの) - COPTFLAGS?=-Oとある行を編集します. -gオプショ - ンをここに加えます(オプティマイズオプションのレベルは 変更しな - いでください ). もし大まかにコードのどこで問題が起きているか (例 - えば, 上の例では pcvtドライバ) わかっているのでしたら, その部 - 分のコードについてのすべてのオブジェクトファイルを消してください. カーネ - ルを再構築しましょう. Makefileのタイムスタンプの変更により, 例えば - trap.o などのいくつかの他のオブジェクトファイルも作り直さ - れます. 少しの幸運があれば, -gオプションが追加されても作ら - れるコードは変更されず, いくらかのデバッグシンボル以外には問題を - 起こしたコードとそっくりな新しいカーネルを手に入れることができます. - 少なくとも sizeコマンドで古い方と新しい方のサイズを比較すべ - きです. これが食い違っていれば, 多分あきらめなければならないでしょう. - - ダンプを使って前述のように動かして調べます. デバッグシンボルは - 必ずしも十分ではありません. 上の例ではスタックトレースでいくつかの関 - 数の行番号や引数リストが表示されないかもしれません. もしより多くのデ - バッグシンボルが必要であれば,十分になるまで適切なオブジェクトファイ - ルを消して (makeして) kgdbセッションを繰り返してください. - - これは必ずしもうまく動くと保証はできません. しかしほとんどの場合でう - まくいくでしょう. - -DDBを使ったオンラインカーネルデバッグ - -

kgdb は非常に高レベルのユーザインタフェースを提 - 供するオフラインデバッガですが, いくつかのことはできません. - (できないことの中で)極めて重要なことはカーネルコードへのブレークポイ - ントの設定とシングルステップ実行です. - - カーネルの低レベルデバッグが必要であれば, DDBと呼ばれる on-lineデバッ - ガが使えます. ブレークポイントの設定, シングルステップのカーネルの実 - 行, 変数の検査と変更などができます. ただし,これはカーネルのソースファ - イルにアクセスすることはできません. kgdbのようにすべてのデ - バッグ情報にはアクセスできず, globalと staticのシンボルにアクセス - することができるだけです. - - カーネルに DDBを含めるためにはコンフィグファイルに次のようなオプショ - ンを加えて, - - - options DDB - - - 再構築をおこないます. ( FreeBSDのカーネルの設定の詳細についてはを参照してくださ - い. もしブートブロックが古いバージョンですと, デバッガのシンボルが完 - 全にはロードされないかもしれませんので注意してください. DDBシンボル - がロードされるようにブートブロックを最新の物にアップデートしてくださ - い) - - DDB カーネルの実行において, DDBに入るいくつかの方法があります. 最初 - の, 最も早い方法はブートプロンプトが出ている時に-dのブート - フラグをタイプすることです. カーネルはデバッグモードで起動し, デバ - イスのプローブ以前に DDBに入ります. したがって, デバイスのプローブ/初期 - 設定ファンクションのデバッグができます. - - 2つ目のシナリオはキーボードのホットキーで, 通常は Ctrl-Alt-ESCです. - syscons ではホットキーは再設定することができ, 配付されているいくつかの - キーマッピングでは別のキーに再設定されていますので確認しておいてください. - シリアルラインの BREAKを使って シリアルコンソールから DDBへ入ることを可 - 能にするオプションもあります (カーネルコンフィグレーションファイルの - ``options BREAK_TO_DEBUGGER''). これは 多くのつまらないシリ - アルアダプタが, 例えばケーブルを引き抜いた時に BREAK状態を意味もなく - 作り出してしまうのでデフォルトでは無効になっています. - - 3つ目は, DDBを使うようになっているカーネルがパニック状態になると DDB - へ入るというものです. このため, 無人運転するマシンのカーネルにDDBを - 入れるのは賢明ではありません. - - DDBのコマンドはおおまかには gdb のいくつかのコマンドと似て - います。おそらく最初にブレークポイントを設定する必要があるでしょう。 - - b function-name - b address - - - 数値はデフォルトでは16進数で, シンボル名とはまったく異ります. 16進数で - a-f の文字で始まる場合は, 先頭に - 0xをつける必要があります(それ以外の数字の場合はどちらでもか - まいません). function-name + 0x103のような単純な式を使うこ - とができます. - - 割り込みされたカーネルから処理を続行するためには, - - c - - とタイプするだけです. - スタックのトレースには - - trace - - とします. - - DDB にホットキーで入った場合は, カーネルはその (ホットキーの) 割り込み - の処理を行っていますのでスタックトレースはあまり役にたたないことに注 - 意してください. - - ブレークポイントを削除したい場合は, - - del - del address-expression - - とします. 最初の形式はブレークポイントにヒットしたすぐ後で使うことが - でき, 現在のブレークポイントを削除します. 2番目の形式では任意のブレー - クポイントを削除することができますが, 次の形式で得られるような正確な - アドレスを与えることが必要です. - - show b - - カーネルをシングルステップ実行させるには - - s - - としてみてください. これは関数呼出し先までステップ実行 (step into - function) するでしょう. 次のステートメントが終了するまでのDDBトレースは - - n - - によっておこなうことができます. - - 注: これは gdb の `next' 命令とは異ります. - gdbの `finish'命令と似ています. - - メモリ上のデータを調べるには (例として) 次のようにします. - - x/wx 0xf0133fe0,40 - x/hd db_symtab_space - x/bc termbuf,10 - x/s stringbuf - - word/halfword/byte 単位でアクセスをおこない, hex (16進) /dec (10進) / -char (文字) /string (文字列) で表示します. カンマの後ろの数字はオブジェク -トカウントです. 次の 0x10個の要素を表示するには, 単純に - - x ,10 - - とします. 同様に次のように使うことができます. - - x/ia foofunc,10 - - foofuncの最初の 0x10個の命令語をディスアセンブルし, - foofuncの先頭からのオフセットとともに表示します. - - メモリの内容を変更するには writeコマンドを使います. - - w/b termbuf 0xa 0xb 0 - w/w 0xf0010030 0 0 - - コマンドモディファイアの (b/h/w) はデータを - 書くサイズを定義し, これに続く最初の式は書き込むアドレス, 残りがこれ - に続く連続するメモリアドレスに書き込まれるデータになります. - - 現在のレジスタ群の内容を知りたい場合は - - show reg - - とします. また, 単一のレジスタの値を表示するには, 例えば - - p $eax - - とします. また値の変更は - - set $eax new-value - - とします. - - DDBからカーネルの関数を呼び出す必要がある場合は, 単に - - call func(arg1, arg2, ...) - - とします. return 値が出力されます. - - 動いているプロセスの ps(1)スタイルの概要は - - ps - - です. - - カーネルの失敗の原因の調査が終わったらリブートすべきです. それまでの - 不具合によりカーネルのすべての部分が期待するような動作をしているわけ - ではないということを忘れないでください. 以下のうちいずれかの方法でシ - ステムのシャットダウンおよびリブートを行ってください. - - call diediedie() - - - カーネルをコアダンプしてリブートしますので, 後で kgdbによってコアの高 - レベル解析をすることができます. このコマンドは通常 - `continue'命令にエイリアスされています. - `panic'にエイリアスされている - - call boot(0) - - は動いているシステムを `clean' に shut downするよい方法です. すべて - のディスクを sync()して最後にリブートします. ディスクとカー - ネルのファイルシステムインタフェースが破損していない限り, ほぼ完全 - に `clean'にシャットダウンするよい方法でしょう. - - - call cpu_reset() - - は大惨事を防ぐための最後の手段で「赤い大きなボタン」を押すのとほとんど - 同じです.(訳注: リセットボタンを押すのとほぼ同じであるという意味です) - - 短いコマンドの要約は - - help - - をタイプします. ただし, デバッグセッションのために ddb(4) の - マニュアルページのプリントアウトを用意しておくことを強くお奨めします. - カーネルのシングルステップ中にオンラインマニュアルを読むことは難しい - ということを覚えておいてください. - -リモート GDB を使ったオンラインカーネルデバッグ - -

この機能は FreeBSD 2.2 からサポートされました. これは本当にすばらし -い機能です. - - GDB はすでにかなり以前より config -g で行な - い, strip -x でデバッグシンボルを取り除きます. そして -% gdb -k kernel -GDB is free software and you are welcome to distribute copies of it - under certain conditions; type "show copying" to see the conditions. -There is absolutely no warranty for GDB; type "show warranty" for details. -GDB 4.16 (i386-unknown-freebsd), -Copyright 1996 Free Software Foundation, Inc... -(kgdb) - - - リモートデバッグセッションの初期化 (1番目のシリアルポートを使用する - ことの設定) を以下のように行ないます. - - -(kgdb) target remote /dev/cuaa0 - - - 次にターゲットマシン (デバイスのプローブ直前で DDB に入っています) - で次のように入力します: - - -Debugger("Boot flags requested debugger") -Stopped at Debugger+0x35: movb $0, edata+0x51bc -db> gdb - - - DDB は次のような出力を返すでしょう. - -Next trap will enter GDB remote protocol mode - - - ``gdb''と入力するたびに リモート GDB とローカル DDB が交互に切り替わ - ります. トラップをすぐに起こすために単に ``s'' (step) と入力して下 - さい. そうするとホストの GDB はターゲットのカーネルの制御を行なうよ - うになります. - - -Remote debugging using /dev/cuaa0 -Debugger (msg=0xf01b0383 "Boot flags requested debugger") - at ../../i386/i386/db_interface.c:257 -(kgdb) - - - このセッションではソースコードへのフルアクセスや Emacs の window 上 - の gud-mode (これは別の Emacs window に自動的にソースコードを表示し - ます) で動かすなど, 通常の GDB セッションでできることのほとんどのこ - とができます. - -

リモート GDB は LKM のデバッグも行なうことができます. 最初に LKM を - デバッグシンボルを含めた形で作ります. - -# cd /usr/src/lkm/linux -# make clean; make COPTS=-g - - - そしてターゲットマシン上でモジュールのこのバージョンをインストールし - ます. これをロードしてから, modstat を使ってロードされている - ことを確認してください: - -# linux -# modstat -Type Id Off Loadaddr Size Info Rev Module Name -EXEC 0 4 f5109000 001c f510f010 1 linux_mod - - -示されたロードアドレスに 0x20 (a.outのヘッダはおそらくこの大きさでしょ -う) を加えます. それがモジュールコードの再配置されるアドレスです. -GDB の add-symbol-file コマンドを使ってデバッガにモジュールの -情報をつたえます. - -(kgdb) add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020 -add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at -text_addr = 0xf5109020? -(y or n) y -(kgdb) - - -これで LKM のすべてのシンボルにアクセスできるようになります. - -コンソールドライバのデバッグ - -

DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ - イバ自身に不具合のある場合は複雑になります. シリアルコンソールを利 - 用する方法 (ブートブロックを変更するか Boot:プロンプトで - -hと入力する) を思い出してください. そして標準ター - ミナルを最初のシリアルポートに設定します. DDBは, もちろんシリアルコ - ンソールを含むいずれのコンソールドライバの設定でも動作します. diff --git a/ja/handbook/kernelopts.sgml b/ja/handbook/kernelopts.sgml deleted file mode 100644 index 0df578742f..0000000000 --- a/ja/handbook/kernelopts.sgml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - -カーネルコンフィグレーションの新しいオプションを追加する - - -

原作: &a.joerg; - -

訳: &a.yoshiaki; . 29 December 1996. - - の章の内容を -理解しておいてください. - -そもそもカーネル オプションって何? - -

カーネルオプションの使い方は基本的には - の章に書いてあります. - そこには「伝統的な形式」と「新しい形式」のオプションの説明があります. - すべてのカーネルのオプションを新しい形式のものに置き換え, コンフィグファイル - を修正して 基本的に, カーネルオプションはカーネルのコンパイルプロセスの - C プリプロセッサのマクロの定義にすぎません. 実際に選択的に make できる - ようにするためには, 対応する部分のカーネルソース (またはカーネルの - -#ifndef THIS_OPTION -#define THIS_OPTION (some_default_value) -#endif /* THIS_OPTION */ - -

この場合, 管理者がコンフィグファイルのオプションに別の値を記述すれば, - デフォルトの設定を打ち消して新しい値に置き換えられます. 当然, - 新しい値はプリプロセッサによってソースコード中で置き換えられるため, - デフォルトの値が使われていた場所において C の式として有効な値でなければ - なりません. - -

また, 単に特定のコードを有効にするか無効にするかを設定するための - 値を持たないオプションも作ることができます. - - -#ifdef THAT_OPTION - -[あなたのコードが入ります] - -#endif - -

コンフィグファイルに C 言語にくわしい人であれば「コンフィグオプション」とされているもの - は少なくとも一つの - options notyet,notdef - -

このようにコンフィグファイルをしておくと, カーネルのコンパイルは - うまく行きません. :-) - -

(訳注: たとえば MATH_EMULATE のように 有効/無効のためのパラメタを - 持たないオプションの場合, 無効とするためのパラメタをつけて, オプション - で「無効とする」と明示することはできないという意味です) - -

明らかに, 任意のオプション名がカーネルソースツリー全体でどのように - 使われているかを追いかけることは非常に難しいことです. このことが - opt_foo.h という名前に - されます. この方法では, 通常の Makefile の依存関係が適用され, - 古い形式のオプションの機構は, 局部的なオプションや実験的なオプション - のような一時的に利用されると考えられるオプションにおいては有効です. - つまり ではどのようにして追加するのでしょう? - -

最初に sys/conf/options (または - sys/i386/conf/options.<arch>, たとえば - sys/i386/conf/options.i386) を編集し, 新しいオプション - を含めるのに最適な opt_foo.h ファイルを選びます. - -

新しいオプションの必要がなくなったとしたら, これを取り除きます. - たとえば, SCSI サブシステムに関するすべてのふるまいについてのオプション - の変更は 新しいオプションを加えるのに使えそうな - opt_foo.h がない場合は新しい名前を作ってください. - 意味のある名前を作り options[.<arch>] ファイル - に新しいセクションのコメントをつけてください. 大量のオプションを一つの opt_foo.h にまとめると - コンフィグファイルの一つのオプションを変更したときに多くのファイルが - 再コンパイルされる原因になります. - -

新しいオプションに依存するカーネルファイルは最終的には見つけ出 - されます. ただし, オプションを作っただけで対応するソースがどこにも - ない場合は別です. - - - find /usr/src/sys -name type f | xargs fgrep NEW_OPTION - -

オプションに対応するソースを見つけるのに上記のコマンドは便利です. - 見つけたすべてのファイルで編集, 追加をおこないます. - - -#include "opt_foo.h" - -

ファイルの先頭の, すべての -#ifndef NEW_OPTION -#define NEW_OPTION (something) -#endif - - - -

システムヘッダファイル (たとえば /usr/include/sys/ にある - ファイル) をオプションで置き換えることは, ほとんどの場合で失敗します. - そうすると, ヘッダファイルを深刻な状態に破壊してしまうので, include - しないとオプションの値によって不整合が起きてしまう場合を除き, それらの - ファイルに opt_foo.h を include しないでください. - そう, 現在このような例がいくつか存在していますが, 必ずしも正しい方法 - ではありません. diff --git a/ja/handbook/linuxemu.sgml b/ja/handbook/linuxemu.sgml deleted file mode 100644 index 281cac8363..0000000000 --- a/ja/handbook/linuxemu.sgml +++ /dev/null @@ -1,723 +0,0 @@ - - - - -Linux エミュレーション - -

原作: &a.handy and &a.rich; -

訳: &a.kiroh;.24 September 1996. - -Linux エミュレータのインストール - -

-FreeBSD での Linux エミュレーションは, 大部分の Linux バイナリ(a.out -および ELF フォーマット)を実行できる状態になっています. 2.1-STABLE ブラン -チでのエミュレーションでは, Linux DOOM や Mathematica が実行できます. -&rel.current;-RELEASE でのエミュレーションは, さらに強化されており, Linux 用 -の Quake, Abuse, IDL, netrek など, 多数のソフトウェアが実行できます. - -Linux オペレーティングシステムには、特有の機能がいくつかあり, FreeBSD -でサポートされていないものもあります. Linux の /proc ファイルシステム -を使ったバイナリは, FreeBSD では実行できません (FreeBSD で使用可能な -/proc ファイルシステムとは仕様が異なっているためです). また仮想8086モー -ドを有効にするなど, i386 に特有なシステムコールを使っている場合も実行 -できません. - -Linux エミュレーションの設定方法は, 使用している FreeBSD のバージョン -によって多少異なっています. - -2.1-STABLE への Linux エミュレーションのインストール - -

2.1-STABLE の GENERIC カーネルは, Linux との互換性を保つように構築 -されていません. カーネルの再構築が必要です. 再構築をおこなうには, 2つの方 -法があります. 1つは, エミュレータをカーネル自体にスタティックリンクす -る方法. もう1つは, 動的に Linux ローダブルカーネルモジュール(LKM)をロー -ドするようにする方法です. - -

エミュレータを有効にするには, 以下をコンフィグレーションファイル - (/sys/i386/conf/LINT など) に追加します. - - -options COMPAT_LINUX - - -Linux DOOM などのアプリケーションを実行したい場合は, 共有メモリも有効 -にしておかなければなりません. 以下を追加します. - - -options SYSVSHM - - -Linux のシステムコールを使用するには, 4.3BSD のシステムコールとの互換 -性が保たれていることが必要です. 以下の行が含まれていることを確認してく -ださい. - - -options "COMPAT_43" - - - -LKM を使用せずエミュレータをカーネルにスタティックにリンクしたい場合は, -以下の行を追加します. - - -options LINUX - - -の節の記述に -したがって config と, 新しいカーネルのインストールをおこなってください. - -LKM を使用する場合は, ローダブルモジュールをインストールしなければなり -ません. カーネルとローダブルモジュールのバージョンが異なると, カーネル -がクラッシュする場合がありますので, 安全を期すためには, カーネルをイン -ストールするごとに, LKM も再インストールしてください. - - -% cd /usr/src/lkm/linux -% make all install - - -カーネルと LKM のインストールが終了したら, root で `linux' コマンドを -実行することで LKM をロードできます. - - -% linux -Linux emulator installed -Module loaded as ID 0 -% - - -LKM がロードされたかどうかを確認するには, `modstat' を実行します. - - -% modstat -Type Id Off Loadaddr Size Info Rev Module Name -EXEC 0 3 f0baf000 0018 f0bb4000 1 linux_emulator -% - - -システムブート時に, LKM をロードするようにするには, 2つの方法がありま -す. FreeBSD 2.2.1-RELEASE または 2.1-STABLE では, /etc/sysconfig を, - - -linux=YES - - -のように, NO を YES に変更してください. FreeBSD 2.1-RELEASE およびそれ以 -前のバージョンでは, そのような行はありませんので, /etc/rc.local に以下 -の行を追加する必要があります. - - -linux - - - -2.2-RELEASE への Linux エミュレーションのインストール - - -

``options LINUX'' や ``options COMPAT_LINUX'' を指定する必要 -はなくなりました. Linux エミュレーションは LKM(「ローダブルカーネルモジュール」) -を使用して, リブートせず簡単にインストールできます. スタートアッ -プファイルで以下のように指定します. - -/etc/rc.conf に以下の行が必要です. - - -linux_enable=YES - - - これは結果的に, /etc/rc.i386 の以下の指定を有効にします. - - -# Start the Linux binary emulation if requested. -if [ "X${linux_enable}" = X"YES" ]; then - echo -n ' linux'; linux > /dev/null 2>&1 -fi - - - - -

実行されたかどうかを確認するには, modstat を使用します. - - -% modstat -Type Id Off Loadaddr Size Info Rev Module Name -EXEC 0 4 f09e6000 001c f09ec010 1 linux_mod -% - - -2.2-RELEASE とそれ以降のシステムの中には, modstat の実行がうまくいかない -ものがあるという報告もあります. 何らかの理由で, Linux LKM がロードできな -い場合は, - - -options LINUX - - -をカーネルの設定ファイルに指定して, エミュレータをスタティックにリンク -してください. -の節の記述にしたがって config と, 新しいカーネルのインストールをおこ -なってください. - -Linux ランタイムライブラリのインストール - -linux_lib port を使用してのインストール - -

多くの Linux アプリケーションはシェアードライブラリを使用しますので, -シェアードライブラリのインストールが終了しなければ, エミュレータのイン -ストールは終わったことになりません. 手動でもインストールできますが, -linux_lib port を使用するのが簡単です. - - -% cd /usr/ports/emulators/linux_lib -% make all install - - - -これで, Linux エミュレータが動作するようになったはずです. 伝説(とメー -ルのアーカイブ :-) によれば, Linux エミュレーションは, ZMAGIC ライブラ -リとリンクされている Linux バイナリに対して, 最もうまく動作するようで -す. Slackware V2.0 などに使われている QMAGIC ライブラリだと, エミュレー -タが胸やけするかもしれません. -マイナーバージョンの不一致などを報告するプログラムもありますが, 普通は -問題にならないようです. - -手動でのライブラリのインストール - -

``ports'' ディストリビューションが手元にない場合は, 手動でライブラ -リをインストールする必要があります. プログラムが必要とする Linux のシェ -アードライブラリとラインタイムリンカが必要です. また Linux ライブラリ -の用の``shadow root'' ディレクトリ, /compat/linux, を作成する必要があ -ります. FreeBSD で動作する Linux のプログラムが使用するシェアードライ -ブラリは,まずこのファイルツリーから検索されます. 例えば, Linux のプロ -グラムが/lib/libc.so をロードしようとした場合には, FreeBSD は, まず -/compat/linux/lib/libc.so を開こうとします. 存在にしなかった場合には, -次に /lib/libc.so を試します. シェアードライブラリは, Linux の ld.so -が参照するライブラリではなく, /compat/linux/lib 以下にインストールする -必要があります. - -FreeBSD 2.2-RELEASE 以降では, /compat/linux にかかわる動作が多少異なって -おり, ライブラリだけでなくすべてのファイルが, ``shadow -root'' である /compat/linux から検索されるようになっています. - -Linux のプログラムが必要とするシェアードライブラリを探す必要があるのは, -FreeBSD のシステムに Linux のプログラムをインストールする最初の数回だ -けでしょう. それが過ぎれば, 十分な Linux のシェアードライブラリがシス -テムにインストールされ, 新しくインストールした Linux のバイナリも, 余 -計な作業をせずに動作させることができるようになります. - -シェアードライブラリの追加 - -

-linux_port をインストールした後に, アプリケーションが必要なライブラリ -が存在しないというエラーを出したらどうしたらよいでしょうか? Linux のバ -イナリがどのシェアードライブラリを必要とし, そしてどこで入手できるか, -どのように探したらよいでしょうか? 基本的には, 以下の2種類の方法があり -ます(以下の手順にしたがう場合には, 必要なインストール作業をおこなう FreeBSD シ -ステム上で root として作業をおこなう必要があります). - -

Linux システムを使用でき, 必要なシェアードライブラリが調べられる場 -合には, 単に FreeBSD のシステムにそのライブラリをコピーするだけで -す. 例えば, DOOM の Linux バイナリを ftp で持ってきたとします. 使用で -きる Linux システムの上に転送して, `ldd linuxxdoom' とやれば, 必要とす -るシェアードライブラリがチェックできます. - - - -% ldd linuxxdoom -libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 -libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 -libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 - - - -

-最後のカラムに表示されているすべてのファイルを持って来て, /compat/linux の下 -に置き, 最初のカラムに示されるファイル名からシンボリックリンクを張る必 -要があります. すなわち, FreeBSD のシステムで, 以下のようなファイルが必 -要となります. - - -/compat/linux/usr/X11/lib/libXt.so.3.1.0 -/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 -/compat/linux/usr/X11/lib/libX11.so.3.1.0 -/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 -/compat/linux/lib/libc.so.4.6.29 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 - - - -

-最初のカラムに表示されているファイルと, メジャーバージョンの同じ Linux -シェアードライブラリを既にインストールしている場合は, 新たにコピーする -必要はありません. 既にあるライブラリで動作するはずです. ただ, 新しいバー -ジョンのシェアードライブラリがある場合は, 新しいものをコピーすることを -お奨めします. 新しいライブラリにシンボリックリンクを変更したら, 古いラ -イブラリは削除してかまいません. - - -/compat/linux/lib/libc.so.4.6.27 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.27 - - -以上のようなライブラリがインストールされており, 新しいバイナリに対する -ldd の出力が以下のようになる場合を考えます。 - - -libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 - - - -このように最後の番号が1つか2つ古いだけならば, 普通は -/lib/libc.so.4.6.29 をコピーする必要はありません. わずかに古いライブラ -リでも, プログラムは動作するはずだからです. もちろん, 新しいライブラリ -と置き換えて, 以下のようにしても構いません. - - -/compat/linux/lib/libc.so.4.6.29 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 - - - -

シンボリックリンクのメカニズムは, Linux バイナリにのみ必要 -なことに注意してください. FreeBSD のランタイムリンカは, メジャーリビジョ -ン番号の一致したライブラリを検索しますから, ユーザが気にする必要はあり -ません. - -ld.so の設定 -- FreeBSD 2.2-RELEASE およびそれ以降 - -

このセクションは, FreeBSD 2.2-CURRENT 以降にのみ当てはまります. -2.1-STABLE を使用している方は, 飛ばしてください. - -

-最後に, FreeBSD 2.2-RELEASE を使われている場合は, Linux のランタイムリンカと -その設定ファイルがシステムに導入されていることを確認してください. -これらのファイルは, FreeBSD システムの適切な位置(/compat/linux ツリー以 -下)にコピーされている必要があります. - - - -/compat/linux/lib/ld.so -/compat/linux/etc/ld.so.config - - - -

使用できる Linux システムがない場合は, 必要なファイルは近くの FTP サイ -トから入手してください. 各種ファイルの入手先についての情報を, 後に付 -けておきます. ここでは, 必要なファイルの入手先がわかっているものとしま -す. - -

-以下のファイルを取得します(バージョンの不一致を避けるために, すべて同一 -の FTP サイトから入手してください). 取得したファイルを /compat/linux -以下にインストールしてください(例えば, /foo/bar は, -/compat/linux/foo/bar にインストールされます). - - - -/sbin/ldconfig -/usr/bin/ldd -/lib/libc.so.x.y.z -/lib/ld.so - - - -

ldconfig と ldd は, /compat/linux の下にある必要はありません. システム -のどこにあっても構いません. ただ, FreeBSD の同名のコマンドと間違えないように -注意してください. /usr/local/bin の中に, ldconfig-linux, ldd-linux とし -てインストールするのもよいアイディアでしょう. -

-/compat/linux/etc/ld.so.conf ファイルを作成し, Linux ラインタイムリンカ -がシェアードライブラリを検索するディレクトリを記述してください. このファ -イルはプレインテキストファイルで, それぞれの行にディレクトリ名を含みま -す. /lib と /usr/lib は標準ですから, 以下のようなディレクトリが追加できま -す. - - -/usr/X11/lib -/usr/local/lib - - - -

-Linux バイナリが, /lib/libc.so というライブラリを開いた場合, エミュレー -タは内部で, ファイル名を /compat/linux/lib/libc.so にマップします. エ -ミュレータがライブラリを検索するために, すべての Linux のライブラリ -(/compat/linux/lib/libc.so, /compat/linux/usr/X11/lib/libX11.so など) -は, /compat/linux 以下にインストールされていなければなりません. - -

FreeBSD 2.2-RELEASE を使用している場合は, Linux の ldconfig プログラム -を実行する必要があります. - - -% cd /compat/linux/lib -% /compat/linux/sbin/ldconfig - - - -

-ldconfig はスタティックリンクされていますから, 実行するのにシェアードラ -イブラリを必要としません. ldconfig は, /compat/linux/etc/ld.so.cache -ファイルを作成し, すべてのシェアードライブラリの名前を格納します. ライ -ブラリの追加をおこなった場合には, ldconfig を再実行して, このファイルを作り -直さなければなりません. - -2.1-STABLE では, /compat/linux/etc/ld.so.cache をインストールしたり, -ldconfig を実行したりしないでください. 2.1-STABLE では, システムコー -ルの実装方法が異なるため, ldconfig は使用されません. - -

-これで, libc シェアードライブラリを必要とする Linux バイナリを実行する設 -定が終了しました. ldd を ldd 自身に実行してテストしてください. -ldd-linux としてインストールしている場合は, 以下のような結果になるはず -です. - - - -% ldd-linux `which ldd-linux` -libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 - - - -

ここまで終了すれば, 新しい Linux のバイナリをインストールできます. -新しい Linux バイナリをインストールするときは, それがシェアードライブ -ラリを必要とするかどうか確認してください. 必要とする場合は, -/compat/linux 以下にインストールされているかどうか確認してください. こ -れは, Linux の ldd を新しいプログラムに対して実行し, 出力を確認するこ -とによりおこなえます. ldd(ldd(1)マニュアルページも参照してください)は, プ -ログラムが必要とするシェアードライブラリのリストを, majorname -(jumpversion) => fullname という形式で出力します. - -

-fullname のかわりに ``not found'' と出力される場合は, ライブラリの追加をす -る必要があります. 必要なライブラリの名前は, majorname に -libXXXX.so.N.mm という形式で示されています. Linux の FTP サイトで -libXXXX.so.N.mm を探し, インストールしてください. XXXX(名前)とN(メジャー -リビジョン番号)は一致している必要があります. マイナー番号 mm は, それほ -ど重要ではありませんが, なるべく最新のものをインストールするようにして -ください. - -Linux の ELF バイナリをインストールする -

ELF のバイナリを使うためには, ``焼き印を押す(branding)'' 作業が -必要になります. 焼き印を押していない ELF バイナリを実行しようとすると, -以下のようなエラーメッセージをうけとってしまうことでしょう. - - -% ./my-linux-elf-binary -ELF binary type not known -Abort -% - - -カーネルが FreeBSD の ELF バイナリと Linux のバイナリとを見分けられる -ようにするためには, を以下のようにして使ってください: - - -% brandelf -t Linux my-linux-elf-binary - - -今ではGNU のツールたちが, ELFバイナリに自動的に適切な焼き印を押すようになったので, -今後はこの作業もだんだんと必要なくなってゆくでしょう. - -ホストネームリゾルバの設定 - -

DNS がうまく動作しなかったり, 以下のようなエラーメッセージが表示され -る場合は, /compat/linux/etc/host.conf ファイルを設定する必要があります. - - -resolv+: "bind" is an invalid keyword -resolv+: "hosts" is an invalid keyword - - -ファイルの内容を以下のように設定してください. - - -order hosts, bind -multi on - - -ここで, order は /etc/hosts を最初に検索し, 次にDNSを検索するように指定 -します. /compat/linux/etc/host.conf がインストールされていない場合は, -Linux のアプリケーションは, FreeBSD の /etc/host.conf を使用しようとして, -文法の違いによる警告を表示します. /etc/resolv.conf を使用してネームサー -バを設定していない場合には, `bind' を削除してください. - -

最後になりますが, 2.1-STABLE を使用している場合は, -RESOLV_HOST_CONF 環境変数を指定して, アプリケーションにホストテーブル -の検索方法を指定する必要があります. FreeBSD 2.2-RELEASE かそれ以降を使用している場合 -は, スキップしてください. /bin/csh を使っている場合は, 以下のようにし -ます. - - -setenv RESOLV_HOST_CONF /compat/linux/etc/host.conf - - - -/bin/shの場合は, 以下のようにします. - - -RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF - - - -必要なファイルを探すには - -

-注意: 以下の情報は, この文書が書かれた時点では有効ですが, FTP サイトの -名前, ディレクトリ, 配布ファイル名などは, 変更されている可能性がありま -す. -

-訳注: ここに取り上げられている FTP サイトは, 日本国内にもミラーサイト -が多数存在します。なるべく近くの FTP サイトからファイルを入手してくだ -さい. - -

-Linux は, いくつかのグループが, それぞれ独自のバイナリ配布セットを作成 -して配布しています. 配布セットは, ``Slackware'' や ``Yggdrasil'' など -の名前がつけられています. これらの配布セットは, 多くの FTP サイトから -入手できます. ファイルが展開されており, 必要なファイルのみを取得できる -場合もありますが, 通常は圧縮された配布セットの形で入手できます. 配布 -セットは, いくつかのサブディレクトリに, gzip で圧縮された tar ファイル -として格納されています. それぞれの配布セットの一次配布先は, 以下の通り -です. - -sunsite.unc.edu:/pub/Linux/distributions -tsx-11.mit.edu:/pub/linux/distributions - - -

-ヨーロッパのミラーサイトの例: - -ftp.luth.se:/pub/linux/distributions -ftp.demon.co.uk:/pub/unix/linux -src.doc.ic.ac.uk:/packages/linux/distributions - - -

-混乱を避けるために, ここでは Slackware だけを取り上げます. この配布セッ -トは, 多くのサブディレクトリ内にある別々のパッケージから構成されていま -す. 通常, パッケージはインストールプログラムにより自動的に制御されま -すが, ``手動で''おこなうことも可能です. まず配布セットの中の, -``contents'' サブディレクトリの内容を書くにしてください. ここには多く -の小さなテキストファイルが含まれおり, それぞれのパッケージの内容が記述 -されています. 必要なファイルを探している場合は, まず contents 内のテキ -ストファイルを取得し, そのファイルの中から grep を使用して検索するのが, -最も速い方法でしょう. 以下に必要となるであろうファイルを, grep を使用 -して検索した例を示します. - -Library Package -ld.so ldso -ldconfig ldso -ldd ldso -libc.so.4 shlibs -libX11.so.6.0 xf_lib -libXt.so.6.0 xf_lib -libX11.so.3 oldlibs -libXt.so.3 oldlibs - - -

-この場合は, ldso, shlibs, xf_lib, oldlibs というパッケージが必要なこと -がわかります. それぞれのcontentsファイルの中で, ``PACKAGE LOCATION'' -と書いてある行を探してください. その行に, パッケージが含まれているディ -スク, 今回の場合はサブディレクトリ名が書かれています. たとえば, 以下の -ようになります. - -Package Location -ldso diska2 -shlibs diska2 -oldlibs diskx6 -xf_lib diskx9 - - -

``diskXX'' というのは, 配布セットの ``slackware/XX'' サブディレクトリ -を示します. それ以外の場合は, ``contrib'' サブディレクトリに格納されて -います. 今回の場合は, 以下のファイルを取得すればいいことがわかります -(ファイル名は, 配布セットのルートディレクトリからの相対パスで示してあ -ります). - - -slakware/a2/ldso.tgz -slakware/a2/shlibs.tgz -slakware/x6/oldlibs/tgz -slakware/x9/xf_lib.tgz - - - -

-gzip で圧縮された tar ファイルから必要なファイルを /compat/linux ディ -レクトリに格納してください(必要なファイルのみを展開するか, あるいは必 -要でないファイルを後で削除してください). これで作業は終了です. - -

参照: - -ftp.freebsd.org:pub/FreeBSD/2.0.5-RELEASE/xperimnt/linux-emu/README - -/usr/src/sys/i386/ibcs2/README.iBCS2 - - -FreeBSD への Mathematica のインストール - -

原作: &a.rich and &a.chuck -

訳: &a.kiroh;. - -この文書は, Mathematica 2.2 の Linux バイナリディストリビューションを, -FreeBSD 2.1 にインストールする方法について説明します. - -

-Mathematica は, そのままでは FreeBSD をサポートしていませんが, Linux は -サポートしています. ですから, Linux エミュレータの設定が終わってしまえ -ば, Mathematica を動作させる環境はほとんど整ったことになります. - -

-DOS 用のスチューデント版 Mathematica から Linux バージョンへのアップグレー -ド価格は, 執筆時点 (1996年5月) では, $45.00 です. -直接 Wolfram(電話番号(217) 398-6500)に注文して, 支払いはクレジットカー -ドでおこなえます。 - -Mathematica ディストリビューションの展開 -

-バイナリは, Wolfram から CDROM で配布されています. CDROM には, 1ダー -スほどの tar ファイルが含まれており, それぞれサポートされているアーキテ -クチャに対応しています. Linux 用のファイルは, LINUX.TAR です. 例えば -/usr/local/Mathematica 以下にインストールする場合は, 以下のようにしま -す. - - -% cd /usr/local -% mkdir Mathematica -% cd Mathematica -% tar -xvf /cdrom/LINUX.TAR - - - -Mathematica パスワードの取得 -

-Mathematica を実行する前に, 使用するマシンに対応した `machine ID' を -Wolfram から取得する必要があります. - -

-Linux 互換ランタイムライブラリがインストールされており, mathematica の展 -開が終了したら, Install ディレクトリで `mathinfo' プログラムを使用す -ることで `machine ID' を得ることができます. - - -% cd /usr/local/Mathematica/Install -% mathinfo -LINUX: 'ioctl' fd=5, typ=0x89(), num=0x27 not implemented -richc.isdn.bcm.tmc.edu 9845-03452-90255 -% - - -ここで, `richc' の `machine ID' は, `9845-03452-90255' となります. -ioctl のメッセージは無視してください. まだ FreeBSD では実装されていません. -Mathematica を実行するたびに同様のメッセージが表示されますが, 実際の使 -用に問題はありませんので, 無視してかまいません. - -

電子メールや電話, ファックスなどで Wolfram に `machine ID' を知らせ -て登録すると, いくつかの番号のグループからなるパスワードが送り返されて -きます. パスワードを, マシン名, ライセンス番号とともに, mathpass ファ -イルに追加します. - -追加は, 以下のようにおこないます. - - -% cd /usr/local/Mathematica/Install -% math.install - - -ライセンス番号と, Wolfram から送られてきたパスワードを入力を求めます. -入力を間違えたりして, math.install の実行が失敗しても大丈夫です. -`mathpass' ファイルを手動で編集して, 情報を訂正してください. - -

-パスワードの入力後, math.install では, インストール方法を, デフォルト -設定でのインストールか、自分で方法を指定するインストールから選ぶことが -できます. 筆者のようにインストールプログラムを信用していない場合は, 自 -分でディレクトリを指定する方を選択するでしょう. 自分で指定するインストー -ルを選んだ場合, math.install 自身ではディレクトリの作成はおこないません. -注意してください. 別のウィンドウでシェルを開いて, 指定するディレクトリ -を作成してください. 存在しないディレクトリを指定して, math.install が -インストールに失敗した場合には, ディレクトリを作成し, math.install を -再び実行してください. 筆者らがインストール先に選んだディレクトリは, 以 -下の通りです. くれぐれもあらかじめ作成してから, math.install で指定す -るようにしてください. - - -/usr/local/Mathematica/bin バイナリファイル -/usr/local/Mathematica/man/man1 マニュアルページ -/usr/local/Mathematica/lib/X11 XKeysymbファイル - - -また, システムレコードファイルとして, /tmp/math.record を使用するように -設定することもできます. このファイルには, セッションのログが記録されま -す. この設定が終了すると, math.install は残りのファイルを展開して, 必 -要な場所に格納します. - -

-Mathematica ノートブックの機能は, X フロントエンドとして本体とは別に含 -まれています. X フロントエンドを正しくインストールするには, -/usr/local/Mathematica/FrontEnd ディレクトリに移動し, ./xfe.install シェ -ルスクリプトを実行します. インストール先を指定しなければなりませんが, -あらかじめ作成する必要はありません. 必要なディレクトリは, すべて -math.install によって作成されているからです. インストールが終了したら, -/usr/local/Mathematica/bin ディレクトリに, ``mathematica'' という名前の -シェルスクリプトが新たに作成されているはずです. - -

最後に, Mathematica がインストールしたシェルスクリプトを修正する必要 -があります. /usr/local/Mathematica/bin に含まれるすべてのシェルスクリプ -トの先頭部分に以下の行を追加します. - - -XKEYSYMDB=/usr/local/Mathematica/lib/X11/XKeysymDB; export XKEYSYMDB - - -これは, Mathematica が使用する Mathematica バージョンのキーマップファイル -XKeysymDB の場所を指定するものです. - -2.1-STABLE を使用している場合は, 以下の行も追加してください. - - -RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF - - -これは, Mathematica に Linux バージョンの host.conf を使用するように指定し -ます. FreeBSD の host.conf の文法は, Linux のものと異なっているため, この -指定をおこなわないと, /etc/host.conf に関わるエラーが発生します. - -

-新しいマニュアルページを利用したい場合は, さらに /etc/manpath.config ファイ -ルを修正する必要があります. また自分の~/.cshrcを変更して, -/usr/local/Mathematica/bin をパスに追加してください. - -

-これでインストール作業はすべて終了です. ``mathematica'' とタイプすれば, -見栄えのする Mathematica ノートブックが表示されるはずです. Mathematica -には, Motif ユーザインタフェースが含まれますが, スタティックにリンクさ -れているため, Motif のライブラリは必要ありあません. 頑張って -Mathematica をインストールしてください. - -バグ - -

-ノートブックフロントエンドは, 以下のようなエラーメッセージを表示して, -ハングすることがあることが知られています. - - -File .../Untitled-1.mb appears to be broken for OMPR.257.0 - - - -今のところ原因はわかっていませんが, このバグが影響を及ぼすのは, ノートブッ -クの X window フロントエンドのみです. Mathematica エンジン本体に影響は -ありません. そのため, ``math'' によって起動されるコマンドラインのインタ -フェースを使用している場合は, このバグは関係ありません. - -謝辞 - -

&a.sosと&a.peterに深く感謝します. Linuxエミュレーションが現在の形に -あるのは, 彼らのおかげです. そして, 彼ら二人にハッパをかけて, 犬のよう -に働かせた Michael Smithに. 今やLinuxエミュレーションは, linuxよりうま -くlinuxバイナリを実行できます! :-) - diff --git a/ja/handbook/lists.sgml b/ja/handbook/lists.sgml deleted file mode 100644 index aa3ed71b2c..0000000000 --- a/ja/handbook/lists.sgml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - -"> - - - newsgroup"> diff --git a/ja/handbook/mail.sgml b/ja/handbook/mail.sgml deleted file mode 100644 index 49faf263b2..0000000000 --- a/ja/handbook/mail.sgml +++ /dev/null @@ -1,597 +0,0 @@ - - - - - - -電子メール - -

原作: &a.wlloyd;. -

訳: &a.mihoko;14 January 1997. - -

電子メールのコンフィグレーションは, -多くの の書籍で主題 -として取り上げられています. -ネットワークに合わせたメールホスト構築の範疇を越えるようなことをする -のは, 簡単にはいきません. - -電子メールのコンフィグレーションの一部は, ドメインネームシステム -(DNS) によって制御されています. あなた自身で DNS サーバを -立ち上げたい場合には, /etc/namedb ファイルを -あなたのサーバに合うように変更してください. -さらに詳しい情報が必要な場合には,' man -k named ' -コマンドを実行してください. - -基本事項 - -

- 電子メール交換の主要なプログラムや構成要素を, 次に示します. - ユーザプログラム -

これは, sendmail を呼び出すか, メールホストに対して TCP 上 - の通信を使ってメールを配送するかのいずれかによっておこないます. - - メールホストサーバデーモン -

通常, このプログラムはバックグラウンドで実行されている - /etc/rc.conf ファイル - (FreeBSD 2.2.2 より前のバージョンの場合は /etc/sysconfig - ファイル)を編集します. - 特別な理由( を - 構築している場合など)がないかぎり, 実行する設定にしておくべきです. - -

-sendmail は安全なサイト上であっても潜在的にセキュリティ上の -弱点になることを覚えておいてください. -sendmail のいくつかのバージョンでは, セキュリティ上の問題が -知られています. - -

sendmail は, 電子メールの配送, -受信の二つの仕事をおこないます. - -

は, サイトの外側へメールを配送する必要が -ある場合, DNS を参照して配送先のメールを受け取る実際のホストを決定します. - -

DNS - ネームサービス -

ドメインネームシステムとそのデーモン POP サーバ -

このプログラムはメールボックスからメールを取り出し, - ブラウザにメールを渡します. POP サーバをあなたのマシン上で - 動かしたい場合には, 次の二つの作業をする必要があります. - -pop ソフトウェアを - から入手 -します. -pop ソフトウェアは, /usr/ports -または パッケージコレクションにあります. -このハンドブックには, システム -についての完全な解説のセクションがあります. -POP サーバを起動できるように, -/etc/inetd.conf -ファイルを編集します. - - -入手した pop プログラムには説明文が付属していますので, それを読んで -ください. - - - -コンフィグレーション - - 基本事項 -

-あなたのマシンに FreeBSD を普通にインストールして, - /etc/resolv.conf ファイルを設定するか, -またはネームサーバを走らせれば, -他のホストへ電子メールを送ることができるようになります. - あなたのホスト宛のメールを特定のホストに配送するようにしたい場合 -には, 次の二つの方法があります. -

-- ネームサーバ ( man -k named ) を実行し, -あなた自身のドメイン smallminingco.com を定義する. -

-- あなたのホストに対する現在の DNS 名に配送されたメールを受け取る. -つまり dorm6.ahouse.school.edu 宛に送られたメールを受け取る. -

-インターネットへ完全に接続されたあなたのホストに直接メールが配送される -ためには, -ネームサーバのどのオプションを使用するかはあまり重要なことではありません. -大切なのは, あなたが恒久的な IP アドレスを持っていなくてはいけないと -いうことです. ダイナミック PPP で得られる IP アドレスではダメです. -もしあなたがファイアウォールの内側にいる場合は, -ファイアウォールが smtp トラフィックを -あなたのホストに渡すように設定されていなければいけません. -そのためには, ファイアウォールとなるホストの - /etc/services に - -smtp 25/tcp mail #Simple Mail Transfer - -と書いておきます. -あなたのホスト上でメールを受けたい場合には, DNS の MX エントリが -あなたのホストアドレスを指しているか, -あなたのホストの DNS 名に対して MX エントリが存在しないことを -確認してください. - - -次のコマンドを実行してみてください. - -newbsdbox# hostname -newbsdbox.freebsd.org -newbsdbox# host newbsdbox.freebsd.org -newbsdbox.freebsd.org has address 204.216.27.xx - - -もしあなたのマシンが上記のメッセージだけを出力したならば, -root@newbsdbox.freebsd.org へのメールは, 問題なく -配送されるでしょう. - -上記のメッセージの代わりに, - -newbsdbox# host newbsdbox.freebsd.org -newbsdbox.FreeBSD.org has address 204.216.27.xx -newbsdbox.FreeBSD.org mail is handled (pri=10) by freefall.FreeBSD.org - -というメッセージが出力された場合は, あなたのマシンに直接配送された -すべてのメールは, freefall 上の同じユーザ名に配送されてます. - -この情報は, あなたのドメインネームサーバ上で設定します. -この設定をおこなうホストは, /etc/resolv.conf -にプライマリネームサーバとして書いたホストと同じホストであるべきです. - -メールルーティング情報をもつ DNS レコードは, メールエクスチェンジャエントリ -(MX エントリ) です. MX エントリが存在しない場合には, -アドレスレコードにしたがって, 直接宛先ホストに配送されます. - -freefall.freebsd.org の現時点での MX エントリは, 次のようになっています. - - freefall MX 30 mail.crl.net - freefall MX 40 agora.rdrop.com - freefall HINFO Pentium FreeBSD - freefall MX 10 freefall.FreeBSD.org - freefall MX 20 who.cdrom.com - freefall A 204.216.27.xx - freefall CNAME www.FreeBSD.org - - -freefall は多くの MX エントリを持っています. -もっとも MX の値が小さいホストが, 最終的にメールを受け取ります. -もし freefall が他の処理で忙しかったり, ダウンしているような場合には, -他のホストが, 一時的にメールをキューにいれます. - -使い勝手をよくするためには, 代替の MX サイトは, それぞれ -別の経路でインターネットへ接続しているとよいでしょう. -インターネットプロバイダまたは他の関連サイトが, このサービスを -提供することができます. - -dig, nslookup, host コマンド -を使うと, とても便利です. - - あなたのドメイン (ネットワーク) に対するメール設定 -

-ネットワークメールホストをセットアップするためには, すべての -ワークステーション宛のメールを直接受ける必要があります. -言いかえれば, *.smallminingco.com 宛のすべてのメールを -ハイジャックし, そのメールをあなたのメールホストである個々のマシンにに配送 -します. - -それらのワークステーション上のネットワークユーザは, たいていメールを -POP や telnet 等で受け取ります. - -「同じユーザ名」のユーザアカウントが, 両方のマシンに存在しなければな -りません. 必要ならば, アカウントを作成するために /nonexistant -に設定すると, ユーザはログインできなくなります. - -使用する予定のメールホストは, 各ワークステーションごとにメール交換が -できるように設定されていなければなりません. これは, DNS (すなわち -BIND や named) の設定が必要です. 詳細は, ネットワークの本を参照してください. - -基本的には, 以下の行を DNS サーバに追加する必要があります. - -pc24.smallminingco.com A xxx.xxx.xxx.xxx ; Workstation ip - MX 10 smtp.smallminingco.com ; Your mailhost - - -自前で DNS サーバを実行しているのでなければ, この作業は, 自分では -おこなえません. 自分で DNS サーバを実行したくない場合は, -インターネットプロバイダ等に依頼して, 作業をおこなってもらってください. - -この作業により, このワークステーション宛のメールは, -MX (メールエクスチェンジャ) ホストに送られるようになります. -A レコードがどのマシンを指しているかどいうことには関係なく, -メールは MX ホストに送られます. -

-この機能は, 仮想電子メールホスト (Virtual E-Mail Hosting) -を実装するために使用されています. -

例 -

-foo.bar というドメインを持つ顧客がいて, -foo.bar 宛のメールをすべて, わたしのマシン -smtp.amalliap.com に送りたいと思っています. -このような場合, あなたの DNS サーバ上で, 以下のようなエントリを作成 -しなければなりません: - - -foo.bar MX 10 smtp.smalliap.com ; your mailhost - - -そのドメインに対して電子メールを送りたいだけなら, -A レコードは必要ありません. -つまり, foo.bar に対するアドレスレコードが存在しない限り, -'ping foo.bar' コマンドが動作することを期待しては -いけません - -メールボックスへの最終的な配送が行われるメールを実際に受けている -メールホスト上では, sendmail はメールを受け付けているホストを -知っている必要があります. - -

そのためには, (FEATURE(use_cw_file) を使用している場合) -/etc/sendmail.cw ファイルに pc24.smallminingco.com を追加するか, -/etc/sendmail.cf ファイルに, -"Cw myhost.smalliap.com" の行を追加してください. -

-もしあなたが本気で の節に - UUCP のセットアップ -

よくある質問 (FAQ) より抜粋. -

-

- FreeBSD に付属する sendmail のコンフィグレーションは, - 直接インターネット接続しているサイトに合うように作られてい - ます. メールを UUCP 経由で交換するようにしたい場合には, - 別の sendmail コンフィグレーションファイルをインストールし - なければなりません. -

- /etc/sendmail.cf を手動で作成することは, 純正主義者 - がおこなうことだと考えられています. sendmail のバージョン 8 - では, m4 プリプロセッサを使用して, - コンフィグレーションファイルを生成する方法が取られています. - この場合, 実際に手動で作成したコンフィグレーションは, - 実際のコンフィグレーションより簡潔です. - 以下の場所にあるコンフィグレーションファイルを使用してください. - - /usr/src/usr.sbin/sendmail/cf - - - システム上にすべてのソースをインストールして - いない場合, sendmail の設定ツールは不完全なままであり, - それは個別のソース配布物の中にあります. - CD-ROM をマウントしてあれば, 以下のようにします. - - - cd /usr/src - tar -xvzf /cdrom/dists/src/ssmailcf.aa - - - 驚かないでください. これはたった数百キロバイトのサイズのファ - イルです. - cf ディレクトリ上にある README ファイル - には, m4 コンフィグレーションの基本的な紹介が書かれてい - ます. - -

- UUCP での配送には, mailertable 機能を使用すること - をおすすめします. これは sendamil が配送経路を決定するのに - 使用するデータベースファイルです. - -

- まずはじめに, .mc ファイルを作成します. - /usr/src/usr.sbin/snemdail/cf/cf ディレクトリに - これらのファイルを置きます. ここには既にいくつかの例が - 置いてあるので, 見てください. - foo.mc という名前で作成したと仮定すると, - それを有効な sendmail.cf に変換するためには, - まず次のようにします: - - - cd /usr/src/usr.sbin/sendmail/cf/cf - make foo.cf - - - 続いて、もし /usr/obj 以下のディレクトリが存在しなければ: - - - cp foo.cf /etc/sendmail.cf - - - とし、存在すれば次のようにします: - - - cp /usr/obj/`pwd`/foo.cf /etc/sendmail.cf - - - 典型的な .mc ファイルは次のような内容です: - - - include(`../m4/cf.m4') - VERSIONID(`Your version number') - OSTYPE(bsd4.4) - - FEATURE(nodns) - FEATURE(nocanonify) - FEATURE(mailertable) - - define(`UUCP_RELAY', your.uucp.relay) - define(`UUCP_MAX_SIZE', 200000) - - MAILER(local) - MAILER(smtp) - MAILER(uucp) - - Cw your.alias.host.name - Cw youruucpnodename.UUCP - - - nodnsnocanonify は, メール配送をおこなう - 際に, DNS を参照しないようにするための設定です. - UUCP_RELAY は, 必要な設定ですが, ここでは理由を - 説明できません. その理由について, ここでは質問しないでください. - .UUCP 仮想ドメインアドレスを扱うことができるインターネット - ホスト名を書いてください. - おそらく, 使用する ISP のメール中継ホスト名をそこに記述する - ことになります. - -

- この設定が終了したら, /etc/mailertable と呼ばれる - ファイルが必要になります. このファイルの典型的な例を示します: - - - # - # makemap hash /etc/mailertable.db < /etc/mailertable - # - horus.interface-business.de uucp-dom:horus - .interface-business.de uucp-dom:if-bus - interface-business.de uucp-dom:if-bus - .heep.sax.de smtp8:%1 - horus.UUCP uucp-dom:horus - if-bus.UUCP uucp-dom:if-bus - . uucp-dom:sax - - - 見て分かるように, これは実際に使用されているファイルの一部 - です. はじめの三行は, ドメインアドレスが指定されたメールが - デフォルトルートに送信せずに, 配送パスを「短縮」して, 隣接 - UUCP サイトにメールを送るための設定です. - 次の行は, メールを SMTP を使用して配送されているローカル - イーサネットドメイン上のマシンに送信するための設定です. - 最後に, UUCP 接続されているドメインが, .UUCP という仮想ド - メイン表記されている場合です. これは, - 「uucp-neighbor!recipient」をデフォルト規則で書換えるため - です. 最終行は必ず シングルドット (.) を指定します. - 上記のどのパターンにも当てはまらない送信先に対して, あなた - のメールの世界中へのゲートウェイとして動作してくれる隣接 - UUCP サイトに, UUCP を使って配送します. - uucp-dom: というキーワードの後に書かれたすべての - ノード名は, 隣接 UUCP サイトでなければなりません. - そのサイトと UUCP 接続を行っているかどうかは, コマンド - uuname を使用して確かめることができます. - -

- 実際に使用するには, このファイルを DBM データベースファイ - ルに変換する必要があることを忘れないでください. - これを実行するためのコマンド - 行は, mailertable の先頭にコメントとして記述されています. - 通常, このコマンドは, mailertable を変更するたびに実行しな - ければなりません. - -

- 最終ヒント: もしいくつかの特定のメール経路が正しく動作する - かどうかが心配ならば, sendmail の -bt オプション - を覚えておいてください. このオプションは sendmail - を アドレステストモード で起動します. - メールの経路をテストするには, 0 のあとにメール経路をテスト - したいアドレスを入力してください. 最後の行にあなたが使用する - インターネットメールエージェント (メール中継プログラム) と, - このエージェントに呼び出される宛先のホスト名と, - (翻訳可能な場合) アドレスがが表示されます. このモードを - 終了するには, Control-D を入力します. - - - j@uriah 191% sendmail -bt - ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) - Enter

- > 0 foo@interface-business.de - rewrite: ruleset 0 input: foo @ interface-business . de - ... - rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ - < @ interface-business . de > - > ^D - j@uriah 192% - - - -よくある質問 (FAQ) - -

このセクションは, FAQ から移動してきました. - - - - どうして 同じサイトのホストに対して完全な形のドメイン名 (FQDN) を使わなければいけないの? -

- おそらく, そのホストは実際には違うドメインに属しているのでしょう. - 例えば, もしあなたが foo.bar.edu ドメインにいて, - bar.edu ドメインの中の「mumble」というホストに接続したいと - します. その場合あなたは, 「mumble」ではなく - 「mumble.bar.edu」という完全な形のドメイン名 (FQDN) によっ - てそのホストを参照しなければなりません. -

- 伝統的に, これは BSD BIND リゾルバでは許されていました. - しかしながら, FreeBSD に付属する現在の BIND の - バージョンでは, 自分が属しているドメイン以外では, - 完全な形でないドメイン名に対するデフォルトの省略形は - 使用できません. - ですから, 完全でないホスト名 mumble は, - mumble.foo.bar.edu として解決されるか, - ルートドメインに検索しにいくでしょう. -

- これは, mumble.bar.edu, mumble.edu - というように検索し続けるような過去の動作とは異なります. - なぜこれが悪い慣例, さらにはセキュリティーホールと考えられ - るようになった理由については, RFC1535 を参照してください. -

- この問題を回避するには, -

-search foo.bar.edu bar.edu -

- という行を - -

-domain foo.bar.edu - - に置き換えます. - -

- これを自分のマシン上の /etc/resolv.conf ファイルに - 記述してください. しかしながら, 検索順序は, RFC 1535 に - 書かれている, 「ローカル管理と公共の管理の間の境界線」 - を越えないことを, あらかじめ確認してください. - - - - Sendmail が ``mail loops back to myself'' というエラーを出します -

- これについては, sendmail FAQ の中で, 次のように答えられて - います:- - - * 次のような 「Local configuration error」というメッセージ - が出ます: - - 553 relay.domain.net config error: mail loops back to myself - 554 ... Local configuration error - - この問題をどうやって解決すればよいでしょうか? - - MX レコードを使って, あるドメイン(例: domain.net)宛にメールを - 特定のホスト (この場合, relay.domain.net) に転送しようと設定したと - していますが, 中継ホストは自身が domain.net であるとは認識 - していません. - (FEATURE(use_cs_file) を使用している場合は) - /etc/sendmail.cw に, domain.net を追加してください. - または, 「Cw domain.net」を /etc/sendmail.cf に追加してください. - -

- sendmail FAQ は, /usr/src/usr.sbin/sendmail に - あります. 「ちょっと凝った」メール設定 - をしたい場合は, FAQ を読むことをおすすめします. - -ダイアルアップ PPP ホストで電子メールを使うにはどうしたらいいの? -

-LAN 上にある FreeBSD マシンを, インターネットに接続したいと -します. FreeBSD マシンは, その LAN でのメールゲートウェイになります. -FreeBSD マシンは専用線接続ではありません (訳注:ダイアルアップ接続など). - -これには, 少なくとも二つの方法があります. - -一つは UUCP を使うことです. - -このとき鍵になるのは, あなたのドメインに対するセカンダリ MX サービス -を提供してくれるインターネットサイトをみつけることです. - -例: - -bigco.com. MX 10 bigco.com. - MX 20 smalliap.com. - - -最終的なメール受信先としては, 一つのホストだけが定義されるべきです -(bigco.com 上の /etc/sendmail.cf ファイルに, 「Cw bigco.com」 -を追加します). - -送信側の sendmail が, メールを配送しようとしている時, モデムの接続を -介してあなたのところに接続しようとします. -大抵の場合, あなたのマシンがオンラインでないために, 接続はタイムアウト -してしまうでしょう. sendmail は自動的に, メールをセカンダリの MX サイト -に (あなたのインターネットプロバイダ) に配送します. -セカンダリ MX サイトは, (/etc/rc.conf ファイル -に sendmail_flag = "-bd -q15m"と書かれている場合) 15 分ごとに, -プライマリ MX サイトにメールを配送しようと, あなたのホストに接続しに -いきます. - -ログインスクリプトとして, このようなものを使うとよいでしょう. - -#!/bin/sh -# Put me in /usr/local/bin/pppbigco -( sleep 60 ; /usr/sbin/sendmail -q ) & -/usr/sbin/ppp -direct pppbigco - -ユーザごとにログインスクリプトを作りたい場合には, 上記 -のスクリプトの代わりに, sendmail -qRbigco.com を使用する -こともできます. このようにすると, キューの中の bigco.com に対する -すべてのメールは, すぐに強制的に処理されます. - -さらに, 次のような改良もできます. - -以下は, freebsd-isp メイリングリストから抜粋してきたメッセージです. - -> 私たちはお客様に対して, セカンダリ MX を提供しています. お客様は一日 -> に何回か私たちのサービスに接続し, メールを彼らのプライマリ MX に -> 受け取ります (彼らのドメインに対するメールが到着した時には, 私たちは -> 彼らのサイトを呼び出しません). -> 私たちの sendmail は, 30 分ごとにメールキューに溜っているメールを -> 配送します. ちょうどその時に, すべてのメールがプライマリ MX に送られ -> たかどうかを確かめるためには, 彼らは 30 分は オンラインでいなけれ -> ばなりません. -> -> すべてのメールを今すぐ送るために sendmail を初期化するコマンドはあ -> るでしょうか? もちろん私たちのマシン上には, ユーザはルート (root) 権限 -> を持っていません. - -sendmail.cf の 「privacy flags」 セクションに, -「Opgoaway,restrictqrun」の定義があります. - -root 以外のユーザがキューを処理できるようにするには, -restrictqrun を削除してください. また, MX を再調整が必要かもしれません. -あなたがたは, 顧客のサイトに対する一番優先度の高い MX なので, -次のように定義します: - -# If we are the best MX for a host, try directly instead of generating -# local config error. -OwTrue - -このようにすると, リモートサイトからのメールが, 顧客のマシンと接続し -ようとせず, 直接あなたがたのホストマシンに配送されるようになります. -ホストマシンに配送されたメールは, 続いて顧客のマシンに送られます. -これはホスト名にのみ有効なので, 顧客のメールマシンに, -「host.customer.com」とは別に, 「customer.com」も定義する必要があり -ます. DNS 上で, 「customer.com」に対する A レコードを定義してください. - - - diff --git a/ja/handbook/makeworld.sgml b/ja/handbook/makeworld.sgml deleted file mode 100644 index e897a86aae..0000000000 --- a/ja/handbook/makeworld.sgml +++ /dev/null @@ -1,27 +0,0 @@ - - - - -make world でシステムを再構築する - -

Contributed by &a.nik;. -

訳: &a.koga; .16 March 1998. - - - -

FreeBSD のどれか特定のバージョン (stable, current - など) について、ローカルのソースツリーを同期させたら、 - そのソースツリーを使ってシステムを再構築しなければなりません。

- -

その方法については、 が今のところ一番よいチュートリアル資料です。

- -

このチュートリアルの次のバージョンは、ハンドブックに統合される予定です。

diff --git a/ja/handbook/memoryuse.sgml b/ja/handbook/memoryuse.sgml deleted file mode 100644 index ca9752e0b6..0000000000 --- a/ja/handbook/memoryuse.sgml +++ /dev/null @@ -1,61 +0,0 @@ - - - - -PC におけるメモリの利用 - -

原作: &a.joerg;. - 16 Apr 1995. -

訳: &a.tomo;. - 29 Oct 1996. - -FreeBSDがi386プラットフォーム上でどのようにメモリを使うかに -ついての説明です. - -ブート部分は0:0x7c00にロードされ, すぐに自分自身を -0x7c0:0に移します. (これは手品ではなく, 単なる%cs -セレクタのための調節であり, ljmpにより行われます. ) - -それから最初の15セクタを0x10000(biosbootのMakefileのなかの -BOOTSEG部分)にロードし, 作業領域のスタックを0x1fff0以下に -セットします. このあと, boot2 に飛びます. つまり, boot1 自身と -(ダミーの) DOS パーティションテーブルを飛び越えて, %csセレクタを -調節します---この時点ではまだ16ビットモードです. - -boot2はブートファイルを要求し, a.outヘッダを調べます. -0x00ffffffによってファイルエントリポイントを -(通常は0xf0100000に)マスクし, ロードします. -このため, 通常のロードポイントは1MB(0x00100000)になります. -ロードしている間, リアルモードでBIOSを使うため, ブートコードは, -リアルモードとプロテクトモードの間を行ったり来たりします -(訳注: これは, BIOSがリアルモード用に書かれていて, -ロードすべき領域がリアルモードではアクセスできない1MBより上位の -アドレスであることから, ブートコードがリアルモードと -プロテクトモードを切り替えながら動作するためです). - -ブートコード自身はプロテクトモードで%cs%ds/%es用に -セグメントセレクタ0x180x20を使い, -リアルモードに戻るのに0x28を使います. -最終的にカーネルはアドレス空間全体をカバーできるようなダミーの -ディスクリプタを参照して%cs 0x08と -%ds/%es/%ss 0x10でスタートします. - -カーネルはそのロードポイントで起動されます. -別の(高位)アドレスにリンクされるので, -ページテーブルやページディレクトリなどが適切に設定され, -ページングが有効になり, カーネルがリンクされたアドレスで -動作するようになるまでは, カーネルはロードアドレスからの -相対アドレス (PIC: position independent code) を用いて -実行されなければなりません. - -寄贈: &a.dg;. - 16 Apr 1995. - -カーネルの BSS セグメントの直後の物理ページ (実メモリ) に -proc0 (訳注: プロセス番号 0, swapper) のページディレクトリや -ページテーブル, Uページが配置されます. -仮想記憶機構が初期化された少しあと, -0x1000-0x9ffffの実メモリとカーネル -(text + data + bss + 上記の proc0 に関わるもの + その他) -の後ろの実メモリは, 通常の仮想記憶ページの形で利用可能となり, -グローバルな空きページリストに追加されます. diff --git a/ja/handbook/mirrors.sgml b/ja/handbook/mirrors.sgml deleted file mode 100644 index bcf4343ada..0000000000 --- a/ja/handbook/mirrors.sgml +++ /dev/null @@ -1,953 +0,0 @@ - - - - - - -FreeBSD の入手方法 - -CD-ROM 出版社 - -

FreeBSD は Walnut Creek CDROM から出されている CD-ROM から入手できます: - - Walnut Creek CDROM - 4041 Pike Lane, Suite F - Concord CA 94520 USA - Phone: +1 925 674-0783 - Fax: +1 925 674-0821 - Email: - WWW: - - -FTP サイト - -

FreeBSD の公式な情報は anonymous FTP によって以下の場所から -入手できます: - -. - - -

は, -FreeBSD ハンドブックの'ミラーサイト一覧'よりも正確です.というのは -その情報を DNS から取得するので, 静的に記述されたリストよりも信頼性が -高いのです. - -

さらに, FreeBSD は以下のミラーサイトから anonymous FTP によって - 入手できます. もし FreeBSD を anonymous FTP によって手にいれる場合は, - 近くのサイトを利用するようにしてください. - -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -. - - - - -何か問題がある場合は,このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - 連絡先: . - - - - - -何か問題がある場合は,このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - - - - - - - - - 連絡先: . - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は,このドメインの - -に連絡してください. - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - -何か問題がある場合には, このドメインの - -に連絡してください. - - - - - - - - - - - -何か問題がある場合には, このドメインの - -に連絡してください. - - - - - - - - - - - -何か問題がある場合には, このドメインの - -に連絡してください. - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - 連絡先: . - - - - - - - - - - 連絡先: . - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - -何か問題がある場合は, このドメインの - -に連絡してください. - - - - - - - - - - - - - - - - - - - - -FreeBSD (2.0C またはそれ以降) の輸出規制コード (eBones と secure) の -最新のバージョンは以下の場所から入手できます. -もしあなたがアメリカやカナダ以外にいるのであれば, -secure (DES) と eBones (Kerberos) を -以下の外国向けの配布サイトから手にいれてください: - - - -南アフリカ - -このドメインの - -. - - - - - - - - - - - -ブラジル - -このドメインの - -. - - - - - - - - -フィンランド - - - - - - 連絡先: . - - - - - -CTM サイト - -

/FreeBSD は以下のミラーサイトから anonymous FTP - によって入手できます. もし CTM を anonymous FTP によって手にいれる場合は, - 近くのサイトを利用するようにしてください. - -何か問題がある場合は, &a.phk;に連絡してください. - - -カリフォルニア, サンフランシスコ近辺, 公式なソース - - - - - - -ドイツ, トリエル - - - - - - -南アフリカ, ctm, sup, CVSupなどの古い差分ファイルのバックアップサーバ - - - - - - -台湾/中華民国, チャーイー(嘉義) - - - - - - - - - - - - -近くにミラーサイトがない場合やミラーが不完全な場合は, - の - を試してください. -FTP search はノルウェーの Trondheim にある, フリーの素晴らしい アーカイブサーバです. - -CVSup サイト - -

FreeBSD の サーバは以下のサイトで稼働しています: - - - -アルゼンチン - -cvsup.ar.FreeBSD.ORG -() - - -オーストラリア - -cvsup.au.FreeBSD.ORG -() - - -ブラジル - -cvsup.br.FreeBSD.ORG -() - - -カナダ - -cvsup.ca.FreeBSD.ORG -() - - -デンマーク - -cvsup.dk.FreeBSD.ORG -() - - -エストニア - -cvsup.ee.FreeBSD.ORG -() - - -フィンランド - -cvsup.fi.FreeBSD.ORG -() - - -ドイツ - -cvsup.de.FreeBSD.ORG -() -cvsup2.de.FreeBSD.ORG -() -cvsup3.de.FreeBSD.ORG -() - - -アイスランド - -cvsup.is.FreeBSD.ORG -() - - -日本 - -cvsup.jp.FreeBSD.ORG -() -cvsup2.jp.FreeBSD.ORG -() -cvsup3.jp.FreeBSD.ORG -() -cvsup4.jp.FreeBSD.ORG -() -cvsup5.jp.FreeBSD.ORG -() - - -オランダ - -cvsup.nl.FreeBSD.ORG -() - - -ノルウェー - -cvsup.no.FreeBSD.ORG -() - - -ポーランド - -cvsup.pl.FreeBSD.ORG -() - - -ロシア - -cvsup.ru.FreeBSD.ORG -() -cvsup2.ru.FreeBSD.ORG -() - - -スロヴァキア共和国 - -cvsup.sk.FreeBSD.ORG -() -cvsup2.sk.FreeBSD.ORG -() - - -南アフリカ - -cvsup.za.FreeBSD.ORG -() -cvsup2.za.FreeBSD.ORG -() - - -スウェーデン - -cvsup.se.FreeBSD.ORG -() - - -台湾 - -cvsup.tw.FreeBSD.ORG -() - - -ウクライナ - -cvsup2.ua.FreeBSD.ORG -() - - -イギリス - -cvsup.uk.FreeBSD.ORG -() - - -アメリカ - -cvsup1.FreeBSD.ORG -(), -ワシントン州 -cvsup2.FreeBSD.ORG -(), -カリフォルニア -cvsup3.FreeBSD.ORG -(), -マサチューセッツ -cvsup4.FreeBSD.ORG -(), -バージニア -cvsup5.FreeBSD.ORG -(), -ジョージア - - - - -FreeBSD の輸出規制されたコード (eBones と secure) は CVSup 経由で以下 -の国際的なリポジトリから入手できます. アメリカ合衆国やカナダ以外に居る -場合は, このサイトを使って輸出規制されたコードを入手してください. - - - -南アフリカ - -cvsup.internat.FreeBSD.ORG -() - - - - -

以下の CVSup サイトは, ユーザのことを特に -考慮して運用されています. 他の CVSup のミラーサイトとは異なり, これら -のサイトでは CTM を使って最新の状態を保っています. つまり, もし以下の -サイトから cvs-allrelease=cvs で CVSup すれば, -CTM の cvs-cur のデルタを使って更新するのに適した CVS のリポ -ジトリ (必須となる .ctm_status ファイルも含まれています.) を -入手することができます. これにより, これまで CVSup を使って -cvs-all 全部を入手していたユーザも CTM のベースデルタを使って -最初からリポジトリを構築し直すことなく CVSup から CTM へと移行すること -が可能です. - -

この機能は, リリースタグを cvs として cvs-all ディ -ストリビューションを入手する時のみ利用できるものですので注意してくださ -い. 他のディストリビューションやリリースタグを指定した場合でも指定した -ファイルを入手することは可能ですが, これらのファイルを CTM で更新する -ことはできません. - -

また, CTM の現在のバージョンではタイムスタンプを保存しないため, 以 -下のサイトのファイルのタイムスタンプは他のミラーとは異なる物となってい -ますので注意が必要です. 利用するサイトを以下のサイトと他のサイトの間で -変更することはお勧めできません. ファイルの転送は問題なくできますが, 少々 -非能率的です. - - - -ドイツ - -ctm.FreeBSD.ORG -() - - - - - -AFS サイト - -

FreeBSD の AFS サーバは以下のサイトで稼働しています: - - - -スウェーデン - -ファイルは以下の場所にあります: /afs/stacken.kth.se/ftp/pub/FreeBSD - -stacken.kth.se #Stacken Computer Club, KTH, Sweden -130.237.234.3 #milko.stacken.kth.se -130.237.234.43 #hot.stacken.kth.se -130.237.234.44 #dog.stacken.kth.se - -() - - diff --git a/ja/handbook/nfs.sgml b/ja/handbook/nfs.sgml deleted file mode 100644 index e55cc04d46..0000000000 --- a/ja/handbook/nfs.sgml +++ /dev/null @@ -1,88 +0,0 @@ - - - - -NFS - -

原作: &a.jlind;. -

訳: &a.tomo;.6 September 1996. - -ISA用のイーサネットアダプタの中には性能が悪いため, ネットワーク, -特に NFS で深刻な問題がおきるものがあります. これは FreeBSD に限ったことでは -ありませんが, FreeBSD でも起こり得ます. - -この問題は, (FreeBSDを使用した)PCがシリコン・グラフィックス社やサン・マイクロ -システムズ社などの高性能なWSにネットワーク接続されている場合に頻繁に -起こります. NFSマウントはうまく行きます. また, いくつかの操作もうまく -働きますが, 他のシステム(WS)に対する要求や応答は続いていても, 突然サーバ -がクライアントの要求に対して反応しなくなります. -これは, クライアントがFreeBSDか上記のWSであるとき, にクライアント側に起きる -現象です. 多くのシステムでは, いったんこの問題が起きたら解決できないので, -行儀よくシャットダウンするしかありません. -唯一の解決策は, この状況に陥る前にクライアントをリセットすることです. -なぜなら, 一旦この状況に陥ると NFS を解除することさえできないからです. - -"正しい"解決法は, より高性能のイーサネットアダプタをFreeBSDシステムに -インストールすることですが, 満足な操作ができるような簡単な方法があります. -もし, FreeBSDシステムがサーバになるのなら, クライアントからのマウント時に -"-w=1024"オプションをつけて下さい. もしFreeBSDシステムがクライアントになる -のなら, NFSファイルシステムを"-r=1024"オプションつきでマウントして下さい. -これらのオプションは自動的にマウントをおこなう場合には -クライアントのfstabエントリの4番目のフィールドに指定してもよいですし, -手動マウントの場合はmountコマンドの"-o"パラメータで指定してもよいでしょう. - -NFSサーバとクライアントが別々のネットワーク上にあるような場合, -これと間違えやすい他の問題が起きることに注意して下さい. そのような場合は, -ルータが必要なUDP情報をきちんとルーティングしているかを確かめて下さい. -そうでなければ, たとえあなたが何をしようと解決できないでしょう. - -次の例では, "fastws"は高性能のWSのホスト -(インタフェース)名で, "freebox"は低性能のイーサネットアダプタを備えた -FreeBSDシステムのホスト(インタフェース)名です. - -また, "/sharedfs"はエクスポートされるNFSファイルシステムであり -("man exports"を見て下さい), "/project"はエクスポートされたファイル -システムのクライアント上のマウントポイントとなります. -全ての場合において, "hard"や"soft", "bg"といった追加オプションが -アプリケーションにより要求されるかもしれないことに注意して下さい. - -クライアント側FreeBSDシステム("freebox")の例は: -freeboxの/etc/fstabに次のように書いて下さい: -fastws:/sharedfs /project nfs rw,-r=1024 0 0 -freebox上で手動でmountコマンドを実行する場合は次のようにして下さい: -mount -t nfs -o -r=1024 fastws:/sharedfs /project - - -サーバ側FreeBSDシステムの例は: -fastwsの/etc/fstabに次のように書いて下さい: -freebox:/sharedfs /project nfs rw,-w=1024 0 0 -fastws上で手動でmountコマンドで実行する場合は次のようにして下さい: -mount -t nfs -o -w=1024 freebox:/sharedfs /project - -近いうちにどのような16ビットのイーサネットアダプタでも上記の読み出し, -書き込みサイズの制限なしの操作ができるようになるでしょう. - -失敗が発生したとき何が起きているか関心のある人に, なぜ回復不可能なのか -も含めて説明します. -NFSは通常 (より小さいサイズへ分割されるかもしれませんが) 8Kの"ブロック" -サイズで働きます. イーサネットのパケットサイズは最大1500バイト程度なので, -上位階層のコードにとっては1つのユニットのままなのですが, NFS"ブロック"は -複数のイーサネットパケットに分割されます. そして受信され, 組み立て直されてから -肯定応答されなければなりません. 高性能のWSは次々に -NFSユニットを構成するパケットを, 基準の範囲内で間隔を詰めて -次々に送り出すことができます. 小さく, 容量の低いカードでは, 同じユニットの -前のパケットがホストに転送される前に, 後のパケットがそれを -「踏みつぶし」てしまいます. このため全体としてのユニットは再構成もされないし, -肯定応答もされません. その結果, WSはタイムアウトして再送を試みますが, -8Kのユニット全体を再送しようとするので, このプロセスは -際限無く繰り返されてしまいます. - -ユニットサイズをイーサネットのパケットサイズの制限以下に抑えることにより, -受信された完全なイーサネットパケットは個々に肯定応答を受けられることが -保証されるので, デッドロック状態を避けることができるようになります. - -高性能のカードを使っている場合でも, 高性能なWSが力任せに次々と -PCシステムにデータを送ったときには「踏みつぶし」が起きるかもしれません. -そのような「踏みつぶし」はNFS"ユニット"では保証されていません. -「踏みつぶし」が起こったとき, 影響を受けたユニットは再送されます. -そして受信され, 組み立てられ, 肯定応答される公平な機会が与えられるでしょう. diff --git a/ja/handbook/nutshell.sgml b/ja/handbook/nutshell.sgml deleted file mode 100644 index 4e08bf63e7..0000000000 --- a/ja/handbook/nutshell.sgml +++ /dev/null @@ -1,153 +0,0 @@ - - - - -FreeBSD とは - -

原作: 不明. - -

訳: &a.tomo;. - -

FreeBSDはIntel社の (SXやDXも含めた) 386や486, Pentiumプロセッサ - といったCPUアーキテクチャに基づくパーソナルコンピュータ用としては - 現在求めうる最高水準のオペレーティングシステムです. - AMD社やCyrix社のIntel互換CPUもサポートされています. - FreeBSDは, 以前は高価なコンピュータでしか利用できなかった多くの - 高度な機能を提供します. FreeBSDには次のような機能があります: - - - アプリケーションとユーザとの間で円滑かつ公平にコンピュータを - 共有することを保証する, 優先度を動的に調節する機能を備えた - プリエンプティブマルチタスキング. - 多くの人々が1つのFreeBSDシステムをさまざまな目的で同時に - 使うことを可能にするマルチユーザアクセス. また, - プリンタやテープドライブのようなシステムの周辺機器も - すべてのユーザ間で適切に共有されます. - SLIPやPPP, NFS, NISのサポートを含んだ完全な - TCP/IPネットワーキング. これによって, - FreeBSDマシンが商用サーバと同じように相互に運用でき, - NFS (リモートファイルアクセス) や電子メールサービスのような極めて - 重要な機能を提供します. また, WWWやftp, ルーティング, - ファイアウォール (セキュリティ) サービスを用いてインターネットと - 接続できます. - アプリケーション (あるいはユーザ) がお互いに干渉できない - ようにするメモリ保護機能. - アプリケーションがクラッシュしても, どのような場合でも - 他のアプリケーションには影響を与えません. - FreeBSDは32ビットのオペレーティングシステムであり, - 最初からそのようにこつこつと設計されました. - 業界標準であるX Windowシステム (X11R6) は, - 普通のVGAカードやモニタでグラフィカルユーザ - インタフェース (GUI) を提供し, - すべてのソースコードも一緒に提供されます. - - SCOやBSDI, NetBSD, Linux, 386BSD用に作られた多くの - プログラムにおけるバイナリ互換性. - 何百ものすぐに実行可能なアプリケーションが - FreeBSDのportspackagesコレクション - で利用可能です. ここに用意されているものは - ネットを探し回る必要がありません - インターネット上で入手可能な, 移植が容易な - 何千ものアプリケーションを追加できます. - FreeBSDは最も評判の - よい商用のUnixシステムとソースコードレベルで互換性があります. - このため, ほとんどのアプリケーションは, もしあったとしてもほんの - 少しの変更でコンパイルすることができます. - デマンドページング仮想メモリとそれに`付随の - VM/buffer キャッシュ'の設計は, 多くのメモリを要求する - アプリケーションに対して効率よくメモリを与えるようにする一方で, - 他のユーザに対しても対話的な応答を維持します. - 共有ライブラリ (MS-WindowsのDLLと同等のUnixの - 機能) によって, ディスクスペースとメモリを効果的に使用する - ことができます. - 完全なCC++, Fortranの - 開発ツール. 進んだ研究や開発のための多くの他の言語も - portsやpackagesコレクションで提供されています. - システム全体のソースコードが提供されているので, - 要求に合わせて環境を最大限に適合させることができます. - 真のオープンシステムが利用できるのですから, 所有権のある解決方法に - 締めつけられ, ベンダのなすがままになる必要はありません. - 膨大な量のオンラインドキュメント. - もう書ききれません! - - FreeBSDはカリフォルニア大学バークレイ校のComputer Systems - Research Group (CSRG) による4.4BSD-Liteリリースを基にしており, - BSDシステムの開発の優れた伝統を守り続けています. - CSRGによる素晴らしい活動に加えて, - FreeBSDプロジェクトは何千時間もの時間を注ぎ込んで, - 実際の使用の場において最大の性能と信頼性を - 発揮するためにシステムのチューニングをおこなっています. - 多くの大企業がPCオペレーティングシステムの分野で - 実現しようと奮闘しているそのような機能や性能, 信頼性を - FreeBSDは今すぐ提供できます! - - あなたの思いつく限りのアプリケーションは, - 何でもFreeBSDで 実行できます. ソフトウェア開発から - ファクトリオートメーション, 在庫制御から遠く離れた人工衛星の - アンテナの方向調整まで; 商用UNIX製品でできることは, - FreeBSDでも十分にできるのです! - また, FreeBSDは世界中の研究センターや大学によって開発される - 文字通り何千もの高品質で, たいていはほとんど無料で利用できる - アプリケーションによる恩恵を得ることができます. - 商用のアプリケーションも提供されており, 日々増え続けています. - - FreeBSDのソースコードは広く提供されているので, - システムも特別なアプリケーションやプロジェクトに合わせて, - いくらでもカスタマイズすることができます. これは - 有名な商業ベンダから出ているほとんどのオペレーティング - システムでは不可能なことです. 以下に現在FreeBSDを - 使っている人々のアプリケーションの例をいくつか上げます: - - - インターネットサービス: FreeBSDに組み込まれている - 頑強なTCP/IPネットワーキング機能は次のようなさまざまなインターネット - サービスの理想的なプラットフォームになります: - - FTP サーバ - World Wide Web サーバ - Gopher サーバ - 電子メールサーバ - USENET ニュース - 電子掲示板システム - さらにいろいろ... - - まずは高価ではない386クラスのPCで始めておいて, - 仕事の成長に合わせてアップグレードできます. - 教育: あなたは計算機科学または工学の学生ですか? - オペレーティングシステムやコンピュータアーキテクチャ, - ネットワーキングを学習するなら, FreeBSDを手に - 経験するのが一番よい方法です. 自由に利用できるCADや数学, - グラフィックデザインのパッケージもいくつもあり, - コンピュータに関心を持った人が他の人の成果を - 手に入れて利用するのにとても役に立ちます. - 研究:システム全体のソースコードが利用できるため, - FreeBSDはオペレーティングシステムの研究だけでなく, - 計算機科学の他の部門においても優れたプラットフォームです. - 自由に利用できるFreeBSDの特長は, オープンフォーラムで - 議論される特別なライセンスの同意や制限について - 心配することなく, 離れたグループでもアイディアや開発の共有に - よる共同研究を可能にします. - - ネットワーキング:新しいルータが必要? - ネームサーバ (DNS) は? 内部のネットワークを人々から守る - ファイアウォールは? - FreeBSDはすみに眠っている使われていない386や486のPCを簡単に - 洗練されたパケットフィルタリング機能を持つ高級なルータに - 変えることができます. - X Windowワークステーション: - 自由に利用できるXFree86サーバやX Inside社から提供される - 優れた商業サーバを使うことによって, 安価なX端末 - としてFreeBSDを使うこともできます. X端末とは違ってFreeBSDは - 多くのアプリケーションをローカルに走らせることもでき, - 中心のサーバの負荷を軽減することも可能です. - FreeBSDは"ディスクレス"でもブート可能であり, - 個々のワークステーションを安価で, 容易に管理することさえ - 可能にします. - ソフトウェア開発: 基本的なFreeBSDシステムには - 有名なGNUのC/C++コンパイラやデバッガ含んだ完全な開発ツールが - ついてきます. - - -FreeBSDはCDROMまたはanonymous ftpによってソース, バイナリとも -利用可能です. 詳しくは, -を見てください. diff --git a/ja/handbook/pgpkeys.sgml b/ja/handbook/pgpkeys.sgml deleted file mode 100644 index 5a19099fae..0000000000 --- a/ja/handbook/pgpkeys.sgml +++ /dev/null @@ -1,545 +0,0 @@ - - - - -PGP 公開鍵 - -

原作: 不明. - -

訳: &a.kiroh;. - -

署名を検証したり, コアチームメンバやオフィサに暗号メー -ルを送りたい場合のために, PGPの公開鍵を添付します. - - オフィサ - -FreeBSD Security Officer <security-officer@freebsd.org> -

- -FreeBSD Security Officer <security-officer@freebsd.org> -Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3i - -mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL -h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L -Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR -tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl -ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU -tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7 -PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql -3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz -QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV -nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A -3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD -/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb -5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS -9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B -sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P -BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT -0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx -ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD -ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO -v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1 -lw== -=ipyA ------END PGP PUBLIC KEY BLOCK----- - - - &a.imp

- - -Warner Losh <imp@village.org> - aka <imp@freebsd.org> -Fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9 ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8s+c5f5c2uHtlcH -V4mV2TlUaDSVBN4+/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1q+o -EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR -tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u -c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g -C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB -5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ -MzmhkfUVW/uOVC1dAQG3+AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs -BfrQ+nsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN -a+sFkapTLT1g84UFUO/+8qRB12v+hZr2WeXMYjHAFUT18mp3xwjW9DUV+2fW1Wag -YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr+4YYUs1ejDnZ2J3zn -icTZhl9uAfEQq++Xor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C -dE0C8g8BF+sRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a -k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y+ -RzUrblyF84tJyA7Rr1p+A7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU -rSy9z8KHlBEHh+Z6fdRMrjd9byPf+n3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO -3gTYx+Nlo6xqjR+J2NnBYU8p -=7fQV ------END PGP PUBLIC KEY BLOCK----- - - - コアチームメンバ - &a.asami

- - -Satoshi Asami <asami@cs.berkeley.edu> - aka <asami@FreeBSD.ORG> -Fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog -f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb -3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR -tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT -+EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy -5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw -zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ -AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+ -G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46 -+NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy -lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H -JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY -iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw -fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA -bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV -mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j -Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr -XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0 -IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg== -=39SC ------END PGP PUBLIC KEY BLOCK----- - - - &a.jmb

- - -Jonathan M. Bresler <jmb@FreeBSD.org> -f16 Fingerprint16 = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: PGPfreeware 5.0i for non-commercial use - -mQCNAzG2GToAAAEEANI6+4SJAAgBpl53XcfEr1M9wZyBqC0tzpie7Zm4vhv3hO8s -o5BizSbcJheQimQiZAY4OnlrCpPxijMFSaihshs/VMAz1qbisUYAMqwGEO/T4QIB -nWNo0Q/qOniLMxUrxS1RpeW5vbghErHBKUX9GVhxbiVfbwc4wAHbXdKX5jjdAAUR -tCVKb25hdGhhbiBNLiBCcmVzbGVyIDxqbWJARnJlZUJTRC5PUkc+iQCVAwUQNbtI -gAHbXdKX5jjdAQHamQP+OQr10QRknamIPmuHmFYJZ0jU9XPIvTTMuOiUYLcXlTdn -GyTUuzhbEywgtOldW2V5iA8platXThtqC68NsnN/xQfHA5xmFXVbayNKn8H5stDY -2s/4+CZ06mmJfqYmONF1RCbUk/M84rVT3Gn2tydsxFh4Pm32lf4WREZWRiLqmw+J -AJUDBRA0DfF99RVb+45ULV0BAcZ0BACCydiSUG1VR0a5DBcHdtin2iZMPsJUPRqJ -tWvP6VeI8OFpNWQ4LW6ETAvn35HxV2kCcQMyht1kMD+KEJz7r8Vb94TS7KtZnNvk -2D1XUx8Locj6xel5c/Lnzlnnp7Bp1XbJj2u/NzCaZQ0eYBdP/k7RLYBYHQQln5x7 -BOuiRJNVU4kAlQMFEDQLcShVLh4uc9KIpQEBJv4D/3mDrD0MM9EYOVuyXik3UGVI -8quYNA9ErVcLdt10NjYc16VI2HOnYVgPRag3Wt7W8wlXShpokfC/vCNt7f5JgRf8 -h2a1/MjQxtlD+4/Js8k7GLa53oLon6YQYk32IEKexoLPwIRO4L2BHWa3GzHJJSP2 -aTR/Ep90/pLdAOu/oJDUiQCVAwUQMqyL0LNaYutZnzI9AQF25QP9GFXhBrz2tiWz -2+0gWbpcGNnyZbfsVjF6ojGDdmsjJMyWCGw49XR/vPKYIJY9EYo4t49GIajRkISQ -NNiIz22fBAjT2uY9YlvnTJ9NJleMfHr4dybo7oEKYMWWijQzGjqf2m8wf9OaaofE -KwBX6nxcRbKsxm/BVLKczGYl3XtjkcuJAJUDBRA1ol5TZWCprDT5+dUBATzXA/9h -/ZUuhoRKTWViaistGJfWi26FB/Km5nDQBr/Erw3XksQCMwTLyEugg6dahQ1u9Y5E -5tKPxbB69eF+7JXVHE/z3zizR6VL3sdRx74TPacPsdhZRjChEQc0htLLYAPkJrFP -VAzAlSlm7qd+MXf8fJovQs6xPtZJXukQukPNlhqZ94kAPwMFEDSH/kF4tXKgazlt -bxECfk4AoO+VaFVfguUkWX10pPSSfvPyPKqiAJ4xn8RSIe1ttmnqkkDMhLh00mKj -lLQuSm9uYXRoYW4gTS4gQnJlc2xlciA8Sm9uYXRoYW4uQnJlc2xlckBVU2kubmV0 -PokAlQMFEDXbdSkB213Sl+Y43QEBV/4D/RLJNTrtAqJ1ATxXWv9g8Cr3/YF0GTmx -5dIrJOpBup7eSSmiM/BL9Is4YMsoVbXCI/8TqA67TMICvq35PZU4wboQB8DqBAr+ -gQ8578M7Ekw1OAF6JXY6AF2P8k7hMcVBcVOACELPT/NyPNByG5QRDoNmlsokJaWU -/2ls4QSBZZlb -=zbCw ------END PGP PUBLIC KEY BLOCK----- - - - &a.ache

- - -Andrey A. Chernov <ache@FreeBSD.org> - aka <ache@nagual.pp.ru> -Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs -Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD -m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT -tCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnU+iQCVAwUQM2Ez -u+JgpPLZnQjrAQEyugP8DPnS8ixJ5OeuYgPFQf5sy6l+LrB6hyaS+lgsUPahWjNY -cnaDmfda/q/BV5d4+y5rlQe/pjnYG7/yQuAR3jhlXz8XDrqlBOnW9AtYjDt5rMfJ -aGFTGXAPGZ6k6zQZE0/YurT8ia3qjvuZm3Fw4NJrHRx7ETHRvVJDvxA6Ggsvmr20 -JEFuZHJleSBBLiBDaGVybm92IDxhY2hlQEZyZWVCU0Qub3JnPokAlQMFEDR5uVbi -YKTy2Z0I6wEBLgED/2mn+hw4/3peLx0Sb9LNx//NfCCkVefSf2G9Qwhx6dvwbX7h -mFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQIQ3B4LEjskAt -pcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2kLMfgl/ftCZB -bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuaWV0enNjaGUubmV0PokAlQMFEDR5svDi -YKTy2Z0I6wEBOTQD/0OTCAXIjuak363mjERvzSkVsNtIH9hA1l0w6Z95+iH0fHrW -xXKT0vBZE0y0Em+S3cotLL0bMmVE3F3D3GyxhBVmgzjyx0NYNoiQjYdi+6g/PV30 -Cn4vOO6hBBpSyI6vY6qGNqcsawuRtHNvK/53MpOfKwSlICEBYQimcZhkci+EtCJB -bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJgpPLZ -nQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqKK8QY -rr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK/k7B -gI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFuZHJl -eSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+iQCV -AwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj4GPa -o3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI5apJ -mWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/osnzC -Cw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOvaoGr -anxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPriu8dI -rlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD7Hv8 -vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZYMFO -DHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VSTGlh -Bhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+Mtun9 -KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/YC3a -hs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1tGR3b -vz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwOTNQI -AOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fteFRkB -AWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96xnaa5 -MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYiI0UA -Iwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAOz6qx -/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBpYsfA -+6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzutZiM -1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cdiQCV -AwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgRsWFM -y9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8JkRv -Cn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6bLMV -HEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT1b14 -5po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvlOm3R -rsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQPTi3 -5SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qOx9Fw -erGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVjDHH5 -+uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgbyldq6 -EB33OunazFcfZFRIcXk1sfyLDvYE -=1ahV ------END PGP PUBLIC KEY BLOCK----- - - - &a.jkh

- - -Jordan K. Hubbard <jkh@FreeBSD.org> -Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ -jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk -tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR -tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokBFQMFEDXCTXQM -j46yp4IfPQEBwO8IAIN0J09AXBf86dFUTFGcAMrEQqOF5IL+KGorAjzuYxERhKfD -ZV7jA+sCQqxkWfcVcE20kVyVYqzZIkio9a5zXP6TwA247JkPt54S1PmMDYHNlRIY -laXlNoji+4q3HP2DfHqXRT2859rYpm/fG/v6pWkos5voPKcZ2OFEp9W+Ap88oqw+ -5rx4VetZNJq1Epmis4INj6XqNqj85+MOOIYE+f445ohDM6B/Mxazd6cHFGGIR+az -VjZ6lCDMLjzhB5+FqfrDLYuMjqkMTR5z9DL+psUvPlCkYbQ11NEWtEmiIWjUcNJN -GCxGzv5bXk0XPu3ADwbPkFE2usW1cSM7AQFiwuyJAJUDBRAxe+Q9a1pnjYGyp3kB -AV7XA/oCSL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddB -uJNiW/gznPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJ -utrewH6PR2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4kAlQMFEDF8ldof -f6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1w9sbfo4PV+/H -U8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfaT/LMztfPA6PQ -csyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJO1Bnj/paiQCV -AwUQMXvlBvUVW/uOVC1dAQF2fQP/RfYC6RrpFTZHjo2qsUHSRk0vmsYfwG5NHP5y -oQBMsaQJeSckN4n2JOgR4T75U4vS62aFxgPLJP3lOHkU2Vc7xhAuBvsbGr5RP8c5 -LvPOeUEyz6ZArp1KUHrtcM2iK1FBOmY4dOYphWyWMkDgYExabqlrAq7FKZftpq/C -BiMRuaw= -=C/Jw ------END PGP PUBLIC KEY BLOCK----- - - - &a.phk

- - -Poul-Henning Kamp <phk@FreeBSD.org> -Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI -ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA -K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR -tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAlQMFEDQQ0aZ1 -u244dqP3sQEBu4ID/jXFFeJgs2MdTDNOZM/FbfDhI4qxAbYUsqS3+Ra16yd8Wd/A -jV+IHJE2NomFWl8UrUjCGinXiwzPgK1OfFJrS9Og1wQLvAl0X84BA8MTP9BQr4w7 -6I/RbksgUSrVCIO8MJwlydjSPocWGBeXlVjbZxXzyuJk7H+TG+zuI5BuBcNIiQCV -AwUQMwYr2rNaYutZnzI9AQHiIQP/XxtBWFXaBRgVLEhRNpS07YdU+LsZGlLOZehN -9L4UnJFHQQPNOpMey2gF7Y95aBOw5/1xS5vlQpwmRFCntWsm/gqdzK6rulfr1r5A -y94LO5TAC6ucNu396Y4vo1TyD1STnRC466KlvmtQtAtFGgXlORWLL9URLzcRFd1h -D0yXd9aJAJUDBRAxfo19a1pnjYGyp3kBAQqyA/4v64vP3l1F0Sadn6ias761hkz/ -SMdTuLzILmofSCC4o4KWMjiWJHs2Soo41QlZi1+xMHzV32JKiwFlGtPHqL+EHyXy -Q4H3vmf9/1KF+0XCaMtgI0wWUMziPSTJK8xXbRRmMDK/0F4TnVVaUhnmf+h5K7O6 -XdmejDTa0X/NWcicmIkAlQMFEDF8lef1FVv7jlQtXQEBcnwD/0ro1PpUtlkLmreD -tsGTkNa7MFLegrYRvDDrHOwPZH152W2jPUncY+eArQJakeHiTDmJNpFagLZglhE0 -bqJyca+UwCXX+6upAclWHEBMg2byiWMMqyPVEEnpUoHM1sIkgdNWlfQAmipRBfYh -2LyCgWvR8CbtwPYIFvUmGgB3MR87iQCVAwUQMUseXB9/qQgDWPy9AQGPkwP/WEDy -El2Gkvua9COtMAifot2vTwuvWWpNopIEx0Ivey4aVbRLD90gGCJw8OGDEtqFPcNV -8aIiy3fYVKXGZZjvCKd7zRfhNmQn0eLDcymq2OX3aPrMc2rRlkT4Jx425ukR1gsO -qiQAgw91aWhY8dlw/EKzk8ojm52x4VgXaBACMjaJAJUDBRAxOUOg72G56RHVjtUB -AbL4A/9HOn5Qa0lq9tKI/HkSdc5fGQD/66VdCBAb292RbB7CS/EM07MdbcqRRYIa -0+0gwQ3OdsWPdCVgH5RIhp/WiC+UPkR1cY8N9Mg2kTwJfZZfNqN+BgWlgRMPN27C -OhYNl8Q33Nl9CpBLrZWABF44jPeT0EvvTzP/5ZQ7T75EsYKYiYkAlQMFEDDmryQA -8tkJ67sbQQEBPdsEALCj6v1OBuJLLJTlxmmrkqAZPVzt5QdeO3Eqa2tcPWcU0nqP -vHYMzZcZ7oFg58NZsWrhSQQDIB5e+K65Q/h6dC7W/aDskZd64jxtEznX2kt0/MOr -8OdsDis1K2f9KQftrAx81KmVwW4Tqtzl7NWTDXt44fMOtibCwVq8v2DFkTJy -=JKbP ------END PGP PUBLIC KEY BLOCK----- - - - &a.rich

- - -Rich Murphey <rich@FreeBSD.org> -fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1 -FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs -wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR -tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W -vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g -Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP -/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw== -=QoiM ------END PGP PUBLIC KEY BLOCK----- - - - &a.jdp

- - -John D. Polstra <jdp@polstra.com> -Fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/ -I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM -dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR -tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb -+45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX -O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk -WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF -EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq -aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN -C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm -7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m -SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU -wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM -V31K/PIoYsHAy5w= -=cHFa ------END PGP PUBLIC KEY BLOCK----- - - - &a.guido

- - -Guido van Rooij <guido@gvr.win.tue.nl> -Fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq -SwhMCEdHYoojQds+VqD1iiZQvv1RLByBgj622PDAPN4+Z49HjGs7YbZsUNuQqPPU -wRPpP6ty69x1hPKq1sQIB5MS4radpCM+4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR -tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDMG -Hcgff6kIA1j8vQEBbYgD/jm9xHuUuY+iXDkOzpCXBYACYEZDV913MjtyBAmaVqYo -Rh5HFimkGXe+rCo78Aau0hc57fFMTsJqnuWEqVt3GRq28hSK1FOZ7ni9/XibHcmN -rt2yugl3hYpClijo4nrDL1NxibbamkGW/vFGcljS0jqXz6NDVbGx5Oo7HBByxByz -iQCVAwUQMhmtVjt/x7zOdmsfAQFuVQQApsVUTigT5YWjQA9Nd5Z0+a/oVtZpyw5Z -OljLJP3vqJdMa6TidhfcatjHbFTve5x1dmjFgMX/MQTd8zf/+Xccy/PX4+lnKNpP -eSf1Y4aK+E8KHmBGd6GzX6CIboyGYLS9e3kGnN06F2AQtaLyJFgQ71wRaGuyKmQG -FwTn7jiKb1aJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154+Pn+9mJX/YT -fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi -mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm -GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIE1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqf -CrxFXT07MlHhfdbKUTNUoboxCGCLNW05vf1A8F5fdE5i14LiwkldWIzPxWD+Sa3L -fNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/ -LRHysIdVp29lP5BF+J9/Lzbb/9LxP1taiQCVAwUQMgRXZ44CzbsJWQz9AQFf7gP/ -Qa2FS5S6RYKG3rYanWADVe/ikFV2lxuM1azlWbsmljXvKVWGe6cV693nS5lGGAjx -lbd2ADwXjlkNhv45HLWFm9PEveO9Jjr6tMuXVt8N2pxiX+1PLUN9CtphTIU7Yfjn -s6ryZZfwGHSfIxNGi5ua2SoXhg0svaYnxHxXmOtH24iJAJUDBRAyAkpV8qaAEa3W -TBkBARfQBAC+S3kbulEAN3SI7/A+A/dtl9DfZezT9C4SRBGsl2clQFMGIXmMQ/7v -7lLXrKQ7U2zVbgNfU8smw5h2vBIL6f1PyexSmc3mz9JY4er8KeZpcf6H0rSkHl+i -d7TF0GvuTdNPFO8hc9En+GG6QHOqbkB4NRZ6cwtfwUMhk2FHXBnjF4kAlQMFEDH5 -FFukUJAsCdPmTQEBe74EAMBsxDnbD9cuI5MfF/QeTNEG4BIVUZtAkDme4Eg7zvsP -d3DeJKCGeNjiCWYrRTCGwaCWzMQk+/+MOmdkI6Oml+AIurJLoHceHS9jP1izdP7f -N2jkdeJSBsixunbQWtUElSgOQQ4iF5kqwBhxtOfEP/L9QsoydRMR1yB6WPD75H7V -iQCVAwUQMZ9YNGtaZ42Bsqd5AQH0PAQAhpVlAc3ZM/KOTywBSh8zWKVlSk3q/zGn -k7hJmFThnlhH1723+WmXE8aAPJi+VXOWJUFQgwELJ6R8jSU2qvk2m1VWyYSqRKvc -VRQMqT2wjss0GE1Ngg7tMrkRHT0il7E2xxIb8vMrIwmdkbTfYqBUhhGnsWPHZHq7 -MoA1/b+rK7CJAJUDBRAxnvXh3IDyptUyfLkBAYTDA/4mEKlIP/EUX2Zmxgrd/JQB -hqcQlkTrBAaDOnOqe/4oewMKR7yaMpztYhJs97i03Vu3fgoLhDspE55ooEeHj0r4 -cOdiWfYDsjSFUYSPNVhW4OSruMA3c29ynMqNHD7hpr3rcCPUi7J2RncocOcCjjK2 -BQb/9IAUNeK4C9gPxMEZLokAlQMFEDGeO86zWmLrWZ8yPQEBEEID/2fPEUrSX3Yk -j5TJPFZ9MNX0lEo7AHYjnJgEbNI4pYm6C3PnMlsYfCSQDHuXmRQHAOWSdwOLvCkN -F8eDaF3M6u0urgeVJ+KVUnTz2+LZoZs12XSZKCte0HxjbvPpWMTTrYyimGezH79C -mgDVjsHaYOx3EXF0nnDmtXurGioEmW1J -=mSvM ------END PGP PUBLIC KEY BLOCK----- - - - &a.peter

- - -Peter Wemm <peter@FreeBSD.org> - aka <peter@spinner.dialix.com> - aka <peter@haywire.dialix.com> - aka <peter@perth.dialix.oz.au> -Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/ -W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2 -kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT -tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMwWT -cXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWnxxb2M2Kb6x4G -9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIycc11vgbLolJJN -eixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNWI1P9zIOpDiGJ -AJUDBRAxsRPqSoY3Ydic4xkBAbWLA/9q1Fdnnk4unpGQsG31Qbtr4AzaQD5m/JHI -4gRmSmbj6luJMgNG3fpO06Gd/Z7uxyCJB8pTst2a8C/ljOYZxWT+5uSzkQXeMi5c -YcI1sZbUpkHtmqPW623hr1PB3ZLA1TIcTbQW+NzJsxQ1Pc6XG9fGkT9WXQW3Xhet -AP+juVTAhLQlUGV0ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokA -lQMFEDGxFCFKhjdh2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8 -xgEtbaw/ym1PbhbCk311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf -/Gspet0S7m/+RXIwZi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb -/fv3R20btB5QZXRlciBXZW1tIDxwZXRlckBGcmVlQlNELm9yZz6JAJUDBRAxsRJd -SoY3Ydic4xkBAZJUA/4i/NWHz5LIH/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9g -brOEM/xd4LlPrx1XqPeZ74JQ6K9mHR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab9 -4qZUHYi36WQu2VtLGnw/t8Jg44fQSzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO7Ql -UGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tPokAlQMFEDGxEi1K -hjdh2JzjGQEBdA4EAKmNFlj8RF9HQsoI3UabnvYqAWN5wCwEB4u+Zf8zq6OHic23 -TzoK1SPlmSdBE1dXXQGS6aiDkLT+xOdeewNs7nfUIcH/DBjSuklAOJzKliXPQW7E -kuKNwy4eq5bl+j3HB27i+WBXhn6OaNNQY674LGaR41EGq44Wo5ATcIicig/z -=gv+h ------END PGP PUBLIC KEY BLOCK----- - - - &a.joerg

- - -Type Bits/KeyID Date User ID -pub 1024/76A3F7B1 1996/04/27 Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> - Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E - Joerg Wunsch <joerg_wunsch@interface-business.de> - Joerg Wunsch <j@uriah.heep.sax.de> - Joerg Wunsch <j@interface-business.de> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz -q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe -ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR -tC1Kb2VyZyBXdW5zY2ggPGpvZXJnX3d1bnNjaEB1cmlhaC5oZWVwLnNheC5kZT6J -AJUDBRA0FFkBs1pi61mfMj0BAfDCA/oCfkjrhvRwRCpSL8klJ1YDoUJdmw+v4nJc -pw3OpYXbwKOPLClsE7K3KCQscHel7auf91nrekAwbrXv9Clp0TegYeAQNjw5vZ9f -L6UZ5l3fH8E2GGA7+kqgNWs1KxAnG5GdUvJ9viyrWm8dqWRGo+loDWlZ12L2OgAD -fp7jVZTI1okAlQMFEDQPrLoff6kIA1j8vQEB2XQEAK/+SsQPCT/X4RB/PBbxUr28 -GpGJMn3AafAaA3plYw3nb4ONbqEw9tJtofAn4UeGraiWw8nHYR2DAzoAjR6OzuX3 -TtUV+57BIzrTPHcNkb6h8fPuHU+dFzR+LNoPaGJsFeov6w+Ug6qS9wa5FGDAgaRo -LHSyBxcRVoCbOEaS5S5EiQCVAwUQM5BktWVgqaw0+fnVAQGKPwP+OiWho3Zm2GKp -lEjiZ5zx3y8upzb+r1Qutb08jr2Ewja04hLg0fCrt6Ad3DoVqxe4POghIpmHM4O4 -tcW92THQil70CLzfCxtfUc6eDzoP3krD1/Gwpm2hGrmYA9b/ez9+r2vKBbnUhPmC -glx5pf1IzHU9R2XyQz9Xu7FI2baOSZqJAJUDBRAyCIWZdbtuOHaj97EBAVMzA/41 -VIph36l+yO9WGKkEB+NYbYOz2W/kyi74kXLvLdTXcRYFaCSZORSsQKPGNMrPZUoL -oAKxE25AoCgl5towqr/sCcu0A0MMvJddUvlQ2T+ylSpGmWchqoXCN7FdGyxrZ5zz -xzLIvtcio6kaHd76XxyJpltCASupdD53nEtxnu8sRrQxSm9lcmcgV3Vuc2NoIDxq -b2VyZ193dW5zY2hAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDIIhfR1u244 -dqP3sQEBWoID/RhBm+qtW+hu2fqAj9d8CVgEKJugrxZIpXuCKFvO+bCgQtogt9EX -+TJh4s8UUdcFkyEIu8CT2C3Rrr1grvckfxvrTgzSzvtYyv1072X3GkVY+SlUMBMA -rdl1qNW23oT7Q558ajnsaL065XJ5m7HacgTTikiofYG8i1s7TrsEeq6PtCJKb2Vy -ZyBXdW5zY2ggPGpAdXJpYWguaGVlcC5zYXguZGU+iQCVAwUQMaS91D4gHQUlG9CZ -AQGYOwQAhPpiobK3d/fz+jWrbQgjkoO+j39glYGXb22+6iuEprFRs/ufKYtjljNT -NK3B4DWSkyIPawcuO4Lotijp6jke2bsjFSSashGWcsJlpnwsv7EeFItT3oWTTTQQ -ItPbtNyLW6M6xB+jLGtaAvJqfOlzgO9BLfHuA2LY+WvbVW447SWJAJUDBRAxqWRs -dbtuOHaj97EBAXDBA/49rzZB5akkTSbt/gNd38OJgC+H8N5da25vV9dD3KoAvXfW -fw7OxIsxvQ/Ab+rJmukrrWxPdsC+1WU1+1rGa4PvJp/VJRDes2awGrn+iO7/cQoS -IVziC27JpcbvjLvLVcBIiy1yT/RvJ+87a3jPRHt3VFGcpFh4KykxxSNiyGygl4kA -lQMFEDGCUB31FVv7jlQtXQEB5KgD/iIJZe5lFkPr2B/Cr7BKMVBot1/JSu05NsHg -JZ3uK15w4mVtNPZcFi/dKbn+qRM6LKDFe/GF0HZD/ZD1FJt8yQjzF2w340B+F2GG -EOwnClqZDtEAqnIBzM/ECQQqH+6Bi8gpkFZrFgg5eON7ikqmusDnOlYStM/CBfgp -SbR8kDmFtCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokA -lQMFEDHioSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlY -OGI/LLR9PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goi -jIC3+jn2gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVa -YESrNp0+iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDk -JCDAY9b6mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqV -oFw9CxI3xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzi -t+fX6BT4BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2R -jUKSl2p5oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM -7VaUt+Ve0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSO -LdhqqSMp3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVS -Azgf4uorv3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4OR -ooeqcTBxKeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOf -vvlVQ0UbcR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPU -=97h7 ------END PGP PUBLIC KEY BLOCK----- - - - 開発者 - &a.wosch

- - -Type Bits/KeyID Date User ID -pub 1024/2B7181AD 1997/08/09 Wolfram Schneider <wosch@FreeBSD.org> -Fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzPs+aEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G -Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHk+JcASHan7ptdFsz7xk1iNNEoe0 -vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR -tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmc+iQCVAwUQNmrS -AzmN/mkrcYGtAQFQjAP8CthNueur8XDAZqC5q6NQcDs0PqqQ+raTUfQTv6Km6ykf -UzdpDlBoRC+CCyHfBfC5zo9N6mB7iV7qS1PljrdIh6VAwHxJN9iopB/x6+nsBvmy -0YSNt7eyfFrIVegCJvd4ALz5JBV8ZstznOwo8RAhDD0gX58F8nDhgWjy62JekGK0 -IldvbGZyYW0gU2NobmVpZGVyIDx3b3NjaEBhcGZlbC5kZT6JARUDBRA2Z9ZcCMks -sk6wLt0BAQBICACcTiDZ/AyYWRDLXsBOK+WMRoNk3+bQZ1cdy11nwJo+taT/389M -0r5TrEJ7CogpXC2rFUExTVWldSFZd8A1YIHtrTsP7YauUH0nA7k0wUnqDRYj8YJR -eMLFvc1OQ2y+mkvxF2BzzBzh/bcYbgJdWCB1MPahSNQfkGXtp+A5PjEs8Cp4+FLu -EUFScyxsD3g5/E+0d7mirJpe3pxcf9KCmFGHM89mrTKODQR/7N8dVqa9npeXZotm -ZK8Jz+tvRKFgNiLf2XL048+IE8ZtJXDYaDzTirHdcAqJMWQuxthCdG3ta4I+w5WM -WR8JtBLfVNpyU7LN6dl0IB7O5sYhyskApmMwiQCVAwUQM+z5oTmN/mkrcYGtAQGU -gAP/cJGro/SbV+L19s/Gem26KmegUH+bfIXoh2EzyRJ7heVdybu1LrSDFApmAE7d -sMDlAA1wd2XjVWD3nIEBl6k+J7qJB4ACjKVGs414jLpdKGPHdLRYqYDj4LyQFMv6 -/BpSoX1gnWp6xlC2xeWRan9ns3XZGS55UBVDvBE/B+fPoTe0JFdvbGZyYW0gU2No -bmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDZq0dI5jf5pK3GBrQEB38QD -/3NYyRPIejtXXq/okdDRyhWmA8cv0KG6gEupKCQKa7ep/OZTw/KxrN3ZOS8zlPod -tEn8mol+4SvY5AgSMdjQ0jTd1JdFcMKFnbJJrJ3b9IpwCqbkXy25rTUcQn9ICP47 -rFKC4qR/Ucrg5YVVhQ3pVJX6XuO2XvuG7euHAQNXV3e2 -=EpJQ ------END PGP PUBLIC KEY BLOCK----- - - &a.brian

- - -Type Bits/KeyID Date User ID -pub 1024/666A7421 1997/04/30 Brian Somers <brian@Awfulhak.org> - Key fingerprint = 2D 91 BD C2 94 2C 46 8F 8F 09 C4 FC AD 12 3B 21 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzNmogUAAAEEALdsjVsV2dzO8UU4EEo7z3nYuvB2Q6YJ8sBUYjB8/vfR5oZ9 -7aEQjgY5//pXvS30rHUB9ghk4kIFSljzeMudE0K2zH5n2sxpLbBKWZRDLS7xnrDC -I3j9CNKwQBzMPs0fUT46gp96nf1X8wPiJXkDUEia/c0bRbXlLw7tvOdmanQhAAUR -tCFCcmlhbiBTb21lcnMgPGJyaWFuQGF3ZnVsaGFrLm9yZz6JAJUDBRAzbedc77Ox -BWZTbW0BAVtFA/42QelA3RBXYUtIcYGob+QsWkA1kGyBKQGPSS9coHdUVjClBRl3 -UZFmZhxAODb7cBRXmpvx2ZuMrhn/MpXTMqPOJaE3FYm+5SoeArphsRU+T8XofxfL -vRHkM3JURUjIVZdAQNvxxBso8NJG5KayP0Q96Vw+3sEwFK49jt14RCJy4IkAlQMF -EDNzvb1sq+iWcxFJBQEBfZwD/R3KNFf9ype9Dea8j1YIeNZ1E3e03en1I8fMj6Em -S1/L1WfFzMnfFCxZs7JgPtkBuB3CqP8f+LOdDt6PHPqNakmI9E6fiuGfJZ3jFZYA -TXa0XKuIoxIJNKhqkpbF8ixJZFTxFwAAwVYM3+sqr4qQ8FzVc5entxjyxPFNkwJw -RWV+iQCVAwUQM2aiBQ7tvOdmanQhAQE7LgQAiN6Hz+zd8bh0nO6VizbJxWFRHPbr -QWnJXGoMYyy88DyszAXC4zRshlyGUDQdHeP/1DFCXDEu78GfDCLaJ1bm25yVR7kL -xDZaEUQEbWqxfiwuzizAjkaxrW7dBbWILwWqrYF5TXClw+oUU/oIUW4t6t+GpAO1 -8PLYhSMXVYErrAA= -=EdyZ ------END PGP PUBLIC KEY BLOCK----- - diff --git a/ja/handbook/policies.sgml b/ja/handbook/policies.sgml deleted file mode 100644 index 177d411e46..0000000000 --- a/ja/handbook/policies.sgml +++ /dev/null @@ -1,274 +0,0 @@ - - - - -ソースツリーのガイドラインおよび方針 - - -

原作: &a.phk;. -

訳者: &a.mihoko; -6 September 1996 . - -本章は, FreeBSD のソースツリーについてのさまざまなガイドラインや -ポリシーについて書かれています. - -Makefile 中の MAINTAINER - - -

1996年6月. - -

FreeBSD 配布物の特定の部分が, 一人の人やグループによって保守 -されている場合は, ソースツリーの当該 Makefile に - - - MAINTAINER= email-addresses - - -

が付け加えられています. これを記述することによって, この部分が誰 -に保守管理されているかを世界中のユーザに伝えることができます. - -

この意味は次のとおりです: - -

保守担当者がそのコードを所有し, そのコードに対する責任を持っ -ています. すなわち, その人がそのコードに関するバグの修正やトラブル報告 -に対する回答をします. また, そのコードが寄贈ソフトウェアの場合には, -そのソフトウェアの新しいバージョンに適切に追従させる作業をその人が行い -ます. - -

保守担当者が決められているディレクトリに対して変更をおこなう場合は, -変更をおこなう前に, その変更内容を保守担当者に送って, -保守担当者にレビューをしてもらってください. -保守担当者が, 電子メールに一定期間応答しない場合にのみ, -保守担当者がレビューすることなしに, 変更をおこなうことが認められます. -しかしながら, そのような場合でも可能な限り, 変更点を第三者にレビュー -してもらうようにしてください. - -

もちろん, この義務を引き受けることができない人やグループを -保守管理者として追加することはできません. -また, 保守管理者がソースツリー管理者 ("committer") である必要は -ありません. - -寄贈ソフトウェア -

原作: &a.phk; and &a.obrien;. -

訳者: &a.mihoko; - -

1996年6月. - -

FreeBSD 配布物のうちのいくつかのソフトウェアは FreeBSD プロジェクト -以外のところで保守されています. -歴史的な経緯から, 私たちはこれを 寄贈 ソフトウェアと -呼んでいます. perl や gcc, patch などがその例です. - -

ここ数年来, この種のソフトウェアの取り扱いには, さまざまな方法が -取られてきましたが, どの方法にもいくつかの利点と欠点があります. -これまで欠点のない明確な方法はありませんでした. - -

-議論した結果, これらの方法のうちの一つが「公式な」方法として選択され -ました. その方法が, 今後, この種のソフトウェアを取り込む場合に, 使用 -されます. -その上, この方法では, だれもが(cvs にアクセス権のない人でさえ)「公式」 -バージョンのソースに対する差分を簡単に得ることができます. -これは古い方法にはなかった大きな利点です. ですから, -既存の寄贈ソフトウェアも, この方法に収束していくことを強く望んでいます. -この方法を使用することにより, 寄贈ソフトウェアの主な開発者に, 変更 -点を返すのがとても容易になります. - -

しかしながら結局, 寄贈ソフトウェアの取扱は, 実際に作業を行って -いる人々に委ねられています. -もしこの方法を使用することが, その人が扱っているパッケージには -極端に合わないような場合には, コアチームの承認さえあれば, これらの -ルールに反しても, 他の開発者の一般的な合意は得られるでしょう. -将来にわたってパッケージを保守できるということは, 大変重要な事柄に -なってきます. - -

謹聴: RCS のファイルフォーマットと CVS -のベンダブランチの使用には不幸な設計上の制限があります. -したがって, -ベンダブランチの内容をいまだに引きずっているファイルに対して小さな, -些細な変更, そして / あるいは 膨大な変更を加えることには, -強い反対があります. -「誤字訂正」はもちろんこの中に入りますし, -しかも「膨大な」の範疇に入るので, リビジョンが 1.1.x.x -であるファイルに対する誤字訂正は避けられることになっています. -一文字の変更したことによるリポジトリの肥大は, -非常に劇的なものになり得るのです. - -

プログラミング言語 Tcl は, -この方法が活用されているよい例になっています: - -

src/contrib/tcl には, このパッケージの保守管理者が -配布したソースが含まれています. この中からは FreeBSD に完全には適用 -できない部分が削除されています. Tcl の場合は, "mac", "win", -"compat" というサブディレクトリは, FreeBSD に取り込む前に削除されて -いました. - -

src/lib/libtcl には, ライブラリを生成したり, ドキュ -メントをインストールする際に使用される, 標準の bsd.lib.mk の -規則を使用した「bmake スタイル」の Makefile だけが 含まれています. - -

src/usr.bin/tclsh には, bsd.prog.mk 規則 を使用して, -"tclsh" プログラムや関連するマニュアルページを生成 /インストール -する bmake スタイルの Makefile だけが含まれています. - -

src/tools/tools/tcl_bmake には, -tcl ソフトウェアを更新する必要が生じたときの助けになる2つのシェルス -クリプトが含まれています. これらは, ソフトウェアを構築するのに使用し -たり, インストール対象になるソフトウェアではありません. - -

ここ重要なのは, "src/contrib/tcl" ディレクトリが, 規則にしたがっ -て作られているということです. つまり, できるだけ FreeBSD に特化した -変更をおこなわないようにしたソースを(RCS のキーワードを拡張しないで, -CVS のベンダブランチに)おくようにしています. -freefall 上の「簡易取り込み」ツールは, 寄贈ソフトウェアを取り込む -手助けとなります. けれども, このツールの実行方法に疑問が生じた場合は, -まずはじめに質問して, 失敗をしないようにしてください. そして, -その疑問を「解決して」からツールを使用してください. -CVS に寄贈ソフトウェアを取り込む際には, 事故があってはいけません. -よくあるような間違いをおかさないように, 十分注意してください. - -

先ほど述べたように, -残念なことに CVS にはベンダブランチという設計制限があります. -このため, CVS に寄贈ソフトウェアを取り込むには, オリジナル配布ソースに -適用されるベンダからの「公式」パッチと, ベンダブランチに逆輸入された -結果が必要です. -ベンダブランチの一貫性を破壊したり, 将来, 新しいバージョンを取り込む -時に衝突を起こしてしまったりというような 困難な事態に陥らないように -しなければなりません. そのために, FreeBSD が管理しているバージョンに -対して, 公式パッチを決して当ててはいけませんし, 公式パッチを -"commit" してはいけません. - -

多くのパッケージが, 他のアーキテクチャや他の環境と FreeBSD -との互換性を保ためのファイルをいくつか含んでいます. そこで, -スペースを節約するために, FreeBSD にとっては無意味な配布ツリー上の一 -部を削除することが許されています. -けれども, 削除されずに残ったファイルに対する, 著作権の通知やリリース -ノートのような情報を含んだファイルは, 決して削除しては いけませ -ん . - -

"bmake" Makefile が何らかのユーティリティによって, 配布ツリー -から自動的に生成できると, うまくいけば, 新しいバージョンへの -アップグレードをより簡単におこなうことができます. -もしこのようなユーティリティを作成できた場合には, 将来の管理者に -とって便利になるように, 移植の際に, src/tools ディレクトリ上に, -(必要に応じて)そのユーティリティを必ずチェックインしてください. - -

src/contrib/tcl レベルのディレクトリには, FREEBSD-upgrade と -呼ばれるファイルが追加されており, そのファイルでは 次のような内容が -記述されています. - - - ディレクトリ上に存在するファイル - オリジナルの配布物をどこから入手すればよいか また, 公式配布 -サイトはどこか - オリジナルの作者にパッチを送り返すためには, どこに送ればよいか - FreeBSD に特化した変更点の概要 - - -

しかしながら, 寄贈ソースと一緒に FREEBSD-upgrade ファイルを -取り込まないでください. -それよりむしろ, (訳注:このファイルを)初回に取り込んだ後は, -コマンド ``cvs add FREEBSD-upgrade ; cvs ci'' を実行してください. -``src/contrib/cpio'' を例にすると, 次のようになります: - -このディレクトリは「ベンダ」ブランチ上のオリジナル配布ファイル -の初期ソースが含まれています. いかなる事情があっても, -パッチや cvs コミットによってこのディレクトリ上のファイルを -アップグレードしてはいけません. -(訳注:ベンダから配布された)新しいバージョンや公式パッチだけが -(訳注:このディレクトリに)取り込まれなくてはいけません. -ベンダの RCS Id が CVS に入ってしまうのを避けるために, "-ko" オプ -ションをつけてインポートすることを忘れないで下さい. - -GNU cpio 2.4.2 を取り込むためには, 以下のファイルが削除されました: - - INSTALL cpio.info mkdir.c - Makefile.in cpio.texi mkinstalldirs - -cpio を新しいバージョンにアップデートするためには, 次の作業を -おこないます: - - 1. 空のディレクトリに新しいバージョンを取り出します. - [ファイルに「いかなる変更」も加えてはいけません] - - 2. 上記にリストされたファイルと, FreeBSD には無意味な - ファイルを削除します. - - 3. 次のコマンドを実行します: - cvs import -ko -m 'Virgin import of GNU cpio v' \ - src/contrib/cpio GNU cpio_ - - 例えば, バージョン 2.4.2 を取り込むためには, 次のように - タイプします: - cvs import -ko -m 'Virgin import of GNU v2.4.2' \ - src/contrib/cpio GNU cpio_2_4_2 - - 4. FreeBSD に対するローカルな変更と, 新しいバージョンとの間での - 矛盾を解消するために, ステップ 3 で出力された命令を実行します. - -いかなる事情があっても, この手順から外れてはいけません. - -cpio にローカルな変更を加えたい場合には, メインブランチ(別名 HEAD)に対して -パッチを実行し, コミットしてください. -決して GNU のブランチにローカルな変更を加えないでください. - -ローカルにおこなわれたすべての変更を次のリリースに含めるために, -"cpio@gnu.ai.mit.edu" に提出してください. - -obrien@freebsd.org - 30 March 1997 - - -共有ライブラリ - - -

Contributed by &a.asami;, &a.peter;, and &a.obrien;. - 9 December 1996.

- -

もしあなたが共有ライブラリをサポートする機能を port に追加した - り, 共有ライブラリをサポートしていない他のソフトウェアに追加する - 場合には, 共有ライブラリのバージョン番号を次の規則にしたがって - つけてください. - 一般的には, この規則は, ソフトウェアのリリースバージョンとは - 全く関係ありません. -

共有ライブラリを作成する三つの重要な規則は次の通りです: - - - 1.0 から始める - 過去のバージョンに互換性のある変更の場合は, マイナー番号を増やす - 互換性のない変更の場合は, メジャー番号を増やす - - -

例えば, 機能追加とバグ吸収の場合は, マイナー番号を増やします. - 機能削除, 関数呼び出しのシンタックスなどが変更された場合は, - 強制的にメジャー番号を変更します. - -

メジャー.マイナーー (x,y) の形式のバージョン番号を使用します. - FreeBSD のダイナミックリンカは, x.y.z という形式のバージョン番号 - は扱えません. - この場合, 「y」の後のバージョン番号(つまり三つ目の数字)は, - どのライブラリがリンクされているかを決めるために, 共有ライブラ - リ番号を比較する際に, すべて無視されます. - 「小さな」リビジョンだけが異なる二つの共有ライブラリが指定 - されると, ld.so は, リビジョンの大きい方の共有ライブラリを - リンクします. すなわち, もしあなたが libfoo.so.3.3.3 をリンク - していたとすると, リンカは頭の 3.3 という部分だけを認識し, - libfoo.so.3 ではじまり その後に 3 以上の数字が続くもののうち、 - 最も大きい番号の付いているライブラリをリンクします. -

ld.so はいつも最も大きい「マイナー」リビジョンのものを使うことに - 注意してください. 例えば, プログラムがはじめ libc.so.2.0 を - リンクしていたとしても, libc.so.2.0 よりも libc.so.2.2 を優先 - して使用します. - -

移植されていないライブラリに対しては, リリースごとに共有ライブラリの - バージョン番号を一度だけ変更するのが私たちのポリシーです. - あなたがシステムライブラリのバージョン番号を上げた場合は, - Makefile の commit ログを確認してください. - 結果としてそのリリースには, 共有ライブラリのバージョン番号が - アップデートされた Makefile に入るので、最初にその変更を - 確かめるのがソースツリー管理者 ("committer") の責務です. - その後のどんな変更も, そのリリースには入りません. - - diff --git a/ja/handbook/porting.sgml b/ja/handbook/porting.sgml deleted file mode 100644 index cd52ebe52b..0000000000 --- a/ja/handbook/porting.sgml +++ /dev/null @@ -1,2646 +0,0 @@ - - - - -自分で port を作る - -

原作: &a.jkh;, &a.gpalmer;, &a.asami;, &a.obrien; and - &a.hoek;. -28 August 1996.. - -

訳: &a.simokawa;, &a.asami;. -10 November 1996. - -

自分で port を作ることに興味がありますか, すばらしい! これから, FreeBSD用のportを作る際の, いくつかのガイドラインを -説明します. 実際にportをコンパイルするときのほとんどの仕事は -/usr/share/mk/bsd.port.mkというファイルでおこないます. -Portsコレクションについてのさらに細かい内部の働きについては, そちらの -ファイルを参照してください. これにはコメントが細かく書いてありますので, -Makefile を読むのにあまり慣れていない人でも, 得るものはとても大きいで -しょう. - -

注意: ここでは, 変更可能な変数の一部についてのみ記述してい -ます. ほとんどの変数はbsd.port.mkの始めに記述があり -ます. また, このファイルは非標準のタブの設定になっていま -す. EmacsVim はファイルのロード時にこれ -を認識しますが, viexでは, ファイルをロード -したら `:set tabstop=4'のようにして正しい値を設定する -ことができます. - - - - 3分porting - -

この節では, 簡単なportの方法について説明します. 多くの場合これ - では不十分ですが, まあうまくいくかどうか試してみて損はないでしょ - う. - -

まず, 元のtarファイルを${DISTDIR}に置きます. - デフォルトは/usr/ports/distfilesです. - -

注: 以下では, ソフトウェアはそのままコンパイルされるとします. - つまり, FreeBSDのマシンで動かすために, 変更がまったく必要ない - とします. もしなにか変更が必要な場合には次の節も参照する必要 - があります. - - - Makefileの作成 - -

最小限のMakefileは次のようなものです: - - - # New ports collection makefile for: oneko - # Version required: 1.1b - # Date created: 5 December 1994 - # Whom: asami - # - # $Id$ - # - - DISTNAME= oneko-1.1b - CATEGORIES= games - MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ - - MAINTAINER= asami@FreeBSD.ORG - - MAN1= oneko.1 - MANCOMPRESSED= yes - USE_IMAKE= yes - - .include - - -

おわかりになりますでしょうか. $Id$があ - る行の内容については, 気にしないでください. これはこのファイル - がportsツリーに書き込まれるときにCVSによって自動的に書 - き込まれます. もっと詳しい例が見たければ, の節をご覧ください. - - - Package記述ファイルの作成 - -

どのようなportでも, packageにするしないに関わらず, 3つ - の記述ファイルが必要です. pkgサブディレクトリにある, - COMMENT, DESCR, それにPLISTです. - - - COMMENT - -

これには, そのportについての説明を1行で書きます. Package - の名前, バージョン番号等は含めないでください. - たとえば, こんな具合です: - - -A cat chasing a mouse all over the screen - - - - DESCR - -

これは, そのソフトウェアについての, すこし長い説明を記述 - します. その port が何をするのかについての数段落程度の簡潔 - な解説があれば十分です. このファイルはマニュアルでもなけれ - ば, 使用方法やコンパイル方法についての細かい説明書でもあり - ません. 特に, README ファイルや manpage をコ - ピーしようとしてしている場合には注意してください. こ - れらは多くの場合, そのポートの簡潔な説明になっていなかった - り, 扱いにくい形式(manpage の場合, 行を揃えるために空白が - 調整されます)になっていたりします. もしこのソフトウエアに - 公式の WWW のホームページがあれば, ここに書いて下さい. - -

このファイルの最後にあなたの名前を書くことが推奨されています. - たとえば, こんな具合です. - - -This is a port of oneko, in which a cat chases a poor mouse all over -the screen. - : -(うんぬん.) - -http://www.oneko.org/ - -- Satoshi -asami@cs.berkeley.edu - - - - PLIST - -

このファイルには, このportによってインストールされるファ - イルが列挙されます. このファイルはpackageを作る際のリス - トとして使われるため, `packing list' とも呼ばれます. ここ - に書かれているファイル名は, インストール時のプレフィックス - (普通は /usr/local/usr/X11R6) からの - 相対パスです. 簡単な例を載せておきましょう: - - -bin/oneko -lib/X11/app-defaults/Oneko -lib/X11/oneko/cat1.xpm -lib/X11/oneko/cat2.xpm -lib/X11/oneko/mouse.xpm -@dirrm lib/X11/oneko - - -

'Packing list'の詳細については, pkg_create(1)の - マニュアルを参照してください. すべてファイルを列挙しなければ - なりませんが, ディレクトリ名は必要ありません. また, ports が - インストール時にディレクトリを作成する場合には, このファイルには, ファイル名をアルファベット順に並べるよう - にしてください. port のアップグレートのとき, 楽に確認ができ - るようになります. - - - チェックサムファイルの作成 - -

ただ, `make makesum' と入力するだけです. - bsd.port.mkにルールがあるので, 自動的にfiles/md5が - 生成されます. - - - Portのテスト - -

そのportが正しく動くことを, package化を含めて確認してく - ださい. 以下の重要なポイントを確認してください. - - deintall の際に - をすること. - - -

推奨されるテストの手順: - - make install - make package - make deinstall - pkg_add `make package-name` - make deinstall - make reinstall - make package - - - portlint でチェック -

portlintを使って, あなたの port が我々のガイドライン - そっているかを確認してください. - プログラムは ports コレクション - に含まれています. 特に, - が正しい形式になっているか, - の名前が正しいか, をチェックするのに良いでしょう. - - - Portの送付 - -

まず, - についての節を読んでください. - -

さあ, あなたのportに満足したら, あとはそれをFreeBSDのメイ - ンの ports ツリーに置いて, 皆に使ってもらうだけです. - いまある work/ ディレクトリや pkgname.tgz - パッケージは必要ありませんから, まず消去してください. - あとは, バグレポートの中に `shar `find port_dir`' - の出力を, send-pr(1) プログラムを使用して送ってくだ - さい. (send-pr についての詳細は, を参照してください.) - もし, 圧縮していない状態で, 20KB以上あるようなポートで - あれば, 圧縮して tar ファイルにして, バグレポートに入れる前に - uuencode(1) を使用してください. (20KB以下のものでも, - tar ファイルにして送ってもよいですが, あまり歓迎されません). - バクレポートの category は `ports', class は `change-request' - を必ず使用してください. (レポートを `confidential'(内密) に - しないようにしてください!) - -

もう一度, オリジナルのソースファイル, work/ - ディレクトリ, `make package'で作成したパッケージが - 含まれていないことを確認してください. - -

注: 以前, 新しい port をわれわれの ftp サイト - (:< - -

私たちは, 何か不明な点があったらあなたに確認したのち, - それをツリーへ置きます. あなたの名前は, FreeBSD - ハンドブックやその他のファイルの `Additional FreeBSD - contributors' のリストにも載るでしょう. う〜ん, 素晴らし - い. :) - - - 本格的なport - -

残念ながら, 移植がそう簡単ではなく, 動かすために多少の変更が - 必要な場合も多いでしょう. この節では, portsコレクション - の方法論にのっとって, そのような場合にどのように変更を施し, 動 - くようにしたらよいかを順を追って説明します. - - - port構築の詳細 - -

まず, あなたがportのディレクトリで `make' とタイ - プしてから起こる一連の出来事について,順を追って説明しま - す. ここを読むときには, 他のウィンドウで同時に - bsd.port.mkも開いておくとよいかもしれません. - -

しかし, bsd.port.mkが何をしているのか, 完全に理解 - できなくても心配する必要はありません. そう多くの人が理解して - いるわけではないですから... f(^_^;) - - - まず, fetchというターゲットが実行されます. このfetchターゲッ - トはローカルディスクの${DISTDIR}に配布ファ - イルがあるようにするのが役目です. もし, fetchが必要なファ - イルを${DISTDIR}に見つけることができなけ - れば, Makefileに指定されているURL - ${MASTER_SITES}, そして私たちのFTPサイトで - ある - (ここには, 私たちが取ってきたファイルをバックアップとして - 置いてあります) に探しにいきます. そして, ユーザのサイトが - インターネットに直接接続されている場合には, - ${FETCH} を使って, その名前のファイルを取っ - てきて, ${DISTDIR}に保存します. - - 次に実行されるのはextractターゲットです. これは, - ${DISTDIR}にある, 配布ファイル (普通は - gzipされたtarファイル) を読み, ソースを一時的な作業ディレ - クトリ${WRKDIR} (デフォルトは - work) に展開します. - - 次に, patchというターゲットが実行されます. まず, - ${PATCHFILES}に定義されている, すべてのパッ - チをあてます. 次にもし${PATCHDIR} (デフォ - ルトはpatches サブディレクトリ) にパッチが存在す - れば, これらをアルファベット順にあてます. - - 次に実行されるターゲットはconfigureです. これには, い - ろいろな場合があります. - - - - もし存在すれば, scripts/configure が実行されます. - - もし, ${HAS_CONFIGURE} あるいは - ${GNU_CONFIGURE} がセットされていれば, - ${WRKSRC}/configure が実行されます. - - もし, ${USE_IMAKE} がセットされていれば, - ${XMKMF} (デフォルト: `xmkmf - -a') が実行されます. - - - - 最後に, build というターゲットが実行されます. これは, - その port の専用の作業ディレクトリ (${WRKSRC}) - にいき, コンパイルするのが役目です. もし - ${USE_GMAKE} がセットされていれば, GNU - make が使用されます. さもなければ FreeBSD の - make が使用されます. - - - -

上記はデフォルトのルールです. さらに, `pre-<何とか - >や `post-<何とか>' というターゲット - が定義してあったり, そのような名前のスクリプトが - scripts サブディレクトリに置いてある場合には, それ - らはデフォルトの動作の前後に実行されます. - -

たとえば, post-extractというターゲットがMakefile - で定義されていて, pre-buildというファイルが, - scriptsサブディレクトリにあるとすると, - post-extractターゲットは, 通常の展開動作のあとに呼 - び出され, pre-buildスクリプトはデフォルトのコンパイ - ルのルールが実行される前に実行されます. もし動作が簡単であれ - ば, Makefileのターゲットを使用することが推奨されています. な - ぜならば, そのportが何らかのデフォルトではない動作を必要とす - るのかどうかが一箇所にまとめて書いてあった方が他の人に理解しやす - いからです. - -

デフォルトの動作はbsd.port.mk の - `do-<何とか>' というターゲットでおこなわれます. - たとえば, portを展開するコマンドは, `do-extract' - というターゲットにあります. もし, デフォルトのターゲットに - 不満があれば, `do-<something>' というターゲッ - トを再定義することによって, どのようにでも直すことができます. - -

「メイン」のターゲット (例えば, extract, - configure等) は, すべての前段階が実行されていること - を確認して, 実際のターゲットやスクリプトを呼び出す以外のこと - はしません. bsd.port.mkはこれらが変更されることは仮定してい - ませんので, もし, 例えば, 展開の仕方を直したいときには, - do-extract を直し, 絶対にextractには手を - 触れないでください. - -

これで, ユーザが `make' と入力したときに何が起こ - るのかが理解できたと思います. では, 完璧なportを手順を追っ - て作ってみましょう. - - - オリジナルのソースの入手 - -

オリジナルのソースを, (普通は) 圧縮されたtarファイルの形 - (<foo>.tar.gzあるいは - <foo>.tar.Z) で入手して, それを - ${DISTDIR} にコピーします. 可能なかぎり, 広 - く使われている主流のソースを使用するようにしてください. - -

もし, ネットワークへの接続のよい FTP/HTTP サイトを見つけるこ - とができなかったり, 頭にくるような非標準的な形式しか持ってい - ないサイトしか見つけられないときには, 自分で管理する確実な - ftp か http サーバ (たとえば, あなたのホームページ)に置くこと - ができます. MASTER_SITES に正しく反映されていること - を確認してください. - -

もしも, そのような都合の良く, 安心な置き場所が見つけられない - 場合(あなたが FreeBSD の committer であれば, 自分の - public_html ディレクトリに置けます), 私たちが, - -ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/distfiles/LOCAL_PORTS/ - - に置き場所を提供できます. この場所は, 変数 - ${MASTER_SITE_LOCAL} を使って参照してくださ - い. これについての問い合わせのメールは &a.ports へお願いしま - す. - -

その port の配布ファイルが特に理由もなく, しょっちゅう - 変る場合には, 配布ファイルをあなたのホームページに置いて - MASTER_SITESの最初に入れてください. こうすること - によって, ユーザ利用する場合に `checksum mismatch' エラー - が起るのを防ぎ, 我々の ftp サイトの保守の負担を - 減らすことができます. もし, master site がたった一つ - しかない場合には, あなたのサイトにバックアップを置いて - MASTER_SITES の2番目に加えてください. - -

もし, あなたのportに必要ないくつかの追加パッチがインター - ネット上で手に入るのならば, それらも取ってきて, - ${DISTDIR} に置きます. もし, それらがメイン - のソースのtarファイルとは別のサイトにあっても, 心配する必要 - はありません. そのような状況にはちゃんと対応できるようになっ - ています. (以下のをご覧ください). - - - Portの修正 - -

適当なディレクトリにtarファイルを展開して, FreeBSDの最新の - バージョン上で, 正しくコンパイルできるために必要なあらゆる変 - 更を施します. 最終的に処理は自動化するわけですから, 何をおこなっ - たかを注意深く記録しておきましょう. あなたのport - が完成した暁には, ファイルの削除, 追加, 修正を含むすべての処 - 理が, 自動化されたスクリプトやパッチファイルでおこなえるようになっ - ていないといけません. - -

もし, あなたのportのコンパイルやインストールのために必要 - な手作業があまりに多いようならば, Larry Wallの模範的な - Configureスクリプトでも参考にしたほうがいいかもしれませ - ん. 新しいportsコレクションは, 最小のディスクスペースで, - 個々のportがエンドユーザにできるだけ「プラグ & プレ - イ」の状態でmakeできることをめざしています. - -

注意: あなたが作成しFreeBSDのportsに寄付されたパッチファイル, - スクリプトおよびその他のファイルは,明示的に記述されている場合 - を除いては, BSDの標準的な著作権条件によりカバーされていると見な - されます. - - - パッチをあてる - -

portの過程で追加されたり変更されたファイルは再帰的diffで変 - 更点を取り出すことができます. パッチは適当にまとめて, - `patch-<xx>' という名前のファイルに入れてくだ - さい. <xx>はパッチが適用される順番を示します -- - これらは, アルファベット順, つまり `aa' が - 最初, つぎに `ab' などとなります. これらのファイル - を${PATCHDIR}に置いておくと, 自動的に適用さ - れるようになっています. すべてのパッチは - ${WRKSRC} (通常は, portのtarファイルが展 - 開されるところで, makeが実行されるところと同じです) からの相 - 対パスになります. 修正やアップグレードを容易にするため, 2つ - 以上のパッチが同じファイルを修正するのは避けてください. (例, - patch-aaとpatch-abが共に${WRKSRC}/foobar.c - を修正する, など.) - - - コンフィグレーション - -

カスタマイズのために追加したいコマンドがあれば, - configureという名前のスクリプトに入れて - `scripts' サブディレクトリに置きます. 上で述べたよ - うに, pre-configure あるいはpost-configure - というMakefileのターゲットおよび/あるいはスクリプトで処理す - ることもできます. - - - ユーザからの入力の扱い - -

もし, そのportがビルド, コンフィグレーション, インストー - ルの際にユーザからの入力を必要とするならば, Makefileで - IS_INTERACTIVEをセットしてください. これによって, - 深夜, 自動的にたくさんのportをコンパイルすることが可能にな - ります. 環境変数BATCHがセットされていると - IS_INTERACTIVEの定義されているportはスキップされ - ます (そして, ユーザがINTERACTIVEという変数をセッ - トすると入力を必要とするportのみコンパイルされま - す). - -

もし, 適切なデフォルト設定があるのであれば, - - Makefileの作成 - -

Makefileの作成は非常に単純です. 繰り返しになりますが, 始める - まえに, すでにある例を見てみることをお奨めします. またこのハ - ンドブックには - があります. それを見て, Makefile内の変数の順番や空行を入れると - ころなどの参考にしてください. そうすると他の人々にも読みやすい - ものとなります. - -

では, Makefileをデザインするときに問題となるところを順に追っ - て見てみましょう. - - - オリジナルのソース - -

ソースは${DISTDIR}に, 標準的なgzipされた - tarファイルとして置かれていますか? そうであれば, 次のステッ - プに進めます. そうでなければ, 変数 - ${EXTRACT_CMD}, - ${EXTRACT_BEFORE_ARGS}, - ${EXTRACT_AFTER_ARGS}, - ${EXTRACT_SUFX}, - ${DISTFILES}を適当に書き換えないといけません. - どれだけ変更しないといけないかは, あなたのportの - 配布ファイルがどの程度標準からかけはなれているかによりま - す. (最もよくある場合は, gzipではなく普通のcompressコマンド - でtarファイルが圧縮されている場合で, - `EXTRACT_SUFX=.tar.Z' とするだけです.) - -

最悪の場合には, 自分で `do-extract' ターゲットを作 - 成して, デフォルトを上書きすることもできます. しかし, そこま - でする必要があることはめったにないでしょう. - - - DISTNAME - -

${DISTNAME}にはportの名前の基幹部分を入れ - ます. デフォルトのルールでは, 配布ファイルのリスト - (${DISTFILES}) は - ${DISTNAME}${EXTRACT_SUFX}という名前 - になっています. 例えば, `DISTNAME=foozolix-1.0'の場 - 合, 通常のtarファイルだと, - -foozolix-1.0.tar.gz - - のようになります. - - さらにデフォルトのルールでは, tarファイルは - work/${DISTNAME}というサブディレクトリ - に展開されることを仮定しています, 例えば - -work/foozolix-1.0/ - - といった具合いです. - - これらの動作はもちろんすべて変更可能です. デフォルトのルー - ルは最も標準的な場合を仮定しているだけです. まず, portが複 - 数の配布ファイルを必要とするときには, 単に明示的に - ${DISTFILES}を設定してください. もし, - ${DISTFILES}の一部だけが実際に展開される場合 - には, それらを${EXTRACT_ONLY} に設定してくだ - さい. この変数が定義されている場合には, 展開時に - ${DISTFILES}に優先して利用されます. 残りのファ - イルも${DISTDIR}に取ってきますが, 展開時に - はなにもせずに後で使うためにそのまま置いておかれます. - - - PKGNAME - -

もし, ${DISTNAME} が我々の - - に沿ったものでない場合には, ${PKGNAME} にもっと良い - 名前を設定してください. 詳細は上記のガイドラインを参照してください. - - - CATEGORIES (分類) - -

完成したpackageの実体は/usr/ports/packages/All - に置かれます. また, 1つかそれ以上の - /usr/ports/packagesのサブディレクトリからのシンボリッ - クリンクが作られます. それらのサブディレクトリの名前が - ${CATEGORIES}という変数によって指定されます. - これは, ユーザがFTPサイトやCD-ROMのpackageの山を渡り歩 - くことを容易にするためです. 現在存在する - を見て, そ - のportに適したもを選んでください. - -

このリストは, この port が port tree のどこに import - されるかも決定します. 2つ以上のカテゴリを指定した場合には - 最初のカテゴリで指定されるサブディレクトリに置かれること - になります. 適切なカテゴリを選ぶ方法については, - の節を - 参照してください. - -

もしそのportが本当に現在存在するすべてのものとは異なって - いる場合には, 新しいカテゴリ名を作ることもできます. - その際には, &a.ports 宛てに新しいカテゴリ名を提案する - メールを送ってください. - -

カテゴリ名については, なんのエラーチェックも行なわれません. - ミスタイプがあっても`make package' はなにも考えずに - 新しいディレクトリを作ってしまいますので, 注意してください. - - - MASTER_SITES - -

オリジナルの配布ファイルを指し示すFTPまたはHTTPのURLのディ - レクトリ部分までを${MASTER_SITES}に記録しま - す. スラッシュ (/) を最後につけることをお忘れなく. - 配布ファイルがシステム上に存在しないときに, makeマクロは - ${FETCH}でこの変数に指定されたサイトから取っ - てきます. - -

複数の, できれば異なる大陸のサイトをこのリストに入れておく - ことが推奨されています. これによって, 広域ネットワークにトラ - ブルがあった場合でも成功する可能性が高くなります. 私たちはさら - に, 自動的に最も近いマスタサイトを検出して, そこから取って - くるメカニズムの導入を計画しています. - -

オリジナルのtar ファイルが, X-contrib, GNU, Perl CPAN, TeX CTAN - または Linux Sunsite などの有名なアーカイブにある場合には, - MASTER_SITE_XCONTRIB, MASTER_SITE_GNU, - MASTER_SITE_PERL_CPAN, MASTER_SITE_TEX_CTAN および - MASTER_SITE_SUNSITE を利用することで, 簡単にこれらのサイトを - 指定することができます. あとは MASTER_SITE_SUBDIR にアーカイ - ブ内でのパスを指定するだけです. 以下に例を示します. - -MASTER_SITES= ${MASTER_SITE_XCONTRIB} -MASTER_SITE_SUBDIR= applications - -

ユーザは/etc/make.conf中で MASTER_SITE_* 変数を設定 - することによって, デフォルトの FTP サイトではなく, これらの - 有名なアーカイブのミラーの中で好みのものを使用することが可能 - です. - - - PATCHFILES - -

もし, オリジナルの配布ファイル以外にもFTPかHTTPで手に入る - パッチが必要な場合には, ${PATCHFILES}にファ - イル名を, ${PATCH_SITES}にサイトとディレクト - リの名前を${MASTER_SITES}と同様に設定してく - ださい. - -

そのパッチ内のファイル名ががソースツリーの一番上のディレク - トリ (${WKRSRC}) からの相対パスになっていな - い場合には, ${PATCH_DIST_STRIP}を指定してく - ださい. 例えば, パッチ内のファイル名にすべて余計な - `foozolix-1.0/' がついている場合には, - `PATCH_DIST_STRIP=-p1'としてください. - -

これらのパッチは圧縮されていても大丈夫です. ファイル名が - `.gz' か `.Z' で終わる場合には自動的に復元 - されるようになっています. - -

もしパッチが, 文書などその他のファイルと一緒にgzipされた - tarファイルで配布されている場合には,単純に - ${PATCHFILES} を使うことはできません. - このような場合には, このパッチの tar ファイルの名前と場所を - ${DISTFILES}${MASTER_SITES} - に加えます. それから, pre-patch ターゲットで, - パッチコマンドを走らせるか, パッチファイルを - ${PATCHDIR} ディレクトリに - patch-<xx>という名前でコピーするかして, - パッチを適用するようにします.(普通の gzip か compress された - tar ファイルであれば,通常のソースファイルと一緒にその時までに - 展開されていますので,明示的に展開する必要はありません.) - もし,後者の方法を使用する場合には,すでにそのディレクトリにある - なにかを上書きしないように, 注意する必要があります. - さらに, pre-clean ターゲットにコピーしたパッチファイル - を削除するコマンドを追加するのを忘れないでください. - - - MAINTAINER - -

あなたのメールアドレスをここに入れてください. お願いします. - :) - -

保守担当者(maintainer)の責任についての詳細は, - - の節をご覧ください. - - - 依存関係 - -

このプログラムが他のportに依存する場合には, 必要なものが - 自動的に作られるようにすることができます. そのために, 以下の - 5つの変数が用意されています. よくあるケースのために - あらかじめ設定された依存変数や, いくつかの依存関係の制御のため - の変数があります. - - - LIB_DEPENDS - -

Portが必要とする非標準の共有ライブラリをこの変数で指定 - します. これは `lib:dir[:target]' という組のリストで, - lib が共有ライブラリの名前, そしてdir - がそのライブラリが見つからない場合にインストールするport - のあるディレクトリで, -LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg:install - - と指定してあれば, まずメジャーバージョンが9のjpegライブ - ラリがあるかどうか確認し, ない場合にはportsツリーの中の - graphics/jpeg というサブディレクトリに移動し, そこ - でコンパイルとインストールを行ないます. `${DEPENDS_TARGET} (デフォルトは - `lib 部分は `ldconfig -r | grep -wF' - への引数になります. この変数には正規表現を入れられません. - - この依存関係は2度チェックされます. まず pkg_add が自動的にインストールします. - - - RUN_DEPENDS - -

Portを使用する際に必要となるファイルまたはプログラムがある - ときにはこの変数で指定します. これは`path:dir[:target]' - という組のリストで, path がファイルまたはプログラムの - 名前, そしてdir がそれが見つからない場合に作成する - ためのディレクトリ名で, 'Path の最初の文字がスラッ - シュ (/) の場合にはファイルかディレクトリとみなし, - その存在を `test -e' でチェックします; そうでない - 場合には実行可能であると仮定し, `which -s' を使って - そのプログラムがユーザのサーチパス上にあるかどうか確認します. - -

例えばMakefileに以下のように書いてあるとします. - -RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \ - wish8.0:${PORTSDIR}/x11-toolkits/tk80 - - まず, `/usr/local/etc/innd' というファイルか - ディレクトリが存在するか確認し, ない場合にはportsツリーの中の - news/inn というサブディレクトリから作られます. ま - た, `wish8.0' というプログラムがユーザのサーチパス中 - にあるかどうか探し, ない場合には同じくportsツリーの - x11-toolkit/tk80 というサブディレクトリから作られます. - (この例で, `innd' は実際にはプログラムです; この - ように, プログラムであっても標準のサーチパス以外のところに - あるようなものの場合には, 絶対パスで指定してください.) - - この依存関係はinstall ステージのはじめでチェック - されます. また, packageを作る際に必要となるportのpackage名 - が記録され, pkg_addを使用するとユーザのシステム - に存在しない場合には自動的にそちらのpackageもインストール - されるようになります. `${DEPENDS_TARGET} と同じ場合には省略可能 - です. - - - BUILD_DEPENDS - -

Portのコンパイルに必要なファイルまたはプログラムがある - ときは, この変数で指定してください. RUN_DEPENDSと同 - 様に, これは `path:dir[:target]' という組のリストです. - 例えば, - -BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip - - は `unzip' という名前のプログラムを探し, 見つから - ない場合にはarchivers/unzip サブディレクトリで作 - れという意味になります. - - ここでは「コンパイル」と一口にいいましたが, この変数は実際 - にはファイルの展開から実際のコンパイル・リンクまで全部をま - とめて面倒を見てくれます. この依存関係はextract - ステージからチェックされます. `${DEPENDS_TARGET} と同じ場合には省略可能です. - - - FETCH_DEPENDS - -

この変数は, portを取ってくるのに必要なファイルまたはプロ - グラムを指定するのに使います. 上の二つと同様に, これは - `path:dir[:target]' という組のリストです. 例えば, - -FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2 - - としておけば, `ncftp2' という名前のプログラムを探 - し, 見つからない場合にはnet/ncftp2 サブディレク - トリにいってインストールします. - - この依存関係はfetchステージからチェックされます. - `${DEPENDS_TARGET} - と同じ場合には省略可能です. - - - DEPENDS - -

上記の四つのいずれにもあてはまらないような依存関係がある場 - 合, または他の port がインストールされれているだけではなく, - ソースが展開されている必要がある場合にはこの変数 - を使います. これは `dir[:target]' という形式のリスト - になります. 上記の四つと違って特に「確認」するものがありませ - んので. - - - よくある依存関係を表す変数 - -

もし ports が X Window System を必要とするのであれば, - `USE_XLIB=yes' を定義してください. (これは - USE_IMAKE も意味します) BSD USE_GMAKE=yes' - を定義. 動作するのに GNU autoconf を必要とする場合には, - `USE_AUTOCONF=yes' を定義. 最新の qt toolkit を使用 - する場合には `USE_QT=yes' を定義. perl 言語の - バージョン5 を必要とする場合には, `USE_PERL5=yes' - を定義してください. (特に最後のは重要で, FreeBSD のいくつかの - バージョンでは基本システムに perl5 を含みますが, 他のものは - 含んでいません.) - - - 依存関係に関する注意 - -

上で述べたように, 依存する ports が必要になったときに - 呼ばれるデフォルトのターゲットは - ${DEPENDS_TARGET} で, そのデフォルトは - `${DEPENDS_TARGET} を再定義 - するのではなく, *_DEPENDS 変数の ``make clean' とタイプしたときには, 依存する - port も自動的に clean されます. もしそうしたくない場合 - には, 無条件に他の port に依存させるには, 特別に ` -BUILD_DEPENDS= /nonexistent:${PORTSDIR}/graphics/jpeg:extract - - これは, 常に JPEG port の directory に行きソースの展開 - を行ないます. - -

あなたがやりたいことが他の方法ではできない場合以外は, - ` - コンパイル時の特別な指定 - -

GNUのmakeを使う場合には, `USE_GMAKE=yes' - と指定してください. Portに GNU configureが含まれ - ている場合には, `GNU_CONFIGURE=yes' を使います - (これは, configureに追加の引数 (デフォルトでは, GNU の - --prefix=${PREFIX}', - GNUでない${CONFIGURE_ARGS}で指定してください. - そのパッケージが USE_AUTOCONF=yes' を使います. これは, - X Window Systemのアプリケーションなど, imakeを - 使ってImakefileからMakefileを作成するportの場合には - `USE_IMAKE=yes' を指定してください. コンフィグレー - ションステージで自動的にxmkmf -a が実行されます. も - し `-a' フラグが問題をもたらすなら, さらに - `XMKMF=xmkmf'としてください. - もし, port が imake を使用するけれども, `install.man' - ターゲットがない場合には, `NO_INSTALL_MANPAGES=yes' - を指定してください. ついでに, その port のオリジナルの - 作者を探し出して八つ裂きにするといいでしょう. :> - -

PortのMakefileが `all' 以外のものをメインのター - ゲットとしている場合には, ${ALL_TARGET} でそ - れを指定してください. `install' と - ${INSTALL_TARGET} も同様です. - -

もし, port の元の Makefile が `all' 以外のターゲット - をメインのターゲットとしている場合には, - ${ALL_TARGET} をそれに合わせて設定してください. - `install' と ${INSTALL_TARGET} に - ついても同様です. - - 特別な配慮 - -

Portを作成する場合, 考慮しなくてはいけないことがさらにいくつか - あります. この節では, それらのうちもっともありがちなものに - ついて説明します. - - - ldconfig - -

共有ライブラリをインストールするときには, 共有ライブラリのキャッ - シュを更新するためにportのMakefileのpost-install - target から`${LDCONFIG} -m' を走らせてください. - このコマンドの引数は共有ライブラリのインストールしてあるディ - レクトリ (通常 ${PREFIX}/lib) です. - -

また, pkg/PLIST@exec /sbin/ldconfig -m - '/`@unexec /sbin/ldconfig -R' の組を入れて, package - をインストールした場合にも共有ライブラリがすぐ使え, 削除の際 - にも, システムがまだライブラリが存在すると誤認しないようにし - てください. この行は共有ライブラリを指定する行のすぐ後に書く - のがよいでしょう: - -lib/libtcl80.so.1 -@exec /sbin/ldconfig -m %D/lib -@unexec /sbin/ldconfig -R - - -

絶対に引数なしでただ `ldconfig'とだけ書い - てある行をMakefileやpkg/PLISTファイルに入れないでください. - このコマンドを実行すると, 共有ライブラリのキャッシュが - /usr/libの内容のみとなり, ユーザのマシンにさまざま - な問題をもたらします (「ぎゃぁ! このportをインストールした - らxinitが使えなくなっちゃった!」). この掟を破った者は, 永久 - に地獄の底で苦しみ続けるように, 閻魔様に頼んでおきます. - - - ELF 対応 - -

FreeBSD は 3.0-RELEASE で ELF に移行しましたので, - シェアードライブラリを作成するたくさんの port を ELF 対応 - にする必要があります. 3.0 システムは ELF としても a.out としても - 動作しますし, 我々は非公式ではありますが, できだけ長い間 - 2.2 システムのサポートをしたいと思っていますので, 複雑な状況です. - 以下は a.out のみに対応している port をどのように a.out と - ELF 両方に対応させるかのガイドラインです. - -

このリストの一部は, 移行時にしかあてはまらないものもあります - が, 古い port をアップグレードしたい場合に参考になるように, - しばらくのあいだは残しておきます. - - - a.out ライブラリの退避 - -

a.out ライブラリは, /usr/local/lib から, - `src/Makefile にある - ` - フォーマット - -

port ツリーは package をそのマシンのフォーマットで作成しま - す. つまり, 2.2 では a.out, また 3.0 では - `objformat` の結果によって, a.out か ELF になります. - また, いったん a.out ライブラリをサブディレクトリに移動すると - a.out ライブラリの作成はサポートされません. (つまり, あなたがな - にをすれば良いのかを理解しているのならば, うまく作成できるかもし - れませんが, 自力でやらなければならないということです) - -

注: もし port が aout でしか動作しないのなら, - PORTOBJFORMAT - -

PORTOBJFORMAT=${PORTOBJFORMAT}' とし - て この変数は, 以下のようにして -PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || -echo aout - - -

この変数を使って, port の make の過程で何をすべきかを決定す - べきですが, もし port の - 共有ライブラリの作成 - -

以下は, a.out と ELF での共有ライブラリの扱いの違いです. - - - 共有ライブラリのバージョンELF の共有ライブラリ - は, "リンカコマンドライン直接 'cc -shared' を使用してください. たった一つの違いは, - ELF には, `-Wl,-soname,libfoo.so.M' コマンドライ - ンにを加える必要があることです. - - -

ELF のリンカを満足させるためには, libfoo.so -> - libfoo.so.N というシンボリックリンクを作る必要があり - ます. これは, - - -

すべての port の Makefile を編集して, foo\\.1\\.\\(33|40\\)' -> `foo.2'.) - マッチングは `grep -wF' 使って行われます. - - - - -

ELF システムで 2 つのバージョン番号を持つ共有ライブラリをイ - ンストールしたり, aout システムで 1 つのバージョン番号しか持 - たない共有ライブラリをインストールするのが避けられない場合 - (例えば他のオペレーティングシステム用の互換ライブラリをイン - ストールする port など), - - -

Makefile 中の -${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m .... - - また -@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ... -@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R - - となります. これは, システムのデフォルトフォーマットではなく - パッケージのフォーマットに応じて, 正しい - - - -

もし, あなたの port が 変数(例えば 解像度とか紙のサイズなど) - を変えたりした, ちょっと違うバージョンを作成する必要があるとき - には, ユーザが分りやすいように, package ごとに別々のサブ - ディレクトリを作成し, ただし, できるだけ port 間でファイル - を共有するようにしてください. 典型的な例では, うまく変数を - 使えば, とても短いMakefileだけ, 1つ以外のすべてのディレクトリ - に置くだけで済みます. その短い Makefile には - ${MASTERDIR} を使って, 残りのファイルがある - ディレクトリを指定できます. また の一部に変数に使って, package が別々の - 名前を持つようにしてください. - -

以下が, とても良い例になるでしょう. これは - japanese/xdvi300/Makefileの一部です: - - : -PKGNAME= ja-xdvi${RESOLUTION}-17 - : -# default -RESOLUTION?= 300 -.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ - ${RESOLUTION} != 300 && ${RESOLUTION} != 400 - @${ECHO} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" - @${ECHO} "Possible values are: 118, 240, 300 (default) and 400." - @${FALSE} -.endif - - japanese/xdvi300 は通常のパッチ, package ファイルも - もっています. そこで, `他の解像度に関してですが, これが, xdvi118/Makefile - の(コメントを除いた) -RESOLUTION= 118 -MASTERDIR= ${.CURDIR}/../xdvi300 - -.include "${MASTERDIR}/Makefile" - - (xdvi240/Makefilexdvi400/Makefile も - 同様です). ${MASTERDIR}${PATCHDIR}${PKGDIR} - などの通常のサブディレクトリが xdvi300/Makefile - の - 共有ライブラリのバージョン - -

まず, を読んで, - 共有ライブラリのバージョンを一般的にどうすれば良いかを - 理解してください. 盲目的に, ソフトウエアの作者がちゃんと理解 - していると信じててはいけません, 多くの場合違います. - 細い点まで考慮することは大変重要なことです, なぜなら我々は - 互換性がないかもしれない大量のソフトウェアを共存させようと - する, 特殊な状況にあるからです. 不注意な port の導入が - 共有ライブラリに関して, 多大な問題を引き起したことが過去にあ - ります (今まで, しかしながら, が同じソフトウェアの違ったバージョンのソフト - ウェアが既にツリーにあるばあいには, 状況は非常に複雑です. - つまり, FreeBSD では, ユーザがリンカにどのバージョンの - 共有ライブラリを使用するかを指定できないからです(リンカは - 常にもっとも高いバージョンを選びます). これは, もし, - - マニュアル - -

MAN[1-9LN] 変数を使用すると, 自動的にすべてのマニュアルを - pkg/PLIST に加えます (つまり, マニュアルを を参照してください). - またマニュアルを /etc/make.conf 中の - NOMANCOMPRESSの設定に応じて, install時に自動的に - 圧縮したり伸長したりします. - -

マニュアルをインストール時に圧縮するかどうかを指定するには, - PREFIX以外のディレクトリの下にマニュアルを置く - ようなportではMANPREFIXを指定することが - できます. さらに, 特定のセクションのマニュアルだけ, 標準では - ない場所にインストールする場合, 例えばいくつかの Perl のモ - ジュールの ports など, には個々のマニュアルのパスを - MANsectPREFIX (sectは, 1 から 9 - または, L か N を表わします) によって指定できます. - ができます. - -

マニュアルが, 言語特有のサブディレクトリに置かれる場合には, - 言語名を "" になっています (つまり, 英語のみ). - -

これは, 全部をまとめた例です. - -MAN1= foo.1 -MAN3= bar.3 -MAN4= baz.4 -MANLANG= "" ja -MAN3PREFIX= ${PREFIX}/share/foobar -MAN8COMPRESSED= yes - - 以下の6個のファイルがこの port でインストールされます. - -${PREFIX}/man/man1/foo.1.gz -${PREFIX}/man/ja/man1/foo.1.gz -${PREFIX}/share/foobar/man/man3/bar.3.gz -${PREFIX}/share/foobar/man/ja/man3/bar.3.gz -${PREFIX}/man/man4/baz.4.gz -${PREFIX}/man/ja/man4/baz.4.gz - - - - Motifを必要とするport - -

最近はコンパイルにMotifを必要とするアプリケーションが増えて - きました. (Motif自体は有料のものがいくつかの会社から手に入りま - すし, 多くのアプリケーションがコンパイル可能な無料の互換ライブラリ - が x11-toolkits/lesstifにあります) - Motifはかなり広く使われていますし, 製品のライ - センスではライブラリを静的にリンクした実行形式は再配布が認めら - れている場合が多いので, Motifを必要とするソフトウェアを簡単に - 動的(port からコンパイルする人々のために)/静的(package を配布 - する人々のために)にリンクできるようなしくみが用意されています. - - - REQUIRES_MOTIF - -

MotifがないとコンパイルできないportのMakefileではこの変 - 数を指定してください. これによって, Motifを持っていない人が - このportをコンパイルしようとするのを未然に防ぎます. - - - ${MOTIFLIB} - -

この変数はbsd.port.mkによってMotifライブラリの指 - 定に置き換えられます. ソース内のMakefileやImakefileで - Motifライブラリを指定しているところをこの変数に置き換えるよ - うにパッチをあててください. - -

代表的な例としては以下の二つがあげられます: - - MakefileかImakefileの中でMotifライブラリが - `-lXm' として使われている場合には, かわりに - `${MOTIFLIB}' と書いてください. - - Imakefileの中で `XmClientLibs' が使われている - 場合には, それを `${MOTIFLIB} - ${XTOOLLIB} ${XLIB}' と書きかえてください. - - -

${MOTIFLIB} は通常 `-L/usr/X11R6/lib - -lXm' か `/usr/X11R6/lib/libXm.a' に置き換えら - れます. したがって前に `-L' や `-l' をつけ - る必要はありません. - - - X11 のフォント - -

もし, あなたの port が X window system のフォントをインストール - するのであれば, それらを - ${X11BASE}/lib/X11/fonts/local に置くようにして - ください. このディレクトリは XFree86 release 3.3.3 で新設された - ものです. もし, それが存在しなければ作成し, ユーザに - XFree86 を 3.3.3 かそれより新しいものに更新か, - すくなくとも, このディレクトリを /etc/XF86Config の - font path に加えるように促すメッセージを出力するようにしてください. - - - Info ファイル -

新しい版の texinfo(2.2.2-RELEASE およびそれ以降に入っています) - には, `&dollar{PREFIX}/info/dir ファイル - を更新するようにしてください. (この節は, とても長くてすいません, - しかし info ファイルを作りあげるためには, これらは不可欠 - です. 正しく行なえば, 美しい リストができますので, - 辛抱してください! まず, これを知っておかなければなりません: - - -% install-info --help -install-info [OPTION]... [INFO-FILE [DIR-FILE]] - Install INFO-FILE in the Info directory file DIR-FILE. - (訳注: Info ディレクトリの INO-FILE を DIR-FILE にインストールする) -Options: ---delete Delete existing entries in INFO-FILE; - don't insert any new entries. - (訳注: INFO-FILE の中の項目を削除, - 新しい項目は一切追加しない.) - : ---entry=TEXT Insert TEXT as an Info directory entry. - (訳注: TEXT を Info ディレクトリの項目として追加する.) - : ---section=SEC Put this file's entries in section SEC of the directory. - (訳注: このファイルの項目を Info ディレクトリの SEC - という節に置く.) - : - - -

このプログラムは, 実際には info ファイルをこれから, editors/emacsを - 使用します. - - - まず, texinfo のソースを見て, - ---- ./man/vip.texi.org Fri Jun 16 15:31:11 1995 -+++ ./man/vip.texi Tue May 20 01:28:33 1997 -@@ -2,6 +2,10 @@ - - @setfilename ../info/vip - @settitle VIP -+@dircategory The Emacs editor and associated tools -+@direntry -+* VIP: (vip). A VI-emulation for Emacs. -+@end direntry - - @iftex - @finalout - : - - -

フォーマットについては見ればわかると思います. - 1つのファイルに対して1つの info の項目しか書けないことに注 - 意してください, これは, `install-info --delete' - が, そのバグにより, texinfo のソースにパッチをあてるかわりに, japanese/skkportのディレクトリに戻って, `make clean; make' - をして, info ファイルが texinfo ソースファイルから再び生成さ - れることを確認してください. texinfo ソースファイルのほうが - info ファイルよりも新しいので, ---- ./Makefile.in.org Mon Aug 19 21:12:19 1996 -+++ ./Makefile.in Tue Apr 15 00:15:28 1997 -@@ -184,7 +184,7 @@ - # Subdirectories to make recursively. `lisp' is not included - # because the compiled lisp files are part of the distribution - # and you cannot remake them without installing Emacs first. --SUBDIR = lib-src src -+SUBDIR = lib-src src man - - # The makefiles of the directories in $SUBDIR. - SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile ---- ./man/Makefile.in.org Thu Jun 27 15:27:19 1996 -+++ ./man/Makefile.in Tue Apr 15 00:29:52 1997 -@@ -66,6 +66,7 @@ - ${srcdir}/gnu1.texi \ - ${srcdir}/glossary.texi - -+all: info - info: $(INFO_TARGETS) - - dvi: $(DVI_TARGETS) - - -

/usr/share/info - にあるからです. (このパッチはここにはありません.) - - もし, ---- ./Makefile.in.org Mon Aug 19 21:12:19 1996 -+++ ./Makefile.in Mon Apr 14 23:38:07 1997 -@@ -368,14 +368,8 @@ - if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ - then \ - (cd ${infodir}; \ -- if [ -f dir ]; then \ -- if [ ! -f dir.old ]; then mv -f dir dir.old; \ -- else mv -f dir dir.bak; fi; \ -- fi; \ - cd ${srcdir}/info ; \ -- (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ -- (cd $${thisdir}; chmod a+r ${infodir}/dir); \ - for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* sc* vip*; do \ - (cd $${thisdir}; \ - ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ - chmod a+r ${infodir}/$$f); \ - - - (これは, 既存のportを修正するときのみ必要です.) - pkg/PLIST を見て, info/dir にパッチをあて - ようとするものすべてを削除します. これらは, - pkg/INSTALL やその他のファイルにもあるかもしれない - ので, いろいろさがしてみてください. - - -Index: pkg/PLIST -=================================================================== -RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v -retrieving revision 1.15 -diff -u -r1.15 PLIST ---- PLIST 1997/03/04 08:04:00 1.15 -+++ PLIST 1997/04/15 06:32:12 -@@ -15,9 +15,6 @@ - man/man1/emacs.1.gz - man/man1/etags.1.gz - man/man1/ctags.1.gz --@unexec cp %D/info/dir %D/info/dir.bak --info/dir --@unexec cp %D/info/dir.bak %D/info/dir - info/cl - info/cl-1 - info/cl-2 - - - -Index: Makefile -=================================================================== -RCS file: /usr/cvs/ports/editors/emacs/Makefile,v -retrieving revision 1.26 -diff -u -r1.26 Makefile ---- Makefile 1996/11/19 13:14:40 1.26 -+++ Makefile 1997/05/20 10:25:09 1.28 -@@ -20,5 +20,11 @@ - post-install: - .for file in emacs-19.34 emacsclient etags ctags b2m - strip ${PREFIX}/bin/${file} - .endfor -+ if [ ! -f ${PREFIX}/info/dir ]; then \ -+ ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > ${PREFIX}/info/dir; \ -+ fi -+.for info in emacs vip viper forms gnus mh-e cl sc dired-x ediff ccmode -+ install-info ${PREFIX}/info/${info} ${PREFIX}/info/dir -+.endfor - - .include - - -

新しい info ファイルを作成するのに, - /usr/share/info/dir と上のコマンド, 以外は使用しな - いでください. 実際のところ, もし port する人がこれに関して - info/dir を削除する必 - 要はありません. - - -Index: pkg/PLIST -=================================================================== -RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v -retrieving revision 1.15 -diff -u -r1.15 PLIST ---- PLIST 1997/03/04 08:04:00 1.15 -+++ PLIST 1997/05/20 10:25:12 1.17 -@@ -16,7 +14,15 @@ - man/man1/etags.1.gz - man/man1/ctags.1.gz -+@unexec install-info --delete %D/info/emacs %D/info/dir - : -+@unexec install-info --delete %D/info/ccmode %D/info/dir - info/cl - info/cl-1 -@@ -87,6 +94,18 @@ - info/viper-3 - info/viper-4 -+@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir -+@exec install-info %D/info/emacs %D/info/dir - : -+@exec install-info %D/info/ccmode %D/info/dir - libexec/emacs/19.34/i386--freebsd/cvtmail - libexec/emacs/19.34/i386--freebsd/digest-doc - - -

@unexec install-info --delete' コマンドは, info - ファイル自身より先に置き, コマンドがファイルを読めるようにし - ておかなければならないことに注意してください. - また, `@exec install-info' コマンドは - info ファイルおよび をして - 出来栄えに感服しましょう - - - - -

まだ触れていない, いくつかのこつが - - -

バイナリパッケージが INSTALL ${PKGNAME} PRE-INSTALL' と実行され, - 2度目には, '`INSTALL ${PKGNAME} POST-INSTALL' - と実行されます. どちらのモードで実行されているかは, - `$2' を調べることによってわかります. - 環境変数 `PKG_PREFIX' には package がインストールさ - れるディレクトリが設定されます. 詳細は man - pkg_add(1) を見てください. - 注意すべきことは, port を `make install' で - インストールするときには, このスクリプトは自動的に実行されな - いということです. もし, 実行される必要があるならば, port の - Makefile から明示的に呼ぶ必要があります. - - - -

port が(インストールされるシステムの状態によって) - インストールされるべきか, されないべきか区別する必要があると - きには, 「要件(requirements)」スクリプト pkg/REQ を作ること - ができます. これは, インストール及びデインストール - (package の削除)の時に自動的に実行され, それらが処理されるべ - きかを決定します. - - - makeの変数にあわせた - -

いくつかの port, 特に p5- portsなど, は configure のオプション - (あるいは, p5- ports の場合は perl のバージョン)によって, - %%PERL_VERSION%% は, 適切に置き換えられるようになって - います. 他の置き換えが必要であれば, PLIST_SUB 変数に - VAR=VALUE という形式のペアのリストを設定することに - よって, %%VAR%%' は ` -OCTAVE_VERSION= 2.0.13 -PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} - - - と書いて, %%OCTAVE_VERSION%% と書きます. - このようにしておけば, port をアップグレードするときに, - 何十行(ときとして, 何百行)も この書き換えは ( - の追加も) ${PLIST} を読み - ${TMPPLIST} (デフォルトは, - ${WRKDIR}/.PLIST.mktmp) に書き込むことによって - 行なわれます. もし, あなたの port が ${PLIST} - を実行時に生成するのであれば, - -

- を参照してください.) - -

以下が変数名とそのデフォルト値の表です. - - -COMMENT ${PKGDIR}/COMMENT -DESCR ${PKGDIR}/DESCR -PLIST ${PKGDIR}/PLIST -PKGINSTALL ${PKGDIR}/INSTALL -PKGDEINSTALL ${PKGDIR}/DEINSTALL -PKGREQ ${PKGDIR}/REQ -PKGMESSAGE ${PKGDIR}/MESSAGE - - -

PKG_ARGSを上書きせずに, これらの変数を変更 - するようにしてください. PKG_ARGSを変更すると - これらのファイルは port から正しく /var/db/pkg - にインストールされなくなります. - - - ライセンス上の問題 - -

ソフトウェアによっては制限の厳しいライセンスがついてきたり, - 法律的に問題があるかもしれません. (PKPの公開鍵暗号化, ITAR (暗 - 号化ソフトウェアの輸出) などが例としてあげられます). それらを - どう扱えばいいかはライセンスの文面によってさまざまな場合があり - ます. - -

ソフトウェア移植者として, あなたにはライセンスをよく読み, - FreeBSDプロジェクトがFTPまたはCD-ROMで配布してはいけないソフ - トウェアを配布してしまうことのないよう, 注意する義務があります. - なにか疑問がある場合には, &a.ports;に聞いてみてください. - -

よく見られるケースに対処するために, 二つの変数が用意されてい - ます: - - - ソフトウェアに「有償再配布を禁ずる」という趣旨のライセン - スがついてきた場合にはNO_CDROMという変数にその理由 - を記述してください. 私たちはこれがついている port は CD-ROM - リリースに入れないようにしますが, オリジナルのソースファイル - とpackageはFTPでは取れるようにしておきます. - - もしも, 生成される package が個々のサイトで独自に構築さ - れる必要があったり, ライセンスによって生成されるバイナリが - 配布できない場合には, NO_PACKAGE 変数にその理由を - 記述してください. そのような package が FTP サイトに置かれ - たり, リリース時の CD-ROM へ入らないようにします. ただし, - いずれの場合も distfile は(FTP や CD-ROM に)含まれるように - なります. - - Portが, 使用者によっては法律上の問題が生じる時 (暗号化ソフ - トウェアなど), または「商用利用を禁ずる」とライセンスに書い - てある場合にはRESTRICTEDという変数にその理由を入れ - てください. この場合には, ソースファイルやpackageは私たちの - FTPサイトにも置かれません. - - -

注: GNU一般公有使用許諾書 (GPL) はバージョン1, 2とも - port作成上は何ら問題にはなりません. - -

注: もしあなたが,ソースツリー管理者 (committer) であれば, - ソースツリーにこのようなportを入れる際に, - ports/LEGALファイルを書き換えるのを忘れないようにし - てください. - - - アップグレード - -

Portのバージョンが原作者からのものに比べて古いことに気がつ - いたら, まずはあなたの持っているportが私たちの最新のもの (ミラー - サイトの ports/ports-current というディレクトリにあります) - であることを確認してください. - -

次に, portのMakefileにMAINTAINER (保守担当者) の - アドレスが書いてある場合には, その人にメールを出してみましょう. - 保守担当者の人がすでにアップグレードの準備をしているかもしれま - せんし, (新しいバージョンの安定度に問題があるなど) あえてアッ - プグレードをしない理由があるのかもしれません. - -

保守担当者にアップグレードをしてくれと頼まれた場合, あるいは - そもそもportのMakefileに保守担当者が書いてない場合などは, あ - なたがアップグレードをしてくださると助かります. その場合にはアッ - プグレードをしたのち, 変更前と変更後のディレクトリの再帰的diff - (unified diff と context diff のどちらでもいいのですが, - port のコミッター達は unified diff のほうを好むようです) - をとって送ってください. (例えば, 変更前のディレクトリが - `superedit.bak' という名前でとってあり, 変更後のもの - が `superedit' に入っているなら, `diff -ruN - superedit.bak superedit' の結果を送ってください. ) - diff の出力を見て, すべての変更が正しくなされているか確認して - ください. 変更箇所については, send-pr (カテゴリーは, - `ports')に diff の出力結果を添えて, 私たちに送ってもらうのが一 - 番よいです. commit する際に CVS に明確に記述しなければならない - ので, 付け加えたり削除したりしたファイルがあったら, それについ - て書いておいてください. もし diff の大きさが 20 KB 程度を - 超えるようであれば, 圧縮したものを uuencode して下さい. - そうでなければそのまま PR に入れるだけでいいです. - -

繰り返しになりますが, ports の変更を送るときには, - shar(1) ではなく diff(1) を使用してください. - - - やってよいことといけないこと - - -

この節では, ソフトウェアをportする上でよくある落し穴などにつ - いて説明します. このリストを使って, あなた自身が作成した port - のチェックはもとより, PR データベースにある, 他の人が作成した - port のチェックもできます. あなたがチェックした port について - のコメントを - - にしたがって, 送ってください. PR データベースにある port を - チェックすることによって, 私達がそれらを commit するのを早くし, - あなたが何をしているか理解していることも示します. - - - バイナリのstrip - -

バイナリはstripしてください. オリジナルのソースがバイナリを - stripしてくれる場合は良いですが, そうでない場合には - post-installターゲットを指定して strip するようにする - とよいでしょう. 例えば, こんな風になります: - - - post-install: - strip ${PREFIX}/bin/xdl - - -

インストールされた実行形式がすでにstripされているかどうか - はfileコマンドで確認できます. これが`not stripped' - と言わなければ, stripされているということです. - - - INSTALL_* マクロ -

あなた自身の *-install ターゲットでファイルの正しいモードと - オーナを保証するために, 必ずbsd.port.mkで提供されて - いるマクロを使用してください. マクロは以下のようなものがあります. - - - ${INSTALL_PROGRAM} は実行可能なバイナリを - インストールするコマンドです. - ${INSTALL_SCRIPT} は実行可能なスクリプトを - インストールするコマンドです. - ${INSTALL_DATA} は共有可能なデータを - インストールするコマンドです. - ${INSTALL_MAN} はマニュアルとその他のドキュメ - ントをインストールするコマンドです.(圧縮はしません) - - -

これらは基本的にinstallコマンドに適当なフラグを与え - たものです. どのようにこれらを使用するかは以下の例を見てください. - - - -

を参照). - ${PKGDIR} にあるファイルを修正する必要がある - ときには, - によって行ない, 上書きはしないでください. - - - -

${WRKDIR} を参照している - ときには気を付けてください. 正しい場所は, - ${WRKDIRPREFIX}${PORTSDIR}/subdir/name/work, - です, ${PORTSDIR}/subdir/name/work とか - ${.CURDIR}/../../subdir/name/work とか - ではありません. - -

また, 自分で ${WRKDIRPREFIX}${.CURDIR} が付いている - 事を確認してください. - - - OS や OS のバージョンの区別 - - -

Portの過程で, 修正や, どのバージョンのUNIXで動くかによる条件 - つきコンパイルなどが必要なコードに出会うかもしれません. その - ような条件つきコンパイルなどのための変更をおこなうときには, - FreeBSD 1.x システムへの移植や, CSRGの4.4BSD, BSD/386, - 386BSD, NetBSD, OpenBSD などの他のBSDシステムへの移植が可能な - ように, できるだけ普遍的な変更をおこなうことを心がけてください. - -

4.3BSD/Reno (1990) およびそれより新しいBSD版を古いバージョン - と区別するには `BSD' マクロを利用するのがよいでしょう. - これは <sys/param.h> で定義されています. このファ - イルがすでにインクルードされていればよいのですが, もしそうでな - い場合には以下のコードを, その.c ファイルの適当な場所 - に加えてください. - - -#if (defined(__unix__) || defined(unix)) && !defined(USG) -#include -#endif - - -

これらの2つのシンボルが定義されているすべてのシステムには - sys/param.h があるはずです. もし, そうでないシステムを発見した - ら我々にも教えてください. &a.ports; までメールを送ってください. - -

あるいは, GNU の Autoconf のスタイルを使用することもできます, - - -#ifdef HAVE_SYS_PARAM_H -#include -#endif - - - この方法を使用するときには, Makefile 中のCFLAGSに - -DHAVE_SYS_PARAM_H を加えることを忘れないようにしてく - ださい. - - いったん<sys/param.h>がインクルードされると, - - -#if (defined(BSD) && (BSD >= 199103)) - - - このようにしてそのコードが4.3 Net2コードベース, または - それより新しいもの (例: FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, - BSD/386 1.1とそれ以前) の上でコンパイルされているかを検出できます. - - -#if (defined(BSD) && (BSD >= 199306)) - - - これは, 4.4コードベース, またはそれより新しいもの (例: FreeBSD - 2.x, 4.4, NetBSD 1.0, BSD/386 2.0とそれ以後) の上でコンパイルさ - れているかどうかを検出するために使用します. - - 4.4BSD-Lite2 コードベースでは, BSD マクロの値は 199506 になっ - ています. これは参考程度の意味合いしかありません. - 4.4-Lite ベースの FreeBSD と 4.4-Lite2 での変更がマージされた - バージョンとを区別するのに使用するべきものではありません. - この目的のためには, __FreeBSD__ マクロをかわりに使用してくださ - い. - -

以下は控え目に使ってください. - - - __FreeBSD__ はFreeBSDのすべての版で定義されてい - ます. 変更がFreeBSDだけに適用されるとき以外は使用しないでく - ださい. Portでよくある, strerror() ではなく - sys_errlist[] を使うなどは, FreeBSDでの変更ではなく, - BSDの流儀です. - - FreeBSD 2.xでは__FreeBSD__が2と定義されていま - す. それ以前の版では1になっています. その後の版では, - そのメジャー番号に合うように上がっていきます. - - もし, FreeBSD 1.x システムと FreeBSD 2.x あるいは - FreeBSD 3.x システムを区別する必要があれば, 上で述べた - BSDマクロを使用するのが, - 大抵の場合において正しい答です. もし, FreeBSD特有の変更であ - れば (`ld' を使うときのシェアードライブラリ用のな - オプションなど), __FreeBSD__を使い - `#if __FreeBSD__ > 1' のようにFreeBSD 2.x - および, それ以降のシステムを検出するのはかまいません. - - もし, 2.0-RELEASE以降のFreeBSDシステムを細かく検出したけれ - ば, 以下を使用することができます. - - -#if __FreeBSD__ >= 2 -#include -# if __FreeBSD_version >= 199504 - /* 2.0.5+ release specific code here */ -# endif -#endif - -__FreeBSD_version の値は以下の通りです: - -2.0-RELEASE: 199411 -2.1-CURRENT's: 199501, 199503 -2.0.5-RELEASE: 199504 -2.2-CURRENT (2.1以前): 199508 -2.1.0-RELEASE: 199511 -2.2-CURRENT (2.1.5以前): 199512 -2.1.5-RELEASE: 199607 -2.2-CURRENT (2.1.6以前): 199608 -2.1.6-RELEASE: 199612 -2.1.7-RELEASE: 199612 -2.2-RELEASE: 220000 -2.2.1-RELEASE: 220000 (2.2-RELEASE と同じです) -2.2-STABLE (2.2.1-RELEASE 以後): 220000 (これも同じです) -2.2-STABLE (texinfo-3.9 以後): 221001 -2.2-STABLE (top 導入以後): 221002 -2.2.2-RELEASE: 222000 -2.2-STABLE (2.2.2-RELEASE 以後): 222001 -2.2.5-RELEASE: 225000 -2.2-STABLE (2.2.5-RELEASE 以後): 225001 -2.2-STABLE (ldconfig -R 以後): 225002 -2.2.6-RELEASE: 226000 -2.2.7-RELEASE: 227000 -2.2-STABLE (2.2.7-RELEASE 以後): 227001 -2.2-STABLE (semctl(2) 変更後): 227002 -2.2.8-RELEASE: 228000 -2.2-STABLE (2.2.8-RELEASE 以後): 228001 -3.0-CURRENT (mount(2) 変更以前): 300000 -3.0-CURRENT (mount(2) 変更後): 300001 -3.0-CURRENT (semctl(2) 変更後): 300002 -3.0-CURRENT (ioctl 引数変更後): 300003 -3.0-CURRENT (ELF(2) 移行後): 300004 -3.0-RELEASE: 300005 -3.0-CURRENT (3.0-RELEASE 以後): 300006 -3.0-STABLE (3/4 ブランチ以後): 300007 -3.1-RELEASE: 310000 -3.1-STABLE (3.1-RELEASE 以後): 310001 -4.0-CURRENT (3/4 ブランチ以後): 400000 - - (2.2-STABLEは, 2.2.5-RELESE 以後, "2.2.[5678]-STABLE" と呼ばれ - ることがあります.) - 見ての通り, これは年・月というフォーマットになっていましたが, - バージョン 2.2 から, より直接的にメジャー/マイナー番号を使う - ように変更になりました. 並行していくつかのブランチ(枝分かれし - たバージョン)を開発する場合には, リリースされた日付でそれらの - リリースを分類することが不可能だからです. - (あなたが今 port を作成するときに, 古い -CURRENT 達について心配 - する必要はありません. これは参考のために挙げられているにすぎま - せん.) - - - -

これまで, 何百ものportが作られてきましたが, - __FreeBSD__が正しく使われたのは, 1つか2つの場合だけで - しょう. 以前のportが誤った場所でそのマクロを使っているからと - いって, それをまねする理由はありません. - - - - -

`.include <bsd.port.mk>' の行の後には - なにも書かないようにしてください. 大抵の場合は Makefile の - 中程のどこかで, - &dollar{ARCH} `uname -m' で返される - アーキテクチャ. (例, `i386'). - - &dollar{OPSYS}`uname -s' で返される - オペレーティングシステム (例, `FreeBSD'). - - &dollar{OSREL} オペレーティングシステムの - リリースバージョン (例., `2.1.5', `2.2.7'). - - &dollar{OSVERSION} 数字形式のオペレーティングシステム - のバージョン, 上記の と同じです. - - &dollar{PORTOBJFORMAT} システムのオブジェクト - フォーマット (`aout' あるいは `elf'). - - &dollar{LOCALBASE} 'local' ツリーのベース. - (例, `/usr/local/'). - - &dollar{X11BASE} `X11' ツリーのベース. - (例, `/usr/X11R6/'). - - &dollar{PREFIX} portsのインストール先 - (を参照). - - - -

-# no need to compile lang/perl5 if perl5 is already in system -.if ${OSVERSION} > 300003 -BROKEN= perl is in system -.endif - -# only one shlib version number for ELF -.if ${PORTOBJFORMAT} == "elf" -TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} -.else -TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} -.endif - -# software already makes link for ELF, but not for a.out -post-install: -.if ${PORTOBJFORMAT} == "aout" - ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so -.endif - - - - 付加的ドキュメント - -

普通のマニュアルやinfoファイルのほかにユーザにとって有用だ - と思えるようなドキュメントがある場合には, - ${PREFIX}/share/docの下にインストールしてく - ださい. これは前記と同様, post-installターゲットの - 中からするのがいいでしょう. - -

まず, あなたのportのために新しいディレクトリを作りま - す. どのportのドキュメントか簡単にわかるような名前にする必 - 要がありますので, 普通は${PKGNAME}からバージョ - ン番号を除いた部分を使うといいでしょう. もちろん, ユーザが異 - なるバージョンのものを同時に使うことが予想されるportの場合 - には, ${PKGNAME}をそのまま使ってかまいません. - -

ユーザが/etc/make.confでこの部分を禁止するために - NOPORTDOCSという変数をセットしている場合には, - これらのドキュメントがインストールされないようにしてください. - こんな具合です. - - post-install: - .if !defined(NOPORTDOCS) - ${MKDIR} -p ${PREFIX}/share/doc/xv - ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${PREFIX}/share/doc/xv - .endif - - -

これらのファイルをpkg/PLISTに入れるのを忘れないよ - うにしてください. (packageが/etc/make.conf内の - 変数を読む方法は今のところ存在しませんので, - NOPORTDOCSについては気にしないでください.) - -

インストール時に pkg/MESSAGE ファイルを利用して, - メッセージを表示することができます. 詳細は の節を参照してください. - - - DIST_SUBDIR - -

/usr/ports/distfilesディレクトリ内をあまり散らかさ - ないようにしてください. たくさんのファイルを取ってくるport - や, 数は少なくてもほかのportのファイルと混同されるおそれが - あるファイル (`Makefile' など) がある場合には, - ${DIST_SUBDIR}にportの名前 - (${PKGNAME}からバージョン番号を取った部分を - 使うといいでしょう) を入れてください. すると, - ${DISTDIR}がデフォルトの - /usr/ports/distfilesから - /usr/ports/distfiles/${DIST_SUBDIR}に変更さ - れ, 取ってきたファイルはすべてそのサブディレクトリの中に置か - れるようになります. - -

また, ファイルを取ってくるときにバックアップサイトとして使わ - れるftp.freebsd.orgのディレクトリ名にもこの変数の - 値が使われます. (${DISTDIR}を明示的に指定し - た場合には, ローカルのファイルを置くところは変わりますが, こ - のサイトのディレクトリ名は変わりませんので, 必ず - ${DIST_SUBDIR}を使うようにしてください.) - -

この変数はMakefile中で明示的に指定された - ${MASTER_SITES}には影響しないことに注意して - ください. - - - RCS文字列 - -

RCSが特別な意味を与えている文字列をパッチ内に入れないように - してください. ファイルを私たちのソースツリーに入れる時にこれら - の文字列はCVSによって書き換えられてしまい, あとでまたパッチ - を使おうとした時にうまくいかないことがあります. RCS文字列は - ドル記号 (`$') で囲まれており, - `$Id' や `$RCS' などで始まり - ます. - - - パッチ作成上の注意 - -

diffの再帰 (`-r') フラグを使って再帰的なパッ - チを作るのは大変結構なのですが, でき上がったパッチは必ず目で - チェックして余計なゴミが入っていないことを確認してくださ - い. よくあるのはバックアップファイル同士の変更点, あるいは - Imake や GNU ファイルをまるごと消す場合にはパッチを使わずに - post-extractターゲットで消す方が簡単です. できあがった - 差分に満足したら, それらをソースのファイルごとに別々の - パッチファイルに分割してください. - - - PREFIX - -

なるべくportは${PREFIX}に対する相対パス - にインストールすることができるように心がけてください. - (この変数の値は ${USE_X_PREFIX} か - ${USE_IMAKE} が指定してある時には - ${X11BASE} (デフォルト/usr/X11R6), - そうでない場合には${LOCALBASE} - (デフォルト/usr/local) にセットされます.) - -

サイトによってフリーソフトウェアがインストールされる場所が - 違いますので, ソース内で `/usr/local' や - `/usr/X11R6' を明示的に書かないようにしてくださ - い. Xのプログラムでimakeを使うものについては, これは問題に - はなりません. それ以外の場合には, ソース中のMakefileやスク - リプトで `/usr/local' (imakeを使わないXのプログラ - ムは `/usr/X11R6') と書いてあるところを - `${PREFIX}' に書き換えてください. この値は - portのコンパイル, およびインストール時に自動的に環境変数として - 下位makeに渡されます. - -

USE_X_PREFIXは本当に必要な時(つまり, X のライブラ - リなどとリンクしたり, ${X11BASE} 以下にある - ファイルを参照したりする必要がある時)以外には設定しないでく - ださい. - -

変数${PREFIX}の値はportのMakefileやユー - ザの環境で変更することもできます. しかし, 個々のportが - Makefileでこの変数の値を明示的に設定することはなるべくしない - でください. - -

また, 他のportからインストールされるプログラムやファイル - を指定するときには, 上で述べた変数を使用してください. 例えば, - lessのフルパスをPAGERというマクロに入れた - い場合は, コンパイラに - -DPAGER=\"/usr/local/bin/less\"と渡すかわりに - -DPAGER=\"${PREFIX}/bin/less\" (Xを使う - portの時は - -DPAGER=\"${LOCALBASE}/bin/less\") を渡し - てください. こうしておけば, `/usr/local' がまるごとどこか他 - の場所に移してあるサイトでも, あなたのportがそのまま使える - 可能性が高くなります. - - - ディレクトリ構成 - -

インストール時には${PREFIX}の正しいサブディ - レクトリにファイルを置くように心がけてください. ソフトウェア - によっては新しいディレクトリを一つ作ってファイルを全部それに - 入れてしまうものがありますが, それはよくありません. また, バ - イナリ, ヘッダファイルとマニュアル以外のすべてを - `lib'というディレクトリに入れてしまうportもあります - が, これもBSD的なファイルシステム構成からいうと正しくありま - せん. これは以下のように分散すべきです. `etc' にセッ - トアップ/コンフィグレーションファイル, `libexec' に - 内部で使用されるプログラム (コマンドラインから呼ばれることの - ないコマンド), `sbin' に管理者用のコマンド, - `info' に GNU Info 用のドキュメント, そして - `share' にアーキテクチャに依存しないファイルが入り - ます. 詳細については man hier(7) を見てくださ - い. /usrの構成方針はほとんどそのまま - /usr/localにもあてはまります. USENET ニュースを - 扱う ports は例外です. これらは, ファイルのインストール先として - ${PREFIX}/news を使用します. - - - 空のディレクトリの除去 - -

ports は デインストール(削除) の際には, 自分自身を消去した - あとに, (ディレクトリの)除去をするようにしてください. - これは, 大抵の場合 - : -lib/X11/oneko/pixmaps/cat.xpm -lib/X11/oneko/sounds/cat.au - : -@dirrm lib/X11/oneko/pixmaps -@dirrm lib/X11/oneko/sounds -@dirrm lib/X11/oneko - - といった感じです. - -

しかし, ときとして, 他の port をディレクトリを共有している - ために - : -@unexec rmdir %D/share/doc/gimp 2>/dev/null || true - - これを使えば, たとえ, 他の port がファイルをインストールして - いて, ${PREFIX}/share/doc/gimp が空でない場合でも - エラーメッセージは表示されませんし, - UID - -

もしあなたの portがインストールされるシステム上に特定のユー - ザを必要とする場合は, pkg/INSTALL スクリプトから - pwコマンドを実行して自動的にそのユーザを追加するよ - うにしてください. - net/cvsup-mirror の portが参考になるでしょう. - -

もしあなたの port が, バイナリのパッケージとして - としてインストールされるときにも, コンパイルされたときと同じ - ユーザー/グループ ID を使わなければならないのなら, 50 から 99 - の間で空いている UID を選んで登録してください. - japanese/Wnn の port が参考になるでしょう. - -

既にシステムや他の portで利用されている UIDを使わないように - 十分注意してください. 現在の 50から 99までの間の UIDは以下の - とおりです. - - -majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent -cyrus:*:60:60:the cyrus mail server:/nonexistent:/nonexistent -gnats:*:61:1:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh -uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico -xten:*:67:67:X-10 daemon:/usr/local/xten:/nonexistent -pop:*:68:6:Post Office Owner (popper):/nonexistent:/nonexistent -wnn:*:69:7:Wnn:/nonexistent:/nonexistent -ifmail:*:70:66:Ifmail user:/nonexistent:/nonexistent -pgsql:*:70:70:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh -ircd:*:72:72:IRCd hybrid:/nonexistent:/nonexistent -alias:*:81:81:QMail user:/var/qmail/alias:/nonexistent -qmaill:*:83:81:QMail user:/var/qmail:/nonexistent -qmaild:*:82:81:QMail user:/var/qmail:/nonexistent -qmailq:*:85:82:QMail user:/var/qmail:/nonexistent -qmails:*:87:82:QMail user:/var/qmail:/nonexistent -qmailp:*:84:81:QMail user:/var/qmail:/nonexistent -qmailr:*:86:82:QMail user:/var/qmail:/nonexistent -msql:*:87:87:mSQL-2 pseudo-user:/var/db/msqldb:/bin/sh - - -

このリストを最新の状態に保つためにも, - この範囲の UID や GID を予約するような port を作ったり, - 既存の port にそのような改変を行って我々に送るときには, - UID の予約に関する注意書きをつけてください. - - - 合理的な port - -

Makefile は単純かつ適切であるべきです. もし, Makefile を - 数行短かくできたり, もっと読みやすくできるのであれば, そうし - てください. 例えば, shell の `if' 構文を使う代りに, - make の `.if' 構文を使う, - ${EXTRACT*}の再定義で代用できるのであれば, - do-extractを再定義しない, `CONFIGURE_ARGS += - --prefix=${PREFIX}' とするかわりに, - $GNU_CONFIGURE とする, などです. - - - CFLAGS の尊重 -

${CFLAGS} 変数は尊重すべきです. その port - がこれを無視するのであれば, `NO_PACKAGE=ignores - cflags' を Makefile に加えてください. - - - コンフィグレーション(設定)ファイル -

もしあなたの port が設定ファイルを - ${PREFIX}/etc に置く必要がある場合には, - それを単純にインストールしたり, pkg/PLIST に加え - ては代りに, 見本となるファイルを suffix ( - `<filename>.sample' が良いでしょう) を付けて - インストールして, - を表示して, ソフトウエアを動かす前に, ユーザがそのファイル - をコピーして編集をしなければならないことを知らせましょう. - - - Portlint -

送付や commit をする前に - を使ってチェック - しましょう. - - - フィードバック - -

Portを作るためにソフトウェアに変更を加えたら, なるべく原 - 作者にその旨を伝えてパッチ等を送ってください. これらが次のリ - リースに取り入れられれば, アップグレードが楽になります. - - - その他諸々 - -

pkg/DESCR, pkg/COMMENT, - pkg/PLIST などのファイルは, それぞれ2重にチェックし - てください. 再検討してもっと良い記述があれば, それに置きかえ - てください. - -

GNU General Public License(GNU一般公有使用許諾)のコピーは - (すでにあるので)コピーしないでください, おねがいします. - -

法律に関することには, 十分注意をはらってください. - 私達に法律に反するような形でソフトフェアの配布をさせない - でください! - - - 困ったら.... - -

私たちに質問を送る前に, 既存のportの例とbsd.port.mkを - ちゃんと読んでください! ;) - -

それでもわからないことがあったら, 一人で悩まないでどんどん - 質問してください! :) - - - Makefileのお手本 - -

これはportのMakefileを作る際のお手本です. かぎかっこ - ([])内のコメントは忘れずに取ってください. - -

変数の順番, 段落の間の空行など, Makefileを作るときはなるべくこ - の形式にしたがってください. この形式は重要な情報が簡単に見つけら - れるように設計されています. を使って Makefile をチェックすることが - 推奨されています. - - - [ヘッダ -- どのようなportのMakefileかすぐにわかるようになっています] - # New ports collection makefile for: xdvi - # Version required: pl18 ["1.5alpha" みたいなのでも結構です] - [この Makefile の最初の版が作成された日付です. この port をアップグ - レードするときには変えないでください.] - # Date created: 26 May 1995 - [このソフトウェアを最初に FreeBSD に port した人の名前, つまり, - この Makefile の最初の版を書いた人です. この port をアップグレー - ドするとき, この行も変えないでください.] - # Whom: Satoshi Asami - # - # $Id$ - [ ^^^^ この部分は, CVS ツリーに入れる時に自動的に RCS の ID 文字列に - 置き換えられます.] - # - - [Port自体, およびオリジナルのソースを取ってくるところを記述する部分. - 最初は必ずDISTNAME, そして必要ならPKGNAME, CATEGORIES, 続いて - MASTER_SITESがおかれ, さらに MASTER_SITE_SUBDIR がおかれることもあり - ます. そのあと, EXTRACT_SUFX か DISTFILES を指定することも可能です] - DISTNAME= xdvi - PKGNAME= xdvi-pl18 - CATEGORIES= print - [MASTER_SITE_* マクロを使用しない場合は, - 最後のスラッシュを忘れないように ("/")!] - MASTER_SITES= ${MASTER_SITE_XCONTRIB} - MASTER_SITE_SUBDIR= applications - [ソースファイルが標準の ".tar.gz" 形式でない時にこれを使いましょう] - EXTRACT_SUFX= .tar.Z - - [配布パッチのセクション -- ない場合もあります] - PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ - PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz - - [保守責任者 -- これは *必ず* 必要です. 担当者 (あなた) 自身, あるいは - 担当者に素早く連絡をとれる人のアドレスを書いてください. どうしてもこ - こに自分のアドレスを書くのがいやな人は "ports@FreeBSD.ORG" と書いて - もいいです] - MAINTAINER= asami@FreeBSD.ORG - - [依存するport -- ない場合もあります] - RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript - LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm - - [ここには標準のbsd.port.mkの変数で, 上のどれにもあてはまらないものを - 書きます] - [コンフィグレーション, コンパイル, インストールなどの時に質問をする - なら...] - IS_INTERACTIVE=yes - [${DISTNAME}以外のディレクトリにソースが展開されるなら...] - WRKSRC= ${WRKDIR}/xdvi-new - [配布されているパッチが ${WRKSRC} に対する相対パスで作られてい -ない場合にこの変数の指定が必要かも...] - PATCH_DIST_STRIP= -p1 - [GNU autoconfによって生成された "configure" スクリプトを走らせたいなら...] - GNU_CONFIGURE= yes - [/usr/bin/makeでなく, GNU makeを使わないといけないなら...] - USE_GMAKE= yes - [これがXのアプリケーションで "xmkmf -a" を走らせたいなら...] - USE_IMAKE= yes - [などなど] - - [下の方のルールで使う非標準の変数] - MY_FAVORITE_RESPONSE= "yeah, right" - - [そして, 特別なターゲット, 使用順に] - pre-fetch: - i go fetch something, yeah - - post-patch: - i need to do something after patch, great - - pre-install: - and then some more stuff before installing, wow - - [最後には必ず] - .include - - - - Packageの名前 - -

Packageの名前は以下のルールにしたがってつけてください. こ - れはpackageのディレクトリを見やすくするためで, 無秩序な名前 - がたくさん並んでいるとユーザが使いづらくなるのではという心配か - らです. (FTPサイトなどにはたくさんpackageがありますからね.) - -

Packageの名前は以下のようにしてください. - - -[<言語>-]<名前>[[-]<オプション>]-<バージョン.番号>; - - - ${DISTNAME} が上記の形式になっていない場合に - は, ${PKGNAME} をそのようにしてください. - - - FreeBSDはユーザの慣れ親しんだ言語のサポートに力を入れて - います. 特定の言語のためのportのpackage名には - `<言語>' に ISO-639 で定義されている言語名の略称を入れ - てください. 例えば, 日本語なら `ja', ロシア語なら `ru', ベト - ナム語なら `vi', 中国語なら `zh', 韓国語ならば `ko', ドイツ - 語なら `de', といった具合です. - - `<名前>' の部分は原則的にはすべて英小文字 - を使います. 例外はたくさんのプログラムが入っている巨大なport - の場合で, XFree86 (ほんとにあるんですよ) やImageMagickな - どがこれにあたります. そうでない場合には, 名前の大文字を小文 - 字に (少なくとも最初の一字だけは) 変えてください. - もし, 大文字であることが重要な場合(例えば, 1文字の名前, - R とか V)には, あなたの裁量で大文字を使うのも良いでしょう. - Perl 5 のモジュールでは, 頭に `p5-' を付け, 2重コロン(::) - のセパレータをハイフン(-)に置きかえるしきたりになっています. - 例えば, `Data::Dumper' は `p5-Data-Dumper' - になります. また, その - ソフトウェアの名前として通常使われるものに番号, ハイフン, あ - るいは下線が入っている場合には, それらを使うことも構いません - (`kinput2' など). - - コンパイル時に環境変数やmakeの引数などで - - を変えてコンパイルできる場合, `<compiled.specifics>' - にそのコンパイル時のデフォルトを入れてください - (ハイフンはあってもなくてもかまいません). 用紙のサイズ, - あるいはフォントの解像度などがこれにあたります. - - バージョン番号は数字とアルファベットからなり, ピリオド - (.) で区切ります. アルファベットは二文字以上続けてはいけませ - ん. ただ一つの例外は「パッチレベル」を意味する `pl' で, それ - 以外にバージョン番号がまったくついていない場合にのみ使うことがで - きます. - - -

では, ${DISTNAME}を正しい - ${PKGNAME}に直す例を見てみましょう: - - -DISTNAME PKGNAME 理由 -mule-2.2.2 mule-2.2.2 まったく問題なし -XFree86-3.1.2 XFree86-3.1.2 同上 -EmiClock-1.0.2 emiclock-1.0.2 プログラム一つだけの時は小文字のみ -gmod1.4 gmod-1.4 `<名前>' のあとにハイフンが必要 -xmris.4.02 xmris-4.02 同上 -rdist-1.3alpha rdist-1.3a `alpha'のような文字列は使えない -es-0.9-beta1 es-0.9b1 同上 -v3.3beta021.src tiff-3.3 なんなんでしょう ;) -tvtwm tvtwm-pl11 バージョン番号は必ず必要 -piewm piewm-1.0 同上 -xvgr-2.10pl1 xvgr-2.10.1 `pl' が使えるのは他にバージョン番号がない場合のみ -gawk-2.15.6 ja-gawk-2.15.6 日本語バージョン -psutils-1.13 psutils-letter-1.13 コンパイル時に用紙のサイズを指定 -pkfonts pkfonts300-1.0 300dpiフォント用のpackage - - -

オリジナルのソースにまったくバージョン情報が見当たらず, また原作 - 者が新しいバージョンをリリースする可能性が低いときには, バージョ - ン番号として `1.0' を使えばいいでしょう (上記のpiewmの例がこ - れにあたります). そうでない場合には, 原作者に聞くか, 日付 (`年. - 月.日') を使うなどしてください. - - - カテゴリ - -

すでに御存知のように, ports はいくつかのカテゴリに - 分類されています. これを有効に利用するためには, port を - 行う人々とユーザが, そろぞれのカテゴリーが何であるか, - どのようにしてカテゴリに分類するかを理解する必要があります. - - - 現在のカテゴリのリスト - -

まず, これが現在の port のカテゴリーのリストです. - アスタリスク(pkg/COMMENT に1行の記述 - があります(例, archivers/pkg/COMMENT). - - - Ports to support the AfterStep - window manager. - Archiving tools. - Astronomical ports. - Sound support. - Benchmarking utilities. - Biology-related software. - Computer aided design tools. - Chinese language support. - Communication software. Mostly software - to talk to your serial port. - Character code converters. - Databases. - Things that used to be on the - desktop before computers were invented. - Development utilities. Do not put - libraries here just because they are libraries -- unless - they truly don't belong to anywhere else, they shouldn't be - in this category. - General editors. Specialized editors - go in the section for those tools (e.g., a - mathematical-formula editor will go in Emacs-lisp ports. - Emulators for other operating - systems. Terminal emulators do Games. - German language support. - Graphics utilities. - Japanese language support. - Ports that form the K Desktop Environment - (kde). - Korean language support. - Programming languages. - Mail software. - Numerical computation software and other - utilities for mathematics. - MBone applications. - Miscellaneous utilities -- basically - things that doesn't belong to anywhere else. This is the - only category that should not appear with any other - non-virtual category. If you have Miscellaneous networking software. - USENET news software. - Ports from the OffiX suite. - Software support for the 3Com Palm(tm) series. - Ports that require perl version 5 to - run. - Various programs from Plan9. - Printing software. Desktop publishing - tools (previewers, etc.) belong here too. - Software written in python. - Russian language support. - Security utilities. - Command line shells. - System utilities. - Ports that use tcl version 7.5 to run. - Ports that use tcl version 7.6 to run. - Ports that use tcl version 8.0 to run. - Ports that use tcl version 8.1 to run. - Text processing utilities. It does - not include desktop publishing tools, which go to - Ports that use tk version 4.1 to run. - Ports that use tk version 4.2 to run. - Ports that use tk version 8.0 to run. - Ports that use tk version 8.1 to run. - Vietnamese language support. - Ports to support the WindowMaker - window manager. - Software related to the World Wide Web. - HTML language support belong here too. - The X window system and friends. This - category is only for software that directly support the - window system. Do not put regular X applications here. If - your port is an X application, define X11 clocks. - X11 file managers. - X11 fonts and font utilities. - X11 toolkits. - X11 window managers. - - - - 適切なカテゴリの選択 - -

多くのカテゴリーに重なるので, どれを '第一'カテゴリにするか - を決めなければならないことがたびたびあるでしょう. これを - うまく決めるルールがいくつかあります. 以下はその優先順の - リストで, 優先度の高いものから低いものの順に書いてあります. - - - 言語特有のカテゴリがまず最初です. 例えば日本語の X11 - のフォントをインストールする port の場合, japanese x11-fonts' となるでしょう. - - より特徴的なカテゴリーが, 一般的なカテゴリーより優先さ - れます. 例えば, HTML エディタの場合は `www editors' - となり, 逆順にはしないでください. また, port が - もし, あなたの port が他のどのカテゴリにも属しないばあい - には, -

もし, あなたがカテゴリについて自信が持てない場合には, そのこと - を - このドキュメントと ports システムの変更 - -

もしあなたが, たくさんの ports の保守をしているのであれば, - &a.ports メーリングリストの内容をフォロウすることを - 考えてください. Ports のしくみについての重要な変更点はここに - アナウンスされます. 最新の変更点については, いつでも, で詳細な情報を得ることができま - す. - - - やっとおしまい! - -

いやはや, 長い文章ですみません. ここまで読んでくださった方に - は感謝, 感謝でございます. (_ _) - -

さあ, portの作り方がわかったところで, 世界中のソフトウェア - をport化しましょう. FreeBSDプロジェクトに貢献するには, それ - がもっとも簡単な方法です! :) diff --git a/ja/handbook/ports.sgml b/ja/handbook/ports.sgml deleted file mode 100644 index 954a360ce5..0000000000 --- a/ja/handbook/ports.sgml +++ /dev/null @@ -1,820 +0,0 @@ - - - - -アプリケーションのインストール : ports コレクション - -

原作: &a.jraynard;. -

訳: &a.masaki;, &a.saeki;. -11 November 1996. - -FreeBSD の ports コレクションを利用すると, 最小限の労力で -非常に幅広くのアプリケーションのコンパイルとインストールがおこなえます. - -

やってみたことのある方はよくご存知でしょうが, オープンな規格とは -全くの誇大広告であって, あるプログラムを異なるバージョンの Unix 上で -動作させることは退屈で手間のかかる仕事です. -求めているプログラムが自分のシステムでうまくコンパイルでき, -正しいところにインストールできて, 完璧に動作するとしたらとてもラッキーです. -しかし, あいにくこれは滅多にないことなのです. -ほとんどのプログラムについて, あなたは髪を掻きむしることになるでしょうし, -かなりのプログラムでは, 白髪混じりの頭になってしまったり, あるいは慢性の -脱毛症にすら なってしまうかもしれません... - -

いくつかのソフトウェアディストリビューションでは, 設定用のスクリプトを -配布することでこの問題を解決しようとしています. -これらのスクリプトの中には非常に精巧なものもありますが, 残念ながら, -中にはこれまで聞いたこともないようなシステムの名前をしゃあしゃあと -言い放ったうえに, まるでシステムレベルの Unix プログラミングに関する -最終試験のような, たくさんの質問をしてくる場合があります. - (例えば, 「このシステムの gethitlist 関数は fromboz への const ポインタを -返しますか? それとも const fromboz へのポインタを返しますか?」, -「このシステムには Foonix スタイルの, 容認できない例外処理をおこなう -ルーチンがありますか? もしもないとしたら, それはなぜですか?」) - -

幸いなことに, ports コレクションがあれば, これらのきつい作業はすべて -完了しています. 'make install' とタイプするだけで, 動作するプログラムを -入手することができるのです. - - なぜ ports コレクションを作ったのか? - -

FreeBSD の基本システムは, 非常に多くのツールやユーティリティから -構成されています. しかし, よく使われるプログラムのうち多くのものが, -この基本システムには含まれていません. その理由は:- - - - ある Lisp ベースのエディタのように, それがないと生きていけないと -言う人もいれば, ディスクの無駄だと言う人もいるようなプログラム. - - 基本システムに組み込むには特殊すぎるプログラム. - (CAD やデータベースなど.) - - 「時間のある時に, ちょっと見ておかなければ」というような類の, -それがシステムに含まれていないことが致命的とは言えないプログラム. - (おそらく, 何らかの言語などでしょう.) - -FreeBSD のような真面目なオペレーティングシステムの一部として -供給するには遊びが過ぎるようなプログラム. ;-) - - たくさんのプログラムを基本システムに組み込んだとしても, もっともっと -組み込みたいという要求が出てくるので, どこかで制限を引かなくてはならないため. - (そうしなければ FreeBSD の配布物は, とてつもなく膨大になってしまうでしょう.) - - -

すべての人が自分のお気に入りのプログラムを手作業で移植しなければ -ならないとしたら, (途方もない膨大な作業の繰り返しをさておいたとしても) -それは明らかに不合理な話です. -そこで, FreeBSD プロジェクトでは, 標準のツールを使って移植のプロセスを -自動化する巧妙な方法を考え出しました. - -

なお, これは単純ながら非常に柔軟なツールを組み合わせることで, -非常に強力な働きをさせるという「Unix 流」の作業の優れた実例です. - -ports コレクションはどのように動くのでしょうか? -

-インターネットでは通常, の形で -プログラムが配布されています. これは, Makefile とソースコードで構成され, -普通は何らかの説明書 (あいにく, いつもわかりやすく書かれているとは -限りませんが) が付属しています. -ことによるとコンフィグレーションスクリプトも含まれているかもしれません. -

-標準的な手順では, FTP で tarball を入手して, 適当なディレクトリで展開します. -次に説明書を読んで, 必要な変更をおこないます. そして, 設定スクリプトを実行し, -標準の make コマンドを使ってソースのコンパイルとインストールをおこないます. -

-FreeBSD の ports も tarball の仕組みを利用していますが, これはユーザが -苦労して作業することを期待したものではなく, どのようにすれば FreeBSD 上で -そのプログラムが動くようになるかという「ノウハウ」を を使用して収めているものです. -スケルトンは, カスタマイズ済みの も -提供していますので, ほとんどすべての ports は同じ手順でインストールすることが -できます. -

-もしあなたが ( または - にある) ports スケルトンを見ていて, そこに潜んでいる -あらゆる種類の先端的なロケット工学的なものを見つけられると期待していると, -つまらなそうなファイルやディレクトリがそこにあるだけなのを見て, -がっかりするかもしれません. - (ports を手に入れる方法については, すぐに の節でお話します.) - -

「一体どうしたらいいんだ? ここにはソースコードが ないじゃないか?」 -というあなたの叫びが聞こえるようです. - -

心配いりません. おとなしく読んでいけば, すべてが (たぶん) 明らかに -なるでしょう. -試しに ports をインストールして, 何が起きるのかを見てみましょう. -ここではサンプルとして開発者向けの便利なツール, `ElectricFence' を選択します. -このスケルトンを選んだ理由は, 他の ports に比べても素直で理解しやすく -書かれているからです. - -Note 自宅で試してみる場合には, root になる必要があるでしょう. - - - # cd /usr/ports/devel/ElectricFence -# make install ->> Checksum OK for ElectricFence-2.0.5.tar.gz. -===> Extracting for ElectricFence-2.0.5 -===> Patching for ElectricFence-2.0.5 -===> Applying FreeBSD patches for ElectricFence-2.0.5 -===> Configuring for ElectricFence-2.0.5 -===> Building for ElectricFence-2.0.5 -[大量のメッセージをコンパイラが出力します...] -===> Installing for ElectricFence-2.0.5 -===> Warning: your umask is "0002". - If this is not desired, set it to an appropriate value - and install this port again by ``make reinstall''. -install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.a /usr/local/lib -install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.3 /usr/local/man/man3 -===> Compressing manual pages for ElectricFence-2.0.5 -===> Registering installation for ElectricFence-2.0.5 - - -

ここではあなたが混乱しないように, コンパイル時の出力を -すべて取り除いてあります. -

もしもあなた自身で実行されたら, 最初にこのような -出力結果が得られるはずです:- - -

`make' プログラムは, あなたの手元にソースコードがないことを検出し, -処理を続けられるようにソースを FTP でダウンロードしようとします. -この例では, あらかじめ手動でソースコードを用意してあったので, -持ってくる必要はありませんでした. - -

では, 続けて `make' プログラムが何をしているのか見てみましょう. - - - ソースコード のありかを -確認します. -手元にファイルが存在しなければ, FTP サイトから入手しようとします. - - テストを実行して, -その tarball が事故か何かで途中で切れていたり, ASCII モードで -ダウンロードされていたり, 転送中にニュートリノによって傷められたりして -改変されたりしていないかどうかを確認します. - -tarball を一時的な作業用ディレクトリに展開します. - -FreeBSD 上でコンパイルしたり, 動作させるのに必要な -すべての をソースコードに当てます. - - 構築のために必要なコンフィグレーションスクリプトを実行します. -コンフィグレーションスクリプトの質問には正確に答えてください. - - (いよいよ!) ソースコードをコンパイルします. - - 実行形式のプログラム, マニュアル, その他のサポートファイルを, -システムのプログラムと混ざってしまわないように /usr/local 以下に -インストールします. ports はすべて同じ場所にインストールされ, -システムのあちこちにばらまかれることはありません. - - インストール結果はデータベースに登録されます. これにより, -インストールしたプログラムがもしも気に入らなかったときも, システムから -すべての痕跡をきれいに することができます. - - - -

以上のステップが make の出力と一致しているかどうか確認してください. -今まで確認していなかったのなら, 今からするようにしてください! - -FreeBSD ports コレクションの入手 -

-あるプログラムの FreeBSD port を入手するには二つの方法があります. -ひとつは を使う方法で, -もうひとつは を使う方法です. - -CD-ROM からコンパイルする -

- - CD-ROM にある port スケルトンを使いたければ, 他に /etc/make.conf の -変数を以下のようにセットする方法があります: - - -PORTSDIR= /cdrom/ports -DISTDIR= /tmp/distfiles -WRKDIRPREFIX= /tmp - - -(任意の十分な空きスペースの場所を "/tmp" とおいています). 次に,"/cdrom/ports" -下の適宜のサブディレクトリに cd して, 例のごとく "make install" とタイプします. - -ライセンスの制限により, いくつかの ports でオリジナルのソースコードを -CD-ROM に入れることができなかったものがあることに注意してください. この場合, - の -節を参照してください. - - インターネット経由で ports をコンパイルする -

-CD-ROM を持っていなかったり, その ports の最新バージョンを確実に入手したい -場合は, その ports の を -ダウンロードする必要があります. ところで, これは落し穴が -たくさんある作業に見えるかもしれませんが, 実際には非常に簡単です. -

-初めに、あなたの動かしている FreeBSD がリリースバージョンなら -で -その FreeBSD 用の ``アップグレードキット''を手にいれてください. -このパッケージには, 最新の ports をコンパイルするのに必要な, -リリース以降に更新されたファイルが含まれています. -

-FreeBSD の FTP サーバーがその場で - を作成できることを利用して -スケルトンを入手すると非常に便利です. -ここでは例として databases ディレクトリにある -gnats プログラムを使って説明します. (角型かっこの中の文はコメントなので, -実際に実行する場合には, これをタイプしないでください!):- - - - # cd /usr/ports - # mkdir databases - # cd databases - # ftp ftp.freebsd.org - [ユーザ名 `ftp' でログインし, パスワードを要求されたら, あなたの電子メール -アドレスを入力してください. バイナリモードを (イメージモードと呼ばれることも -あります) 使うのをお忘れなく!] - > cd /pub/FreeBSD/ports/ports/databases - > get gnats.tar [gnats スケルトンの tarballs を取得] - > quit - # tar xf gnats.tar [gnats スケルトンの展開] - # cd gnats - # make install [gnats の構築とインストール] - - -さて何が起きるでしょうか? FTP サイトにいつも通りに接続して, データベースの -サブディレクトリに移動します. `get gnats.tar' とコマンドを入力すると, -FTP サイトでは gnats ディレクトリを にしてくれるのです. -

-gnats スケルトンを展開したら, gnats ディレクトリへ移動して ports を構築します. - 説明したように, make の過程で -手元にソースコードがないことを検出すると, ソースコードを取得してから -展開し, パッチ当てと構築をおこないます. -

-それでは, 少し冒険をしてみましょう. 一つの ports スケルトンを -取得するかわりに, たとえば ports コレクションの中のデータベースの -スケルトンをすべて, サブディレクトリ全体を取得してみましょう. -やり方はほとんど同じです:- - - - # cd /usr/ports - # ftp ftp.freebsd.org - [ユーザ名 `ftp' でログインし, パスワードを要求されたら, あなたの電子メール -アドレスを入力してください. バイナリモードを (イメージモードと呼ばれることも -あります) 使うのをお忘れなく!] - > cd /pub/FreeBSD/ports/ports - > get databases.tar [データベースディレクトリの tarballs を取得] - > quit - # tar xf databases.tar [すべてのスケルトンを展開] - # cd databases - # make install [データベース ports 全部の構築とインストール] - - -わずかばかりの簡単なコマンドで, この FreeBSD マシン上にデータベース -プログラムを一揃い手に入れてしまいました! 一つの ports スケルトンを取ってきて -それを構築する場合との違いは, すべてのディレクトリを一度に取得して, -全部を一度にコンパイルしたということだけです. かなり感動的だと思いませんか? -

-たくさんの ports をインストールする -つもりなら, おそらくすべての ports ディレクトリをダウンロードしておく -価値があるでしょう. - - スケルトン -

-スケルトン (訳注: skeleton とは骸骨のことです) とは, 締め切りを守るため, -食事をするのを忘れるほど仕事にのめり込んだハッカーたちのなれの果ての -ことでしょうか? FreeBSD の屋根裏に潜む, なにか気持ちの悪いものでしょうか? -いいえ, ここでスケルトンの意味するところは, ports の魔術を実現するのに -必要とされるすべてのものを提供する最小の骨組みのことです. - -Makefile -

-スケルトンのもっとも重要な要素は Makefile です. Makefile は ports を -どのようにコンパイルし, インストールをおこなうかを指示する -いろいろな命令を含んでいます. 以下に ElectricFence の Makefile を示します:- - - -# New ports collection makefile for: Electric Fence -# Version required: 2.0.5 -# Date created: 13 November 1997 -# Whom: jraynard -# -# $Id: ports.sgml,v 1.19 1999-03-10 15:17:24 motoyuki Exp $ -# - -DISTNAME= ElectricFence-2.0.5 -CATEGORIES= devel -MASTER_SITES= ${MASTER_SITE_SUNSITE} -MASTER_SITE_SUBDIR= devel/lang/c - -MAINTAINER= jraynard@freebsd.org - -MAN3= libefence.3 - -do-install: - ${INSTALL_DATA} ${WRKSRC}/libefence.a ${PREFIX}/lib - ${INSTALL_MAN} ${WRKSRC}/libefence.3 ${PREFIX}/man/man3 - -.include - - -"#" で始まる行は, 人間のためのコメント行です. - (ほとんどの Unix のスクリプトと同じですね.) -

-`DISTNAME" は -の名前から拡張子を取ったものです. -

-`CATEGORIES" はこのプログラムの種類を示します. -この場合, 開発者向けのユーティリティということになります. -完全なリストはこのハンドブックの -をみてください. -

-`MASTER_SITES" はマスタ FTP サイトの URL です. もしローカルシステムに - がない場合には, ここから取得します. -これは信頼できると考えられているサイトで, 通常はそのプログラムを -インターネット上で公式に配布しているサイトです. - (そのソフトウェアがインターネット上で「公式に」配布されているとしたら) -

-`MAINTAINER" は, 例えば新しいバージョンのプログラムが出た場合に, -必要であればスケルトンの更新をおこなう保守担当者の電子メールアドレスです. -

-次の数行はとりあえず飛ばします. - - .include - -この行は, この ports に必要なその他の命令やコマンドは `bsd.port.mk" に -入っているということを示しています. これらはすべての ports で共通のものなので, -それぞれの Makefile に書いておく必要はありません. そのため単一の標準ファイルに -まとめられているのです. -

-ここでは Makefile がどう働くかを詳細に調査するのが目的ではありませんので, -``MAN3'' で始まる行は, インストールの後に ElectricFence のマニュアルを -圧縮するために使用される, と言っておくだけで充分でしょう. -これにより, 貴重なディスクスペースが保護されているわけです. -オリジナルの port では ``install'' ターゲットが用意されていないので, -``do-install'' からの 3 行が この ports によって生成されたファイルを -正しい場所に置くために使用されます. - -files ディレクトリ -

-ports のチェックサム算出には MD5 アルゴリズムを使用しているので, -この を含んでいる -ファイルは "md5" と呼ばれます. -ちょっと混乱するかもしれませんが, このファイルは "files" という -名前のディレクトリに置かれています. -

-このディレクトリは, ports に必要だけれども, 他のどこにも属さない -雑多なファイルも含んでいます. - -patches ディレクトリ -

-このディレクトリには, FreeBSD ですべてを正常に動作させるのに -必要な が含まれています. - -pkg ディレクトリ -

-このディレクトリには, 非常に役立つ三つのファイルが含まれています:- - - -COMMENT - プログラムについての 1 行の説明. - - -DESCR - より詳細な説明. - - -PLIST - プログラムのインストール時に作成される, すべてのファイルのリスト. - - -ports が動かないのですが、どうしたらよいでしょう - -

おやおや. では, 次の四つのどれかをやってみてください: - - - 自分で修正する. ports の仕組みに関する技術的な詳細については, - をご覧ください. - - 苦情をいう. これは電子メールで * だけ * にしてください! - このようなメールの宛先は &a.ports; です. - なお, 必ず port の名前やバージョン, その port のソースや distfile(s) を - どこから入手したか, どんなエラーが発生したのかを書いておいてください. - - 忘れてしまう. これはほとんどの場合最も簡単な方法です. - ports のプログラムのうち必要不可欠な物はごくわずかです. - - FTP サイトからコンパイル済みのパッケージを入手する. - マスターパッケージコレクションは FreeBSD の FTP サイトの - に置いてありますが, - まずあなたの近くのローカルミラーサイトを確認してください! - - ソースからのコンパイルに挑戦するよりも, パッケージを使うほうが - (全体的に見て) ずっと確実に動作するでしょうし, - より手っ取り早い方法でもあります. - システムにパッケージをインストールするには, pkg_add(1) - を使ってください. - - - - 質問と回答集 -

- - -Q. 私はモデムについての議論をしているのかと思っていました??! -

-A.なるほど, あなたはきっとコンピュータの背面についている -シリアルポートのことだと思ってしまったのでしょう. -あるバージョンの Unixから別のバージョンの Unix へとプログラムを -移殖することを `porting' というのですが, ここで我たちは `porting' の結果 -という意味で `port' を使っています. -(コンピュータに関わる人々の悪しき習慣として, ひとつの同じ言葉を複数の -まったく違う意味として使うことがあるのです.) - - -Q. 私は, 標準以外のプログラムのインストールには packages を使うと -思っていたのですが. -

-A. そのとおり. 通常は packages が最も手早くて簡単な方法です. - - -Q. それではどうして面倒な ports があるのですか? -

-A. いくつかの理由があります:- - - - いくつかのソフトウェアのライセンス条件には, -バイナリではなくソースコードでの配布を求めているものがあります. - - バイナリ配布を信用していない人もいます. 少なくともソースコード -があれば, ソースコードを読んで, (理論的には) 潜在的な問題点を自分で -見つけ出すこともできるはずです. - - ローカルなパッチを入手した場合, それを自分で追加するために -ソースコードが必要になります. - - プログラムがいかにコンパイルされるべきかについて, -あなたはパッケージを作った人とは異なる見解を持っているかもしれません. -どんな最適化オプションをつけるべきかとか, デバッグバージョンを作ってから -それを strip するべきだとか, いや, そうするべきでない, などなど, -確固たる見解を持っている人もいるでしょう. - - ソースコードを手元に置いておきたい人たちもいます. -彼らは, 退屈したときに眺めたり, あちこち解析してみたり, ソースコードを -借用したり (もちろん, ライセンスが許せばの話ですが) するのです. - - あなたがソースコードを持っていなければ, それはソフトウェアとは -言えませんね! ;-) - - -

-A. パッチとは, あるバージョンから他のバージョンへどのように変更するかを -示す, (通常は) 小さなファイルです. 「23 行目を削除」, 「468 行目の後に -これらの 2 行を追加」, または「197 行目をこのように変更」というような -内容を含んでいます. -これは, `diff' という名前のプログラムで生成されます. - -

-A. .tar または .tar.gz という拡張子を持つファイルです. -(.tar.Z のようなバリエーションも -ありますし, DOS のファイルシステム用に .tgz と短縮される場合もあります.) -

-これは基本的に, 一つのファイルに固めた (.tar) ディレクトリツリーです. -圧縮されている (.gz) 場合もあります. -これは元々 -これらのファイルの中身を見たり, 展開したりすることもできます. -FreeBSD の基本システムに付属する Unix 標準の tar コマンドを使ってみると -次のようになります:- - - - tar tvzf foobar.tar.gz # foobar.tar.gz の内容を見る - tar xzvf foobar.tar.gz # カレントディレクトリに内容を展開する - tar tvf foobar.tar # foobar.tar の内容を見る - tar xvf foobar.tar # カレントディレクトリに内容を展開する - - -

-A. これは, チェックしたいファイル中のすべてのデータを加えて生成した -数値です. 何か文字が書き換わっていたら, チェックサムが一致しなくなります. -そのため, 単純な比較だけで違いを見つけることができるのです. - (実際には, 文字の位置が入れ替わるなどの, 単純な加算ではわからない問題も -見つけることができる複雑な方法で計算されています.) - - -Q. 私は, -にしたがって ports をインストールしていました. -kermit をインストールしようとするまではうまくいっていました:- - - - # make install - >> cku190.tar.gz doesn't seem to exist on this system. - >> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/. - - -なぜ cku190.tar.gz が見つからないのでしょうか? -不良品の CD-ROM を買ってしまったのでしょうか? -

-A. Kermit の権利を持つチームは, 私たちの CDROM に kermit の tarball を -入れることを許可しませんでした. 申し分けありませんが, 手動でファイルを -入手してください. -このようなエラーメッセージが出たのは, あなたがそのときインターネットに -接続していなかったためです. あらかじめ上記のサイトのいずれかからファイルを -ダウンロードしておけば, プロセスを再開することができます. - (ダウンロードの際には, あなたに最も近いサイトを選ぶようにしてください. -そうすれば, 時間とインターネットの帯域の節約になります) - - -Q. kermit の tarball を入手しましたが, /usr/ports/distfiles に -ファイルを置こうとすると, 書き込み権がないというエラーがでます. -

-A. ports のしくみは /usr/ports/distfiles から tarball を探します. -しかし, これは read-only の CD-ROM へのシンボリックリンクなので, -ここにファイルを置くことはできません. -次のようにすれば, 他の場所を探すよう ports に指示することができます. - - DISTDIR=/where/you/put/it make install - - - -Q. ports では, すべてを /usr/ports に置いたときだけ動作するのでしょうか? -システムの管理者によると, 私の個人的なファイルは -/u/people/guests/wurzburger に入れなければならないのですが, -これでは うまくいかないように思います. -

-A. PORTSDIR 変数と PREFIX 変数を変更することで, 違うディレクトリを -使用することができます. 例えば, - - - make PORTSDIR=/u/people/guests/wurzburger/ports install - - -とすると, ports は /u/people/guests/wurzburger/ports でコンパイルされ, -すべて /usr/local 以下にインストールされます. - - - make PREFIX=/u/people/guests/wurzburger/local install - - -この場合, コンパイルは /usr/ports でおこない, -/u/people/guests/wurzburger/local にインストールします. -もちろん, 以下のように両者を組み合わせることも可能です. - - - make PORTSDIR=.../ports PREFIX=.../local install - - - (省略せずに記述したら, このページに収めるには長すぎるのですが, -考え方は理解していただけたと思います) -

-もし ports をインストールするたびに, これらを毎回タイプするのが -気に入らないのであれば, (正直に言って, 誰もそう思わないでしょう) -これらを環境変数にセットしてしまうという手があります. - - -Q. 私は, FreeBSD の CD-ROM を持っていませんが, 私はすべての tarball を -私のシステムに置いておきたいのです. そうすれば, 私は ports をインストール -するたびに, 毎回ダウンロードが終わるのを待たなくてすむでしょう. -これを一度におこなう簡単な方法はありませんか? - -

-A. ports コレクション全体の tarball を持ってくるには, 次のようにしてください. - - - # cd /usr/ports - # make fetch - - -ports の下のディレクトリひとつの tarball を持ってくるには, 次のように -してください. - - - # cd /usr/ports/directory - # make fetch - - -ports をひとつだけ持ってくる方法は, きっと既にご存知だと思います. - - -Q. マスタ FTP サイトから tarball を持ってくるより, 近くにある FreeBSD の -ミラーサイトから持ってきた方が速いはずです. MASTER_SITES に書かれている -サイト以外から持ってくるように ports に指示する方法はありませんか? -

-A. もちろんあります. 例えば ftp.FreeBSD.ORG が MASTER_SITES に書かれている -サイトより近いとしたら, 以下のようにしてください. - - # cd /usr/ports/directory - # make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/distfiles/ -fetch - - - -Q. ダウンロードをする前に, どんなファイルが必要なのか知りたいのですが. -

-A. 'make fetch-list' とすると, ports に必要なファイルの一覧を表示できます. - - -Q. ports のコンパイルを途中で止める方法はありますか? -私はインストールをする前にいろいろとソースコードを解析したいのですが, -毎回 control-C を打たなければならないのが少し面倒です. -

-A. 'make extract' を実行すると, ファイル転送とソースコードの展開まで -おこなったところで停止します. - - -Q. 自分で ports を作ろうとしています. 私の作ったパッチが -正しく処理できることを確認できるように, コンパイルを止めたいのです. -パッチのための 'make extract' のようなものはありませんか? -

-A. あります. 'make patch' があなたのお望みのものです. -おそらく PATCH_DEBUG オプションも同様に お役に立つことでしょう. -ところで, あなたの努力に感謝いたします!! - - -Q. あるコンパイルオプションはバグの原因になるという話を聞きました. -本当なのでしょうか? どうやったら正しい設定で ports をコンパイルできますか? -

-A. 本当です. gcc の バージョン 2.6.3 (FreeBSDの 2.1.0 と 2.1.5 に付属している -バージョン) では, -O2 オプションを -fno-strength-reduce オプションなしで -使うと, バグのあるコードを出力します (ほとんどの ports は -O2 オプションを -使いません). コンバイラオプションは次のように定義 - make CFLAGS='-O2 -fno-strength-reduce' install - - -これを /etc/make.conf に書いておくこともできますが, 残念なことに -すべての ports がこの指定を尊重してくれる -訳ではありません. もっとも確実なのは 'make configure' を実行し, -ソースディレクトリの Makefile を見て手で修整することですが, ソースが -多くのサブディレクトリにわかれていて, 各々に Makefile がある場合は -大変な仕事になります. - - -Q. ports がたくさんありすぎて, 私の欲しいものがなかなか見つけられません. -どんな ports が使えるのか, リストはどこかにありませんか? -

-A. /usr/ports の中にある INDEX ファイルを見てみましょう. -あるキーワードで ports コレクションを検索したければ, それも可能です. -たとえば, 以下のようにすればプログラミング言語 LISP に関連した ports を -見つけることができます: - - - cd /usr/ports - make search key=lisp - - - -Q. 'foo' ports をインストールしたいのですが, それのコンパイルは -すぐに停止して, 'bar' ports のコンパイルが始まってしまいます. 一体どうして? -

-A. 'foo' ports が, 'bar' ports の提供する何らかの機能を必要としているからです. -例えば 'foo' が画像を使うとすると, 'bar' は画像処理に必要な -ライブラリを持っている, などです. -または, 'bar' は 'foo' をコンパイルするのに必要なツールなのかもしれません. - -

-A. 大丈夫, 次のようにしてください. - - - pkg_delete grizzle-6.5 - - - -Q. ちょっと待ってください. 削除しようとするコマンドのバージョン番号を -知っていなくてはならないのでしょうか? あなたは, 私がバージョン番号を -覚えていることを本気で当てにしているのでしょうか? -

-A. そんなことはありません. バージョン番号は次のようにすればわかります. - - - pkg_info -a | grep grizzle - - -そうすると次のように表示されます:- - - - Information for grizzle-6.5: - grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game. - - - -Q. ディスク容量のことなのですが, ports のディレクトリは非常に膨大な容量を -使うように見えます. 残しておいた方がよいのでしょうか? 削除してしまっても -よいのでしょうか? - -

-A. はい. インストールが首尾よく終わり, もうソースコードが必要でないと思うなら, -それらを残しておく理由はないでしょう. 一番よい方法は, 次の通りです. - - - # cd /usr/ports - # make clean - - -これは, すべての ports のサブディレクトリを調べ, -各 ports のスケルトン以外の削除をおこないます. - - -Q. これを試してみたのですが, tarball や ports で使われたファイルが -distfiles ディレクトリに残っています. これも削除してしまっても大丈夫ですか? -

-A. はい. それを使った作業が終わったのであれば, 削除してしまっても大丈夫です. - - -Q. 私はとてもとてもたくさんのプログラムを楽しみたいのです. -一度にすべての ports をインストールする方法はありませんか? -

-A. 次のようにしてください. - - - # cd /usr/ports - # make install - - - -Q. やってみました. 時間がとてもかかるだろうと思ったので, そのまま実行を -続けさせて, 私は寝ました. 翌朝コンピュータを見てみると, 三つ半の ports しか -処理が終わっていませんでした. なにか悪かったのでしょうか? -

-A. これは ports の中には私たちの決められないこと (例えば, あなたが A4 の -用紙に印刷したいのか, US レターサイズの用紙に印刷したいのかなど) について -質問してくるものがあるからです. それらの質問には手動で答える必要があります. - - -Q. 私は一日中モニタの前に座って過ごしたりしたくないのですが. -何かよいアイデアはありませんか? -

-A. では, あなたが寝に / 仕事に / 公園にいく前に以下を実行してください:- - - - # cd /usr/ports - # make -DBATCH install - - -これでユーザの入力を要求しないすべての ports をインストールします. -そして, 戻ってきてから, 次のように実行してください. - - - # cd /usr/ports - # make -DIS_INTERACTIVE install - - -そして, 残りの作業を実行してください. - - -Q. 私たちは ports コレクションにある frobble を使っています. -ですが, 私たちの必要に応じて ports を変更したところがあるのです. -自分でパッケージを作って, それを私たちのサイトのまわりに -簡単に配布できるような方法がありますか? -

-A. もちろんあります. 変更点をパッチにする方法は知っていますよね:- - - - # cd /usr/ports/somewhere/frobble - # make extract - # cd work/frobble-2.8 - [あなたのパッチを当ててください] - # cd ../.. - # make package - - - -Q. この ports の技術は本当に賢いですね. どのようにして動いているのか -私はどうしても知りたいと思います. その秘密は何ですか? -

-A. 秘密は一切ありません. - -にある bsd.ports.mk と bsd.ports.subdir.mk ファイルを見るだけです. - (注: 複雑なシェルスクリプトを嫌う読者は, このリンクを追いかけないほうが -よいでしょう.) - - -&porting; diff --git a/ja/handbook/ppp.sgml b/ja/handbook/ppp.sgml deleted file mode 100644 index 320e2482ba..0000000000 --- a/ja/handbook/ppp.sgml +++ /dev/null @@ -1,429 +0,0 @@ - - - - -カーネル PPP の設定 - -

原作: &a.gena;. -

訳: &a.graphite;.6 September 1996. - -PPP の設定を始める前に, pppd が /usr/sbin にあり, また /etc/ppp という -ディレクトリが存在することを確認してください. - -pppd はふたつのモードで動作します. - - 「クライアント」モード. シリアル接続やモデムを利用して, そのマシンを -外部のネットワークに PPP 接続したい場合に用います. - - 「サーバ」モード. そのマシンがネットワーク上にあるときに, PPP を使って -ほかのコンピュータを接続する際に用います. - -どちらの場合でも, オプションファイルを設定する必要があります - (/etc/ppp/options または, そのマシン上で PPP を使用する人が -複数いる場合には ~/.ppprc). - -また, ダイヤルとリモートホストへの接続をおこなうために, シリアル接続やモデムを -操作する, なんらかのソフトウェアが必要です (kermit が適しているでしょう). - -PPP クライアントとしての動作 - -

私は, CISCO ターミナルサーバの PPP 回線に接続するために, 下記のような - /etc/ppp/options を使用しています. - -crtscts # enable hardware flow control -modem # modem control line -noipdefault # remote PPP server must supply your IP address. - # if the remote host doesn't send your IP during IPCP - # negotiation , remove this option -passive # wait for LCP packets -domain ppp.foo.com # put your domain name here - -: # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to : - -defaultroute # put this if you want that PPP server will be your - # default router - - -接続方法: - - kermit (またはその他のモデム操作プログラム) を使ってリモートホストに -ダイヤルし, 接続してください. そして, あなたのユーザ名とパスワード (必要 -であれば, その他にもリモートホストで PPP を有効にするための操作) を入力 -します. - - kermit を抜けてください. (回線を切断せずに) - - 下記のように入力します: - -/usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200 - -(通信速度とデバイス名には, あなたの環境に適したものを入れてください) - - -これでこのコンピュータは PPP で接続されました. もし, なんらかの理由で -接続に失敗したならば, /etc/ppp/options ファイルに "debug" -オプションを追加して, 問題点を突き止めるために, コンソールに表示される -メッセージを調べてください. - -下記の /etc/ppp/pppup スクリプトは, 上記の作業を -すべて自動的におこないます: - -#!/bin/sh -ps ax |grep pppd |grep -v grep -pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -ps ax |grep kermit |grep -v grep -pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -ifconfig ppp0 down -ifconfig ppp0 delete - -kermit -y /etc/ppp/kermit.dial -pppd /dev/tty01 19200 - - -/etc/ppp/kermit.dial は kermit 用のスクリプトで, ダイヤルして, -リモートホストでの認証に必要なすべての処理をおこないます. -(そのようなスクリプトの例はこの文書の終わりに添付してあります) - -PPP 接続を切断するには, 下記のような /etc/ppp/pppdown スクリプトを -使用します: - -#!/bin/sh -pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` -if [ X${pid} != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill -TERM ${pid} -fi - -ps ax |grep kermit |grep -v grep -pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -/sbin/ifconfig ppp0 down -/sbin/ifconfig ppp0 delete -kermit -y /etc/ppp/kermit.hup -/etc/ppp/ppptest - - -PPP が動作中かどうかを調べます (/usr/etc/ppp/ppptest): - -#!/bin/sh -pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` -if [ X${pid} != "X" ] ; then - echo 'pppd running: PID=' ${pid-NONE} -else - echo 'No pppd running.' -fi -set -x -netstat -n -I ppp0 -ifconfig ppp0 - - -モデム回線を切断します (/etc/ppp/kermit.hup): - -set line /dev/tty01 ; put your modem device here -set speed 19200 -set file type binary -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none - -pau 1 -out +++ -inp 5 OK -out ATH0\13 -echo \13 -exit - - - -

次は kermit の代わりに chat を使う方法です. - -原作: &a.rhuff;. - -

pppd 接続を確立するためには, 次の二つのファイルの設定だけで十分です. - -

/etc/ppp/options: - - /dev/cuaa1 115200 - -crtscts # enable hardware flow control -modem # modem control line -connect "/usr/bin/chat -f /etc/ppp/login.chat.script" -noipdefault # remote PPP server must supply your IP address. - # if the remote host doesn't send your IP during - # IPCP negotiation, remove this option -passive # wait for LCP packets -domain # put your domain name here - -: # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to : - -defaultroute # put this if you want that PPP server will be - # your default router - - - -

/etc/ppp/login.chat.script: - -(実際には一行になります.) - - -ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT - CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: - TIMEOUT 5 sword: - - - -正しくインストールし編集した後は, 必要な事はこれだけです - -

pppd. - - - このサンプルは主に Trev Roydhouse <Trev.Roydhouse@f401.n711.z3.fidonet.org> -から寄せられた情報に基づいており, 承諾を得て使用しています. - - -PPP サーバとしての動作 - -

/etc/ppp/options: - -crtscts # Hardware flow control -netmask 255.255.255.0 # netmask ( not required ) -192.114.208.20:192.114.208.165 # ip's of local and remote hosts - # local ip must be different from one - # you assigned to the ethernet ( or other ) - # interface on your machine. - # remote IP is ip address that will be - # assigned to the remote machine -domain ppp.foo.com # your domain -passive # wait for LCP -modem # modem line - - -下記のような /etc/ppp/pppserv スクリプトで, そのマシンを -PPP サーバにすることができます. - -#!/bin/sh -ps ax |grep pppd |grep -v grep -pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -ps ax |grep kermit |grep -v grep -pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -# reset ppp interface -ifconfig ppp0 down -ifconfig ppp0 delete - -# enable autoanswer mode -kermit -y /etc/ppp/kermit.ans - -# run ppp -pppd /dev/tty01 19200 - - -PPP サーバを終了するには, この /etc/ppp/pppservdown スクリプト -を使用します: - -#!/bin/sh -ps ax |grep pppd |grep -v grep -pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -ps ax |grep kermit |grep -v grep -pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi -ifconfig ppp0 down -ifconfig ppp0 delete - -kermit -y /etc/ppp/kermit.noans - - -下記の kermit スクリプトは, モデムの自動応答機能を有効, または無効にします -(/etc/ppp/kermit.ans): - -set line /dev/tty01 -set speed 19200 -set file type binary -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none - -pau 1 -out +++ -inp 5 OK -out ATH0\13 -inp 5 OK -echo \13 -out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable - ; autoanswer mode -inp 5 OK -echo \13 -exit - - -この /etc/ppp/kermit.dial スクリプトは, リモートホストに -ダイヤルし, 認証手続きをするのに使用します. あなたは必要に応じて, これを -変更しないといけないでしょう. あなたのユーザ名とパスワードをこの -スクリプトに書かなければいけませんし, モデムやリモートホストからの -応答によっては, 入力待ちの文を変更する必要もあります. - -; -; put the com line attached to the modem here: -; -set line /dev/tty01 -; -; put the modem speed here: -; -set speed 19200 -set file type binary ; full 8 bit file xfer -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none -set modem hayes -set dial hangup off -set carrier auto ; Then SET CARRIER if necessary, -set dial display on ; Then SET DIAL if necessary, -set input echo on -set input timeout proceed -set input case ignore -def \%x 0 ; login prompt counter -goto slhup - -:slcmd ; put the modem in command mode -echo Put the modem in command mode. -clear ; Clear unread characters from input buffer -pause 1 -output +++ ; hayes escape sequence -input 1 OK\13\10 ; wait for OK -if success goto slhup -output \13 -pause 1 -output at\13 -input 1 OK\13\10 -if fail goto slcmd ; if modem doesn't answer OK, try again - -:slhup ; hang up the phone -clear ; Clear unread characters from input buffer -pause 1 -echo Hanging up the phone. -output ath0\13 ; hayes command for on hook -input 2 OK\13\10 -if fail goto slcmd ; if no OK answer, put modem in command mode - -:sldial ; dial the number -pause 1 -echo Dialing. -output atdt9,550311\13\10 ; put phone number here -assign \%x 0 ; zero the time counter - -:look -clear ; Clear unread characters from input buffer -increment \%x ; Count the seconds -input 1 {CONNECT } -if success goto sllogin -reinput 1 {NO CARRIER\13\10} -if success goto sldial -reinput 1 {NO DIALTONE\13\10} -if success goto slnodial -reinput 1 {\255} -if success goto slhup -reinput 1 {\127} -if success goto slhup -if < \%x 60 goto look -else goto slhup - -:sllogin ; login -assign \%x 0 ; zero the time counter -pause 1 -echo Looking for login prompt. - -:slloop -increment \%x ; Count the seconds -clear ; Clear unread characters from input buffer -output \13 -; -; put your expected login prompt here: -; -input 1 {Username: } -if success goto sluid -reinput 1 {\255} -if success goto slhup -reinput 1 {\127} -if success goto slhup -if < \%x 10 goto slloop ; try 10 times to get a login prompt -else goto slhup ; hang up and start again if 10 failures - -:sluid -; -; put your userid here: -; -output ppp-login\13 -input 1 {Password: } -; -; put your password here: -; -output ppp-password\13 -input 1 {Entering SLIP mode.} -echo -quit - -:slnodial -echo \7No dialtone. Check the telephone line!\7 -exit 1 - -; local variables: -; mode: csh -; comment-start: "; " -; comment-start-skip: "; " -; end: - - - - diff --git a/ja/handbook/printing.sgml b/ja/handbook/printing.sgml deleted file mode 100644 index 75e27e3836..0000000000 --- a/ja/handbook/printing.sgml +++ /dev/null @@ -1,4330 +0,0 @@ - - - - - - プリンタの利用 - -

著者 &a.kelly;30 September 1995 -

訳者 &a.kimura;3 September 1996 - - FreeBSD でプリンタを使用するためには, バークレイラインプリンタ - スプーリングシステム (LPDスプーリングシステムとしても知られて - います) が機能するようにプリンタをセットアップする必要がありま - す. 本節では, LPDスプーリングシステム (大抵の場合, 単にLPDと呼 - ばれる) について紹介します. - - もし, LPDや他のプリンタスプーリングシステムについて既に詳しい - 知識をお持ちの方は, 「」から読み始めて - も結構です. - - - スプーラは何をするか - -

LPDはあるホストのプリンタに関する制御の一切をおこないます. こ - こで言う制御としては, 次のことが挙げられます. - - - ホストに接続されたプリンタ, あるいはネットワーク - 上の他ホストに接続されたプリンタに対するアクセスを制御しま - す. - - ファイルをプリントする要求に対して許可を与えます. - この要求は特に 各々のプリンタの シリアルポートに接続したプリンタ用に通信パラ - メータを管理します. - - ネットワーク経由で他のホスト上の, 別のLPDスプーラにジョ - ブを送ることができます. - - 様々なプリンタ言語やプリンタの能力に応じてジョブの - 形式を整えるため, 特別なフィルタを起動することができます. - - プリンタの使用に対して課金をおこなうことができます. - - - 設定ファイルを通して, また, 特別なフィルタプログラムを供給 - することにより, 多種多様なプリンタ機器に対して, 上述の機能の - 全部または一部をLPDシステムにおこなわせることができます. - - - どうしてスプーラを使うべきなのか - -

あなたのシステムを利用するのがあなた一人だけだとしたら, ア - クセス制御もヘッダページもプリンタ利用に対する課金も必要ないのに, - なぜわざわざスプーラに煩わされなければならないのか疑問に思うか - もしれません. プリンタに対する直接アクセスを許可することもできるので - すが, とにかくスプーラを使用するべきです. その理由は, - - - LPDはジョブをバックグラウンドで処理します. データが - プリンタに送信されるまで待つ必要はありません. - - LPDではジョブをフィルタを通してプリントすることが簡 - 単にできます. これにより, 印刷物のヘッダに時刻や日付を入れ - たり, 特別なファイル形式 (TeX の DVI ファイルなど) をプリン - タが処理できる形式に変更することができます. これらの作業を - 手動でおこなう必要がなくなります. - - プリント処理をおこなうフリーのまたは商用のプログラムの - ほとんどは, システムのスプーラとやりとりするように作られて - います. スプーリングシステムをセットアップすることで, 今後 - 加えるかもしれない, あるいは, 既に持っている別のソフトウエ - アをより簡単にサポートすることができるでしょう. - - - スプーリングシステムのセットアップ - -

LPDスプーリングシステムを用いてプリンタを使用するためには, - プリンタ機器とLPD用ソフトウェアの両方を準備する必要があります. - 本ドキュメントでは次の2段階のレベルに分けて説明をします. - - - プリンタを接続する方法, プリンタにどの - ように通信するかをLPDに指示する方法や, プレインテキスト - をプリンタで印字する方法については, 「」をご覧ください. - - 様々な形式のファイルを印字する方法, ヘッダページを - 印字する方法, ネットワーク経由でプリンタに印字する方法, - プリンタを制御する方法, プリンタの使用に対する課金をおこなう - 方法については「」をご覧ください. - - - - プリンタ設定導入編 - -

この節では, プリンタ機器やプリンタを使用するためのLPD用ソフ - トウェアを設定する方法について述べます. この節の概要は次の通り - です. - - - 」では, プリンタをコンピュータに接 - 続するためのヒントがいくつか書かれています. - - 」では, LPDのスプーラ設定ファイル - /etc/printcapの設定方法について書かれています. - - - データをプリンタに送るためにシリアルまたはパラレルインタフェー - スではなく, ネットワークプロトコルを使用する場合は, 「」をご覧くださ - い. - - この節のタイトルは「プリンタ設定導入編」ですが, 実際の設定は - かなり複雑です. プリンタをコンピュータに接続し, LPDスプーラを - 起動させることは一番困難な作業です. ヘッダページを出力させたり, - 課金したりするオプションの設定は, 一度プリンタがうまく動くよう - になれば, とても簡単です. - - - プリンタ機器の設定 - -

この節では, プリンタにPCを接続するための様々な方法について - 説明しています. ここでは, ポートやケーブルの種類, FreeBSDが - プリンタとの通信に必要なカーネルコンフィグレーションについて - も言及しています. - - もし, プリンタが既に接続されていて, 他のオペレーティングシステ - ム上でプリンタからの印字に成功している場合は, 「」まで読み飛 - ばすことが多分できるでしょう. - - - ポートとケーブル - -

最近のPC用のプリンタほとんどには次のインタフェースの一つ - もしくは両方がついています. - - - パラレルインタフェースは「セントロニクス」インタフェー - スとして知られています. これは, プリンタ用のコネクタタ - イプとして採用された後に名付けられました. - - - シリアルインタフェースはパラレルインタフェースより - も普通はデータの伝送速度が遅くなります. パラレルインタフェースで - は, 通常, (コンピュータからプリンタへの) 単方向通信のみをおこな - うのに対して, シリアルインタフェースは双方向通信をおこないます. - 最近のパラレルポートの多くはプリンタ側からデータを受けとる - こともできますが, コンピュータ側にデータを送り返すことが必 - 要となるプリンタはほとんどありません. さらに, FreeBSDでは - 双方向のパラレル通信をまだサポートしていません. - - 通常, プリンタで双方向通信が必要となるのは, プリンタが - PostScript 言語に対応しているときだけです. PostScript プリ - ンタは非常に冗長に動作させることができます. 事実, - PostScript によるジョブでは, プログラムを本当にプリンタ - に送信します. このことは, 印字作業を必ずしもする必要がない - ことを意味し, また, プログラムの結果をコンピュータに直接返 - されるかもしれません. PostScript プリンタでは, 双方向 - 通信を使って, PostScript プログラムのエ - ラーや紙づまりといった問題をコンピュータに報告します. ユー - ザはそれらの情報を知りたいと思うかもしれません. さらに, - PostScript プリンタで課金作業をもっとも効率よくおこなうため - には双方向通信が必要となります. この方法では, まず, プ - リンタの現在のページカウント (起動してから今まで何枚の紙を - 印字したか) の情報を得ます. 次に, ユーザのジョブをおこない, 終 - 了後, 再びページカウントを得ます. この2数を差によって, 課 - 金対象となる紙の枚数を知ることができます. - - それでは, どちらのインタフェースを使うべきなのでしょうか. - - - - 双方向通信が必要なら, シリアルポートを使ってくださ - い. FreeBSDではパラレルポート上での双方向通信はまだサポー - トされていません. - - 双方向通信の必要がなく, パラレルかシリアルかの選 - 択ができる場合はパラレルインタフェースを使うのが好ましい - です. これにより, シリアルポートを他の周辺機器 (端末やモ - デムのなど) のために残しておくことができます. また, パラ - レルインタフェースの方がほとんどの場合高速であり, 設定も - より簡単になっています. - - 結局のところは動いてくれるものを使えばよいのです. - - - - パラレルポート - -

プリンタをパラレルインタフェースを使って接続する場合は, - セントロニクスケーブルでプリンタとコンピュータをつないでくださ - い. 詳しい説明はプリンタ, コンピュータ, あるいは両方に付属す - る説明書に書かれているはずです. - - その際, どのパラレルポートを使用したかを覚えておいてください. - FreeBSDでは最初のポートは /dev/lpt0, 2番目は /dev/lpt1 であ - り, 3番目以降も同様に続きます. - - - シリアルポート - -

シリアルインタフェースを使ってプリンタを使う場合は, 適切 - なシリアルケーブルでプリンタとコンピュータを接続してください. - 詳しい説明はプリンタ, コンピュータ, あるいは両方に付属する説 - 明書に書かれているはずです. - - 「適切なシリアルケーブル」がよくわからないときは, 次のどれか - を試してみてください. - - - A - - この他に, プリンタ用の通信パラメータを設定する必要がありま - す. 通常, プリンタのフロントパネルやDIPスイッチによって制 - 御します. コンピュータとプリンタの双方で設定できる最高の通 - 信速度[bps] (ビット/秒. ソフトウェアの設定 - -

本節ではFreeBSDのLPDスプーリングシステムで印字をおこなうために - 必要となるソフトウェアの設定について説明しています. - - 本節の概要は次のようになります. - - - プリンタで使用するポートのために, 必要があれば, カー - ネルの書き変えをおこないます. 「」で, このためにしなくてはなら - ないことを説明しています. - - パラレルポートを使用している場合は, パラレルポートの - ための通信モードの設定します. 詳細は, 「」で説明しています. - - オペレーティングシステムからプリンタにデータが送ら - れているかをテストします. 「」で, どのように - テストするかの提案をいくつかおこなっています. - - ファイル/etc/printcapを変更し, LPDの設定を - おこないます. 「」で, どのように変更するかを - 説明しています. - - - カーネルの変更 - -

オペレーティングシステムのカーネルのコンパイルをおこなうこと - によって, 指定されたのデバイスが機能するようになります. シリ - アル, または, パラレルインタフェースをプリンタで使用する場合, - 必要なデバイスがこの指定の中に含まれていなくてはなりません. - したがって, 必要なデバイスがカーネルに組み込まれていない場合, 追 - 加のシリアル, または, パラレルポートをサポートするために, カー - ネルの再コンパイルが必要となるかもしれません. - - シリアルポートが現在使用しているカーネルでサポートされている - かどうかを調べるためには, 次のように入力します. - - -dmesg | grep sio - - ここで, -sio2 at 0x3e8-0x3ef irq 5 on isa -sio2: type 16550A - - - パラレルポートが現在使用しているカーネルでサポートされている - かどうかを調べるためには, 次のように入力します. - - -dmesg | grep lpt - - ここで, -lpt0 at 0x378-0x37f on isa - - - 上記の出力が得られない場合, プリンタを使うため, オペレーティ - ングシステムにパラレル, または, シリアルポートを認識し, 使用 - できるようにするためにはカーネルを変更する必要があります. - - シリアルポートをサポートさせるには, 「」の節をご覧く - ださい. パラレルポートをサポートさせる場合も, その節と, ポート用エントリを /dev に追加する - - -

カーネルがシリアル, または, パラレルポートを通じての通 - 信をサポートしていたとしても, システム上で動いているプログ - ラムがデータの送受信をおこなうためのソフトウェアインタフェース - がさらに必要になります. そのインタフェースは, - /dev ディレクトリにあるエントリに相当します. - - - /dev エントリにポートを加えるために - - コマンドで root になります. suコマンド - でパスワードを聞かれたら, ルート用のパスワードを入力し - ます. - - /dev ディレクトリに移動します. - -cd /dev - - - 次のように入力します. - - ./MAKEDEV - ここで, 次を入力し, デバイスのエントリができたか確認し - ます. - -ls -l - - - パラレルポートの通信モードを設定する - - -

パラレルインタフェースを使用している場合, FreeBSDでは, - 割り込み駆動型にするか, プリンタとの通信の状況をカーネルに監 - 視させるかのいずれかを選択できます. - - - GENERIC カーネルでは - - 割り込み駆動方式は, いくらか高速になりますが, 貴重な IRQ - ラインを一つ消費します. うまく機能するものをお使いください. - - 通信モードを設定するためには2つの方法があります. 1つはカー - ネルを変更することで, もう一つは - プログ - ラムを使用する方法です. - - - カーネルを設定することによって, 通信モードを変更す - る. - - - カーネルコンフィグレーションファイルを変更しま - す. - イベント駆動方式にする場合は, -device lpt0 at isa? port? tty irq - - ここで, 監視方式を使用する場合は, -device lpt0 at isa? port? tty vector lptintr - - - ファイルをセーブし, config プログラムを起動 - し, カーネルの構築, インストールをおこないます. そして, リ - ブートしてください. 詳細は, 「」を参照 - してください. - - - で通信モードを設定する場合 - - - -lptcontrol -i -u - - - - -lptcontrol -p -u - - - これらのコマンドを /etc/rc.local ファイルに追加 - しておくと, システムをブートする度に通信モードを設定する - ことができます. 詳細については, - をご覧ください. - - プリンタとの通信状況を調べる - -

スプーリングシステムの設定に進む前に, オペレーティング - システムがプリンタにデータを送ることに成功しているかどうか - を確かめるべきでしょう. これにより, 印字がうまくいかないと - き, プリンタとの通信が問題なのか, スプーリングシステムが問 - 題なのかを分けて調べることがかなり容易になります. - - プリンタをテストするためには, プリンタに何かのテキストを送 - 信してみます. 送信した文字をすぐに印字してくれるプリンタに - は, コマンドを使うと有用です. このコマンドは印 - 字可能な96文字のASCII文字すべてを96行生成します. - - PostScript (または他の言語に対応した) プリンタの場合 - は, もっと巧妙なテストが必要になります. 次のような, 簡単な - PostScript プログラムを使えば十分でしょう. - -%!PS -100 100 moveto 300 300 lineto stroke -310 310 moveto -/Helvetica findfont 12 scalefont setfont -(Is this thing working?) show -showpage - - - パラレルポートのプリンタとの接続を調べる - - -

この節では, FreeBSDがパラレルポートに接続されたプリ - ンタと通信できているかどうかを調べる方法について説明し - ています. - - パラレルポートのプリンタをテストするために - - コマンドで root になります. - プリンタにデータを送ります. - - プリンタがプレインテキストを印字できる場合, - . コマンドを使います. 次のように入 - 力してください. - -lptest > /dev/lpt - - ここで, プリンタが PostScript か他のプリンタ - 言語を使用している場合, そのプリンタに簡単なプロ - グラムを送信してください. 次のように入力します. - -cat > /dev/lpt - - そして, 一行一行, プログラムを もしくは, プログラムを入力したファイルがある - 場合は, 次のように入力してください. - -cat /dev/lpt - - ここで, - - - これで何かがプリントされることでしょう. 印字されたテキ - ストがおかしくても心配しなくても構いません. それについ - ては, 後で修正します. - - シリアルポートのプリンタとの接続を調べる - - -

この節では, FreeBSDがシリアルポートに接続されたプリ - ンタと通信できているかどうかを調べる方法について述べられ - ています. - - シリアルポートのプリンタをテストするために - - コマンドで root になります. - /etc/remote ファイルを編集します. 次の - エントリを加えてください. - -printer:dv=/dev/ - - ここで, - 次の例は, プリンタをシリアルケーブルでパリティなし, - 転送速度19200bpsで第3番目のシリアルポートに接続した場 - 合です. - - -printer:dv=/dev/ttyd2:br#19200:pa=none - - - コマンドでプリンタと接続します. 次のよ - うに入力してください. - - -tip printer - - - これがうまくいかなかった場合は, /etc/remoteを - 編集して, /dev/ttydの代わりに - /dev/cuaaを試してみてください. - - プリンタにデータを送ります. - - プリンタがプレインテキストを印字できる場合, - . コマンドを使います. 次のように入 - 力してください. - -~$lptest - - - プリンタが PostScript か他のプリンタ - 言語を使用している場合, そのプリンタに簡単なプロ - グラムを入力します. 一行一行, プログラムを もしくは, プログラムを入力したファイルがある - 場合は, 次のように入力してください. - - -˜> - - ここで, コマンドでファイルを送 - 信した後は, ファイル終了を表わすキーを入力する必要 - があります. - - - - これで何かがプリントされることでしょう. 印字されたテキ - ストがおかしくても心配しなくても構いません. それについ - ては, 後で修正します. - - スプーラに許可を与える: - /etc/printcap ファイル - - -

ここまでで, プリンタはコンピュータに接続され, (必要なら) - プリンタと通信できるようにカーネルを変更し, 簡単なデータをプ - リンタに送信することができているはずです. これで, LPDにプリ - ンタへのアクセスを制御させる設定をおこなう準備が整いました. - - LPDの設定は /etc/printcap を編集することでおこないます. - LPDスプーリングシステムはスプーラが使われる毎にこのファイル - を参照します. そのため, ファイルを更新するとすぐにその変更が - 反映されます. - - ファイルの書式は簡単です. - /etc/printcap の編集はお好みのテキストエディタをお - 使いください. このファイルの書式は, - /usr/share/misc/termcap/etc/remote - といった他のケイパビリティファイルと一致しています. この書式 - のついての詳細な情報については - をご覧ください. - - スプーラの単純な設定法は, 次のステップでおこないます. - - - プリンタに名前 (と簡単な別名2〜3個) を付け, それを - /etc/printcap ファイルに記述します. これについ - ては, 「」 を参照してください. - - 」 を参照してください. - - スプール用のディレクトリを作成し, その位置を - 」 を参照してください. - - プリンタを使用するために /dev エントリを - 設定し, /etc/printcap」 を参照してください. - プリンタをシリアルポートに接続した場合は, 」 - を参照してください. - - プレインテキスト用の入力フィルタのインストールを - おこないます. 「」 を参照してください. - - コマンドで何かを印字することで設定のテス - トをおこないます. を参照してください. - - - - 」で, そ - れをどのようにおこなえばよいのかが説明されています. - - - - プリンタに名前を付ける - -

最初の (簡単な) ステップで, プリンタの名前を考えます. プ - リンタには別名をいくつか付けることもできるので, 機能的な名前 - でも風変わりな名前でもどちらを選んでもまったく問題はありません. - - 少なくとも1つのプリンタには, /etc/printcap の中 - で, /etc/printcap ファ - イルに設定します. プリンタ名は一番左のカラムから書き始めま - す. 別名はそれぞれ縦棒によって区切られ, 最後の別名の後ろに - コロンを置きます. - - 次の例では, 2台のプリンタ (Diablo 630 ラインプリンタと - Panasonic KX-P4455 PostScript レーザライタプリンタ) が定義 - されている /etc/printcap のスケルトンを記しています. - - -# -# /etc/printcap for host rose -# -rattan|line|diablo|lp|Diablo 630 Line Printer: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: - - - この例では, 最初のプリンタに ヘッダページの印字を禁止する - -

LPDスプーリングシステムでは, デフォルトでジョブ毎に/etc/printcap - にあるプリンタのエントリに /etc/printcap の例を示しま - す. - - -# -# /etc/printcap for host rose - no header pages anywhere -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh: - - - この書式を正しく使うための注意をしておきます. 最初の行は左 - 端のカラムから始まります. それに続く行は TAB ひとつ分だけ - 字下げします. 最後の行以外のすべての行は, 行末にバックスラッ - シュを記述します. - - - スプーリングディレクトリの作成 - -

スプーラの簡単な設定の次のステップでは, /var/spool の下に置きます. - また, スプーリングディレクトリの内容はバックアップをす - る必要はありません. - によってディレクトリを - 作るだけでスプーリングディレクトリの復旧は完了します. - - - スプーリングディレクトリの名前は, これも慣例ですが, 次 - のようにプリンタの名前と同じにします. - - -mkdir /var/spool/printer-name - - - しかしながら, ネットワーク上に使用可能なプリンタがたく - さんあるならば, LPDで印字するための専用のディレクトリに - スプーリングディレクトリを置きたいと思うかもしれません. - 例に出てきたプリンタ -mkdir /var/spool/lpd -mkdir /var/spool/lpd/rattan -mkdir /var/spool/lpd/bamboo - - - -chown daemon.daemon /var/spool/lpd/rattan -chown daemon.daemon /var/spool/lpd/bamboo -chmod 770 /var/spool/lpd/rattan -chmod 770 /var/spool/lpd/bamboo - - - 最後に, /etc/printcap ファイルで, これらのディ - レクトリの位置を LPD に伝える必要があります. スプーリ - ングディレクトリのパス名は -# -# /etc/printcap for host rose - added spooling directories -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo: - - - プリンタ名が最初のカラムから始まっており, そのプリンタ - に関して記述される他のエントリは TAB で字下げされてい - ること, 各行がバックスラッシュで終わっていることに注意 - してください. - - /var/spool/lpd - デフォルト値として使用します. - - - プリンタデバイスの特定 - -

」では, FreeBSD でプリン - タとの通信に使用される /dev ディレクトリ内の - エントリを特定します. そして, LPD にその情報を伝えま - す. 印字するジョブを受け取ると, スプーリングシステムは, - (プリンタにデータを渡す義務がある) フィルタプログラムに - 代わって指定されたデバイスをオープンします. - - /etc/printcap ファイルで /dev エントリを記入します. - - ここでの例では, /etc/printcap には - 次のようになります. - - -# -# /etc/printcap for host rose - identified what devices to use -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:\ - :lp=/dev/ttyd5: - - - /etc/printcap でプリンタの /dev/lp を使用します. /dev/lp は, - 現在の FreeBSD には存在していません. - - 設置したプリンタがパラレルポートに接続されている場合は, - 「」まで読み飛ばしてください. - そうでない場合は, 次節の説明に続いてください. - - - スプーラのための通信パラメータの設定 - - -

シリアルポートにプリンタを接続した場合, プリンタにデー - タを送信するフィルタプログラムに代わり, 通信速度やパリ - ティ, その他のシリアル通信パラメータを設定することがで - きます. このことによる利点は, - - - /etc/printcap を編集するだけで, 様々な - 通信パラメータを試してみることができます. フィルタプロ - グラムを再コンパイルする必要はありません. - - スプーリングシステムで, シリアル通信の設定が異 - なっているかもしれない複数のプリンタに同じフィルタプロ - グラムを使うことが可能になります. - - - 次の /etc/printcap の項目で, - br#/ - - デバイスの通信速度を fc#/ - - デバイスをオープンした後で, fs#/ - - xc#/ - - デバイスをオープンした後で, ローカルモードビット - xs#/ - - ローカルモードビット - /usr/include/sys/ioctl_compat.h を参照してく - ださい. - - 項目 -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:\ - :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: - - - - テキストフィルタのインストール - -

ここまでで, プリンタにジョブを送るために使うテキストフィ - ルタを LPD に設定する準備が整いました. 」をご覧ください. - - - ここでの簡単なプリンタ設定では, プリンタにジョブを送るため, - /bin/cat を実行するだけの簡単なシェルスクリプ - トで間に合います. FreeBSD に標準で付属している - 」で詳しく説明します. - - - 最初に, 簡単なテキストフィルタであるシェルスクリプト - /usr/local/libexec/if-simple を作ってみましょ - う. 次のテキストをお好みのテキストエディタでファイルに - 書き込んでください. - - -#!/bin/sh -# -# if-simple - Simple text input filter for lpd -# Installed in /usr/local/libexec/if-simple -# -# Simply copies stdin to stdout. Ignores all filter arguments. - -/bin/cat && exit 0 -exit 2 - - そして, このファイルを実行可能にします. - -chmod 555 /usr/local/libexec/if-simple - - - LPD にこのテキストフィルタを使うことを設定するためには, - /etc/printcap/etc/printcap の例のプリンタ - 2台に, このフィルタを加えてみましょう. - -# -# /etc/printcap for host rose - added text filter -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\ - :if=/usr/local/libexec/if-simple: - - - 印字してみよう - - -

簡単な LPD 設定も終わりにたどり着きました. 残念ながら, - 設定はこれでおしまいというわけではありません. なぜなら, - さらに, 設定をテストし, すべての問題点を解決しなくては - ならないからです. 設定をテストするために, 何かを印字し - てみましょう. LPD システムで印字をするためには, - コマンドを使います. このコマンドは, 印字する - ためのジョブを投入する働きをします. - - コマンドを 「」で紹介した, - あるテスト用のテキストを生成してくれる - プログラムと一緒に使うこともできます. - - 簡単な LPD 設定をテストするために: - -

次のように入力してください. - -lptest 20 5 | lpr -P - - ここで, /etc/printcap - で指定したプリンタ名 (もしくはその別名) です. デフォルト - のプリンタを使用する場合は, を打ち込んでください. もう一度述べますが, ポス - トスクリプトを期待しているプリンタをテストするならば, - を使う代わりに PostScript で書かれたプ - ログラムをプリンタに送ってください. プログラムを送るた - めには, プログラムをファイルに格納して, を使った場合は, - 以下のような結果が見られるでしょう. - - -!"#$%&'()*+,-./01234 -"#$%&'()*+,-./012345 -#$%&'()*+,-./0123456 -$%&'()*+,-./01234567 -%&'()*+,-./012345678 - - - 更にプリンタをテストしたい場合は, (言語ベースのプリン - タのための) もっと大きなプログラムを送信するか, 引数を - 変えて - を実行します. 例えば, 」をご覧ください. - - トラブルシューティング - -

を使った簡単なテストをおこなった結果, 正しい出 - 力を得られずに, 以下に示すような出力が得られるかもしれ - ません. - - /usr/local/libexec/if-simple - を次のように変更して, プリンタへジョブを送信した後に - FROM FEED 文字を印字させるようにします. - -#!/bin/sh -# -# if-simple - Simple text input filter for lpd -# Installed in /usr/local/libexec/if-simple -# -# Simply copies stdin to stdout. Ignores all filter arguments. -# Writes a form feed character (\f) after printing job. - -/bin/cat && printf "\f" && exit 0 -exit 2 - - - -!"#$%&'()*+,-./01234 - "#$%&'()*+,-./012345 - #$%&'()*+,-./0123456 - - あなたは -プリンタが CR を受け取ったとき CR 動作 (復帰) をおこなう. -プリンタが LF を受け取ったとき CR + LF 動作 (復帰, 改行) をおこなう. - - - このように動作させるための方法がいくつかあります. - - - これらの文字の解釈を変えるために, プリンタ - の設定スイッチかコントロールパネルを操作する方 - 法. どのようにして設定をするかはプリンタのマニュ - アルを参照してください. - -

自動的に LF を CR+LF に変換してくれる - FreeBSD 用のシリアルドライバを入手する方法. も - ちろん, このドライバはプリンタ専用に接続される - シリアルポート/etc/printcap ファ - イルで対象プリンタの LF 文字の扱いを一時的に変更するための 次に, Hewlett Packard 社の PCL エスケープコー - ドに対応しているプリンタのためのテキストフィル - タの例を示します. このフィルタでは, プリンタ - に LF 文字を LF と CR の2文字として扱わせます. - その後に, プリンタにジョブを送ります. 最後に, - ジョブの最終ページの紙を排出するため, FROM - FEED 文字を送ります. このフィルタは Hewlett - Packard 社のほとんどすべてのプリンタで機能するは - ずです. - - -#!/bin/sh -# -# hpif - Simple text input filter for lpd for HP-PCL based printers -# Installed in /usr/local/libexec/hpif -# -# Simply copies stdin to stdout. Ignores all filter arguments. -# Tells printer to treat LF as CR+LF. Writes a form feed character -# after printing job. - -printf "\033&k2G" && cat && printf "\f" && exit 0 -exit 2 - - - ホスト orchid にある /etc/printcap の - 例を以下に示します. ここには, 一番目のパラレル - ポートにプリンタ (Hewlett Packard LaserJet 3Si) - が一台接続されており, そのプリンタ名は - -# -# /etc/printcap for host orchid -# -teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ - :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ - :if=/usr/local/libexec/hpif: - - - if-simple の cat の部分 - を置き換えればよいわけです. 具体的にどのように - するかは, 読者への練習問題としましょう. - - - -プリンタが CR を受け取ったとき CR 動作 (復帰) をおこなう. -プリンタが LF を受け取ったとき CR + LF 動作 (復帰, 改行) をおこなう. - - - if-simple の cat の部分を置き換えればよいわけ - です. 具体的にどのようにするかは, 読者への練習問題とし - ましょう. - - - プリンタが XON/XOFF のフロー制御をサポート - している場合は, 項目 プリンタがキャリアフロー制御をサポートして - いる場合は, 項目 プリンタがフロー制御をまったくサポートしていな - い場合は, 項目 - - /etc/printcap ファイルで設定した - 内容と一致しているかどうかも確認してください. - - /etc/printcap ファイルで, デバッグしているプ - リンタのエントリに ( -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple:\ - :lf=/var/log/rattan.log - - 次に, もう一度印字をおこなってみます. そして, 発生したと思 - われるエラーメッセージを見るためにログファイル (上記の - 例では, /var/log/rattan.log) を調べます. そこ - で見られたメッセージを元に, 問題を解決してみてください. - - 項目 /dev/console を使います. - - - プリンタを使う - -

この節では, FreeBSD で設定したプリンタを使う方法について説明 - します. ここでは, ユーザレベルでのコマンドを概説します. - - - 印字をおこないます. - - - プリンタキューを調べます. - - - プリンタキューにあるジョブを削除します. - - - - 管理者用コマンド - もありますが, これは 「」に記 - します. このコマンドは, プリンタやそのキューの制御のために用い - られます. - - , - , そして - の3コマンドは, 「/etc/printcap のように操作の対象となるプリンタやキュー - を指定します. これによって, 様々なプリンタに対してジョブを送る, - 取り消す, 調査することができます. 印字する -

- - ファイルを印字するためには, 次のように入力してください. - - -lpr - - これにより, 入力されたファイルのそれぞれをデフォルトのプリンタ - から印字します. ファイル名が与えられなかった場合, - - は標準入力から印字するデータを読み込みます. 例えば, 次のコマン - ドにより, ある重要なシステムファイルが印字されます. - -lpr /etc/host.conf /etc/hosts.equiv - - 印字させるプリンタを選択するためには, 次のように入力します. - -lpr -P - - 次の例では, プリンタ - -ls -l | lpr -P rattan - - 上記の コマンドではファイル名の指定がないので, - コマンドでは, 出力の整形を制御したり, ファイル変換を - 適用したり, 複数部数のコピーを作成したり, などといた様々な幅広 - いオプションを受け付けることもできます. 詳細については, 「」をご - 覧ください. - - ジョブの処理状況を調べる - -

コマンドを使って印字をする場合, プリントしようと - するデータは と入 - 力します. プリンタを指定するときは, -lpq -P bamboo - - は, プリンタ -bamboo is ready and printing -Rank Owner Job Files Total Size -active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes -2nd kelly 10 (standard input) 1635 bytes -3rd mary 11 ... 78519 bytes - - この例では, 」をご覧ください. - - ジョブ番号9のジョブは2つのファイルを処理します. すなわち, - のコマンドラインに複数のファイル名が与えられたときは, - 1つのジョブとして扱われるのです. このジョブは, 現在, アクティ - ブジョブ (「Rank」の欄の コマン - ドに標準入力からデータが与えられています. 3番目のジョブはユー - ザ mary から与えられました. このジョブのサイズはとても大きくなっ - ています. 彼女がプリントしようとしたファイルのパス名はここで表 - 示させるには長すぎるため, - コマンドはドットを3つだけ - 表示しています. - - からの出力で一番最初の行もまた有益な情報を与えていま - す. この行から, プリンタが現在何をしているか (あるいは, 少なく - とも LPD がプリンタがしていると思っていること) が分かります. - - コマンドは -waiting for bamboo to become ready (offline ?) - -kelly: 1st [job 009rose] - /etc/host.conf 73 bytes - /etc/hosts.equiv 15 bytes - -kelly: 2nd [job 010rose] - (standard input) 1635 bytes - -mary: 3rd [job 011rose] - /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes - - - ジョブの削除 - -

印字するようジョブを送った後で印字を中断したくなったときは, - コマンドで, キューの中からそのジョブを削除することが - できます. 大抵の場合, アクティブジョブでさえも - を使っ - て削除することができますが, そのジョブの一部またはすべてが印字さ - れてしまうかもしれません. - - デフォルトプリンタへのジョブを削除するためには, 最初に, - を使ってそのジョブ番号を調べます. すなわち, それから, - 次のように入力して, ジョブを削除します. - - - 特定のプリンタへのジョブを削除するときは, -lprm -P bamboo 10 - - コマンドには略記法がいくつかあります. - - は現在のアクティブジョブを, そのジョ - ブを送ったのがあなた自身であるときに限り, デフォルトプ - リンタから削除します. ただし, スーパユーザは任意のア - クティブジョブを削除することができます. - - - 上記の略記法をデフォルトプリンタではなく特定のプリンタに対して - おこなうときは, -lprm -P rattan - - - - を - 使った場合に限って, これを削除することができます. 他のホストで - 同じプリンタを使えたとしても, このジョブを削除することはできま - せん. 次の例では, 他ホストからジョブを削除することを試みていま - す. - -rose% lpr -P rattan myfile -rose% rlogin orchid -orchid% lpq -P rattan -Rank Owner Job Files Total Size -active seeyan 12 ... 49123 bytes -2nd kelly 13 myfile 12 bytes -orchid% lprm -P rattan 13 -rose: Permission denied -orchid% logout -rose% lprm -P rattan 13 -dfA013rose dequeued -cfA013rose dequeued -rose% - - - その他の印字オプション - - -

コマンドには, テキストの整形や, 図や他のファイル形 - 式の変換, 複数部コピーの生成, ジョブの扱いなどをを制御すること - ができます. この節では, これに関するオプションについて記してい - ます. - - 整形と変換に関するオプション - -

以下の 用のオプションはジョブにおけるファイルの - 整形の制御に関するものです. このオプションは, ジョブにプレイン - テキストが含まれない場合や - ユーティリティを使ってプレイ - ンテキストを整形する場合に用いてください. - - - 次の例では, プリンタ -lpr -P bamboo -d fish-report.dvi - - このオプションは, ジョブに含まれるすべてのファイルに対して適用さ - れます. したがって, 1つのジョブに (例えば) DVI ファイルと ditroff - ファイルを混在させることはできません. その代わりに, ファイルを - 形式毎に別々のジョブに分け, それぞれのジョブでその形式用の変換 - オプションを使って印字してください. - - 」で説明しています. - - - - によってプレインテキストを整形し - ます. 詳細については - をご覧ください. - - - - 次の例では, - のマニュアルを美しく整形したものをデフォ - ルトプリンタで印字しています. - -zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t - - コマンドで - のマニュアルのソースファイルの圧 - 縮を復元し, これを - コマンドに渡しています. これによ - り, ソースファイルが整形され, GNU troff の形式となります. そ - の結果は - に渡され, LPD スプーラへジョブの要求が発せ - られます. - には ジョブに関するオプション - -

以下のオプションは, - によって, そのジョブを特殊 - な扱いにするよう LPD に指示するためのものである. - - - 」をご覧ください. - -

次の例では, デフォルトプリンタで -lpr -#3 parser.c parser.h - - - - - ヘッダページ用オプション - -

以下のオプションにより, ジョブのヘッダページに通常印字さ - れるテキストを - に調整させることができます. 対象のプリ - ンタからヘッダページが出力されない場合は, これらのオプションは - 何の効力も持ちません. ヘッダページの設定に関する情報については, - 「」を参照してください. - - - 」をご覧ください. - - - プリンタを管理する - -

プリンタの管理者として, プリンタの設置, 設定, そして, それ - らのテストをおこなう必要がありました. - コマンドにより, - これまでとは別な管理方法がプリンタと対話的におこなわれます. - により, 次のことが可能となります. - - - プリンタの起動, 停止をおこなう. - - キューへの入力の許可, 禁止をおこなう. - - それぞれのキューにあるジョブの順番を変更する. - - - 最初に用語に関する注意をしておきます. プリンタが コマンドを使用するには root の権限を持って - いる必要があります. 一般のユーザも - コマンドを使うこと - はできますが, プリンタの状態を取得することとハングしたプリンタ - を再スタートすることだけに使用が制限されています. - - 以下に, - コマンドに関する説明の要約を述べます. ほとん - どのコマンドでは, 操作対象となるプリンタを指定するため - /etc/printcap 内に - ある全プリンタに対しておこなわれることになります. - - - コマンドでプリンタ - のキューの状態を調べたり, - - コマンドラインから上記のコマンドを入力すると, - はこれ - を受け付けます. コマンドが入力されなかった場合は, - は - 対話モードに入り, プリンタ設定上級編 - -

この節では, 特殊な形式のファイルを印字するためのフィルタ, ヘッ - ダページ, ネットワーク越しのプリンタへの印字, そして, プリンタ - 使用の制限や課金について説明しています. - - フィルタ - -

LPD では, ネットワークプロトコル, キュー, アクセス制御, そ - して, 印字のためのその他の側面について扱いますが, 」を参照) - - しかしながら, 形式変換やプリンタ課金, 特定のプリンタの癖, など - をうまく利用するためには, フィルタがどのように機能するかという - ことを理解しておくべきです. これらの側面を扱うためには, 最終的 - には, フィルタの責任であるからです. そして, これは悪い情報です - が, ほとんどの場合において, /usr/libexec/lpr/lpf というフィルタが1つ付いています. - (このフィルタはファイルに含まれるバックスペースやタブを扱いま - す. また, 課金をすることもできますが, できることはこれだけしか - ありません.) いくつかのフィルタとフィルタの構成要素が FreeBSD - の ポート集にもあります. - - この節で述べることは次の通りです. - - - 」では, 印字の過程におけ - るフィルタの役割を概説します. この節を読むことで, LPD - がフィルタを使うときに, 「見えないところで」何が起こっている - かが理解できるでしょう. このことを知っておくと, プリン - タそれぞれに様々なフィルタをインストールしたときに遭遇 - するかもしれない問題を予期したり, デバッグするときに役 - 立つでしょう. - - LPD では, すべてのプリンタからデフォルトでプレインテ - キストを印字できることを期待しています. このことは, プ - レインテキストを直接印字できない PostScript (また - は他の言語用の) プリンタでは問題を引き起こします. 「」 - で, この問題を克服する方法について述べます. PostScript - プリンタをお持ちの方は, この節をお読みになること - をお薦めします. - - PostScript は様々なプログラムのための有名な出 - 力形式です. ある人たちは (著者自身を含めて) PostScript - のコードさえも直接書いてしまいます. しかし, PostScript - プリンタは高価です. 「」では, PostScript データを」では, 図形や組版データといっ - た特定のファイル形式を, プリンタが理解できる形式へ変換 - する作業を自動的におこなわせる方法について述べます. この節 - を読むと, troff のデータを印字するには 」 - では, あまり使われない LPD の機能のすべて, - すなわち, 出力フィルタに関することが記述されています. - ヘッダページ (「」参照) を印字させていない場合は, - 多分, この節は飛ばしても構わないでしょう. - - 」では, 」では, 日本語を含むテキスト - を印字するためのヒントを述べてます. ---> - - - - - フィルタはどのように機能しているか - -

既に言及したように, フィルタとは, プリンタにデータを送る - 際に, デバイスに依存した部分を取り扱うために LPD によって起動 - される実行プログラムです. - - LPD がジョブ中のファイルを印字しようとするとき, LPD はフィル - タプログラムを起動します. このとき, フィルタの標準入力を印字す - るファイルに, 標準出力をプリンタに, そして, 標準エラー出力をエ - ラーログファイル (/etc/printcap 内の /dev/console) にセットします. - - LPD が起動するフィルタと, その引数が何であるかは, - /etc/printcap ファイルの内容と, ジョブの起動時に - ユーザが指定した - コマンドの引数に依存しています. 例え - ば, ユーザが 」をご覧ください). - - /etc/printcap で指定可能なフィルタは次の3種類がありま - す. - - -[-c] -w - - ここで, - - /etc/printcap で指定された - - 」 - で, これらに関するすべてについて説明します. - プリンタの課金をする必要がある場合は, 変換フィルタでも - 印字ページを数える作業が必要となります. - - 変換フィルタは次の引数をとって起動されます. - --x - - ここで, 」で, これらのことについて説明し - ます. アウトプットフィルタに対する引数は次の2つだけです. - --w - - ここで, - - フィルタは, 次に示すの終了状態をもってプログラムを - - - FreeBSD に付属するテキストフィルタ - /usr/libexec/lpr/lpf は, FROM FEED 文字が送られたと - きやプリンタ使用に対する課金をどのようにするかを決定するために, - ページ幅やページ長の引数を利用します. また, 課金用のエントリを - 作成するため, ログイン名, ホスト名, 課金ファイル名の引数を利用 - します. - - もし, フィルタの購入を検討しているならば, LPD と互換性がある - かどうかを確認してください. もしそうならば, 上述の引数リストをサ - ポートしていなければなりません. 一般向けの使用のためにフィルタ - を作成する計画をしている場合は, 同じ引数リストと終了コードをサ - ポートしてください. - - プレインテキストのジョブを PostScript プリン - タで印字する - -

コンピュータと PostScript (または, 他の言語に対応し - た) プリンタをあなたしか使用しない場合は, プリンタにプレ - インテキストを絶対に送らない, そして, プリンタにプレインテキス - トを送りたがっている様々なプログラムの機能を決して使わないこと - にしてください. そうすれば, この節に書かれたことに心を煩わせる必 - 要はまったくなくなります. - - しかし, PostScript とプレインテキストの両方のジョブをプリン - タへ送りたいと思っている場合は, プリンタ設定についての要求が増 - えるでしょう. 両者をプリンタへ送信するためには, 到着 - したジョブがプレインテキストであるか PostScript であるかを - 検出するテキストフィルタが必要です. PostScript のジョブは - すべて 」を参照してください). - もちろん,自分自身でプログラムを取ってきて, コンパイルし, インストールす - ることもできます. /etc/printcap の中のシリアル接続した PostScript - プリンタのエントリに対して, 次を使ってください. - - :if=/usr/local/libexec/psif: - - LPD にプリンタをリード・ライトモードでオープンさせるために, - -#!/bin/sh -# -# psif - Print PostScript or plain text on a PostScript printer -# Script version; NOT the version that comes with lprps -# Installed in /usr/local/libexec/psif -# - -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # PostScript job, print it. - # - echo "$first_line" && cat && printf "\004" && exit 0 - exit 2 -else - # - # Plain text, convert it, then print it. - # - ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 - exit 2 -fi - - 上記のスクリプトにおいて, 」を参照してください) には, - と呼ばれるテキストから PostScript に変換するプログラムが - 入っています. - - 非 PostScript プリンタで PostScript - をシミュレートする - -

PostScript は質の高い組版と印字をおこなうための (Ghostscript) コマンドに変えてくだ - さい. ( -#!/bin/sh -# -# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500 -# Installed in /usr/local/libexec/hpif - -# -# Treat LF as CR+LF: -# -printf "\033&k2G" || exit 2 - -# -# Read first two characters of the file -# -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # It is PostScript; use Ghostscript to scan-convert and print it - # - /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \ - && exit 0 - -else - # - # Plain text or HP/PCL, so just print it directly; print a form - # at the end to eject the last page. - # - echo "$first_line" && cat && printf "\f" && exit 0 -fi - -exit 2 - - 最後に, - :if=/usr/local/libexec/hpif: - - これでおしまいです. 変換フィルタ - -

」 - に書かれた簡単な設定が完了したら, 最初に, やってみたいと思 - うことは, 多分(プレイン ASCII テキストに加えて) 好みのファイル形式 - のための変換フィルタをインストールすることでしょう. - - なぜ, 変換フィルタをインストールするのか? - - -

変換フィルタによって, 様々な種類のファイルを印字するこ - とが簡単になります. 例えば, TeX 組版システムでたくさんの仕事 - をしたと仮定しましょう. そして, PostScript プリンタが接続 - されているとします. すると, TeX で DVI ファイルを作成する度に, - DVI ファイルを印字するために, これを PostScript ファイルに - 変換する必要があります. このコマンドは次のようになるでしょう. - - -dvips seaweed-analysis.dvi -lpr seaweed-analysis.ps - - DVI ファイル用の変換フィルタがインストールしてあると, LPD に - 変換を肩代わりさせることで毎回毎回おこなわなければならなかった面倒 - な変換作業を省くことができます. つまり, DVI を生成したら, - 次のような1回のコマンド入力だけで, これが印字されます. - -lpr -d seaweed-analysis.dvi - - LPD に DVI ファイルの変換をさせるためには, 」に載せてあります. - - 変化のオプションのそれぞれをプリンタにサポートさせるためには, - /etc/printcap の中で指定しなくてはなりません. 変換フィ - ルタは, プレインテキストを印字する代わりに, フィルタはファイル - をプリンタが理解できる形式に変換するところを除けば, 「プリンタ - の簡単な設定」で説明したテキストファイル (「」 - を見て下さい) に似ています. - - - どの変換フィルタをインストールすべきか? - - -

使いたいと思う変換フィルタをインストールすべきです. - DVI のデータを頻繁に印字するならば, DVI 変換フィルタ - をインストールするのが適切でしょう. 印字しなくてはなら - ない troff を大量に抱えている場合は, 多分, troff フィ - ルタが欲しくなるはずです. - - 次の表は, LPD で動作するフィルタと, - /etc/printcap ファイルでのエントリする項目, - そして, - /etc/printcap -ファイル形式 項目 lpr オプション ------------- ------------- ---------- -cifplot cf -c -DVI df -d -plot gf -g -ditroff nf -n -FORTRAN text rf -f -troff tf -t -raster vf -v -プレインテキスト if なし, -p, または -l - - - 先の例のように, /etc/printcap 内のエントリで, - 変換フィルタのインストール - -

変換フィルタは FreeBSD の基本システムのインストールとは別 - にインストールするプログラムなので, 変換フィルタは, 多 - 分, /usr/local ディレクトリの下に置くべ - きです. フィルタは LPD だけが実行する特別なプログラム, - すなわち, 一般ユーザが実行する必要すらない - プログラムなので, /usr/local/libexec ディレ - クトリに置くのが普通です. - - 変換フィルタを使用可能にするためには, - /etc/printcap の目的のプリンタの適切な項目に - フィルタがあるパス名を指定します. - - DVI 変換フィルタをプリンタ /etc/printcap ファイルの例を以下 - に再掲します. - -# -# /etc/printcap for host rose - added df filter for bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - - DVI フィルタは /usr/local/libexec/psdf という - 名前のシェルスクリプトです. このスクリプトは次のように - なっています. - -#!bin/sh -# -# psdf - DVI to PostScript printer filter -# Installed in /usr/local/libexec/psdf -# -# Invoked by lpd when user runs lpr -d -# -exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" - - このスクリプトでは, - をフィルタモード (引数 - 」 - を参照してください) を LPD に与えられた引数を付けて起動 - します. 変換フィルタのその他の例 - -

変換フィルタのインストールには決まったステップがないの - で, その代わりに, 例をもっと挙げることにします. これを, - 自分でフィルタを作る際のガイドにしてください. 適当な例が - あったら, それをそのまま使ってください. - - 次のスクリプト例は, Hewlett Packard LaserJet III-Si の - ための, raster (ええと・・実は, GIF ファイル) 用の変 - 換フィルタです. - -#!/bin/sh -# -# hpvf - Convert GIF files into HP/PCL, then print -# Installed in /usr/local/libexec/hpvf - -PATH=/usr/X11R6/bin:$PATH; export PATH - -giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ - && exit 0 \ - || exit 2 - - ここでは, GIF ファイルから PNM (portable anymap) 形式 - に変換し, 次に PGM (portable graymap) 形式に変換してか - ら, LaserJet/PCL-互換データに変換しています. - - 上記のフィルタを使うプリンタのためのエントリを付け加え - た /etc/printcap ファイルは次のようになります. - -# -# /etc/printcap for host orchid -# -teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ - :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ - :if=/usr/local/libexec/hpif:\ - :vf=/usr/local/libexec/hpvf: - - - 次のスクリプトは, PostScript プリンタ -#!/bin/sh -# -# pstf - Convert groff's troff data into PS, then print. -# Installed in /usr/local/libexec/pstf -# -exec grops | /usr/local/libexec/lprps "$@" - - 上記のスクリプトではプリンタとの通信をおこなうため, - -#!/bin/sh -# -# pstf - Convert groff's troff data into PS, then print. -# Installed in /usr/local/libexec/pstf -# -exec grops - - これで完成しました. 次に, フィルタを使用可能にするため - に /etc/printcap に加える必要があるエントリを - 示します. - - :tf=/usr/local/libexec/pstf: - - - 次の例をみたら, FORTRAN のベテランは赤面するかもしれ - ません. この FORTRAN テキストフィルタは, プレインテキ - ストを直接印字できるすべてのプリンタで利用できます. この - フィルタをプリンタ -#!/bin/sh -# -# hprf - FORTRAN text filter for LaserJet 3si: -# Installed in /usr/local/libexec/hprf -# - -printf "\033&k2G" && fpr && printf "\f" && exit 0 -exit 2 - - そして, このフィルタを使用可能にするため, 以下の行を - /etc/printcap のプリンタ - :rf=/usr/local/libexec/hprf: - - - これが最後の, そして, 若干複雑な例です. 前に紹介した - LaserJet プリンタ /etc/printcap に書 - き加えます. - - :df=/usr/local/libexec/hpdf: - - - さて, 難しい部分であるフィルタの作成をおこないます. このた - めに, DVI から LaserJet/PCL への変換プログラムが必要 - です. FreeBSD のポート集 (「」を参照してください) には, それがあ - ります. - というのがそのパッケージの名前で - す. これをインストールすると, 必要なプログラム - が使えます. このプログラムは DVI を - LaserJet IIp, LaserJet III, そして LaserJet 2000 の互 - 換コードへ変換してくれます. - - はフィルタ は標準入力からデータを読 - み込むことができないからです. このプログラムを働かせる - ためには, ファイル名が必要です. もっと悪いことに, ファ - イル名は /dev/fd/0 を使うのは問題がありま - す. この問題は, (/dev/fd/0 に (シンボリックな) リンクを張る - ことで回避することができます. これで, - に - 強制的に標準入力からデータを読み込ませることができます. - - もう1つの問題は, 一時的なリンクを張るために /tmp ディ - レクトリを使うことができないという事実です. シンボリッ - クリンクはユーザ, グループが /tmp ディレクトリはスティッ - キービットが立っています. フィルタはリンクを作ることが - できます. しかし, リンクは別のユーザに所有されているた - め, 作業が終了したとき, このリンクを削除することができ - ません. - - その代わりに, シンボリックリンクは現在の作業ディレクト - リ, すなわち, スプーリングディレクトリ - (/etc/printcap/tmp ディレクトリ - よりもたくさんあるからです. - - 以下に示すのが最後のフィルタです. - -#!/bin/sh -# -# hpdf - Print DVI data on HP/PCL printer -# Installed in /usr/local/libexec/hpdf - -PATH=/usr/local/bin:$PATH; export PATH - -# -# Define a function to clean up our temporary files. These exist -# in the current directory, which will be the spooling directory -# for the printer. -# -cleanup() { - rm -f hpdf$$.dvi -} - -# -# Define a function to handle fatal errors: print the given message -# and exit 2. Exiting with 2 tells LPD to do not try to reprint the -# job. -# -fatal() { - echo "$@" 1>&2 - cleanup - exit 2 -} - -# -# If user removes the job, LPD will send SIGINT, so trap SIGINT -# (and a few other signals) to clean up after ourselves. -# -trap cleanup 1 2 15 - -# -# Make sure we are not colliding with any existing files. -# -cleanup - -# -# Link the DVI input file to standard input (the file to print). -# -ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" - -# -# Make LF = CR+LF -# -printf "\033&k2G" || fatal "Cannot initialize printer" - -# -# Convert and print. Return value from dvilj2p does not seem to be -# reliable, so we ignore it. - -# -dvilj2p -M1 -q -e- dfhp$$.dvi - -# -# Clean up and exit -# -cleanup -exit 0 - - - - 自動変換: その他の変換フィルタ - - -

ここまでに述べてきたフィルタによって, 印字環境の能率が - 上がったことと思います. しかし, これはどのフィルタを使 - うかを ( - のコマンドライン上で) ユーザが指定しな - くてはならないという代価を支払って実現されています. コ - ンピュータの事情にあまり詳しくないユーザにとって, フィ - ルタのオプションを指定させられるということはいらいらさ - せられるものになるでしょう. 更に悪いことに, 間違ったフィ - ルタオプションを指定されると, 間違った形式のファイルが - そのフィルタに適用されることになり, その結果, 何百枚も - の紙を掃き出すことになるかもしれません. - - そのような結果になるならば, 変換フィルタをインストール - するよりもむしろ, テキストフィルタ (これがデフォルトフィ - ルタなので) に印字するよう要求されたファイルの形式を検 - 出させ, 自動的に, 適切な変換フィルタを起動するようにし - たいと思うかもしれません. ここでは と呼ばれる自 - 動変換をおこなうテキストフィルタがあります. このフィルタは - プレインテキスト, PostScript, DVI ファイルを検 - 出し, 適当な変換をおこなった後, データを印字することができ - ます. - - - 出力フィルタ - -

LPD スプーリングシステムでは, ここまでにまだ取り上げていな - いフィルタ形式, 出力フィルタをサポートしています. 出力 - フィルタは, テキストフィルタのように, プレインテキスト - のみを印字するために意図されたものですが, 非常に簡単化 - されています. テキストフィルタを用いずに, 出力フィルタ - を使っている場合は, 次のようになります. - - LPD はジョブ中の各ファイルに一度ではなく, ジョブ - 全体に対して一度だけ出力フィルタを起動します. - - LPD は出力フィルタに対し, ジョブ中のファイルの先 - 頭や末尾を特定するための対策を一切おこなっていません. - - LPD はユーザのログイン名やホスト名をフィルタに渡 - しません. したがって, 課金の処理をおこなうことは考えてい - ません. 実際, 出力フィルタには, 以下2つの引数しか与え - られません. - --w - - ここで, - - 出力フィルタの簡便さに誘惑されてはいけません. もし, ジョ - ブ中のそれぞれのファイルに別のページ番号を付加しようと - しても, 出力フィルタは」をご覧ください. さらに, 出力 - フィルタは, 実のところ, 」 - を参照してください) だけを印字させるために, 出 - 力フィルタを起動させます. それから LPD では, アウトプッ - トフィルタに2バイトの文字 (ASCII 031 の次に ASCII 001) - を送ることで, 出力フィルタが テキストフィルタ - -

プログラム /usr/libexec/lpr/lpf は, FreeBSD の - バイナリ配布に付属しているテキストフィルタ (入力フィル - タ) で, 出力を字下げしたり (/etc/printcap ファイルの中の - 」をご覧ください. - - - - - - ヘッダページ - -

あなたが管理するシステムのユーザが」をご覧ください. - - - ヘッダページの印字を許可する - -

」 - では, /etc/printcap ファイルの -#!/bin/sh -# -# hpof - Output filter for Hewlett Packard PCL-compatible printers -# Installed in /usr/local/libexec/hpof - - -printf "\033&k2G" || exit 2 -exec /usr/libexec/lpr/lpf - - 」 - をご覧ください. - - 次に, 以前紹介したプリンタ /etc/printcap ファイルの例を示します. ここでは, ヘッ - ダページの印字を許可し, 上記の出力フィルタを追加しました. - -# -# /etc/printcap for host orchid -# -teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ - :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ - :if=/usr/local/libexec/hpif:\ - :vf=/usr/local/libexec/hpvf:\ - :of=/usr/local/libexec/hpof: - - さて, ユーザが のオプションについては, 「」 - をご覧ください. - - /etc/printcap 中の - ヘッダページを制御する - -

ヘッダページの印字が許可されていると, LPD は -k ll ll -k l l -k l l -k k eeee l l y y -k k e e l l y y -k k eeeeee l l y y -kk k e l l y y -k k e e l l y yy -k k eeee lll lll yyy y - y - y y - yyyy - - - ll - t l i - t l - oooo u u ttttt l ii n nnn eeee -o o u u t l i nn n e e -o o u u t l i n n eeeeee -o o u u t l i n n e -o o u uu t t l i n n e e - oooo uuu u tt lll iii n n eeee - - - - - - - - - -r rrr oooo ssss eeee -rr r o o s s e e -r o o ss eeeeee -r o o ss e -r o o s s e e -r oooo ssss eeee - - - - - - - - Job: outline - Date: Sun Sep 17 11:04:58 1995 - - - LPD はこのテキストの終わりに FROM FEED 文字を加えます - ので, ジョブは新しいページから開始されます (ただし, - /etc/printcap で出力先のプリンタのエントリに - /etc/printcap ファ - イルの中で -rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 - - デフォルトでは, LPD はヘッダページを最初に印字し, 次 - にジョブの印字をおこないます. この順番を逆にするときは, - /etc/printcap ヘッダページに対する課金 - -

LPD に備わっているヘッダページ出力機能を使うと, 入力され - たジョブに対して課金をおこなうことができても, ヘッダページは - LPD のやり方を受け入れ, ヘッダページは無料とする. - - LPDng や PLP といった LPD の代替品をインストール - する. LPD と入れ替えが可能な他のスプーリングソフトウェ - アに関しては, 「」をご覧ください. - - /etc/printcap - - PostScript プリンタでのヘッダページ - - -

これまでに述べたように, LPD ではプレインテキストのヘッ - ダページをたくさんのプリンタに合うように生成することができます. - 残念ながら, PostScript プリンタは, プレインテキストを直接 - 印字することができません. ですから, LPD のヘッダページ機能は - まったく役に立たない, あるいはほとんどの場合で役に立ちません. - - ヘッダページを出力するための自明な方法の1つに, すべての変換フィ - ルタとテキストフィルタにヘッダページを生成させる方法があります. - フィルタは, 適切なヘッダページを生成するために, ユーザ名とホス - ト名の引数を使うべきです. この方法の欠点は, いつでも, -#!/bin/sh -# -# make-ps-header - make a PostScript header page on stdout -# Installed in /usr/local/libexec/make-ps-header -# - -# -# These are PostScript units (72 to the inch). Modify for A4 or -# whatever size paper you are using: -# -page_width=612 -page_height=792 -border=72 - -# -# Check arguments -# -if [ $# -ne 3 ]; then - echo "Usage: `basename $0` " 1>&2 - exit 1 -fi - -# -# Save these, mostly for readability in the PostScript, below. -# -user=$1 -host=$2 -job=$3 -date=`date` - -# -# Send the PostScript code to stdout. -# -exec cat < - そして, 変換フィルタやテキストフィルタがそれぞれ, 最初にこのス - クリプトを起動することで, ヘッダページが出力され, それから, ユー - ザのジョブの印字をおこないます. 次に, このドキュメントの始めのほう - で紹介した DVI 変換フィルタを, ヘッダページを印字するように変 - 更したものを示します. - -#!/bin/sh -# -# psdf - DVI to PostScript printer filter -# Installed in /usr/local/libexec/psdf -# -# Invoked by lpd when user runs lpr -d -# - -orig_args="$@" - -fail() { - echo "$@" 1>&2 - exit 2 -} - -while getopts "x:y:n:h:" option; do - case $option in - x|y) ;; # Ignore - n) login=$OPTARG ;; - h) host=$OPTARG ;; - *) echo "LPD started `basename $0` wrong." 1>&2 - exit 2 - ;; - esac -done - -[ "$login" ] || fail "No login name" -[ "$host" ] || fail "No host name" - -( /usr/local/libexec/make-ps-header $login $host "DVI File" - /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args - - このフィルタがユーザ名やホスト名を決定するために引数リストをど - のように解析しなくてはならないかという点に注意してください. こ - の解析方法は他の変換フィルタに対しても同様です. しかしながら, - テキストフィルタについては, 引数の設定が少し異なっています (こ - れについては, 「」をご覧ください). - - 前述の通り, 上記の手法は, 極めて単純なのにも関らず, 」で紹介したトリックを使う必要があります. すな - わち, LPD が生成するヘッダページの解析をおこない, PostScript - 版のヘッダページを出力させる出力フィルタを作るのです. この場 - 合, ユーザが リモートプリンタからの出力 - -

FreeBSD では, ネットワーク越しの印字, すなわち, ジョブをリ - モートプリンタに送ることをサポートしています. リモートプリンタ - からの出力をするには, 一般に, 次の2つを参照してください. - - リモートホストに接続されたプリンタにアクセスする方 - 法. プリンタがあるホストのシリアル, または, パラレルイ - ンタフェースに接続されている場合, ネットワーク上の他の - ホストからこのプリンタにアクセスできるように LPD を設 - 定します. 「」でどのよう - にするかを説明します. - - ネットワークに直接接続されているプリンタにアクセ - スする方法. プリンタに, 旧来のシリアル, または, パラレ - ルインタフェースに加えて (もしくは, これらに代わって) ネッ - トワーク用のインタフェースがある場合. そのようなプリン - タは次のように動作するでしょう. - - - そのプリンタが LPD のプロトコルを理解でき, リモー - トホストからのジョブをキューに入れることさえできる場合. - この場合, プリンタは, LPD が起動している一般のホスト - のように振る舞います. そのようなプリンタを設定するため - に, 「」と同様の手 - 順をおこなってください. - - - そのプリンタが, データストリームによるネットワー - ク接続をサポートしている場合. この場合, ネットワーク上 - の1つのホストとしてプリンタを「接続」します. このホス - トは, ジョブをスプーリングする責任を負い, スプーリング - されたジョブはプリンタに送られます. そのようなプリンタ - をインストールするためのいくつかの提案が「」にあります. - - - - リモートホストに接続されたプリンタ - -

LPD スプーリングシステムでは LPD (または LPD 互換のシス - テム) が起動している他のホストへジョブを送る機能が始めからサポー - トされています. この機能により, あるホストに接続されたプリンタ - へ, 他のホストからアクセスできるようになります. また, LPD プ - ロトコルを理解するネットワークインタフェースを持ったプリンタに - 対しても, この機能は働きます. - - リモートプリンタへの出力を許可するためには, 最初に, あるホスト - (これを, 」に書かれた簡単なプリンタの設定をおこなってください. 必要ならば, - 「」にあ - る, 更に進んだ設定をおこなってください. そして, そのプリンタをテス - トしてうまく動作することを確認し, LPD に許可した機能がうまく働 - くかどうかを見てください. さらに 」参照). - - - LPD 互換のネットワークインタフェースを持つプリンタを使用してい - る場合は, そのプリンタ自身が以下で説明する/etc/printcap ファイルに次にあげるエント - リを作ります. - - 名前のエントリ. どんな名前でもよいのですが, 簡単 - のため, 多分, プリンタホストで設定されたプリンタ名や別 - 名と同じものを使いたいと思うでしょう. - - スプーリングディレクトリを作成し, - これで終わりです. 変換フィルタやページの大きさやその他の事項を - /etc/printcap に加える必要はありません. - - 次に, リモートホストに接続されたプリンタで印字するための設定例 - を示します. ホスト rose には2台のプリンタ /etc/printcap を示します (このファイルは, 「」で参照することができます). このファイルには, - 既に, プリンタ -# -# /etc/printcap for host orchid - added (remote) printers on rose -# - -# -# teak is local; it is connected directly to orchid: -# -teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ - :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ - :if=/usr/local/libexec/ifhp:\ - :vf=/usr/local/libexec/vfhp:\ - :of=/usr/local/libexec/ofhp: - -# -# rattan is connected to rose; send jobs for rattan to rose: -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: - -# -# bamboo is connected to rose as well: -# -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: - - orchid で必要となる作業はスプーリングディレクトリを作ることだ - けです. - - -mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo -chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo -chown daemon.daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo - - - これで, orchid のユーザが -lpr -P bamboo -d sushi-review.dvi - - すると, orchid の LPD システムは, ジョブをスプーリングディレ - クトリ /var/spool/lpd/bamboo にコピーし, これが DVI - ファイルを印字するジョブであることを記録します. ホスト rose の - ネットワークにおけるデータストリームのインタ - フェースを持つプリンタ - -

プリンタのネットワークインタフェースカードは, 2種類に分 - 類することができます. 1つはスプーラをエミュレートするもの (高価) - で, もう1つはシリアルやパラレルポートを使うようにプリンタにデー - タを送ることができるだけのもの (安価) です. この節では, 後者の使 - い方を説明します. 前者のプリンタは, 前節「」 - の方法が適用できます. - - /etc/printcap ファイルでは, シリアルかパラレルのイン - タフェースのどちらを使うのか, そして, (シリアルインタフェース - を使う場合) そのボーレートはいくらであるか, フロー制御は使うのか, - タブのための遅延を加えるのか, 改行文字を変換するかなどの指定を - おこなうことができます. しかし, TCP/IP や他のネットワークポートか - らデータを受け取るプリンタを接続するための指定をおこなうことはでき - ません. - - ネットワーク接続されたプリンタにデータを送るためには, テキスト - フィルタと変換フィルタから呼び出すことができる通信プログラムを - 開発する必要があります. 以下に, そのようなプログラムの例を示し - ます. スクリプト -#!/usr/bin/perl -# -# netprint - Text filter for printer attached to network -# Installed in /usr/local/libexec/netprint -# - -$#ARGV eq 1 || die "Usage: $0 "; - -$printer_host = $ARGV[0]; -$printer_port = $ARGV[1]; - -require 'sys/socket.ph'; - -($ignore, $ignore, $protocol) = getprotobyname('tcp'); -($ignore, $ignore, $ignore, $ignore, $address) - = gethostbyname($printer_host); - -$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); - -socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) - || die "Can't create TCP/IP stream socket: $!"; -connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; -while () { print PRINTER; } -exit 0; - - このスクリプトは, 様々なフィルタが利用することができます. 仮に, - Diablo 750-N ラインプリンタを持っており, これがネットワークに - 接続されているとしましょう. プリンタはポート番号5100にて印字す - るデータを受け取ります. プリンタのホスト名は scrivener としま - す. このとき, このプリンタのテキストフィルタは次のようになりま - す. - -#!/bin/sh -# -# diablo-if-net - Text filter for Diablo printer `scrivener' listening -# on port 5100. Installed in /usr/local/libexec/diablo-if-net -# - -exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 - - - - プリンタの利用に制約を与える - -

本節では, プリンタの利用に制約を与えるための情報を記して - います. LPD システムでは, プリンタ (ローカル, リモートのいずれ - に接続されていても) にアクセスできる人を制限する機能, 複数部の - コピーの印字の可否を制御する機能, ジョブのサイズの最大値やプリ - ンタキューに入るジョブの最大個数を制御する機能を提供しています. - - - 複数部のコピーの印字を制限する - -

LPD システムではユーザが複数部のコピーの印字を簡単におこなう - 機能を提供しています. ユーザが, (例えば) /etc/printcap ファイルに -lpr: multiple copies are not allowed - - - リモートホストからプリンタをアクセスできる設定にしている場合 (この - 設定については, 「」をご覧ください), その - リモートホストの /etc/printcap にも同じように /etc/printcap ファ - イルは, ホスト rose のものです. プリンタ -# -# /etc/printcap for host rose - restrict multiple copies on bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:sc:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - - さらに, orchid の /etc/printcap にも -# -# /etc/printcap for host orchid - no multiple copies for local -# printer teak or remote printer bamboo - -teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ - :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ - :if=/usr/local/libexec/ifhp:\ - :vf=/usr/local/libexec/vfhp:\ - :of=/usr/local/libexec/ofhp: - -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: - - を複数回起動し - たり, 1回のジョブで次のように同じファイルを複数個指定すること - を防ぐまでには至っていません. - -lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign - - このような悪用を防ぐ方法は (その指示を無視することも含めて) たく - さんあります. 各自で調べてみてください. - - - プリンタを使用できる人を限定する - -

それぞれのプリンタを使用できる人を限定するには, UNIX の - グループ権限のメカニズムを利用し, さらに, - /etc/printcap -lpr: Not a member of the restricted group - - 」をご覧ください), かつ, そ - のホストでもプリンタを使用できる人を限定するのが妥当であると思 - う場合は, そのホストの /etc/printcap にも /etc/printcap を示します. - -# -# /etc/printcap for host rose - restricted group for bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - - これ以外の /etc/printcap ファイル (ホスト orchidのもの) - はそのままにしておくことにします. もちろん, orchid のユーザは - 全員 入力可能なジョブのサイズを制限する - -

たくさんのユーザからプリンタが利用される場合には, 多分, - ユーザが印字要求を出すことができるファイルのサイズに上限値を置 - く必要が生じるでしょう. 結局のところ, スプーリングディレクトリ - が置かれているファイルシステムの空き容量がその上限値になる訳で - すが, あるユーザがこれを独占的に使用すること避けるために, 他ユー - ザからのジョブ用の空き容量を確保する必要もあります. - - LPD では, -# -# /etc/printcap for host rose -# - -# -# No limit on job size: -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -# -# Limit of five megabytes: -# -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - - この場合もそうですが, この制限はローカル (ホスト rose) のユーザ - のみに適用されます. リモートホストからプリンタを利用できるよう - に設定している場合は, そのリモートホストのユーザはこの制限を受 - けません. これらのユーザにも制限を加える場合は, リモートホスト - の /etc/printcap」を参照してください. - - リモートホストに接続されたプリンタへのジョブのサイズを制限する - 特別な方法は他にもあります. これについては, 「」を参照してください. - - - リモートホストからのプリンタの利用を制限する - - -

LPD スプーリングシステムでは, リモートホストから要求され - たジョブの印字を制限するための方法がいくつか提供されています. - - - /etc/hosts.equiv と - /etc/hosts.lpd によって制御することができます. - LPD では, あるホストから印字の要求がきたとき, このホス - トの名前がこれら2つのファイルのどちらかに含まれている - かどうかを調べます. これが含まれていない場合は, LPD - はこの要求を拒否します. - - これらのファイルの形式は単純です. 各行にホストの名前を - 1つずつ書いていきます. ファイル - /etc/hosts.equiv の方は - プロトコル - でも利用され, - や - といったプログラム - の動作に影響するので注意が必要です. - /etc/hosts.equiv の記述は慎重におこないましょう. - - 例として, 以下にホスト rose の /etc/hosts.lpd - を示します. - -orchid -violet -madrigal.fishbaum.de - - この例では, rose はホスト orchid, violet, そして - madrigal.fishbaum.de からの要求を受け付けることになり - ます. その他のホストが rose の LPD にアクセスしようと - しても, LPD はこれを拒否します (訳注:拒否されるのは, - そのホストが /etc/hosts.equiv にも含まれてい - ない場合です). - - - /etc/printcap を調べてみましょ - う. 以下に, -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ - :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - - スプーリングディレクトリは -echo 6144 > /var/spool/lpd/bamboo/minfree - - - /etc/printcap/usr/bin/false などを指定 - して, これらのユーザのアカウントはプリンタ用の「形式的 - な」ものとします. - - - プリンタの利用に対する課金 - -

という訳で, 印字するためには料金をとることが必要です. 取ら - ない理由などありましょうか. 紙やインクにはお金がかかります. そ - して, プリンタの維持費もかかります. プリンタには可動部分が搭載 - されており, これらの部分は壊れやすいという傾向があります. プリ - ンタや, その利用形態, 維持費について調査をし, 1ページ (1フィー - ト, 1メートルなど) 当たりにかかるコストを調べておいてください. - これに基づき, プリンタの利用に対する課金を, 実際に, どのように - 始めればよいのでしょうか. - - さて, 残念ながら, この部分に関しては LPD スプーリングシステム - はほとんど役に立ちません. 課金は使用しているプリンタの種類, 印 - 字するもののファイルの形式, プリンタの利用に対する課金での」をご覧く - ださい. - - 一般に, 課金方式には次の2つがあります. - - - - LPD スプーリングシステムでは, 両方式を簡単にですがサポー - トしています. これは, (ほとんどの場合で) 印字作業をフィ - ルタがおこなっていたように, 課金作業もこのためのコードも用 - 意することで実現されています. しかし, 明るい面もありま - す. それは, 課金方式に関して, 非常に大きな柔軟性が与え - られたということです. 例えば, 「定期的に課金する方法」 - か, 「利用毎に課金する方法」のどちらかを選びまず, そし - て, どんな情報 (ユーザ名, ホスト名, ジョブのタイプ, 印 - 字された頁数, 使用した紙の大きさ, 印字をするために要した - 時間など) をログに記録するかを決めます. 以上のことをおこな - うには, 上記の情報を保持するために, フィルタを変更しな - くてはなりません. - - - - 手軽なプリンタ課金方法 - -

FreeBSD には, 「定期的に課金する方法」による課金をすぐに - 設定できるように, 2個のプログラムを添付しています. そ - の内の1つはテキストフィルタ 」をご覧ください. もう1つは, - で, - これはプリンタの課金データファイルからのエントリを集め, - これを合計するプログラムです. - - 「」で述べたように, LPD では - テキストフィルタや変換フィルタを起動しますが, そのコマ - ンドラインで使用している課金データファイルの名前が指定 - されます. 両フィルタはこの引数を使って, どの課金データ - ファイルのエントリに書き込めばよいのかを知ることができ - ます. このファイルの名前は /etc/printcap 中の - - 2.00 rose:andy - 3.00 rose:kelly - 3.00 orchid:mary - 5.00 orchid:mary - 2.00 orchid:zhang - - 課金データファイルはプリンタ毎に分けて作るべきです. こ - れは, /etc/printcap 中の と入力 - してください. 次のような, ドル中心主義の課金リストが表 - 示されます(訳注:ドル中心主義という表現は, 表示がドルで - 出ることへの著者の皮肉でしょう. セントがあるので小数点 - 以下が表示されますが, この機能も日本では邪魔ですね). - - Login pages/feet runs price -orchid:kelly 5.00 1 $ 0.10 -orchid:mary 31.00 3 $ 0.62 -orchid:zhang 9.00 1 $ 0.18 -rose:andy 2.00 1 $ 0.04 -rose:kelly 177.00 104 $ 3.54 -rose:mary 87.00 32 $ 1.74 -rose:root 26.00 12 $ 0.52 - -total 337.00 154 $ 6.74 - - が受け付ける引数には次のようなものがあります. - - /etc/printcap の - /etc/printcap - - が生成するデフォルトのリストには, 各ホストのユーザ別 - に印字ページ数が表示されます. (ユーザがサイト内のすべてのホスト - を使用できるため) ホスト名の情報が意味を持たない場合, - - Login pages/feet runs price -andy 2.00 1 $ 0.04 -kelly 182.00 105 $ 3.64 -mary 118.00 35 $ 2.36 -root 26.00 12 $ 0.52 -zhang 9.00 1 $ 0.18 - -total 337.00 154 $ 6.74 - - 課金額を決めるために, - /etc/printcap ファ - イルの -pac -p1.50 - - このオプションを使うと, 実際の課金額を集計することができます. - - 最後に, が起動されると, - その時点までの累計金額を得るために, 課金データ累計ファイルが読 - み込まれ, 通常の課金データファイルからの情報に加算されます. - - - 印字されたページ数をどのように数えるか? - - -

課金を, リモートホストからの印字でさえも, 正確におこなうため - には, ジョブで使用された紙が何ページであるかを特定でき - る必要があります. このことは, プリンタ利用に対する課金 - をおこなう上の根本的な問題です. - - プレインテキストのジョブの場合, 問題を解決するのはさほ - ど難しくはありません. ジョブが何行であったかを数え, プ - リンタがサポートしている紙1ページに印字できる最大の行 - 数と比較すればよいのです. 重ね打ちするために利用される - ファイル中のバックスペース文字や, 物理的に複数の行に渡 - る長い論理行に対する取り扱いを忘れずにおこなってください. - - (「」で紹介した) テキストフィルタ や - の - 出力メッセージを解析することで, 何ページ分の変換がおこなわ - れたかを知ることができます. 他のファイル形式とその変換 - プログラムに関しても, 同様のことができるかもしれません. - - しかし, この方式には問題点があります. それは, 変換され - たページがすべて印字されるとは限らないということです. 例 - えば, プリンタが紙詰まりを起こしたり, トナー切れになっ - たり, はたまた, 爆発したりするかもしれません. そのよう - な状況により印字が途中で中止されたとしても, この方式で - は, ユーザは全ページ分の料金を課されてしまうのです. - - それでは, どのような対策をたてることができるのでしょう - か. - - 標準スプーラの代替品 - -

このマニュアルを最初から通読されている方ならば, ここまでで, - FreeBSD 付属の LPD スプーリングシステムに関して知っておくべき - ことすべてを学ばれたことと思います. 多分, このシステムに - あるたくさんの欠点について認識できたことでしょう. すると, - 「(FreeBSD 上で動作する) スプーリングシステムには他にどのような - ものがあるのか」という疑問が自然と湧いてきます. - - 残念ながら, 著者は代替のスプーラを - 」です. - 「」にもあります. - - - PLP は BSD LPD スプーラと極めて似ていますが, 以下のも - のを含むホストの機能が自慢です. - - ネットワークサポートの強化. ネットワーク接続され - るプリンタのサポートや NIS で管理可能な printcap ファ - イル, NFS マウントされるスプーリングディレクトリの機 - 能が組み込まれています. - - 洗練されたなキュー管理. 1つのキューで複数のプリン - タに対応可能. キュー間でジョブを転送したり, キューのリ - ダイレクトができます. - - リモートプリンタの制御機能 - - ジョブの優先順位付け - - 拡張性のあるセキュリティとアクセスオプション - - - 」です. - - - - 謝辞 - -

このドキュメントの開発の手助けをして頂いた以下の方々に感謝の - 意を表わしたいと思います. - - - diff --git a/ja/handbook/quotas.sgml b/ja/handbook/quotas.sgml deleted file mode 100644 index bb36c57960..0000000000 --- a/ja/handbook/quotas.sgml +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - ディスク クォータ - -

原作: &a.mpp; -26 February 1996 . - -

訳者: &a.mihoko; -6 September 1996 . - - クォータシステムは、オペレーティングシステムのオプション機能で、 - 各ファイルシステム上で ユーザやグループのメンバが使用するディスク - スペースの総量を規制したり、作成できるファイルの個数を制限したりす - ることができます。 - この機能は、各ユーザ、各グループごとに使用できる資源の総量を制限で - きるようなタイムシェアリングシステム上でもっともよく使用されていま - す。これは、一人のユーザが、使用可能な全てのディスクスペースを使い - きってしまうことを防止できます。 - -ディスククォータを使用するための設定 - -

ディスククォータを使用しようとする前に、あなたが使用しているカー - ネルで、クォータが組み込まれているかどうかを確認する必要があります。 - クォータを使用できるカーネルを構築するためには、カーネルコンフィギュ - レーションファイルに、次の行を追加してください: - -options QUOTA - - 標準のGENERIC カーネルでは、この機能は有効になっていません。 - したがって、ディスククォータを使用するためには、 - カーネルをコンフィグレーションして構築しなおし、そのカーネ - ルをインストールしなければいけません。カーネルの構築方法について - の詳細情報は、 - - を参照してください。 - -

次に、ファイル /etc/sysconfig の中で、ディスククォー - タ機能を、使用可能に設定する必要があります。 - そのためには、以下の行を変更します: - -quotas=NO - -を次のように: - -quotas=YES - - -

FreeBSD 2.2.2 以降では, /etc/rc.conf でこの設定を行いま - す. また, 変数の変更は以下のようにします. - -check_quotas=YES - - -

最後に、各ファイルシステム毎にディスククォータを設定する - ために、ファイル /etc/fstab を編集する必要があります。 - 全てのファイルシステムに対して、ユーザ又はグループのいずれかのクォー - タを設定することも、ユーザとグループの両方のクォータを設定すること - もできます。 - -

ファイルシステム上で、ユーザ毎のクォータを設定するためには、 - userquota オプションを、ファイル /etc/fstab の中 - で、クォータを設定したいファイルシステムのエントリののオプションフィー - ルドに追加してください。 例えば: - -/dev/sd1s2g /home ufs rw,userquota 1 2 - - -

同様に、グループのクォータを設定するためには、 - groupquota オプションを userquota の代わりに使用 - してください。ユーザとグループの両方のクォータを設定するためには、 - 次のようにエントリを変更してください: - -/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 - - -

デフォルトでは、クォータファイルは ファイルシステムの root ディ - レクトリ上に、ユーザとグループのクォータに対して それぞれ - quota.userquota.group という名前で置いてあり - ます。詳細情報は、man fstab を御覧ください。 - man ページには、クォータファイルを別な場所に置くことができると書い - てありますが、さまざまな クォータユーティリティのうち、この機能を - 適切に処理できていないものがあるので、クォータファイルをデフォルト - の場所以外に置くことは勧められません。 - -

ここまで準備ができたら、新しいカーネルを使って、システムを立ち - 上げ直してください。 - /etc/rc ファイルが、自動的に適切なコマンドを起動してくれ - 、あなたが /etc/fstab ファイルで使用可能にした全てのクォー - タに対して、初期クォータファイルを作成してくれます。 - したがって、手動で サイズ 0 のクォータファイルを作成する必要はあり - ません。 - -

通常の作業の流れでは、手動で quotacheck、 - quotaon、または quotaoff コマンドを起動すべきで - はありません。しかしながら、それらの作業について詳しく知りたい場合に - は、man ページを御覧ください。 - -クォータ制限の設定 - -

一旦システムのクォータを有効に設定したら、 - 本当にクォータが使用可能になっていることを確かめてください。 - これを簡単に確かめるには、quota -v コマンドを実行してみて - ください。ディスク使用量の総計と、クォータが設定されている各ファイ - ルシステム毎の現在のクォータ制限が表示されます。 - -

さてこれで、edquota コマンドによって、クォータ制限をか - ける準備ができました。 - -

ユーザまたはグループが使用できるディスクスペースの総計や、作成 - することのできるファイル数に制限をかけるためのオプションがいくつか - あります。 ディスクスペース容量規制 (ブロッククォータ) または ファイ - ル数制限 (iノードクォータ) またはその両方を行うことができます。 - これらの個々の制限は、二つのカテゴリ、すなわち ハード制限とソ - フト制限、でもっと細かく分類できます。 - -

ハード制限は越えることができません。ユーザがハード制限に到達す - ると、該当するファイルシステム上でディスクスペースを確保することが - できなくなります。 例えば、もしユーザがファイルシステム上で 500 ブ - ロックのハード的制限をされていて、かつ、現在、490 ブロック使用して - いたとすると、ユーザはあと 10 ブロックしか確保できません。 - 11ブロック目を確保しようとすると、失敗します。 - -

一方、ソフト制限は、定められたある一定の期間以内ならば制限を越 - えることができます。この一定期間は、猶予期間と呼ばれています。 - 猶予期間のデフォルトは 1週間です。もし、ユーザが猶予期間を過ぎても - ソフト制限を越えて使用し続けていた場合には、ソフト制限はハード制限 - に切り替わり、もはやこれ以上は、ディスクスペースを確保できなくなり - ます。ユーザのディスク使用量がソフト制限以下に戻った時に、猶予期間 - がリセットされます。 - -

以下は、edquota コマンドを実行した時の出力例です。 - edquota コマンドが起動されると、EDITOR 環境変数 - で定義されたエディタ、または、EDITOR 環境変数が設定されて - いない場合には vi エディタが起動され、クォータ制限を編集 - することができます。 - -# edquota -u test -Quotas for user test: -/usr: blocks in use: 65, limits (soft = 50, hard = 75) - inodes in use: 7, limits (soft = 50, hard = 60) -/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) - inodes in use: 0, limits (soft = 50, hard = 60) - - 通常は、クォータが設定されているファイルシステム毎に2行の表示が - 行われます。1行は、ブロック制限に関する情報で、もう1行は、i ノード - 制限に関する情報です。クォータ制限の値を変更したい値に書き換えてく - ださい。例えば、ユーザのブロック制限を、50 ブロックまでのソ - フト制限と 75 ブロックまでのハード制限から、500 ブロックまでのソフ - ト制限と 600 ブロックまでのハード制限にしたい場合は、 - 次のように書き換えます: - -/usr: blocks in use: 65, limits (soft = 50, hard = 75) - -を次のように: - -/usr: blocks in use: 65, limits (soft = 500, hard = 600) - - 新しいクォータ制限は、エディタを終了した時に置き換えられます。 - -

uid の範囲によってクォータを設定する個とも可能です。 - そのためには edquota コマンドで、-p オプションを - 使用します。まずはじめに、かけたいクォータ制限を、一人のユーザに対 - して設定します。それから次のコマンドを実行します - edquota -p protouser startuid-enduid。 - 例えば、もし、ユーザ test がクォータ制限をかけられていた - とすると、次のコマンドは、同じ制限を、uid 10,000 から 19,999 まで - のユーザにかけることができます: - -edquota -p test 10000-19999 - - -

uid の範囲によって制限をかけることができる機能は、2.1 がリリー - スされたあとに追加されました。もし、2.1 のシステム上で、この機能を - 必要とする場合には、新しい edquota を入手する必要があります。 - -

詳細情報は man edquota を御覧ください。 - -クォータ制限およびディスク使用状況のチェック - -

クォータ制限およびディスク使用状況をチェックするには、 - quota または repquota コマンドを使用することがで - きます。quota コマンドは、各ユーザ、各グループ毎のクォー - タ制限およびディスク使用状況をチェックすることができます。 - スーパーユーザだけが、他のユーザまたは自分が所属していないグループに - 関するクォータ制限とディスク使用状況を調べることができます。 - repquota コマンドは、クォータが設定されているファイルシス - テムに対する、全てのクォータ制限およびディスク使用状況の総計を表示 - します。 - -

以下は、2つのファイルシステム上でクォータ制限がかけられているユー - ザに対して quota -v コマンドを実行した出力結果の例です。 - - -Disk quotas for user test (uid 1002): - Filesystem blocks quota limit grace files quota limit grace - /usr 65* 50 75 5days 7 50 60 - /usr/var 0 50 75 0 50 60 - - 上の例では、/usr ファイルシステム上で、このユーザは現在 - 50 ブロックまでのソフト制限を 15 ブロック超過して使用しており、 - 残り 5 日間の猶予期間を設定されています。 - アスタリスク (*) は、ユーザが現在クォータ制限を越えていることを示 - しています。 - -

通常、ユーザがディスクスペースを全く使用していないファイルシス - テムは、 たとえ そのファイルシステムにクォータ制限が設定されていた - としても、quota コマンドによる出力では表示されません。 - -v オプションを付けると、上の例の /usr/var ファ - イルシステムのように、これらのファイルシステムも表示します。 - -* NFS ファイルシステム上でのクォータ - -

このセクションはまだ作成中です。 - diff --git a/ja/handbook/relnotes.sgml b/ja/handbook/relnotes.sgml deleted file mode 100644 index 641e28704d..0000000000 --- a/ja/handbook/relnotes.sgml +++ /dev/null @@ -1,578 +0,0 @@ - - - - - - 現在のリリースについて - -

FreeBSD は自由に利用でき Intel - i386/i486/Pentium/PentiumPro/Pentium II - (とその互換 CPU) の PCで動作する, 4.4BSD-Lite ベースの全ソー - スつきのリリースです. これはもともとカリフォルニア大学バーク - レイ校 CSRGグループのソフトウェアがベースとなっており, - NetBSD, OpenBSD, 386BSD, そして Free Software Foundation の - ソフトウェアなどにより拡張されています. - - 95年1月の FreeBSD 2.0 のリリースからみると, FreeBSD は性能, 機能, - 安定性の面で劇的に改善されました. - もっとも大きな変化は仮想メモリシステムに - おける改良で, 統合化された VM/file バッファキャッシュを用いる - ことで性能を向上させながらも FreeBSD のメモリの使用量を減らすことが - できたことです. おかげで, 最低 5MB メモリという制約上でも動作する - ようになりました. その他の拡張としては NIS のクライアントとサーバの - 完全サポート, トランザクション TCP のサポート, ダイヤルオンデマンド - PPP, 改良 SCSI サブシステム, ISDN の初期サポート, - FDDI や Fast Ethernet (100Mbps) などのサポート, - Adaptec 2940 (WIDE と narrow) のサポートの改良と数百件のバグの修正, - などがあります. - - 私たちはたくさんのユーザからのコメントや提案をまじめに受け取り, - 私たちが正しいと考え, かつ導入の手順が分かりやすいものを提供しようと - 努力しています. この (継続的に進化する) プロセスに対するあなたの意見を - 心からお待ちしています. - - FreeBSD では基本配布セットに加え, 移植されたソフトウェア集 - として 数百の人気の高いプログラムを提供しています. 98年8月 - 下旬の時点で 1700 以上の ports (移植ソフトウェア) が存在します. - ports には http (WWW) サーバから, ゲーム, 言語, - エディタまでありとあらゆるものが含まれています. portsはオリジナル - ソースに対する「差分」という形で表現されており, すべての portsを - 集めても 26MB程度にしかなりません. こうすることで ports の更新を - 容易にし, portsに必要なディスクスペースを小さくすることができます. - portsをコンパイルするには, インストールしたいと思っているプログラムの - ディレクトリに移動し, ``make all'' と実行してコンパイルが成 - 功したら, ``make install'' とすると, あとはすべてシステムが - やってくれます. どの portsもオリジナルの配布セットを動的に - CDROM または近くの FTP サーバから取ってくるので, ディスクは - 構築したいと思っている portsの分だけを準備しておけば十分です. - ほとんどの portsは, すでにコンパイルされた状態で ``package'' - として提供されており, ソースコードからコンパイルしたくない場 - 合, これを使うと (pkg_add というコマンドで) 簡単にインストー - ルできます. - - FreeBSD 2.1 以降のマシンであれば, /usr/share/doc - ディレクトリにインストールの手順や FreeBSD を利用する上で有用な - ドキュメントがたくさんあります. - これらのローカルにインストールされたドキュメントは, - HTML ブラウザを使って, 以下の URL から - 参照することができます. - - - FreeBSD ハンドブック (英文オリジナル) - - - FreeBSD に関する FAQ - - - - また, にはマスタ - (かなり頻繁に更新されます) がありますので, こちらも参照してください. - - 合衆国の輸出規制のため, FreeBSD のコア配布セットには DES のコードは - 含まれていません. 合衆国国内に限り, DES を使うプログラムなどが, - コア配布セットに加えるパッケージとして提供されています. - 誰でも使えるパッケージは, 別途, 合衆国国外で提供されています. - 合衆国国外からも自由に取得可能な DES の配布セットに関する - 詳細は, にあります. - - FreeBSD 上で必要とされるセキュリティがパスワードだけであり, Sun や - DEC などの別のホストから暗号化されたパスワードをコピーする必要が - ないのであれば, FreeBSD の MD5 ベースのセキュリティで十分です. - この標準のセキュリティモデルは DES よりも適していると私たちは思って - いますし, また, やっかいな輸出規制にもひっかかることはありません. - あなたが合衆国国外にいるなら (あるいは国内にいても) 一度試してみて - ください! - -Since our first release of FreeBSD 1.0 nearly two - years ago, FreeBSD has changed dramatically. Since - release 2.0, FreeBSD has been based on the Berkeley - 4.4BSD-Lite code rather than the Net2 code used for - previous versions. In addition to clearing the legal - issues that surrounded the Net2 code, the port to 4.4 - has also brought in numerous new features, filesystems - and enhanced driver support. - - Since our release of FreeBSD 2.0 in November of 1994, - the performance, feature set, and stability of FreeBSD - has improved dramatically. The largest change is a - revamped Virtual Memory (VM) system with a merged - virtual memory and file buffer cache. This increases - performance while reducing FreeBSD's memory footprint, - making a system with 4 megabytes of RAM a more - acceptable minimum. Other enhancements include full - NIS client and server support, transaction TCP support, - dial on demand PPP, an improved SCSI subsystem, early - support for ISDN, support for FDDI and 100Mbit Fast - Ethernet adapters, improved support for the Adaptec - 2940 and hundreds of bug fixes. - - We have also taken the comments and suggestions of many - of our users to heart and have attempted to provide - what we hope is a more sane and easily understood - installation process. Your feedback on this constantly - evolving process is especially welcome! - - In addition to the base distributions, FreeBSD offers a - new ported software collection with some 270 commonly - sought-after programs. The list of ports ranges from - World Wide Web (http) servers, to games, languages, - editors and almost everything in between. The entire - ports collection requires only 10MB of storage because - each port contains only the changes required for the - source code to compile on FreeBSD and the information - necessary to automatically retrieve the original - sources. The original distribution for each port you - build is automatically retrieved off of CD-ROM or a via - anonymous ftp, so you need only enough disk space to - build the ports you want. Each port is also provided - as a pre-compiled package which can be installed with - the pkg_add(1) command for those who do not - wish to compile their own ports from source. See for a more - complete description. - - - - The core of FreeBSD does not contain DES code which - would inhibit its being exported outside the United - States. An add-on package, for use only in the United - States, contains the programs that normally use DES. - The auxiliary packages provided separately can be used - by anyone. A freely exportable European distribution - of DES for our non-U.S. users also exists and is - described in the . If password security for FreeBSD is all you - need, and you have no requirement for copying encrypted - passwords from other hosts using DES into FreeBSD - password entries, then FreeBSD's MD5 based security may - be all you require. We feel that our default security - model is more than a match for DES, and without any - messy export issues to deal with. - - FreeBSD 2.0.5 represents the culmination of 2 years of - work and many thousands of man hours put in by an - international development team. We hope you enjoy it! - - New feature highlights - -

The following features were added or substantially - improved between the release of 2.0 and this 2.0.5 - release. In order to facilitate better - communication, the person, or persons, responsible - for each enhancement is noted. Any questions - regarding the new functionality should be directed to - them first. - - Kernel - -

- - - Merged VM-File Buffer Cache A merged - VM/buffer cache design greatly enhances overall - system performance and makes it possible to do - a number of more optimal memory allocation - strategies that were not possible before. - - Owner: &a.dg; - - Network PCB hash optimization For - systems with a great number of active TCP - connections (WEB and ftp servers, for example), - this greatly speeds up the lookup time required - to match an incoming packet up to its - associated connection. - - Owner: &a.dg; - - Name cache optimization The name-cache - would cache all files of the same name to the - same bucket, which would put for instance all - ".." entries in the same bucket. We added the - parent directory version to frustrate the hash, - and improved the management of the cache in - various other ways while we were at it. - - Owner: &a.phk; and &a.dg; - - Less restrictive swap-spaces The need - to compile the names of the swap devices into - the kernel has been removed. Now - swapon(8) will accept any block - devices, up to the maximum number of swap - devices configured in the kernel. - - Owner: &a.phk; and &a.dg; - - Hard Wired SCSI Devices Prior to - 2.0.5, FreeBSD performed dynamic assignment of - unit numbers to SCSI devices as they were - probed, allowing a SCSI device failure to - possibly change unit number assignment. This - could cause filesystems other disks in the - system to be incorrectly mounted, or not - mounted at all. Hard wiring allows static - allocation of unit numbers (and hence device - names) to scsi devices based on SCSI ID and - bus. SCSI configuration occurs in the kernel - config file. Samples of the configuration - syntax can be found in the scsi(4) man - page or the LINT kernel config file. - - Owner: &a.dufault; - - Sources involved: sys/scsi/* - usr.sbin/config/* - - Slice Support FreeBSD now supports a - slice abstraction which enhances - FreeBSD's ability to share disks with other - operating systems. This support will allow - FreeBSD to inhabit DOS extended partitions. - - Owner: &a.bde; - - Sources involved: sys/disklabel.h - sys/diskslice.h sys/dkbad.h - kern/subr_diskslice.c kern/subr_dkbad.c - i386/isa/diskslice_machdep.c i386/isa/wd.c - scsi/sd.c dev/vn/vn.c - - Support for Ontrack Disk Manager Version 6.0 - Support has been added for disks - which use Ontrack Disk Manager. The fdisk - program does not know about it - however, so make all changes using the install - program on the boot.flp or the Ontrack Disk - Manager tool under MS-DOS. - - Owner: &a.phk; - - Bad144 is back and working Bad144 - works again, though the semantics are slightly - different than before in that the bad-spots are - kept relative to the slice rather than absolute - on the disk. - - Owner: &a.bde; and &a.phk; - - - - New device support - - SCSI and CDROM devices - -

- - Matsushita/Panasonic (Creative) CD-ROM driver - The Matsushita/Panasonic CR-562 and - CR-563 drives are now supported when connected to - a Sound Blaster or 100% compatible host adapter. - Up to four host adapters are supported for a - total of 16 CD-ROM drives. The audio functions - are supported with the Karoke variable speed - playback. - - Owner: &a.uhclem; - - Sources involved: isa/matcd - - Adaptec 2742/2842/2940 SCSI driver The - original 274x/284x driver has evolved - considerably since the 2.0 release of FreeBSD. - We now offer full support for the 2940 series as - well as the Wide models of these cards. The - arbitration bug that caused problems with fast - devices has been corrected and - experimental tagged queuing support has - been added (kernel option - AHC_TAGENABLE). John Aycock has also - released the sequencer code under a Berkeley - style copyright making the driver entirely clean - of the GPL. - - Owner: &a.gibbs; - - Sources involved: isa/aic7770.c pci/aic7870.c - i386/scsi/* sys/dev/aic7xxx/* - - NCR5380/NCR53400 SCSI (ProAudio Spectrum) driver - Owner: &a.core; - - Submitted by: Serge Vakulenko (vak@cronyx.ru) - - Sources involved: isa/ncr5380.c - - Sony CDROM driver Owner: &a.core; - - Submitted by: Mikael Hybsch (micke@dynas.se) - - Sources involved: isa/scd.c - - - - Serial devices - -

- - SDL Communications Riscom/8 Serial Board Driver - Owner: &a.ache; - - Sources involved: isa/rc.c isa/rcreg.h - - Cyclades Cyclom-y Serial Board Driver - Owner: &a.bde; - - Submitted by: Andrew Werple - (andrew@werple.apana.org.au) and Heikki Suonsivu - (hsu@cs.hut.fi) - - Obtained from: NetBSD - - Sources involved: isa/cy.c - - Cronyx/Sigma sync/async serial driver - Owner: &a.core; - - Submitted by: Serge Vakulenko - - Sources involved: isa/cronyx.c - - - - Networking - -

- - Diskless booting Diskless booting in 2.0.5 - is much improved over previous releases. The boot - program is in src/sys/i386/boot/netboot, - and can be run from an MS-DOS system or burned into - an EPROM. WD, SMC, 3COM and Novell ethernet cards - are currently supported. Local swapping is also - supported. - - DEC DC21140 Fast Ethernet driver This - driver supports any of the numerous NICs using the - DC21140 chipset including the 100Mb DEC DE-500-XA - and SMC 9332. - - Owner: &a.core; - - Submitted by: Matt Thomas (thomas@lkg.dec.com) - - Sources involved: pci/if_de.c pci/dc21040.h - - - DEC FDDI (DEFPA/DEFEA) driver Owner: &a.core; - - Submitted by: Matt Thomas (thomas@lkg.dec.com) - - Sources involved: pci/if_pdq.c pci/pdq.c - pci/pdq_os.h pci/pdqreg.h - - - 3Com 3c505 (Etherlink/+) NIC driver Owner: - &a.core; - - Submitted by: Dean Huxley (dean@fsa.ca) - - Obtained from: NetBSD - - Sources involved: isa/if_eg.c - - - Fujitsu MB86960A family of NICs driver - Owner: &a.core; - - Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp) - - Sources involved: isa/if_fe.c - - - Intel EtherExpress driver Owner: Rodney - W. Grimes (rgrimes@FreeBSD.org) - - Sources involved: isa/if_ix.c isa/if_ixreg.h - - - 3Com 3c589 driver Owner: &a.core; - - Submitted by: "HOSOKAWA Tatsumi" - (hosokawa@mt.cs.keio.ac.jp), Seiji Murata - (seiji@mt.cs.keio.ac.jp) and Noriyuki Takahashi - (hor@aecl.ntt.jp) - - Sources involved: isa/if_zp.c - - - IBM Credit Card Adapter driver Owner: &a.core; - - Submitted by: "HOSOKAWA Tatsumi" - (hosokawa@mt.cs.keio.ac.jp), - - Sources involved: isa/pcic.c isa/pcic.h - - - EDSS1 and 1TR6 ISDN interface driver - Owner: &a.core; - - Submitted by: Dietmar Friede - (dfriede@drnhh.neuhaus.de) and Juergen Krause - (jkr@saarlink.de) - - Sources involved: gnu/isdn/* - - - - Miscellaneous drivers - -

- - Joystick driver Owner: &a.jmz; - - Sources involved: isa/joy.c - - National Instruments ``LabPC'' driver Owner: - &a.dufault; - - Sources involved: isa/labpc.c - - WD7000 driver Owner: Olof Johansson - (offe@ludd.luth.se) - - Pcvt Console driver Owner: &a.joerg; - - Submitted by: &a.hm; - - Sources involved: isa/pcvt/* - - BSD-audio emulator for VAT driver Owner: - Amancio Hasty (ahasty@FreeBSD.org) and - &a.pst; - - Sources involved: isa/sound/vat_audio.c - isa/sound/vat_audioio.h - - National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver - Owner: &a.core; - - Submitted by: Fred Cawthorne - (fcawth@delphi.umd.edu) - - Sources involved: isa/gpib.c isa/gpib.h - isa/gpibreg.h - - Genius GS-4500 hand scanner driver Owner: - &a.core; - - Submitted by: Gunther Schadow - (gusw@fub46.zedat.fu-berlin.de) - - Sources involved: isa/gsc.c isa/gscreg.h - - CORTEX-I Frame Grabber Owner: &a.core; - - Submitted by: Paul S. LaFollette, Jr. ( - - Sources involved: isa/ctx.c isa/ctxreg.h - - - Video Spigot video capture card Owner: Jim - Lowe - - - - Experimental features - -

- - UNIONFS and LFS The unionfs and LFS file - systems are known to be severely broken in FreeBSD - 2.0.5. This is in part due to old bugs that we - have not had time to resolve yet and the need to - update these file systems to deal with the new VM - system. We hope to address these issues in a later - release of FreeBSD. - - iBCS2 Support FreeBSD now supports running - iBCS2 compatible binaries. Currently SCO UNIX 3.2.2 - and 3.2.4, and ISC 2.2 COFF are supported. The iBCS2 - emulator is in its early stages and has not been - extensively tested, but it is functional. Most of - SCO's 3.2.2 binaries work, as does an old - INFORMIX-2.10 for SCO. Further testing is necessary - to complete this project. There is also work under - way for ELF and XOUT loaders, and most of the svr4 - syscall wrappers are written. - - Owner: &a.sos; and &a.sef; - - Sources involved: sys/i386/ibcs2/* and misc - kernel changes. - - - -]]> diff --git a/ja/handbook/routing.sgml b/ja/handbook/routing.sgml deleted file mode 100644 index 9e6e669482..0000000000 --- a/ja/handbook/routing.sgml +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - ゲートウェイとルート - -

原作: &a.gryphon;.6 October 1995. -

訳: &a.yuki;.6 September 1996. - - ある計算機が他の計算機をみつけることができるようにするには, ある - 計算機から他の計算機へ, どのようにたどり着くかを適切に記述するた - めの仕組みが必要です. この仕組みをルーティングと呼びます. 「ルー - ト(経路)」は destination (目的地) gateway (ゲー - トウェイ) の 2つのアドレスの組で定義します. あなたが - destination へアクセスしようとした場合, - gateway を通って送られることをこのペアは示しています. - destination には個々のホスト, サブネット, 「デフォルト」の 3つの - タイプがあります. 「デフォルトルート」は他への経路が適用できない - 場合に使われます. のちほどデフォルトルートについて少し述べること - するとして, ここでは, 個々のホスト, インタフェース (「リンク」と - も呼ばれます), イーサネットハードウェアアドレスという 3つのタイ - プのゲートウェイについて説明します. - - - -

以下に示す netstat -r の出力の例を使って, ルーティン - グがいろいろと異なっている様子を説明することにします. - - -Destination Gateway Flags Refs Use Netif Expire - -default outside-gw UGSc 37 418 ppp0 -localhost localhost UH 0 181 lo0 -test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 -10.20.30.255 link#1 UHLW 1 2421 -foobar.com link#1 UC 0 0 -host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 -host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => -host2.foobar.com link#1 UC 0 0 -224 link#1 UC 0 0 - - - 最初の2行はデフォルトルート(次の節で詳しく説明します)と, - localhostへの経路を示しています. - - localhostのためのインタフェース (Netifの欄) - はlo0で, これはループバックデバイスとして知られています. - 結局のところ戻るだけなので, この destinationへのすべてのトラフィ - ックが内部的に処理されるのであって, LAN を経由して送られるのでは - ありません. - - 次の行では``0:e0:...''というアドレスに注目しましょう. - これはイーサネットハードウェアアドレスです. FreeBSDは自動的に - ローカルなイーサネット上の任意のホスト (この例ではtest0) - を見つけ, イーサネットインタフェースed0の所にそのホスト - への経路を直接つけ加えます. タイムアウト時間 (Expireの - 欄) も経路のタイプと結びついており, 指定された時間が経過しても応 - 答がないときに使用します. この場合, 経路情報は自動的に削除されま - す. これらのホストは, RIP(Routing Information Protocol) という, - 最短パスの判定に基づいてローカルホストへの経路を決定する仕組みを - 利用することで認識されます. - - 更に, FreeBSDではローカルサブネット (10.20.30.255は - 10.20.30というサブネットに対するブロードキャストアドレスで, - foobar.comはこのサブネットに結びつけられているドメイン名) - への経路情報も加えることができます. link#1というの - は, この計算機の最初のイーサネットカードのことをさします. これら - については, 何も追加インタフェースが指定されていないことに気づく - でしょう. - - これらの2つのグループ(ローカルネットワークホストとローカルサブネット) - の両方とも, routedと呼ばれるデーモンによって自動的に - 経路が設定されます. - routedを動かさなければ, 静的に定義した (つまり具体的に - 設定した) 経路のみ存在することになります. - - host1 の行は私たちのホストのことで, - イーサネットアドレスで示されています. - 送信側のホストの場合, FreeBSDはイーサネットインタフェースへ - 送るのではなく, ループバックインタフェース - (lo0)を使います. - - 2つあるhost2の行は, ifconfigのエイリアス (このようなこと - をする理由については ethernetの章を参照してください) を使ったとき - にどのようになるかを示す例です. lo0の後にある=> - は, インタフェースが (このアドレスがローカルなホストを参照しているので) - ループバックを使っているというだけでなく, エイリアスになっていることも - 示しています. このような経路はエイリアスをサポートしている - ホストにのみ現れます. ローカルネットワーク上の他のすべてのホストでは - 単にlink#1となります. - - 最後の行(destinationが224のサブネット)はマルチキャスト - で扱うものですが, これは他の章で説明します. - - 他の欄についてはFlagsについて説明する必要があります. - それぞれの経路は欄に示されているように違った属性をもっています. - 以下にいくつかのフラグとこれらが何を意味しているかを示します. - - - - - - - デフォルトルート - -

ローカルシステムからリモートホストにコネクションを張る - 必要がある場合, 既知のパスが存在するかどうかを確認するためにル - ーティングテーブルをチェッ - クします. 到達するためのパスを知っているサブネットの内部にリモ - ートホストがある場合 (Cloned routes), システムはインタフェース - から接続できるかどうかをチェックします. - - 知っているパスがすべて駄目だった場合でも, システムには - 最後の切り札の デフォルトルートがあります. このルートは - ゲートウェイルート (普通はシステムに 1つしかありません) - の特別なものです. そして, フラグフィールドは必ず ``c'' - がマークされています. このゲートウェイは, LAN 内のホストにとっ - て, 外部 (PPPのリンクを経由する場合や, データラインに接続するハー - ドウェアデバイスなど) へ直接接続するマシンすべてのためのものです. - - 外部に対するゲートウェイとして機能するマシンでデフォルトルート - を設定する場合, デフォルトルートは - インターネットサービスプロバイダ(ISP)のサイトのゲートウェ - イマシンになるでしょう. - - それではデフォルトルートの一例を見てみましょう. - 一般的な構成を示します. - -[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] - - - ホストLocal1とホストLocal2をPPPでISPのターミナルサー - バと接続されているあなたのサイトだとします. ISPはサイト内にロー - カルなネットワークを持っていて, そこにはまざまなものがあり, あな - たの接続するサーバやISPのインターネットへの接続点であるハード - ウェアデバイス(T1-GW)などがあります. - - あなたのマシンのデフォルトルートはそれぞれ次のようになります. - - -host default gateway interface ----- --------------- --------- -Local2 Local1 ethernet -Local1 T1-GW PPP - - - 「なぜ (あるいは、どうやって) Local1 の - デフォルトゲートウェイをISPのサーバでなく - T1-GWにセットするのか」という質問がよくあります. - - コネクションのローカルの側については, PPPのインタフェースは - ISPのローカルネットワーク上のアドレスを用いているため, - ISPのローカルネットワーク上のすべてのマシンへの経路は - 自動的に生成されています. つまり, あなたのマシンは, どのようにT1-GW - まで届くかという経路を既に知っていることになりますから, - ISPサーバに媒介的なトラフィックをかける必要はありません. - - 最後になりましたが, 一般的にローカルネットワークでは ``...1' - というアドレスをゲートウェイアドレスとして使います. - ですから (同じ例を用います), あなたのclass-Cのアドレス空間が - 10.20.30で ISPが10.9.9を用いている場合, - デフォルトルートは次のようになります. - - -Local2 (10.20.30.2) --> Local1 (10.20.30.1) -Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) - - - マルチホームホスト - -

ここで扱うべき他のタイプの設定があります. それは2つの異なるネットワー - クにまたがるホストです. 技術的にはゲートウェイとして機能するマシン (上 - の例では PPPコネクションを用いています) はマルチホームホストで - す. しかし実際にはこの言葉は, 2つのローカルエリアネットワーク上のサ - イトであるマシンを指す言葉としてのみ使われます. - - 2枚のイーサネットカードを持つマシンが, 別のサブネット - 上にそれぞれアドレスを持っている場合があります. - あるいは, イーサネットカードを1枚持っているマシンで, - ifconfigのエイリアスを使っているかもしれません. - 物理的に分かれている2つのイーサネットのネットワークが使われて - いるならば前者が用いられます. 後者は, 物理的には1つのネットワ - ークセグメントで, 論理的には分かれている 2つのサブネットとする - 場合に用いられます. - - どちらにしても, このマシンがお互いのサブネットへのゲートウェイ - (inbound route) として定義されていることが分かるように, おのお - ののサブネットでルーティングテーブルを設定します. このマシンが - 2 つのサブネットの間のブリッジとして動作するという構成は, パケ - ットのフィルタリングを実装する必要がある場合や, 一方向または双 - 方向のファイアウォールを利用したセキュリティを構築する場合によ - く用いられます. - - ルーティングの伝播 - -

すでに外部との経路をどのように定義したらよいかは説明しました. - しかし外部から私たちのマシンをどのようにして見 - つけるのかについては説明していません. - - ある特定のアドレス空間 (この例では class-C のサブネット) にお - けるすべてのトラフィックが, 到着したパケットを内部で転送するネ - ットワーク上の特定のホストに送られるようにルーティングテーブル - を設定することができるのは分かっています. - - あなたのサイトにアドレス空間を割り当てる場合, あなたのサブネッ - トへのすべてのトラフィックがすべて PPPリンクを通じてサイトに送 - ってくるようにサービスプロバイダはルーティングテーブルを設定し - ます. しかし, 国境の向こう側のサイトはどのようにしてあなたの - ISPへ送ることを知るのでしょうか? - - 割り当てられているすべてのアドレス空間の経路を維持する (分散し - ている DNS 情報とよく似た) システムがあり, そのインターネット - バックボーンへの接続点を定義しています. 「バックボーン」 - とは国を越え, 世界中のインターネットのトラフィックを運ぶ主要 - な信用できる幹線のことです. どのバックボーンマシンも, あるネット - ワークから特定のバックボーンのマシンへ向かうトラフィックと, - そのバックボーンのマシンからあなたのネットワークに届くサービス - プロバイダまでのチェーンのマスタテーブルのコピーを持っていま - す. - - あなたのサイトが接続(プロバイダからみて内側にある - ことになります) したということを, プロバイダからバックボー - ンサイトへ通知することはプロバイダの仕事です. これが経 - 路の伝搬です. - - - - トラブルシューティング - -

ルーティングの伝搬に問題が生じて, いくつかのサイトが - 接続をおこなうことができなくなることがあります. - ルーティングがどこでおかしくなっているかを明らかにするのに - 最も有効なコマンドはおそらくtraceroute(8)コマンドでしょ - う. このコマンドは, あなたがリモートマシンに対して接続をおこなう - ことができない(例えばping(8)に失敗するような場合) - 場合も, 同じように有効です. - - traceroute(8)コマンドは, 接続を試みているリモートホスト - を引数にして実行します. 試みているパスの経由する - ゲートウェイホストを表示し, 最終的には目的のホストに - たどり着くか, コネクションの欠如によって終ってしまうかのどちら - かになります. - - より詳しい情報は, tracrouteのマニュアルページをみてください. - diff --git a/ja/handbook/russian.sgml b/ja/handbook/russian.sgml deleted file mode 100644 index b55f082e2f..0000000000 --- a/ja/handbook/russian.sgml +++ /dev/null @@ -1,226 +0,0 @@ - - - - -ロシア語 (KOI8-R encoding) -

Contributed by &a.ache; -1 May 1997. -

訳: &a.motoyuki;.18 June 1997. -

KOI8-R encoding についてのさらに詳しいことは, - をご覧ください. - -コンソールのセットアップ -

- -マウスカーソルのために用いられている文字コードを KOI8-R 擬似グラフィックの範囲外に動かすために, カーネルのコンフィグレーションファイルに以下の行を付け加えます. - -options "SC_MOUSE_CHAR=0x03" - -/etc/rc.conf でのロシア語コンソールのエントリーは以下のようになります. - -keymap=ru.koi8-r -keychange="61 ^[[K" -scrnmap=koi8-r2cp866 -font8x16=cp866b-8x16 -font8x14=cp866-8x14 -font8x8=cp866-8x8 - -

-注意: ^[ は -/etc/rc.conf, -に ^[ の文字列ではなく本当の ESC キャラクターを入れることを意味します. -

-これは, KOI8-R キーボードで, KOI8-R encoding の代替スクリーンフォントを -疑似グラフィックに割り当て, 灰色のデリート キーを termcap の -FreeBSD コンソールのロシア語エントリーに一致するように再配置する, ということです. -

-RUS/LAT スイッチは CapsLock に割り当てられます. 元の CapsLock の機能は -Shift+CapsLock で使えます. CapsLock の LED は CapsLock のモードではなく RUS モードを示します. - -/etc/ttys の中の ttyv? の各エントリの -ターミナルのタイプを cons25 から cons25r -に変更します, つまり各エントリは以下のようになります - -ttyv0 "/usr/libexec/getty Pc" cons25r on secure - - - -Locale のセットアップ -

-一番良い方法は passwd(5) エントリの login class の場所で -/etc/login.confrussian ユーザの login class -を使うことです. -詳しくは login.conf(5) を参照してください. - -Login Class の設定方法 -

-まず最初に /etc/login.confrussian login class がある -ことを確認してください, このエントリは以下のようになります: - -russian:Russian Users Accounts:\ - :charset=KOI8-R:\ - :lang=ru_RU.KOI8-R:\ - :tc=default: - - -vipw(8) ではどうするのか -

-新しいユーザを追加するのに vipw(8) を使うのであれば, -/etc/master.passwd -のエントリは以下のようになります: - -user:password:1111:11:russian:0:0:User Name:/home/user:/bin/csh - - -adduser(8) ではどうするのか -

-adduser(8) を使って新しいユーザを追加するには: - - - -defaultclass = russian - -を /etc/adduser.conf にセットする. -(この場合, 全ての非ロシア語ユーザに default class を入力しなけ -ればなりません); - - -もう一つの方法は adduser(8) の - -Enter login class: default []: - -という表示に russian と答えるものです; - -また, ロシア語ユーザを追加する際に: - -# adduser -class russian - -とする方法もあります. - - -pw(8) ではどうするのか -

-pw(8) を使って新しいユーザを追加するには, 次のようにします: - -# pw useradd user_name -L russian - - -シェルのスタートアップファイルでの設定方法 -

-何らかの理由で - -を使いたくない場合は, この - -をシェルのスタートアップファイルに設定します: - -/etc/profile: - -LANG=ru_RU.KOI8-R; export LANG -MM_CHARSET=KOI8-R; export MM_CHARSET - - -/etc/csh.login: - -setenv LANG ru_RU.KOI8-R -setenv MM_CHARSET KOI8-R - - -

-もう一つの方法は, これらを以下のファイルに設定することです. - -/usr/share/skel/dot.profile: -

-(上の /etc/profile と同様にします); - -/usr/share/skel/dot.login: -

-(上の /etc/csh.login と同様にします). - - -プリンターのセットアップ -

ロシア語の文字を内蔵したプリンターのほとんどは CP866 -というハードウェアコードページを塔載しているため, KOI8-R → CP866 -の変換用に特別な出力フィルターが必要となります. -そのようなフィルターは, /usr/libexec/lpr/ru/koi2alt -としてデフォルトでインストールされていますので, /etc/printcap -のロシア語プリンター用のエントリーは次のようになります. - -lp|Russian local line printer:\ - :sh:of=/usr/libexec/lpr/ru/koi2alt:\ - :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: - -/etc/printcap ファイルの詳細については printcap(5) -を参照して下さい. - -MSDOS ファイルシステムとロシア語のファイル名 -

MSDOS ファイルシステムにおいてロシア語のファイル名をサポートするには, 次の -fstab(5) エントリーの例を参考にしてください. - -/dev/sd0s1 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0 - --W-L というオプションに関する詳細は -mount_msdos(8) をご覧ください. - -X Window System のセットアップ -

-以下の順序で設定します: - -まず最初に - の通りに行います. -

-注意:

-/etc/XF86Config"Files" セクションに以下の行が -他のどんな FontPath エントリよりも前にあることを確認します: - - FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" - FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" - FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" - -

-高解像度のビデオモードを使っている場合は, 75 dpi と -100 dpi の行を入れ替えます. - -ロシア語キーボードを有効にするには - - XkbKeymap "xfree86(ru)" - -を /etc/XF86Config"Keyboard" セクションに追加します, -また XkbDisable が無効に (コメントアウト) されていることをここで -確認します. -

-RUS/LAT スイッチは CapsLockに割り当てられます. 元の CapsLock の機能は -Shift+CapsLock で使えます (LAT モード内でのみ). -

-注意: -ロシア語 XKB キーボードは XFree86 の古いバージョンでは動かないかもしれません, -詳しくは を参照してください. -ロシア語 XKB キーボードはローカル化されていないアプリケーションでも動かない -かもしれません, 最低限のローカル化されたアプリケーションではそのプログラムの -初期に XtSetLanguageProc (NULL, NULL, NULL); 関数を呼ばなければ -なりません. - diff --git a/ja/handbook/scsi.sgml b/ja/handbook/scsi.sgml deleted file mode 100644 index 239ae6e153..0000000000 --- a/ja/handbook/scsi.sgml +++ /dev/null @@ -1,1039 +0,0 @@ - - - - - - - SCSIとは? - - -

原作:&a.wilko;. July 6, 1996. - -

訳: &a.yoshiaki;. - 4 November 1996. - - SCSI は Small Computer Systems Interface (小規模コンピュータシ - ステムインタフェース) の頭文字をとったものです. - これはANSI標準でコンピュータ業界においては最もよく使われるI/O - バスの一つになっています. SCSIはシュガート社 (ミニフロッピーディ - スクを世界で最初に販売しました) の開発した SASI (Shugart - Associates Standard Interface) バスが元になって規格化されました. - - その後の業界の努力により, 異なるベンダのデバイスが混在して使え - るようにより厳密な規格へと規格化されました.この結果が ANSIの - SCSI-1規格として認可されました. SCSI-1の仕様は (1985年ごろ - に規格化されました 訳注: SCSI-1の最終案決定は1985年, ANSIの標準 - 規格としての認可は1986年です) すでに現在では時代遅れです. - 現在の標準は SCSI-2 (を参照してください) - で, SCSI-3へ移行していくでしょう. - - 物理的な相互接続の規格に加えて, SCSIではディスクドライブに不可欠な - 論理的な規格 (コマンドセット) も定義しています. - この規格は標準コマンドセット (CCS : Common Command Set) と呼ばれ, - ANSIのSCSI-1とほぼ同時期に制定されました. SCSI-2には (改定された) - CCSが規格の一部として組み込まれました. コマンドはデバイスの - 種類によって変わります. 例えばスキャナでは Writeコマンドは意味が - ありません. - - SCSIバスは多くの種類があるパラレルバスです. 最も古く, - 最も利用されているのが 8 bit 幅, シングルエンド (不平衡) 信号, - 50線の信号線のバスです. - (もしシングルエンドの意味が分からなくても気にするこ - とはありません. このドキュメントはまさにそのような人たちのため - のものです.) より新しい設計では 16 bit幅で平衡信号のバスを使います. - この場合, - 転送速度は 20Mbytes/second まで, ケーブルの長さは 25mまで可能です. - SCSI-2では追加のケーブルを使った最大32 bitのバス幅までが - 定義されています. - 最近急速に増えているものに Ultra SCSI (Fast-20とも呼ばれます) - があります. また, SCSI-2には Ultra2 (Fast-40ともいいます) - というものも定義されています. Fast-20は1秒間に2000万回の転送 - (8bitバスで20Mbyte/sec), Fast-40は1秒間に 4000万回の転送 (8bitバスで - 40Mbytes/sec) をおこないます. 最近売られているハードディスクの - ほとんどは不平衡信号の Ultra SCSI (8ビットまたは 16ビット) です. - - 訳注: ここでは電気的な用語としては平衡, 不平衡を用いて, - バスの名称としては基本的にはシングルエンド, - ディファレンシャルとしました. - - もちろん SCSIバスにはデータ信号だけではなく, - 多くのコントロール信号線があります. - 複数のデバイスがバスを効率よく共有するための複雑なプロトコルも規格の一部です. - SCSI-2ではデータは常に独立したパリティ信号を使ってチェックされます. - SCSI-2以前ではパリティはオプションでした. - - SCSI-3ではさらに高速なバスタイプが導入され, - それと共にケーブルの線数を減らし, - より最大バス長を伸ばしたシリアルSCSIが導入されます. - SSAや Fiberchannelといった名前を聞いたことはありませんか? - シリアルバスは現在ではまだいずれの方式も普及していません (特に一般的な - FreeBSD環境では). このためシリアルバスタイプについてはここでは - これ以上は触れません. - - 今までの記述から想像されるように SCSIデバイスはインテリジェント - です. これは SCSIの規格 (この文書は2インチ以上の厚さがあります) - と切り離すことはできません. - このため例えばハードディスクでは特定のブロックをさすのに - ヘッド/シリンダ/セクタ - によって決めるのではなく単に必要なブロック番号を指定します. - 巧妙なキャッシュ動作や, 不正ブロックの自動置き換えなどの機能はこの - 「インテリジェントデバイス」のアプローチによって可能になっています. - - SCSIバスでは任意のデバイスの組で通信することが可能です. - (訳注: 任意のデバイスがイニシエータになれるという意味です.) - デバイスの機能がそれを許すかどうかは また別の問題ですが, 規格では - 禁止されていません. - 信号の衝突を防ぐために2つのデバイスはバスを使う前に調停 - (arbitrate) をおこなう必要があります. - - SCSIの考え方として古い規格のデバイスと新しい規格のデバイスが - 同じバスの上で動くように規格を作っています. したがって, 古い SCSI-1の - デバイスは SCSI-2バスの上でも普通は動きます. 普通は, - とことわった理由は, ある古いデバイスが新しいバスでも問題ない程に - (古い) 規格に対して十分沿った実装になっているかどうかは絶対的に - 保証はできないということです. - 一般に最近のデバイスはよりうまく動作します. - その理由は規格化がより厳密になり, またメーカーがデバイスの製造に - おいてよりきちんと規格に従うようになってきているからです. - - 一般的に言って, 単一のバス上で動かすデバイスは - SCSI-2あるいはより新しいデバイスであればうまく動く可能性は高いと言えます. - これは新しい 2GBのディスクを手に入れたとしたら - 古いデバイスを捨ててしまわなければならないという意味ではありません. - 私のシステムでは SCSI-1以前のディスク, SCSI-2の QICテープユニット, - SCSI-1のヘリカルスキャンテープユニット (訳注: VTRのような回転ヘッドを - 持ったテープ装置のことです. DATテープドライブもその一つです), - 2台の SCSI-1 ディスクが一緒に問題なく動いています. - ただし効率の点から古いデバイスと新しい (= 速い) - デバイスを分けたいかもしれません. (訳注: 古いデバイスの中には - disconnectをサポートしないために一連のコマンド実行中に - SCSIバスを占有してしまうデバイスもあります.) - - SCSIの構成要素 -

- - 先に述べたように, SCSIデバイスはインテリジェントです. - つまりハードウェア細部にからむ知識は SCSIデバイス自身に - 持たせてしまおうという考え方です. この考え方では - SCSIデバイスはそれ自身のハードウェアの詳細を知っています. - この場合, ホストシステムはハードディスクがいくつのヘッド - を持ち, テープデバイスがいくつのトラックを持つかというような - ことを知る必要がありません. - もしあなたが知りたいのであれば, 規格で定義されているコマンドを - 使ってデバイスにハードウェアの詳細について質問することができます. - - インテリジェントデバイスの利点は明らかです. - ホストのデバイスドライバはより一般的に書くことができ, - 新しいデバイスを導入する場合でも変更の必要がありません. - - 接続でおこなうべきこと, してはならないこと -

- ケーブルの接続には鉄則があります. よい部品を使うことです. - バスの速度を上げることができ, 多くの災難を防ぐことができます. - - ですから, 金メッキのコネクタ, シールドケーブル, - 固定器具付きの頑丈なコネクタカバーなどを選ぶのは正しいことです. - 2つ目の鉄則は, ケーブルを必要以上に長くしないことです. - 私は以前にあるマシンでトラブルの 原因を探すのに - 3日間悩んでいましたが, SCSIバスを 1m 短く - することで問題を解決したことがあります. もちろん, - 元のバスの長さでもSCSIの仕様はきちんと満たしていたのですが. - - SCSI バスのタイプ -

- 電気的に互換性のない 2種類のバスのタイプがあります. - シングルエンドとディファレンシャルのバスです. これは SCSI - デバイスとコントローラは同一のバス上に混在することのできない - 2つのグループにに大きく分けられるということを意味しています. - しかし, 特別なハードウェアを使えばシングルエンドバスを - ディファレンシャルバスに (その逆も) 変換することはできます. - これらのバスのタイプの違いは次のセクションで説明します. - - SCSI関連のドキュメントでは異なるタイプのバスを一種の用語とし - て略語で表します. これを次の表に示します. - - - FWD: Fast Wide Differential (高速 ワイド 平衡) - FND: Fast Narrow Differential (高速 ナロー 平衡) - SE: Single Ended (不平衡) - FN: Fast Narrow (高速 ナロー) - etc. - - - 少し想像力を働かせればどのような意味であるかはわかるでしょう. - - ワイド (Wide) はいくらか曖昧で, 16 または 32 bitのバスを示します. - 私の知る限りでは, 32 bit のインタフェースは (まだ) - 使われていませんので Wide は通常 16 bitを意味します. - - 高速 (Fast) はバスのタイミングがいくつかの点で異なり, ナロー - (8 bit) バスでは 低速 (slow) SCSIバスの 5 Mbytes/sec に対して 10 - Mbytes/sec の能力があります. 前にも述べたように, 20Mbytes/sec や - 40Mbytes/sec のバス速度を持つものも現れてきています - (Fast-20 == Ultra SCSI で Fast-40 == Ultra2 SCSI です). - - データ線の上位 (> 8) はデータの転送とデバイスの指定だけに - 利用されているという点を指摘しておきます. - コマンドの送出とステータスメッセージ等は下位側の - 8 bitのデータ線のみを使います. - この規格によりナローデバイスはワイドバス上でも動作する事ができます. - 利用できるバスの幅はデバイス間で調停 (ネゴシエーション) - されます. デバイスの - IDについてはワイドとナローが混在する時には気をつけなければなりません. - - シングルエンドバス (不平衡バス) -

- シングルエンド SCSIバスは 5Vと 0Vの電圧 (つまりTTLレベルです) - を信号として使い, それらは共通のグラウンド (GND) レベルを基準 - にします. シングルエンド SCSI 8 bitバスは約25本のグラウンド線 - を持ち, すべてのデバイスを「直線状」に接続します. - 基準ではシングルエンドバスは最大の長さは 6mです. - Fast-SCSI デバイスを使う場合には, この最大長さは 3mに短くなります. - Fast-SCSIでは 5Mbytes/sec ではなく 10Mbytes/sec の転送速度 - が可能になります. - - Fast-20 (Ultra SCSI) と Fast-40ではそれぞれ1秒間に2000万 (20M) - ないしは 4000万 (40M) 回の転送ができます. したがって, Fast-20では - 8bitバスで 20Mbytes/sec, 16bitバスで 40Mbytes/secとなりま - す. Fast-20ではバスの最大の長さは 1.5m, Fast-40では 0.75mに - なります. Fast-20は限界を相当に広げるものなので SCSIバス - に雑音が多い場合はその影響を即座に受けます. - - バス上のいずれかのデバイスが「高速の」転送を利用する場合は - Fastバスの長さの制限を受けるということに注意してください. - - 最近の Fast-SCSI デバイスではバスの長さが実際の問題に - なりつつあるのが明らかになっています. これがディファレンシャル - SCSIバスがSCSI-2の規格に導入された理由です. - - コネクタのピン配置やコネクタの種類については SCSI-2の規格 - () - を参照してください.コネクタ等について詳細なリストがあります. - - 非標準のケーブルを使うデバイスに気をつけてください. 例えば - Apple (の Macintosh は) 25pin の D-type のコネクタ - (シリアルポートやパラレルプリンタに使われているコネクタ -- - 訳注: 日本では一般的に D-sub 25pinと言っています) - を使っています. - 公式なSCSIバスでは50 pin が必要である事からこのコネクタでは - 「独創的なピン配置」が必要な事が想像できるでしょう. ここ - でおこなわれているようにグラウンド線の数を減らすことはよい考え - ではありません. SCSIの規格通りの 50 pinの接続の方が望まし - いです. Fast-20 や 40 でこのようなケーブルを使おうなんて - 考えてはいけません. - - ディファレンシャル (平衡) バス -

- ディファレンシャル SCSIバスは最大長が 25m です. シングルエンド - Fast-SCSIバスの 3mとはまったく違います. 平衡信号の背景と - なっている考え方は, それぞれのバスの信号はそれぞれ - 独立したリターン信号線を持つというものです. つまり, - それぞれの信号は (できればより線の) ペアの信号線で - 伝えられます. - これら2つの信号線の差分の電圧で信号が「真」(assert) で - あるか「偽」(de-assert) であるか判定されます. かなりの電圧 - がグラウンド電位と信号線ペアの間にかかったとしても影響があ - りません (だからといって 10kVの電圧をかけてみたりしないで - ください.. ). - - なぜ平衡信号がよいのかについての説明はこのドキュメントの - 範囲を越えています. 電気的に平衡信号はノイズマージンの点で - 非常に優れたものとして利用されているということを受け入れて - ください. ディファレンシャルバスは普通は外部接続に利用さ - れています. これは低コストのシングルエンドバスが筐体内の短 - い距離のバスでは非常に多く利用されているからです. - - FreeBSDを使うにおいて, FreeBSDでサポートされている - デバイスドライバがあるのであれば - ディファレンシャルバスの利用で問題になることは何もありません. - 例をあげれば, アダプテックの AHA1740はシングルエンドで, - AHA1744はディファレンシャルです. - 双方のソフトウェアインタフェースはまったく同一です. - - ターミネータ -

- SCSIにおける用語でのターミネータとはインピーダンスの - マッチングを正確におこなうための抵抗ネットワークです. - インピーダンス - マッチングは反射やリンギングを抑え, バスの信号をきれいにす - る重要なものです. たとえば, あまり状態のよくない回線で長距 - 離の電話をかけた時にあなたは反射をどんなものか感じるかもしれません. - 20Mbytes/sec で信号の伝わる SCSIバスでは信号のエコーはあ - りがたくありません. - - 訳注: 電気信号のパルスは進行波としての性格を持っています. - このため, 一般的には信号線の両端で反射が起きます. - 3mのバスの端からパルスを入れた場合, - 反対の端からの反射波は 20ns後 - 本当は電線中の信号の伝達は - 光速よりも少し遅くなるのでもう少し時間がかかりますが - - に返ってきます. 低速のバスの場合タイミング的な余裕があり, - 反射を繰り返しているうちに反射波は減衰してしまうのですが - 高速のバスの場合は, 反射波の影響が落ち着く前に信号の - 読み込みなどを行うために波形の乱れが誤動作の原因に - なる場合があります. - このためターミネータを使用して反射波の発生をできるだけ - おさえます. - - - ターミネータはいろいろな - 洗練されたものもそうでないものも - - 実現方法があります. もちろん, 内蔵のものと外部という - 区別もあります. 多くの SCSIデバイスにはいくつかの - ソケットがあり, その中には抵抗ネットワーク (集合抵抗) が - 入っているものもあるかもしれません (いや, おそらく - 間違いなくあるでしょう). ターミネータを - デバイスから外す時は大事にしまっておいてください. SCSIの接 - 続の変更をしようと思った時に必要になるかもしれません. ま - た, それらしい抵抗ネットワークが見つからないこともあります. - この場合, SCSIデバイスは内蔵ターミネータの有効と無効を切替 - えるジャンパがあります. フラットケーブルに取り付ける特別 - なターミネータもあります. 他には外部コネクタのような形をし - たものやケーブルのないコネクタヘッドだけのものもあります. - いろいろと見られるように多くの選択があります. - - どのような場合に単純な抵抗 (パッシブ) ターミネータから - アクティブターミネータへ切替えるかという問題があります. - アクティブターミネータはいくらか精巧な回路が信号をより - きれいにするために入っています. - 一般的に受け入れられている意見としては, 長いバスを使ったり - 高速なデバイスを使う場合はアクティブターミネータの - 有効性は増加すると言えます. SCSI バスですでに問題が起きて - いるならアクティブターミネータを試すことを考えていいで - しょう. まず借りることができないか探してみてください. - アクティブターミネータは非常に高価だそうですから. - - ディファレンシャルとシングルエンドバスのターミネータは互換 - 性がないということを覚えておいてください. これらの2つの種 - 類を 混在させることはできません. - - OK, ではあなたはターミネータをどこに入れればいいでしょうか? - これは SCSIで最も多く誤解されているところです. しかし, これ - は極めて単純なことです.. ここでのルールは SCSIバスの線 - 一本一本は必ず両端に 2個のターミネータを入れる - ということです. つまり 2個であって1個でも3個でもありません. - このルールを受け入れてしたがってください. そうすれば終りの - ない苦しみから救われるでしょう. - なぜなら間違ったターミネーションは不可解なバグを引き起こす - 可能性が非常に高いからです. - (ここの「可能性」に注意; 一見動いているように見える - ことがあるのがやっかいです.) - - よく陥りやすい落し穴はマシンの内部 (フラット) ケーブルと外部 - ケーブルがコントローラにつながっている場合です. よく見られ - るのはコントローラのターミネータを外すのを忘れることです. - ターミネータは最後の外部デバイスで必要で, コントローラ - には必要ありません! 一般的に, SCSIバスの接続の変更をする場 - 合はこのようなことに注意をしなければなりません. - - ターミネータの位置は信号線ごとに決まることに注意して下さい. - ナローとワイドのケーブルを両方コントローラにつないでいる場 - 合には, ケーブルの両端とともにコントローラ上ではバスの上位 - 8ビットをターミネートしないといけません. - - 私自身は, すべてのデバイスとコントローラのターミネータを外し - ています. 2個の外部ターミネータをセントロニクスタイプ (訳注: - 日本ではケーブルに対してこういう言い方はあまりしないのでは - ないでしょうか) 外部ケーブルと内部フラットケーブルの - コネクタの両端に接続しています. - こうすることにより接続の変更はかなり簡単になります. - - 最近のデバイスは, ICターミネータが使われることもあります. - コントロールピンにより無効/有効を設定できる特別のICがあります. - これは物理的にデバイスから外す必要がありません. - 新しいホストアダプタではセットアップツール等を使って - ソフトウェア的に設定をおこなう場合があります. - また、中には端子に接続されたケーブルを検出してターミネータ - を必要に応じて自動的に - 有効にするものもあります. いずれにしろ, マニュアルを見てく - ださい. - - ターミネータの電源 -

- ここまでの章で議論したターミネータは正常に動作するためには - 電源が必要です. SCSIバス上にはこの目的のために利用される線があります. - だから特に気にする必要はないと思いますか? - - ところがそうではないのです. それぞれのデバイスはデバイス上 - にあるターミネータソケットに電源を供給することはできます. - けれども外部ターミネータがある場合やSCSIバスにターミネータ - の電源を供給するデバイスのスイッチがオフになっているような - 場合にはトラブルが起きるかもしれません. - - イニシエータ (ここではバスの動作を開始-initiate-させる - デバイスを指します -- - 訳注: 簡単に言えばホスト側のアダプタですがSCSIの - 規格によれば, 例えばディスク側がコマンドを発行するような - システムがあってもかまわないことになっているので - こういう言い方をしています) は - ターミネータ電源を供給しなければなりません. - すべてのSCSIデバイスはターミネータの電源を供給することが - できます (必ずしも供給しなければならないというわけ - ではありません). - - スイッチがオフになっているデバイスがバス上に存在することを - 許すために, ターミネータの電源はダイオードを通して供給され - なければなりません. これはスイッチを切ったデバイスに電流 - が逆流することを防ぐためです. - - 最悪の事態を避けるために, ターミネータの電源は普通はヒュー - ズが入っています. 当然ヒューズは飛ぶかもしれません. この - 場合でもバスが機能停止するとは限りません. 複数のデバイスが - ターミネータの電源を供給しているのであれば, ヒューズが一つ - 飛んでも全体の機能には影響しません. ただ一つの供給線の - ヒューズが飛んだのであれば確かに問題になるでしょう. - 外部ターミネータによっては LED でターミネータ電源 - が与えられていることを示すものもあります. - - 最新の設計ではある程度の時間がたつと 「リセット」され - 自動復帰するヒューズが使われることもあります. - - デバイス アドレッシング -

- SCSIバスでは接続された異なるデバイスを区別して指定 - できなければなりません. - - これには SCSIではターゲットIDが使われます. それぞれのデバイ - スは特定のターゲットIDを持ちます. デバイスの IDはジャンパや - DIPスイッチなどで設定できます. ブート時のメニューからIDを - 変更できるようになっているコントローラもあります. (また, - IDを 7から変えることができないコントローラもあります.) - より詳しい情報はデバイスのマニュアルを見てください. - - 複数のデバイスを使う場合は IDの重複に気をつけてください. - 重複すると普通は混乱状態になります. 同じ IDを共有している - デバイスのうちの一つがI/Oリクエストに答えられたりすると - 非常にやっかいなことになります. - - 8 bitバスでは, 最大8台のターゲットまで可能です. 最大8台で - ある理由は, バスの8本のデータ線がデバイスの選択に使われる - からです. ワイドなバスでは使えるデバイスの数は増えます - (通常は16になるわけです). - ナローSCSIデバイスは8以上のターゲットIDを持つデバイスとは - 通信できないことに注意してください. ですから, コントローラ - のターゲットIDを8以上にするのはあまりいい考えとは - いえません (CD-ROMが使えなくなったりします). - - 同時にバス使用の要求が発生した場合, 最も IDの大きいデバイス - が優先されるという調停がおこなわれます. このことは - SCSIホストアダプタの IDは通常7番が使われる理由でもあり - ます. ただし, ワイドバスでは下位8ビットが上位8ビットより優 - 先度が高いことに注意してください. つまり, ワイドSCSIのシス - テムではターゲットIDの優先度は高い順に - [7 6 .. 1 0 15 14 .. 9 8] となります. - (どうして下位8ビットの方が優先度が高いかは, - 一つ前の段落を読んで考えてみて下さい.) - - さらにサブユニットとして, 規格では ロジカルユニット, - 短縮形で LUNを持つことができます. 一つのターゲットIDが複数の LUNを - 持つことができます. 例えば, テープチェンジャを持つテープ - ドライブは LUN 0をテープドライブ自身, LUN 1を - テープチェンジャ に与えることができます. - このようにして, ホストシステムはテープチェンジャの目的の - テープユニットの部分を指定することができます. - - バスの形状 -

- - SCSIバスは直線状です. つまり, Y接続, スター接続, 円形, - クモの巣状の接続などの直線以外の接続ではありません. 初心者が - よくやる間違いとしてはワイドSCSIのコントローラの端子3つと - もにケーブルをつないでしまうというものがあります. (外部, - 内部ナロー, 内部ワイド.) よほど運がよければこんなトポロジー - でもちゃんと動くように見えるかもしれませんが, えてしてこう - いうシステムは一番大切な時に使えなくなったりするものです - (これを「マーフィーの法則」といいます). - - 先に議論したターミネータの問題は直線状以外の場合では - より困難になるだろうということに注意してください. また, - 内部バス用のケーブルの端子の数よりデバイスの数の方が少ない場合には, - 必ず両端の端子にはデバイスをつなぐようにしてください. - 内側の端子を使ってケーブルの端を余らせておくと, - ターミネータの効果が半減します. - - 電気的特性はそのノイズマージンや全体の信頼性において, - 直線状のバスのルールに強く依存しています. - - 直線状バスであるというルールにしたがってください! - - FreeBSD で SCSIを使う -

- トランスレーション, BIOS, そしてマジック... -

- まず始める前に, 電気的に問題のないバスであるか調べておいてく - ださい. - - SCSIディスクをPCでブートディスクとして使う場合に, PC BIOSに - 関する気まぐれについて知っておく必要があります. PC BIOSは - ハードディスクへの低レベル物理インタフェースを利用するように - 実現されています. - したがって, BIOSに (セットアップツールやBIOSビルトイン - セットアップを使って) ディスクの物理パラメタを教えてやる - 必要があります. これはヘッドの数, シリンダの数, - トラックあたりのセクタなどがあり, - プリコンペンセーションや書き込み電流を - 減少させるトラック, などのあまりよく知られていないものもあります. - - SCSIディスクはこれらのことをユーザは気にする必要がないはず - だと考えるかもしれません. しかし, 不思議なことに (これらの項 - 目の) セットアップはいまだにあるのです. システム BIOSはブート - 時にFreeBSDのカーネルを読み込むためにSCSIディスクに - /ヘッド/シリンダ/セクタ を指定する方法でアクセスするため, - パラメタを知る必要があるのです. - - AT/EISA/PCIバスなどにあり, ディスクに接続される - SCSIホストアダプタや SCSIコントローラは - それ自身のオンボードBIOSを持っています. システムの起動時に, - SCSI BIOSは - システムBIOSのハードディスクのインタフェースルーチンを乗っ取ります. - システムBIOSをごまかすために システムセットアップでは普通は - `No hard disk' とします. 簡単ですね? - - 訳注: BIOS で `No hard disk' という設定をおこなうのは - SCSI ドライブから直接起動させるためのテクニックです. - 現在のマザーボードでは SCSI ドライブから起動させるための - オプションを持つ BIOS を使用しているものもあります. また, - ブートセレクタを使って IDEドライブのブートブロックから - SCSIドライブ上の FreeBSDをブートすることもできます. - - SCSI BIOS はドライブのトランスレーションと呼ばれる - 機能を持ちます. これはPCがブートするために作られたドライブテー - ブルをごまかすものです. このトランスレーションは多くは - (すべての場合ではありません) - トラックあたり64あるいは32個のヘッドを - 持つ仮想的なドライブを使います. シリンダの数を変更することで - SCSI BIOS は実際のドライブのサイズに適合させます. 総セクタ数 - を 32 * 64 / 2 で割った結果がメガバイト単位のドライブのサイズ - になります. 2で割っているのは, 通常 512バイトのサイズの - セクタを kByte 単位に変換するためです. - - ではこれですべてうまくいくのでしょうか. いいえ, そういう訳で - はありません. ブート可能なハードディスクのシリンダ数は 1024よ - り多くすることはできないのです. トランスレーションを使った - 場合でもディスクの 1GB以上の領域は見えません. ディスクの容量 - がどんどん増加していくにつれこれは問題になってきました. - - 幸いにして, 単純な解決方法があります. 単に別のトランスレーショ - ンを使えばよいのです. 例えば, 32個に代わり, 128個のヘッドを使います. - ほとんどの場合, 古いSCSIホストアダプタをアップグレードす - るための新しいバージョンの SCSI BIOS が用意されています. - 新しいアダプタではジャンパ - やセットアップソフトによって SCSI BIOSの使う - トランスレーションを選択できる物もあります. - - ここで非常に重要なことは, ディスク上のすべての - オペレーティングシステムが - 同一のトランスレーションを使って - 正しいパーティションを得ることです. - つまり FreeBSDをインストールする時に, - ヘッド/シリンダなどについての質問にあなたのホストアダプタが - 使用しているトランスレートされた値を使わなくてはなりません. - - トランスレーションに関する失敗でよく見られるものは, - ブートしないシステムができたり, 他のパーティションを - 上書きしてしまうことです. すべてのシステムが見えるように - fdiskを使うべきです. - - あなたはデバイスについてこれとは食い違った話を聞いたことが - あるかもしれません. 古い FreeBSDのカーネルはブートする時に - SCSI ディスクのジオメトリ情報を報告していました. - 私のシステムの一つの例を示しましょう. - - - aha0 targ 0 lun 0: - sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512 - - 最近のカーネルは, 普通はこのような情報を報告しません. たとえば, - このようになっています. - - - (bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2 - sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors) - - - なぜこのように変わったのでしょう? - - この情報は SCSIディスク自身から得られます. 最近のディスクで - はよくゾーンビット記録方式 (zone bit recording) という - 技術が使われています. これはドライブの外側のシリンダは - 内側よりもスペースが広いのでトラックあたりのセクタ数を - 増やすことができるというアイディアです. - この結果, 外側のシリンダ上のトラックの容量は内側の - シリンダよりも大きくなり, 全体ではより大きな容量となります. - この場合, ドライブのジオメトリについての報告は, - 最善のものかどうか疑わしく, ほとんどの場合誤解を招くものであ - ることがわかるでしょう. - ジオメトリを調べる場合, ほとんどの場合は BIOSの用い - ている値を与える方がよい結果となり, BIOSがそのディスクに - ついてまったく関知しないのであれば (例えばブートディスクで - はないなら) 都合のよい仮想のジオメトリを与えればいいでしょう. - - - SCSI サブシステムの設計 -

- FreeBSDでは階層的な SCSIサブシステムを用いています. それぞれ - 異なるコントローラカードのデバイスドライバが書かれています. - このドライバはコントローラのハードウェアの詳細を知っています. - ドライバは - SCSIサブシステムのより上位の階層のコマンドを受け取り, - ステータスを報告するインタフェースを持ちます. - - カードのドライバの最上位には, デバイスのクラスのための - いくつかの一般的なドライバがあります. 具体的にいうと, - テープドライブのためのドライバ (略号は: st), 磁気ディスク - (sd), CD-ROM (cd) などです. これらのソースコードは - /sys/scsiにあります. - マニュアルページ (man) のセクション 4 にはより詳しい内容が - あるので見てください. - - 多階層の設計は低レベルとより高位のレベルを分離させることが - できます. 新たに他の種類のハードウェアのサポートを加えることを - より処理しやすい問題にします. - - カーネルコンフィグレーション -

- あなたのハードウェア構成にしたがって, カーネルの - コンフィグファイルに - ホストアダプタについて 1行あるいは数行程度の記述をする - 必要があります. - これには I/O アドレスや割り込みなどについての内容も - 含みます. あなたのアダプタのドライバについてのマニュアルページ - にはより多くの情報があるのでよく読んでください. これとは別に - /sys/i386/conf/LINT にはカーネルコンフィグファイルについての - 概要があります. LINTには一般的なものについては可能なすべての - オプションが含まれています. ただし, - LINTでは実際に動作するカーネルを作ることは - できません. - - 当然のことを言うようで恐縮ですが, - カーネルコンフィグファイルは実際のハードウェア構成を - 反映すべきです. そのように割り込みやI/Oアドレス等に - 合わせてカーネルコンフィグファイルを書か - なければなりません. システムのブート時のメッセージは実際に - 見つけたハードウェアの設定を表示します. ほとんどの EISA/PCI - 用のドライバ (具体的には ahb, ahc, ncr と - amdです) はブート時にコントローラから直接パラメータ - を読むことに注意してください. これらについては, 何も引数をつ - けずにただ "controller ahc0" のように書けば大丈夫で - す. - - 例として FreeBSD 2.2.5-Releaseのいくつかのコメント - ([]の中) をつけた LINTカーネルコンフィグファイルを示 - します. - - - -# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca' -# -# aha: Adaptec 154x -# ahb: Adaptec 174x -# ahc: Adaptec 274x/284x/294x -# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!) -# amd: AMD 53c974 based SCSI cards (e.g., Tekram DC-390 and 390T) -# bt: Most Buslogic controllers -# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130 -# ncr: NCR/Symbios 53c810/815/825/875 etc based SCSI cards -# uha: UltraStore 14F and 34F -# sea: Seagate ST01/02 8 bit controller (slow!) -# wds: Western Digital WD7000 controller (no scatter/gather!). -# - -[ Adaptec AHA274x/284x/294x/394x などのコントローラ] -controller ahc0 - -[ NCR/Symbios 53c875 コントローラ] -controller ncr0 - -[Ultrastor アダプタ] -controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr - -# Map SCSI buses to specific SCSI adapters -controller scbus0 at ahc0 -controller scbus2 at ncr0 -controller scbus1 at uha0 - -# The actual SCSI devices -disk sd0 at scbus0 target 0 unit 0 [SCSI ディスク 0 は scbus 0, LUN 0] -disk sd1 at scbus0 target 1 [unit を省略すると暗黙で LUN 0] -disk sd2 at scbus1 target 3 [uha0 上の SCSIディスク] -disk sd3 at scbus2 target 4 [ncr0 上の SCSIディスク] -tape st1 at scbus0 target 6 [SCSI テープ は ターゲット (ID)6] -device cd0 at scbus? [最初に見つけた CD-ROM, 固定にしない] - - - - 上の例では カーネルは ahc (Adaptec 274x) コントローラをまず探し, - その次に NCR/Symbios のボードというように順番に探して - 行きます. その下の行の controller の記述ではデバイスの詳細 - を記述して, 対応するバスでターゲット ID と LUN が指定された - ものと一致する場合だけ 認識するようにカーネルに - 伝えています. - - 固定された (Wired down) デバイスは 「最初に」ユニット番号が - 与えられるので, - 「固定」されていないデバイスは同じ種類の「固定」されたユニット - 番号の最も大きい番号の1つ上の番号から割り当てられます. - したがって, ターゲットID 2の SCSIテープを加えると, ターゲットID 6 - のテープがユニット番号1に固定されているので, それはst2に設定 - されるでしょう. ブート時に見つからなくても固定されたデバ - イスにはユニット番号が常に割り当てられるということに - 注意してください. 固定のデバイスに - 割り当てられたユニット番号は, もしそのデバイスのスイッチが - ブート時に切られていてもそのデバイスにリザーブされています. - これは, 電源を入れて接続した時のユニット番号が与えられます. - デバイスのユニット番号は SCSIバスのターゲットID - とは 何の関係もないことに注意してください. - - 下の例は FreeBSDのバージョン 2.0.5 以前の カーネルコンフィ - グファイルです. 最初の例との違いはデバイスの「固定 (wired - down)」がないことです. 「固定」によりどのSCSIターゲットをどの - デバイスに割り当てるかを記述できるようになりました. - - 下のコンフィグファイルにより構築されたカーネルでは最初に見つ - けた SCSIディスクが sd0になり, 次に見つけたディスクが sd1に, - という具合に割り当てられます. もしディスクの削除や追加をおこなう - と, 他の同じタイプのデバイス (この場合はディスク) のすべてが - 「移動して」しまうかもしれません. これによりそのたびに - /etc/fstab を変更する必要があります. - - 古いスタイルでも動きますが, 新しいスタイルを使うことが強 - く 推奨されています. これにより SCSIバスのハードウェアを - どのように変更した場合でもトラブルを避けることができます. - ですから, 2.0.5.R以前の FreeBSDからアップグレードした後に古い - 信頼できるコンフィグファイルを再利用する時はこの部分を - チェックして直してください. - - -[Adaptec 174x用のドライバ] -controller ahb0 at isa? bio irq 11 vector ahbintr -[Adaptec 154x用のドライバ ] -controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr -[Seagate ST01/02インタフェースのドライバ] -controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr -controller scbus0 - -device sd0 [4台のSCSI ディスクのサポート, sd0 から sd3] - -device st0 [2台の SCSI テープのサポート] - -[CD-ROMのドライバ] -device cd0 #Only need one of these, the code dynamically grows - - - - 両方の例で SCSIディスクがサポートされています. ブート中に - 「固定」の記述がされているタイプ(例えば sd ディスク) のデバ - イスで記述より多くのデバイスが見つかると, - システムは単純に最後の「固定」のデバイスの番号より - 1つずつ増加させた番号をデバイスに割り当てて行きます. もし - 「固定」のデバイスがなければユニット番号は0から始まります. - - man 4 scsi によって SCSIサブシステムの最新の情報を - チェックしてください. より詳細なホストアダプタドライバの使い - 方は, たとえば Adaptec 294xドライバの場合はman 4 - ahc にあります. - - カーネルセットアップでの SCSI チューニング -

- 経験的に SCSIバスリセット (ブート時におきます) 後のINQUIRYコマ - ンドに対して応答が遅くなるデバイスがあります. - INQUIRYコマンドは - ブート時にカーネルがどの種類のデバイス (ディスク, テープ, - CD-ROMなど) がどのターゲットIDに接続されているかを調べるために - 発行します. ちなみにこのプロセスをデバイスプロービング - (デバイス検出) と言います. - - 「応答の遅いデバイス」の問題を解決するために, FreeBSDは - SCSIバスをリセットした後に SCSIデバイスの検出を - おこなうまでのディレイタイムを調整することができます. - カーネルコンフィグレーションファイルの下に示すような - 行にディレイタイムを設定してください. - - -options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device - - この行ではディレイタイムは 15秒です. 私のシステムでは, - 信頼できる古い CD-ROMが認識できるように3秒の値を使っています. もし - デバイスの認識で問題が起きる時は大きな値 (30秒であるとか) から - 始めてください. うまく動いたら, 値を減らしてちょうどよい値 - にチューニングしてください. - - - Rogue な SCSI デバイス -

- - (訳注: rogue は有名なゲーム, ではなくて 悪党, 群から離れた, - 凶暴な, という意味) - - SCSIの規定は完全で簡潔なものにしようという努力はされましたが, - 複雑な規定となり, 正確に実現するのは簡単なことではありません. - いくつかのベンダは他よりもよい仕事をしています. - - ここで 「イカレた」デバイスが現れることになります. このような - デバイスは FreeBSD のカーネルにいくらか標準的 - ではない振舞をするものと認識されます. 「イカレた」デバイスは - ブート時にカーネルによって報告されます. 次の例は私の2つの - カートリッジテープユニットです. - - -Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: -Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue - -Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: -Mar 29 21:16:37 yedi /kernel: st1: Archive Viper 150 is a known rogue - - - 例えば, あるターゲットIDから実際には1つのデバイスしかないの - にすべての LUNからの応答があるようなデバイスがあるとします. カー - ネルはその特定のターゲットIDに8個の LUNがあると誤解してしまう - かもしれません. このような混乱の起きる原因については読者へ - の課題にしておきます. - - FreeBSDの SCSIサブシステムは 検出時の INQUIRYの応答を見て - 悪い習慣を持つデバイスの認識をしています. INQUIRYの応答には - デバイスのファームウェアのバージョン番号が含まれるため, 異なる - 動作をするファームウェアのバージョンを区別することも可能です. - 例えば, /sys/scsi/st.c や /sys/scsi/scsiconf.c を - 見てください. - どのように行っているか, より多くの情報があります. - - この方法はうまく行きますが, もちろん既知のデバイスがつながっ - ている場合だけうまくいくということに気をつける必要があります. - もしあなた以前に Mumbletech SCSI CD-ROM (訳注: 架空のメーカ - のデバイスです) を接続した人がいないとしたら, どんな「ワザ」 - を使ってそれを使うか自分で見つけないといけないかもしれません. - - あなたの Mubletech を動かすことができたらその成果を FreeBSDの - 次のリリースへ含めるために FreeBSD開発チームへ送ってくださ - い. 他の Mumbletechの利用者たちはあなたに感謝するでしょう. - - - 複数の LUNを持つデバイス -

- 単一の SCSI ID上に複数の論理ユニット (LUN) を持つデバイスを使う - ような場合もあるかもしれません. 多くの場合では FreeBSDは LUN 0 - のみを検出します. このような例としては2台の SCSIではないハード - ディスクを SCSIバスにつなぐブリッジボード (例えば古い Sunシステ - ムに見られる Emulex MD21) があります. - - LUN が0ではないデバイスは普通はシステムブート時の検出では - 見つかりません. この問題にうまく対処するには - /sys/scsi/scsiconf.c に適切なエントリを加えてカーネルを再構築 - しなければなりません. - - 以下のように初期化されている構造体を探します. - - { - T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A", - "mx1", SC_ONE_LU - } - - - LUNが複数あるあなたの Mumbletech BRIDGE2000 はハードディスク - として働きます. またファームウェアのリビジョン123などを次のよ - うに書き加えます. - - - { - T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123", - "sd", SC_MORE_LUS - } - - - 訳注: 複数 LUNに対応するためには構造体の最後の要素を - SC_MORE_LUSにします. エントリを作る必要がある場合は scsiconf.c - にある MBR-7等のエントリを参考にするといいでしょう. - - カーネルは INQUIRYに一致するデータをブート時にテーブルから - 探してこれにしたがってふるまいます. より多くの情報は - ソースコードを見てください. - - タグ コマンド キューイング -

- 最近の SCSI デバイス, 特に磁気ディスクではタグ コマンド - キューイング (tagged command queuing: TCQ) がサポートされています. - - 要約すれば, TCQは複数のI/Oリクエストを同時に受けることを可能 - にすることです. デバイスはインテリジェントですから,リクエスト - キューにある処理 (ヘッドのポジショニングなど) の最適化を - おこなうことができます. RAID (Redundant Array of Independent - Disks) のようなSCSIデバイスではTCQ機能はデバイスの持つ並列性の - 利点を生かすために不可欠です. - - 各々の I/O リクエストは単一の `tag' (タグ コマンド キューイン - グの名前の由来) が与えられます. FreeBSDはこの tagによりデバ - イスドライバのキューの中のどの I/Oリクエストが完了したかの - 識 別をおこないます. - - TQCのリクエストはデバイスドライバがサポートしていたとしても - あるデバイスのファームウェアではインプリメントが正しくない - かもしれません. このような問題に出会うと非常に不可解な問題に - つながります. このような場合は TCQ を無効にしてみてください. - - バスマスタ ホストアダプタ -

- すべてではありませんが多くの SCSIホストアダプタは - バスマスタコントローラです. これはホストCPUにデータ転送の - 負荷をかけず, ボード自身がI/Oをおこないます. - - これは FreeBSDのようなマルチタスクのオペレーティングシステム - では大きな利点になります. しかし, 何らかの問題の起きることも - あります. - - 例えば Adaptec 1542 コントローラは ホストバス (ここでは ISA - または AT バス) を異なった転送速度に設定できます. - コントローラが - 異なるレートに設定できるのはすべてのマザーボードで高速な転送が - できるわけではないからです. マザーボードに合っていない高速の - データ転送速度を用いた時には, ハングアップやデータの損傷等の - 問題が起きるかもしれません. - - - これを解決する方法は明らかです. より低いデータ転送速度に設定 - してうまく動くか確かめることです. - - Adaptec 1542の場合, 可能な限り高速な転送レートを動的に読み取って, - 正しい決定をおこなうためのオプションをカーネルコンフィグファイルに - 追加することができます. このオプションはデフォルトでは無効に - なっています. - - - -options "TUNE_1542" #dynamic tune of bus DMA speed - - - あなたの使うホストアダプタについてのマニュアルページを - チェックしてください. - また最終的な手段としては究極のドキュメントを - 使ってください (つまりドライバのソースを読んでくださいというこ - とです). - - 訳注: 2.1.5Rの時点ではすべてのドライバに関してマニュアルページ - があるわけではありません. また上の例の TUNE_1542のオプション - も man aha にはないようです. ソースのコメントだけで - も一度見ておいてもいいかもしれません. - - - 問題を突き止める -

- 以下は SCSI で一般的に問題が起きた場合に解決をするためのチェッ - クリストの試みです. これは完全な物ではありません. - - - - コネクタとケーブルがゆるんでいないかチェックする. - - ターミネータの場所と数を念には念を入れてチェックする. - - 少なくとも1つのターミネータの電源の供給源があるかチェック - する (特に外部ターミネータを使う場合). - - ターゲットIDが重複していないかチェックする. - - 使用するすべてのデバイスの電源がONになっているかチェックする. - - 必要最小限のデバイスだけの構成を試してみる. - - 可能であれば, ホストアダプタのスピードを遅くする. - - 問題をより単純にするために, タグコマンドキューイングを可能 - であれば無効にする. (NCRベースのホストアダプタについては - man ncrcontrol を見てください) - - カーネルのコンパイルができるのであれば, SCSIDEBUGオプショ - ンをつけて makeして, デバイスをデバッグモードにしてアクセ - スしてみてください. もしそれでも起動時にデバイスが検出 - されないのであれば, デバイスの設定アドレスが間違っている - のかもしれません. また, /sys/scsi/scsidebug.h に - あるデバッグレベルを変えてみてください. 検出はされるが - 動かないのであれば, scsi(8)コマンドで (SCSIDEBUG - をつけてmakeした) カーネルが動いている状態で動的にデバッグ - レベルを設定することができます. これは guru (UNIXの達人) で - も混乱してしまうほどの非常に大量のデバッグ情報を出すでしょ - う. man 4 scsi - にはより正確な情報があります. またman 8 - scsi も見てください. - - - さらに詳しい情報 -

- もしあなたがいくらかは本気で SCSIハッキングをする気があるなら - たぶん正規の規格を持っていたくなるでしょう. - - 承認ずみのアメリカ工業規格は ANSI から購入できます. 住所と電話 - 番号は11 West 42nd Street, 13th Floor, New York, NY 10036, - Sales Dept: (212) 642-4900 です. - また, ANSIの規格および委員会の規格案 (ドラフト) のほとんどはGlobal - Engineering Documentsより買うことができます. 連絡先は 15 - Inverness Way East, Englewood, CO 80112-5704, Phone: (800) - 854-7179, Outside USA and Canada: (303) 792-2181, FAX: (303) 792- - 2192です. - - X3T10のドラフトの多くは電子的に利用できる形で SCSI - BBS (719-574-0424) と ncrinfo.ncr.com の Anonymous FTP (誰でも - ファイルを取ってくることができるFTPサービス) サイトから得るこ - とができます. - - 最新の X3T10委員会のドキュメントは: - -AT Attachment (ATA or IDE) [X3.221-1994] (Approved) -ATA Extensions (ATA-2) [X3T10/948D Rev 2i] -Enhanced Small Device Interface (ESDI) [X3.170-1990/X3.170a-1991] (Approved) -Small Computer System Interface - 2 (SCSI-2) [X3.131-1994] (Approved) -SCSI-2 Common Access Method Transport and SCSI Interface Module (CAM) - [X3T10/792D Rev 11] - - 追加情報を得ることのできる出版物は: - -"SCSI: Understanding the Small Computer System Interface", NCR社 -編. 出版: Prentice Hall, Englewood Cliffs, NJ, 07632 -Phone: (201) 767-5937 ISBN 0-13-796855-8 - -"Basics of SCSI", a SCSI tutorial, Ancot Corporation 編 - Ancot の連絡先: -Phone: (415) 322-5322 Fax: (415) 322-0455 - -"SCSI Interconnection Guide Book", AMP社の出版物 (発行 4/93, カ -タログ 65237) 色々な SCSI コネクタのリスト と ケーブル接続方法のガイド. - AMP 社より入手可能. (800) 522-6752 または (717) 564-0100 - -"Fast Track to SCSI", 富士通によるプロダクトガイド, -入手先: Prentice Hall, Englewood Cliffs, NJ, 07632 -電話: (201) 767-5937 ISBN 0-13-307000-X - -"The SCSI Bench Reference", "The SCSI Encyclopedia", "SCSI Tutor", -ENDL Publications, 14426 Black Walnut Court, Saratoga CA, 95070 -電話: (408) 867-6642 - -"Zadian SCSI Navigator" (クイックリファレンス) および "Discover the Power of SCSI" -(最初の本は1時間のビデオとチュートリアルが付属), Zadian Software, -Suite 214, 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800 - - - Usenet のニュースグループ - と - は特により多くの情報を得るには注目すべき場所です. また定期的に - ポストされる SCSI-FAQをここから得ることができます. - - 多くの主要な SCSIデバイスとホストアダプタの供給元は FTP サイト - や BBSを開いています. これらはあなたの持っているデバイスに関す - る貴重な情報源となるでしょう. diff --git a/ja/handbook/scsihd.sgml b/ja/handbook/scsihd.sgml deleted file mode 100644 index 5d2c873156..0000000000 --- a/ja/handbook/scsihd.sgml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - SCSI ハードディスク装置 -

寄稿: &a.asami; .17 February 1998.

-

訳: &a.miyasita; .20 February 1998.

- -

の章で述べたように, - 実際, 現在販売されている SCSI ハードディスク装置はすべて - SCSI-2 互換であり, サポートされている SCSI ホストアダプタに - 接続すればそれらは正常に動作するでしょう. - 人々が直面する問題の多くは, ケーブル接続が間違っていたり - (ケーブルが長過ぎる, スター型接続になっている, など), - ケーブル終端の処理が不十分だったり, - 部品が故障していたりのうちのどれかです. - SCSI ハードディスク装置が動作しないときには, まず - の章を参照して下さい. - しかし SCSI ハードディスク装置を購入するときに - 気を付けておきたいことがふたつあります. - - 回転速度 -

現在販売されている SCSI ドライブの回転速度の範囲は - 4,500RPM から 10,000RPM であり, - その大部分は 5,400RPM か 7,200RPM です. - 一般的に 7,200RPM のドライブの方がデータ転送は速いのですが, - 5,400RPM の同容量のものと比べてとても熱くなります. - 現在のディスク装置の故障の大半は熱によるものです. - もし PC のケースの中が非常によく冷却されていなければ, - 5,400RPM かそれ以下のドライブにしておいた方がよいでしょう. - -

より高密度で記録するようになっている新しいドライブは - 以前のものに比べてより多くのビットを各回転毎に転送することが - できるということに気をつけて下さい. - 現在, 5,400RPM の最高級機種では 1, 2 世代前の 7,200RPM の - ドライブに匹敵する転送速度が出せます. - 仕様一覧からバンド幅の数値を探すには "内部データ (または転送) - 速度" という欄を見て下さい. - 通常その数値は Mbits/s で書かれているので, - それを 8 で割ればそのドライブで出せる速度が Mbytes/s で - おおよそ見当をつけることができます. - -

(もしあなたがスピード狂で, あなたの愛する小さなパソコンちゃんに - 10,000RPM のドライブを載せたいのならそうしても構いませんが, - そのようなドライブはものすごく熱くなります. - ドライブへ 直接 風を当てられるようなファンや - きちんと換気されているディスク区画を持っていないときには - そういうことは考えない方がよいでしょう.) - -

最新の 10,000RPM のドライブや 7,200RPM のドライブは当然 - 最新の 5,400RPM のドライブよりも多くのデータを転送することが - できますから, 絶対的なバンド幅がアプリケーションにとって - 必要ならば, より速いドライブを選ぶしかありません. - また, レイテンシを小さくする必要があるときも, - より速いドライブが適当です. - なぜなら, より速いドライブの方が平均シーク時間が - 少ないだけでなく, 回転遅延という尺度において - 低回転速度のドライブが高回転速度のものに勝ることはないからです. - (平均回転レイテンシはディスクが 1 回転するために要する時間を半分に - したものです. すなわち, 10,000RPM のドライブでは 3 ms, - 7,200RPM のドライブでは 4.2 ms, 5,400RPM のドライブでは - 5.6 ms となります.) - レイテンシはシーク時間と回転遅延との和になります. - しかしここで, レイテンシの少ないドライブが欲しいのか, - 1 秒あたりのアクセス数を増やす方がよいのかを - はっきりさせておかなければいけません. - 後者の場合 (例 : ニュースサーバ) では, 大きな速いドライブを - 1 つ購入することは最適解とはならないでしょう. - 遅いドライブを複数個使ってストライピングされたディスクアレイを - 作る ccd (連結ディスク) ドライバを用いることによって, - 全体に必要な費用の点で同様かまたはより良い結果を得ることができます. - -

ドライブのまわりに適切な空気の流れを作るようにする必要が - あります. - 高回転速度のドライブを使おうとしているときには特に - 注意してください. - 一般的に, ドライブの上下には少なくとも 1/2 インチ (1.25cm) の - すき間が必要です. - PC のケース内の空気がどんなふうに流れているか理解しておいてください. - 多くのケースには背面から空気を吸い込む電源が付いています. - どこから空気が入ってくるかを確かめて, まわりに最大量の - 冷たい空気が流れるようにドライブを設置してください. - 効果的に冷却するためには, 不要な穴をいくつか塞いだり - 新しいファンを追加する必要があるかも知れません. - -

もうひとつ考慮するべき事柄は騒音です. - 7,200RPM やそれより速い回転速度のドライブの多くは高い周波数の - 音を発生し, この音は多くの人をとても不快にします. - それに加えて, 冷却のために追加されたファンによっても, - 7,200RPM やそれより速い回転速度のドライブはオフィスや家の環境に - そぐわないものになるかもしれません. - - 形状 -

現在販売されている大部分の SCSI ドライブは 3.5 インチの - 大きさです. - それらは高さが 1.6 インチ ("ハーフハイト") のものと - 1 インチ ("ロープロファイル") のものとの 2 種類に分類されます. - ハーフハイトのドライブは CD-ROM ドライブと同じ高さです. - しかし前節で述べたすき間についてのルールを忘れないでください. - 3.5 インチドライブ用のベイが 3 段用意されているときに, - ハーフハイトのドライブ 3 個を (焦がすことなく) - そこに設置することはできないでしょう. - - インタフェース -

現在売られている SCSI ハードドライブの多くは Ultra または - Ultra-wide SCSI です. - Ultra SCSI の最大バンド幅は 20MB/s, Ultra-wide SCSI - の場合は 40MB/s です. - Ultra と Ultra-wide の間にケーブル最大長の相違はありませんが, - 同一バスに接続されるデバイスが増えれば増えるほど - 早い時期にバスの整理に関する問題を抱えることになるでしょう. - うまく設計されたディスク区画を持っているのでなければ, - 5 個か 6 個以上の Ultra SCSI ドライブを 1 本のバスに - 接続することは容易なことではありません. - -

一方, 多数のドライブを接続する必要があるときに Fast-wide - SCSI を利用することは悪くないアイデアでしょう. - これは Ultra (narrow) SCSI と同じ最大バンド幅であると同時に - "正しく" 接続することが電気的にとても容易です. - アドバイスとしてはこのようになるでしょうか : - ディスクを多数接続したいときには wide SCSI のドライブを - 選んで下さい. - 通常 wide SCSI の方が少し高価ですが, 将来きっと役に立ちます. - (なお, 価格差を補う余裕がないときにはディスクアレイを - 作るべきではありません.) - -

wide SCSI ドライブには 68 ピンのものと 80ピン SCA - (単コネクタ型) のものとの 2 種類があります. - SCA ドライブには 4 ピンの電源コネクタがなく, SCSI ID - も 80 ピンコネクタを通じて設定されます. - 真面目に大規模な記憶システムを作成するような場合には, - SCA ドライブと SCA 筺体 (2 種類の電圧が供給できる電源と少なくとも - 1 個のファンが付いたもの) を使ってください. - その方が 68 ピンの同様のドライブよりも電気的に優れています. - なぜなら, 68 ピンのドライブで作ったディスクアレイに - 見られるような SCSI バスの "スタブ" がディスクキャニスタの内部に - 存在しないからです. - それらはより簡単に設置することができます - (キャニスタの中にドライブをねじで固定すればよいだけで, - (SCSI ID やディスクアクセス LED 用の線のような) - 細かいケーブルを全部持ち上げるために狭いところへ指を入れて - 握らなくてもよいのです). diff --git a/ja/handbook/sections.sgml b/ja/handbook/sections.sgml deleted file mode 100644 index 9e2eca20a4..0000000000 --- a/ja/handbook/sections.sgml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ja/handbook/serial.sgml b/ja/handbook/serial.sgml deleted file mode 100644 index eaf615b102..0000000000 --- a/ja/handbook/serial.sgml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - -シリアル接続の基礎 - -

Assembled from FAQ. - -このセクションには, シリアルポートについての一般的な情報が書かれていま -す. あなたが求めている情報が, もしここで見つからなかった場合には, ハン -ドブックの端末とダイアルアップのセクションを見てください. - -

- - stty -a -f /dev/ttyd1 - - - このデバイスの設定を変更した場合, その設定はデバイスが - クローズされるまで有効です. - デバイスが再びオープンされる時, デフォルトの設定値に戻ります. - デフォルトの設定を変更するためには, 「初期状態」を設定した - いデバイスをオープンして調節することができます. - 例えば, ttyd5 というデバイスに対して, デフォルトで - XON/XOFF フロー制御を行うように設定したい場合は, - 次のようにします. - - stty -f /dev/ttyid5 clocal cs8 ixon ixoff - - - このコマンドを記述するのに適しているファイルは, /etc/rc.serial - です. アプリケーションが - stty -f /dev/ttyld5 57600 - - - これで、 - - - - - sioドライバの設定 - -

sio ドライバは, NS8250-, NS16450-, NS16550とNS16550A -ベースの EIA RS-232C(CCITT V.24) 通信用インタフェースをサポートします. ま -た, いくつかのマルチポートシリアルカードもサポートされています. 技術的 -な詳細についてはマニュアルsio(4)を見てください. - -Digi International (DigiBoard) PC/8 - -

原作: &a.awebster;. 1995年8月26日. -

訳: &a.masaki;.6 September 1996. - -以下にDigi International PC/8Dと16550チップを動作させるための, カーネ -ルconfigの部分を示します. このボードは, 8本の回線にすべてモデムを接続 -した場合でも良好に動作します. - -options COM_MULTIPORT を加えるのを忘れないでください. 忘れる -とうまく動作しません! - - -device sio4 at isa? port 0x100 tty flags 0xb05 -device sio5 at isa? port 0x108 tty flags 0xb05 -device sio6 at isa? port 0x110 tty flags 0xb05 -device sio7 at isa? port 0x118 tty flags 0xb05 -device sio8 at isa? port 0x120 tty flags 0xb05 -device sio9 at isa? port 0x128 tty flags 0xb05 -device sio10 at isa? port 0x130 tty flags 0xb05 -device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr - - -ここで各 SIO ポートが割り込みを共有する一つのグループであることを表現 -するために, トリッキーな設定をしなければなりません. フラグ (flags の後 -ろの 16 進数) の下から 2 バイト目にこのグループの最後の SIO ポートの番 -号を設定します. この例では 11 (16進数では 0x0b) ですから, 各デバイスの -フラグは 0xb05 となります. - -Boca 16 - -

寄贈 &a.whiteside;. 1995年8月26日 - -FreeBSD で Boca 16pord のボードを動かすことは簡単ですが, そのた -めにはいくつかの作業が必要です. : - - - -2.0.5 のデフォルトのカーネルは, マルチポートのサポートをして -いない ので, あなたは各ポート毎にデバイスエントリを追加する必要が -あります. つまり必要なオプションを付けて, カーネルの再構築をしなければ -なりません. そのためには, あなたのマシンにカーネルのソースコードが既に -インストールされているか, あなたの替わりの誰かにカーネル再構築をやって -もらう必要があります. - - 2番目に, あなたはカーネルオプションを正しく設定するために, あな -たのBoca BoardのIOと割り込みの値を知っている必要があります. - - - -ひとつ重要なことがあります. Boca 16 に使われている実際の UART チップ -は, Boca 16 のボードではなく, 外付けのコネクタボックスの中に存在します. -コネクタボックスを接続しないと, ポートの検出に失敗するでしょう. 私は, -接続しないまま起動したり, 後から接続しなおしたりした時にどうなるかをテ -ストしていません. どちらも実行しないようお奨めします. - -もしあなたがカスタマイズ済みのカーネルコンフィグレーションファイルを持っ -ていなければ, 一般的な事柄については, -を参考にしてください. 以下にBoca 16のボード -に関係する部分だけを記述します. この例では, あなたがMYKERNELという名前 -のカーネルを使っていて, エディタには viを使っていることを仮定していま -す. - - -次の1行をconfigファイルに追加してください. - -options COM_MULTIPORT - - - -この device sioxxxという行を, 必要に応じて 16 -個のデバイス分を追加してください. 最後のデバイスにだけ, このボード -の割り込みベクタを記述します. (詳細は sio(4) のマニュア -ルページを参照してください.) - -以下の例は, 割り込み 3, ベース IO アドレス 100h の値を持つ Boca Board -の場合です. 各ポートのための IO アドレスは, 100h, 108h, 110h, ... のよ -うに 16 進法で 8 づつ加えていきます. - - -device sio1 at isa? port 0x100 tty flags 0x1005 -device sio2 at isa? port 0x108 tty flags 0x1005 -device sio3 at isa? port 0x110 tty flags 0x1005 -device sio4 at isa? port 0x118 tty flags 0x1005 -[...] -device sio15 at isa? port 0x170 tty flags 0x1005 -device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr - - -フラグエントリは, あなたが全く同じsioの割り当てを使っていない限り -必ず 上記の例から変更してください. フラグは, 次のように設定します. -0xMYYMは, マスタポート (Boca 16に搭載された最後 -のポート)のマイナー番号を指定します. さらに YY の部分はFIFOが -有効または無効であること (この場合は有効), 割り込みを (ボード内で) 共 -有しているか (この場合はYES), そして, AST/4 と互換性のある持つ割り込み -制御レジスタを持っているか (この場合はNO) を指定します. - - -この例では, - -flags 0x1005 - - -というフラグによって, マスタポートが sio16 であることを示します. も -し同じボードをもう一枚追加し, sio17 から sio28 を割り当てるなら, -新しい方の ボードに対応する 16 個のポートのフラグはすべて 0x1C05 に -なります. 28 (== 0x1C) は新しいボードのマスタポートのマイナー番号で -す. フラグの 05 の部分は変更しないでください. - -カーネルコンフィグレーションファイルを保存してカーネルの設定を完了しま -す. カーネルをコンパイル後, インストールし, 新しいカーネルでリブートし -てください. - -再コンパイルされたカーネルがうまくインストールされて, そのカーネルに正 -しいアドレスと割り込みが設定されていたならば, ブートメッセージは次の -ように Boca ポートの検出に成功するはずです: -(sioの番号, IOとIRQの値は, この例とは異なっているでしょう) - - -sio1 at 0x100-0x107 flags 0x1005 on isa -sio1: type 16550A (multiport) -sio2 at 0x108-0x10f flags 0x1005 on isa -sio2: type 16550A (multiport) -sio3 at 0x110-0x117 flags 0x1005 on isa -sio3: type 16550A (multiport) -sio4 at 0x118-0x11f flags 0x1005 on isa -sio4: type 16550A (multiport) -sio5 at 0x120-0x127 flags 0x1005 on isa -sio5: type 16550A (multiport) -sio6 at 0x128-0x12f flags 0x1005 on isa -sio6: type 16550A (multiport) -sio7 at 0x130-0x137 flags 0x1005 on isa -sio7: type 16550A (multiport) -sio8 at 0x138-0x13f flags 0x1005 on isa -sio8: type 16550A (multiport) -sio9 at 0x140-0x147 flags 0x1005 on isa -sio9: type 16550A (multiport) -sio10 at 0x148-0x14f flags 0x1005 on isa -sio10: type 16550A (multiport) -sio11 at 0x150-0x157 flags 0x1005 on isa -sio11: type 16550A (multiport) -sio12 at 0x158-0x15f flags 0x1005 on isa -sio12: type 16550A (multiport) -sio13 at 0x160-0x167 flags 0x1005 on isa -sio13: type 16550A (multiport) -sio14 at 0x168-0x16f flags 0x1005 on isa -sio14: type 16550A (multiport) -sio15 at 0x170-0x177 flags 0x1005 on isa -sio15: type 16550A (multiport) -sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa -sio16: type 16550A (multiport master) - - -もしメッセージの表示が速くて読み取れないときは, dmesg | more -とするとブート時のメッセージをゆっくり見ることができます. - -次に, root になってから, デバイスにあわせたエントリを /dev/MAKEDEVスクリプトを使って/dev に追加します. - - -# cd /dev -# ./MAKEDEV tty1 -# ./MAKEDEV cua1 - (中略) -# ./MAKEDEV ttyg -# ./MAKEDEV cuag - - -もし, 何らかの理由で発信するデバイスが不要な場合, cua* デバ -イスを作らないで済ますこともできます. - -デバイスが確実に動作しているかどうか確認する手っ取り早い方法は, -あなたが (rootになって) 各ポートにモデムを接続してみて, あなたが作成し -た各デバイス毎にecho at> ttyd*とやってみてください. 各ポー -トが動作していればRXの表示が光るのが見えるはず です. - - - - diff --git a/ja/handbook/skey.sgml b/ja/handbook/skey.sgml deleted file mode 100644 index 8693d10c65..0000000000 --- a/ja/handbook/skey.sgml +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - -S/KEY - -

原作: &a.wollman;25 September 1995. -

訳: &a.hino;.24 September 1996. - -

S/KEY は一方向ハッシュ関数 (ここで述べているバージョンでは, 過去と -の互換性を保つために MD4 を用いています. S/KEY の他のバージョンでは -MD5 や DES-MAC を用いているものもあります) を基にしたワンタイムパスワー -ド方式です. S/KEY は, バージョン 1.1.5 以降のすべての FreeBSD に標準的 -に含まれています. S/KEY は FreeBSD 以外の数多くのシステムの上でも利用 -可能であり, その実装の数も増えています. S/KEY ば Bell Communications -Research, Inc. の登録商標です. - - -

以下の説明では, 三種類の異なる「パスワード」が使われます. まず一つ -目は, あなたが普段使っている普通の UNIX スタイルの, もしくは Kerberos -でのパスワードです. ここではこれを ``UNIX パスワード'' と呼ぶことにし -ます. 二つ目は, S/KEY の `秘密のパスフレーズは, UNIX パスワードと同じである必要はありませんし, -また UNIX パスワードと何らかの関連性を持たなければならないということも -ありません (両者を同一に設定することは可能ですが, お奨めしません). -UNIX パスワードは長さが 8 文字に制限されています (訳注: FreeBSD で DES -を導入していない場合はもっと長いパスワードも認識されます). これに対し, -S/KEY では秘密のパスフレーズを好きなだけ長くすることができます (訳注: -実装上, `S/KEY システムでは他に二種類のデータを使用します. 一つは ``シード -(種)'' または (混乱を招きますが) ``キー'' と呼ばれるもので, (訳注: デ -フォルトでは) 二つの文字と五つの数字で構成されます. もう一つは ``シー -ケンス番号'' で, 1 以上の整数です. シーケンス番号は特に指定しなければ -100以下です (訳注: ``次に, S/KEY 関連の四つのプログラムについて説明します. `/etc/skeykeys というファイルを調べて, このプログラムを起動し -たユーザの現在のシーケンス番号とシードを表示します. 最後に, -`このドキュメントでは, 四種類の異なる操作について説明します. 一つ目 -は, `信頼できる通信路での初期化 - -

信頼できる通信路 (例えばあるマシンのコンソール画面など) を利用して -いるときに, S/KEY の初期化, S/KEY の秘密のパスフレーズの変更, またはシー -ドの変更をおこなうことができます. そのためには, まずあなた自身がログイ -ンし, ` -$ keyinit -Updating wollman: ) この部分は始めて S/KEY を使 -Old key: ha73895 ) うときには表示されません. -Reminder - Only use this method if you are directly connected. -If you are using telnet or rlogin exit with no password and use keyinit -s. - ) `keyinit' コマンドが出力する注意です. 訳すと, - ) 注意 - この動作モードはマシンに直接入力しているときのみ利用 - ) すること. もし今 telnet や rlogin を使っているなら, 秘密のパ - ) スフレーズを入力せずにこのままコマンドを終了し, かわりに - ) keyinit -s を実行すること. -Enter secret password: ) ここで秘密のパスフレーズを入力します. -Again secret password: ) もう一回入力します. - -ID wollman s/key is 99 ha73896 ) あとで説明します. -SAG HAS FONT GOUT FATE BOOM ) - - -

上の例で出てきた事柄について説明しましょう. `Enter secret -password:' というプロンプトに対してあなたが考えた秘密のパスフレーズを -入力します (筆者は 7 単語以上の文を秘密のパスフレーズにしています). こ -の秘密のパスフレーズは後でログインするために必要になるものです. `ID' -から始まる行は, S/KEY における一回分のパラメタであり, あなたのログイ -ン名とシーケンス番号とシードです. (訳注: `信頼できない通信路での初期化 - -

信頼できない通信路を使って S/KEY を初期化, または秘密のパスフレーズ -やシードを変更するためには, 信頼できる通信路として, その信頼できない通 -信路とは別のものを用意する必要があります. その信頼できる通信路は -` -$ keyinit -s -Updating wollman: -Old key: kh94741 -Reminder you need the 6 English words from the skey command. - ) `keyinit' コマンドが出力する注意です. 訳すと, - ) 注意 - skey コマンドの出力する 6 英単語が必要になります. -Enter sequence count from 1 to 9999: 100 ) ここを入力. -Enter new key [default kh94742]: ) リターンのみ入力. -s/key 100 kh94742 - - -デフォルトのシード (`keyinit' プログラムは困ったことにこれを `key' と -読んでいるのですが, 混乱しないよう注意してください) で構わなければ, リ -ターンキーを押してください. 次に, あらかじめ用意しておいた信頼できる通 -信路 (信頼できるマシンや信頼できる S/KEY デスクアクセサリなど) へ移っ -て, 先ほどと同じパラメタを入力します. - - -$ key 100 kh94742 -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: ) ここで秘密のパスフレーズを入力します. -HULL NAY YANG TREE TOUT VETO - - -ここで信頼できない通信路の方に戻って, ` -s/key access password: HULL NAY YANG TREE TOUT VETO - -ID wollman s/key is 100 kh94742 -HULL NAY YANG TREE TOUT VETO - - -後は, 前章で説明したことと同様です. - -ちょっと寄り道: ログインプロンプトについて - -

どうやってワンタイムパスワードを生成するかを説明する前に, S/KEY を -使う場合のログインプロンプトを見ておいた方がよいでしょう. - - -$ telnet himalia -Trying 18.26.0.186... -Connected to himalia.lcs.mit.edu. -Escape character is '^]'. -s/key 92 hi52030 -Password: - - -パスワードを要求する前に, ログインプログラムがシーケンス番号とシードを -表示していることがわかります. この二つのパラメタを使ってワンタイムパ -スワードを計算することになります. ここではまだ使っていませんが, 便利な -機能がログインプログラムに備わっています:パスワードプロンプトに対して, -何も入力せずにリターンを押すとエコーモードに切り替わります. つまりタイ -プした文字がそのまま見えるようになるのです. これは S/KEY のワンタイム -パスワードを紙に印刷していた場合など, ワンタイムパスワードを手で入力し -なければならない場合に特に役立つ機能です. - -

このログインしようとしてるマシンが, あなたが今使っているマシンから -UNIX パスワードを使ってログインすることができないように設定されている -場合があります. その場合には, ログインプロンプトには S/KEY のワンタイ -ムパスワードの利用が必要であることを示す `(s/key required)' -という注釈が表示されます. - -ワンタイムパスワードを生成する - -

次に前章のログインプロンプトに対して入力するためのワンタイムパスワー -ドを生成しましょう. そのために, 信頼できるマシンと ` -$ key 92 hi52030 ) 前章の例からペースト. -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: ) 秘密のパスフレーズを入力. -ADEN BED WOLF HAW HOT STUN - - -そして別のウィンドウで: - - -s/key 92 hi52030 ) 前章の例の続き. -Password: ) ここでリターンキーを押した. - (turning echo on) -Password:ADEN BED WOLF HAW HOT STUN -Last login: Wed Jun 28 15:31:00 from halloran-eldar.l -[以下略.] - - -以上の手順は, 信頼できるマシンが利用できる場合 key applet もあり, - からダウンロードして -Java をサポートするブラウザ上でローカルに実行することができます。 - -複数のワンタイムパスワードを生成する - -

都合によっては, 信頼できるマシンや信頼できる通信路が一切確保できな -いようなところで S/KEY を使う必要があるでしょう. このような場合には, -` -$ key -n 25 57 zz99999 -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: -33: WALT THY MALI DARN NIT HEAD -34: ASK RICE BEAU GINA DOUR STAG -[...] -56: AMOS BOWL LUG FAT CAIN INCH -57: GROW HAYS TUN DISH CAR BALM - - -`UNIX パスワードの利用を制限する - -

設定ファイル /etc/skey.access を使って UNIX パスワードの利 -用を制限することができます. この場合の判断基準として, ログインを受け付 -ける際のホスト名, ユーザ名, 端末のポート, IP アドレスなどが利用できま -す. この設定ファイルの詳細に関してはマニュアル もし /etc/skey.access ファイルが存在しないならば (FreeBSD -をインストールした直後の状態では存在しません), すべてのユーザが UNIX -パスワードを利用することができます. 逆に, もしファイルが存在するならば, -/etc/skey.access ファイルに明示的に記述されていない限り, すべ -てのユーザは S/KEY の利用を要求されます. どちらの場合においても, その -マシンのコンソールからはいつでも UNIX パスワードを使ってログインするこ -とが可能です. - -

以下によく使われるであろう三種類の設定を含む設定ファイルの例を示し -ます: - - -permit internet 18.26.0.0 255.255.0.0 -permit user jrl -permit port ttyd0 - - -はじめの行 (`二行目 (`三行目 (` - - - -SLIPクライアントのセットアップ - -

原作: &a.asami;8 Aug 1995. - -

訳: &a.hanai;8 August 1996. - -ここにはFreeBSDマシンを静的アドレスのネットワークにつなげる場合の -SLIPのセットアップの一つの方法を書いてあります. -ホスト名を動的に割り当てる(つまり, ダイヤルアップするたびにアドレスが -かわる)ためには, おそらくもっと凝ったことが必要です. - - - -まず, モデムがどのシリアルポートにつながっているか決めましょう. 私は -/dev/modem -> cuaa1というシンボリックリンクを張り, -コンフィグレーションではその名前だけを使っています. /etc -や.kermrcなど、システム全体に散らばっているファイルを修正する -必要がでるとまったく煩わしいのです!(ここで, /dev/cuaa0は -COM1であり, cuaa1はCOM2です.) - -カーネルのコンフィグレーションファイルに - -pseudo-device sl 1 - -という記述があるのを確認してください. これはGENERICカーネルに含まれている -ので削除していない限り大丈夫でしょう. - -最初の設定 - -

-/etc/hostsファイルにあなたのマシンのゲートウェイとネームサーバ - を加えてください. 私のは以下のようになっています. - -127.0.0.1 localhost loghost -136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia - -136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway -128.32.136.9 ns1.Berkeley.edu ns1 -128.32.136.12 ns2.Berkeley.edu ns2 - - 余談ですが, silviaというのは私が日本にいた時に持っていた - 車の名前です(米国では2?0SXと呼ばれています). - -/etc/host.confファイル中で"hosts"が"bind"よりも前にあること - を確認してください. さもないとヘンなことが起こるかもしれません. - - -/etc/rc.confファイルを編集してください. なお, お使いの -FreeBSD が 2.2.2 よりも前のバージョンのものの場合は, -/etc/sysconfig を編集してください. - -行 - -hostname=myname.my.domain - - を編集してホスト名をセットしてください. - 完全なInternetホスト名を与えるべきです. - -行 - -network_interfaces="lo0" - -を - -network_interfaces="lo0 sl0" - -へ変更することによりネットワークインタフェースのリストにsl0を加えてください. - -行 - -ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up" - -を加えてsl0のスタートアップフラグをセットしてください. - -行 - -defaultrouter=NO - -を - -defaultrouter=slip-gateway - -へ変更してデフォルトのルータを指定してください. - - - 次の - -domain HIP.Berkeley.EDU -nameserver 128.32.136.9 -nameserver 128.32.136.12 - - という内容を含むファイル /etc/resolv.conf を作ってください. - 見ればわかるように, これらはネームサーバホストを設定しています. - もちろん, 実際のドメイン名やアドレスはあなたの環境に依存します. - -rootとtoor(及びパスワードを持っていない他のアカウントすべて)のパスワード - を設定してください. passwdコマンドを使いましょう. /etc/passwd - や /etc/master.passwd といったファイルを編集してはいけません! - -マシンを再起動して正しいホスト名で立ち上がることを確認してください. - - -SLIP接続をおこなう - -

-モデムを起動、つながったらプロンプトで"slip"とタイプし, マシン名と - パスワードを入力してください. 入力する必要があるものは環境に - よって異なります. 私は次のようなスクリプトでkermitを使っています. - -# kermit setup -set modem hayes -set line /dev/modem -set speed 115200 -set parity none -set flow rts/cts -set terminal bytesize 8 -set file type binary -# The next macro will dial up and login -define slip dial 643-9600, input 10 =>, if failure stop, - -output slip\x0d, input 10 Username:, if failure stop, - -output silvia\x0d, input 10 Password:, if failure stop, - -output ***\x0d, echo \x0aCONNECTED\x0a - - (もちろん, ホスト名とパスワードは変える必要があります). - 接続するためにはkermitのプロンプトで"slip"とタイプするだけです. - - 注意: ファイルシステムのどんなところにもプレインテキスト - にパスワードを書いておくのは一般的にはよくありません. 覚悟の上で - やってください. 私は単に不精なだけです. - -ここでkermitから抜け出し("z"でkermitをサスペンドできます), root - で - -slattach -h -c -s 115200 /dev/modem - - と入力しましょう. - もしルータの向う側のホストへ"ping"できるなら接続成功です! もしうまく - いかなければslattachへの引数として"-c"の代わりに"-a"とやってみてください. - - -接続の切り方 - -

slattachを殺すためにrootで "kill -INT `cat /var/run/slattach.modem.pid`" - とタイプしてください. そしてkermitに戻り(もしkermitをサスペンドしていたなら - "fg"), kermitから抜けてください("q"). - - slattachのマニュアルページにはインタフェースを落すために - "ifconfig sl0 down"をしなければいけないと書いていますが, - 私には差がないように見えます. - ("ifconfig sl0"とやっても同じ結果が得られる.) - - 時にはモデムがキャリアを落すのを拒絶するかもしれません(私のは - よくそうなります). その時は単にkermitをスタートしてまた終了 - してください. - 普通は2回目で落ちます. - -トラブルシューティング - -

もし動かなければ自由に私に質問してください. 今までいろんな人がつまずいた -のは次のようなことです. - -slattachで"-c"や"-a"を使わなかった(私はなぜこれが致命的になり得るのか - わかりませんが, このフラグを付けることで少なくとも一人の問題は解決しました.) - -"sl0"の代わりに"s10"を使った(いくつかのフォントでは見分けるのは難しい - かもしれません). - -インタフェースの状態を見るために"ifconfig sl0"をやってみてください. - 私は, - -silvia# ifconfig sl0 -sl0: flags=10 - inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 - - となります. - -また, pingが"no route to host"というメッセージを返す時には - netstat -rでルーティングテーブルを確認しましょう。 - 私のは, - -silvia# netstat -r -Routing tables -Destination Gateway Flags Refs Use IfaceMTU Rtt -Netmasks: -(root node) -(root node) - -Route Tree for Protocol Family inet: -(root node) => -default inr-3.Berkeley.EDU UG 8 224515 sl0 - - -localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438 -inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - - -silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438 -(root node) - - となります. -(これはたくさんのファイルを転送した後でのもので, あなたの見る数字はもっと小さいかも -しれません). - diff --git a/ja/handbook/slips.sgml b/ja/handbook/slips.sgml deleted file mode 100644 index a6d7693254..0000000000 --- a/ja/handbook/slips.sgml +++ /dev/null @@ -1,519 +0,0 @@ - - - - - - -SLIPサーバのセットアップ方法 -

原作: &a.ghelmer;. -v1.0, 15 May 1995. -

訳: &a.ts;.6 September 1996. - -この文書の目的は, SLIPサーバ機能を FreeBSDシステムのもとで設定するため -の助言を提供することです. SLIPサーバ機能を設定するということは, リモー -トの SLIPクライアントがログインできるようにするために, 自動的に接続処 -理をおこなうようにすることです. この文書は著者の経験に基づいておりますが, -実際のシステム構成や要望は異なりますから, すべての疑問にこの文書が答え -ることはできません. なお, ここでの助言を試みた結果, あなたのシステムへ -の悪影響やデータの損失が生じたとしても, 著者が責任を持つことはできませ -んのでご了解をお願いします. - -当初この文書は, FreeBSD 1.xシステムでの SLIPサーバ機能のために書きまし -た. その後, FreeBSD 2.xの初期バージョンでのパス名の変更や SLIPインタフェー -ス向け圧縮フラグの削除といった変更点を反映するために, 書き換えをおこないま -した. これらが FreeBSDのバージョン間の主要な変更点だったからです. もし -この文書の間違いを見つけられましたら, ぜひ, 訂正に十分な情報とともに電 -子メールでお知らせいただければ助かります. - -前提

-この文書の内容はテクニカルなものなので, 前提知識が必要です. すなわち, -TCP/IPネットワークプロトコルについての知識, 特に, ネットワークとノード -のアドレス指定をはじめ, ネットワークアドレスマスク, サブネット化, ルー -ティング, および RIPなどのルーティングプロトコルなどに関する知識を前提 -としています. ダイヤルアップサーバで SLIP機能を設定するためには, これ -らの概念についての知識が必要ですから, もし不案内であると思われる方は, -O'Reilly & Associates, Inc.から出版されている Craig Hunt氏の -TCP/IP Network Administration (ISBN 0-937175-82-X)か, または -Douglas Comer氏の TCP/IPプロトコルに関する一連の書籍をお読みください. - -前提知識に加え, さらに, モデムの設定が完了しており, そのモデムを経由し -てログインできるように, システムファイル群が適切に記述できているものと -仮定しています. もしモデムの準備ができていないときには, あらかじめダイヤ -ルアップ機能の設定についてのチュートリアルをお読みください. Webブラ -ウザが使えるのであればhttp://www.freebsd.org/ におけるチュー -トリアルの一覧を調べてください. あるいは, この文書を見つけた場所を調べ -て, 概要 - -

-一般的な設定内容で FreeBSDを SLIPサーバとして利用すると, その動作は次 -のようになります. まず, SLIPユーザが FreeBSD による SLIPサーバへ電話し -て, SLIP専用IDでログインします. なお, このIDを持ったユーザはシェルとし -て /usr/sbin/sliplogin を使います. この /etc/sliphome/slip.hosts の中から, ログインIDと一致する -記述行を探します. もし一致する行があれば, ログインしたシリアル回線を, -利用可能な SLIPインタフェースへ接続し, その後にシェルスクリプト -/etc/sliphome/slip.login で SLIPインタフェースを設定します. - -SLIPサーバへのログイン例 - -

-仮に SLIPユーザIDが Shelmerg とします. すると, -/etc/master.passwd における -Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP: - /usr/users/Shelmerg:/usr/sbin/sliplogin - - -sliplogin は, ファイル -/etc/sliphome/slip.hosts からユーザIDと一致する行を探しま -す. いま仮に, /etc/sliphome/slip.hosts に次のような記述がなさ -れていたとします. - - -Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp - - -/etc/sliphome/slip.login を実行します. - - -/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp - - -もし上記の手順が正常に処理されると, /etc/sliphome/slip.login -は, slip.login で与えられたパラメタのうちで最初の値である SLIP -インタフェース0である) に対して ifconfig を実行し, ローカル -IPアドレス (dc-slip)をはじめ, リモート IPアドレス -(sl-helmer), SLIPインタフェースへのネットワークマスク -(0xfffffc00), およびその他のフラグ (autocomp)を設定 -します. 逆に, さきほどの手順が正常に終了しなかった場合, 通常は -/var/log/messages へ記録します ( syslogd(8) や -syslog.conf(5) のマニュアルページを参照のうえ, さらに -/etc/syslog.conf を調べて syslogd がどのファイルへ記 -録するかを確認のこと) . - -例はこのくらいにして, さっそくシステムのセットアップを始めてみましょう. - -カーネルのコンフィグレーション - -

-FreeBSDのデフォルトのカーネルには, 通常, 二つの SLIPインタフェースが -準備されています (sl0sl1) . これらのインタフェー -スが使用中のカーネルに準備されているかどうかを調べるには, -netstat -i を実行してください. - -netstat -i の出力例 - - -Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll -ed0 1500 0.0.c0.2c.5f.4a 291311 0 174209 0 133 -ed0 1500 138.247.224 ivory 291311 0 174209 0 133 -lo0 65535 79 0 79 0 0 -lo0 65535 loop localhost 79 0 79 0 0 -sl0* 296 0 0 0 0 0 -sl1* 296 0 0 0 0 0 - - -netstat -i の出力に sl0sl1 のインタフェー -スが含まれているということから, カーネルには二つの SLIPインタフェー -スが組み込まれているということを示しています. (sl0 と -sl1 に付いたアスタリスクは, netstat -i の実行時点で -はインタフェースがダウンしていることを表しています. ) - -なお, パケットのフォワード機能はFreeBSDのデフォルトのカーネルでは設定 -されていません (すなわちルータとしては動作しない) . もしインターネット -接続ホストについての RFC要件 ( RFC 1009 [Requirements for -Internet Gateways] と 1122 [Requirements for Internet Hosts -- -Communication Layers], おそらく 1127 [A Perspective on -the Host Requirements RFCs] も ) に準拠して, FreeBSDによる SLIPサー -バをルータとして動作させたいときには, /etc/rc.conf (バージョ -ン - 2.2.2 より前の FreeBSD では /etc/sysconfig) ファイル -の gateway 変数を YES としてください. もし古いシステ -ムで /etc/sysconfig ファイルすらないときには, 次のコマン -ドを /etc/rc.local へ追加してください. - - -sysctl -w net.inet.ip.forwarding = 1 - - - -

-この新しい設定を有効とするには, リブートする必要があります. - -

-デフォルトのカーネルコンフィグレーションファイル -(/sys/i386/conf/GENERIC) の最後の部分に, 次のような行がありま -す. - - -pseudo-device sl 2 - - -この行によって, 使用可能な SLIPデバイスの総数が決まります. すなわち, 行 -末の数値が, 同時に動作可能な SLIP接続の最大数となります. - -カーネルの再構築については, を参照ください. - -Sliploginのコンフィグレーション - -

-すでにご説明したように, /usr/sbin/sliplogin のコンフィグレー -ションのために, 3種類のファイルが/etc/sliphome ディレクトリに -あります (sliplogin についての実際のマニュアルページとしては -sliplogin(8) を参照のこと) . ファイル slip.hosts は -SLIPユーザおよびその IPアドレスを決めます. 通常, ファイル -slip.login は, SLIPインタフェースを設定することだけに使 -用します. slip.logout はオプションのファイルで, -slip.login で設定した内容を, シリアル接続が終了した時点で解除 -するときに使用します. - -slip.hostsのコンフィグレーション - -

-/etc/sliphome/slip.hosts には, 少なくとも 4 つの項目をホワイ -トスペース (スペースやタブ) で区切って指定します. - - - SLIPユーザのログインID - SLIPリンクのローカル (SLIPサーバ側) アドレス - SLIPリンクのリモートアドレス - ネットワークマスク - - -ホスト名をローカルおよびリモートのアドレスとして記述できます (IPアドレ -スの決定は, /etc/host.conf の指定内容に応じて, -/etc/hosts か DNSのいずれかによって決定される) . また, ネット -ワークマスクも /etc/networks ファイルに記述された名前を参照す -ることで, 指定することもできると思います. これまでの例としてあげたシス -テムでの /etc/sliphome/slip.hosts は次のようになります. - - ------ begin /etc/sliphome/slip.hosts ----- -# -# login local-addr remote-addr mask opt1 opt2 -# (normal,compress,noicmp) -# -Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp ------ end /etc/sliphome/slip.hosts ------ - - -それぞれの行の最後には, 次に示すオプションを一つ以上指定できます. - - - normal - ヘッダを圧縮しない - compress - ヘッダを圧縮する - autocomp - リモートの設定に応じて, ヘッダを圧縮する - noicmp - ICMPパケットを禁止する (pingパケットは送出されず, バンド幅を占有しない) - - -なお, FreeBSDバージョン2の初期リリースの の節で紹介した TCP/IP関連書籍を参考になさるか, -またはあなたの IPネットワークを管理している方に相談なさるとよいでしょう. - -独立したサブネットを SLIPクライアントへ適用するときには, すでに割り当 -てられている IPネットワーク番号の範囲からサブネット番号を割り当て, 同 -時にそのサブネットの範囲内で有効な IPアドレスを SLIPクライアントの IP -番号として割り当てる必要があります. さらに, この SLIPサブネットから -SLIPサーバを経由して最も近い IPルータへの経路を静的に設定するか, また -は gated を FreeBSDによる SLIPサーバへインストールして, 適当 -なルーティングプロトコルを使って, SLIPサーバ経由のサブネットへの経路情 -報をルータ群へ通知できるように設定するか, のいずれかをおこなう必要がありま -す. - -「プロキシ ARP」方式を採用するときには, SLIPクライアント向けの IPアドレス -として, SLIPサーバのサブネットの範囲から選んで割り当てるとともに, -arp(8) コマンドを使うために /etc/sliphome/slip.login -と/etc/sliphome/slip.logout のスクリプトを修正して, SLIPサー -バにおける ARPテーブル内のプロキシ ARPエントリへ反映させる必要がありま -す. - -slip.loginのコンフィグレーション - -

-ファイル /etc/sliphome/slip.login の一般的な内容は次にように -なります. - - ------ begin /etc/sliphome/slip.login ----- -#!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6 ------ end /etc/sliphome/slip.login ----- - - -この slip.login ファイルの役目は単に, SLIPインタフェースにつ -いてのローカルとリモートのアドレス, およびそのネットワークマスクを -ifconfig コマンドで設定することです. - -もしプロキシ ARP方式を採用する (SLIPクライアントへ独立したサブネットを -使わない) ときには, ファイル /etc/sliphome/slip.login は次の -ような内容になります. - - ------ begin /etc/sliphome/slip.login for "proxy ARP" ----- -#!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6 -# Answer ARP requests for the SLIP client with our Ethernet addr -/usr/sbin/arp -s $5 00:11:22:33:44:55 pub ------ end /etc/sliphome/slip.login for "proxy ARP" ----- - - -この slip.login で追加された行 -arp -s $5 00:11:22:33:44:55 pub は, -SLIPサーバにおける ARPテーブルへ新たなエントリを作ります. SLIPサーバ -は, この ARPエントリが作られると, SLIPクライアントの IPアドレスと話し -たい他の IPノードが要求してきたときにはいつも, SLIPサーバ -の Ethernet MACアドレスを返すようになります. - -上記の例を実際に流用なさるときには, 例にある Ethernet MACアドレス -(00:11:22:33:44:55) を, あなたのシステムの実際のEthernetカー -ドの MACアドレスと置き換えなければ「プロキシ ARP」はうまく動作しません! -SLIPサーバの Ethernet MACアドレスを調べるには netstat -i コマ -ンドを利用してください. 実行結果の第2行は次のようなものになるはずです. - - -ed0 1500 0.2.c1.28.5f.4a 191923 0 129457 0 116 - ^^^^^^^^^^^^^^^ - - -この例での Ethernet MACアドレスは 00:02:c1:28:5f:4a であると -読みます. なお arp(8) における MACアドレスの指定に際しては, -コマンド netstat -i が付けた Ethernet MACアドレスのピリオド記 -号をコロン記号と置き換え, かつ単一桁の 16 進数にはゼロを先頭に加える必 -要があります. この指定についての正確な情報は arp(8) を参照く -ださい. - -ご注意いただきたいのは, /etc/sliphome/slip.login と -/etc/sliphome/slip.logout を作成したならば, ファイル属性の実 -行ビット (すなわち -chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout) を -設定しなければならないということです. さもなければ sliplogin が -うまく実行されません. - -slip.logoutのコンフィグレーション - -

-ファイル /etc/sliphome/slip.logout は必ずしも必要なものではあ -りません (ただし「プロキシ ARP」を利用する場合を除く) . もしこのファイルを -作成するときには, 次に示す標準的な slip.logout スクリプト例を -参考にしてください. - - ------ begin /etc/sliphome/slip.logout ----- -#!/bin/sh - -# -# slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down ------ end /etc/sliphome/slip.logout ----- - - -「プロキシ ARP」を利用する場合, この /etc/sliphome/slip.logout を -使って, 特定の SLIPクライアント向けの ARPエントリを削除したくなるよう -なときがあります. - - ------ begin /etc/sliphome/slip.logout for "proxy ARP" ----- -#!/bin/sh - -# -# @(#)slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down -# Quit answering ARP requests for the SLIP client -/usr/sbin/arp -d $5 ------ end /etc/sliphome/slip.logout for "proxy ARP" ----- - - -コマンド arp -d $5 は, SLIPクライアントがログインした -際に, 「プロキシ ARP」を使った slip.login によって追加され -た ARPエントリを削除します. - -これによって, 繰り返して利用することができるわけです. 必ず, -/etc/sliphome/slip.logout を作成した後に, 実行ビットを設定し -てください ( chmod 755 /etc/sliphome/slip.logout ) . - -ルーティングについての考慮点 - -

-「プロキシ ARP」方式を利用せずに SLIPクライアントとその他のネットワーク -(Internetも含む) の構成要素との間でパケットをルーティングするときには, -SLIPサーバ経由で SLIPクライアントが属するサブネットまでの経路を, 最も -近いデフォルトのルータ群へ静的な経路情報として追加しなければならないか, -または gated を FreeBSDによる SLIPサーバへインストールして, -SLIP サブネットについての経路情報を, 適当なルーティングプロトコルでルー -タ群へ通知できるように設定するか、のどちらかをおこなわなければなりません. - -静的な経路 - -

-静的な経路を最も近いデフォルトのルータ群へ追加することが困難なことがあ -ります (経路情報を追加できる権限がなければそもそも不可能となる). もし -あなたの組織に複数のルータで構成されたネットワークがあるならば, ある種 -のルータ (たとえば Ciscoや Proteonなど) は, 静的な経路を SLIPサブネッ -トへ使うようにルータを設定しなければならないだけでなく, その静的経路を -他のどのルータへ知らせるのかもあらかじめ指定しておく必要がありますから, -静的経路に基づくルーティングを軌道に乗せるにはそれなりの専門的技術やト -ラブルシューティングやコツが必要だと思います. - -gatedの稼働 - -

-静的経路についての頭痛への代替手段は, gated を FreeBSDによる SLIPサー -バへインストールして, 適切なルーティングプロトコル (RIP/OSPF/BGP/EGP) -を使って SLIPサブネットについての経路情報を他のルータへ知らせるように -設定することです. から - から探して自分自身で構築することもで -きます. この文章を執筆時点の最新バージョンは -gated-R3_5Alpha_8.tar.Z であり, このファイルだけで FreeBSDで -動作させることができます. gated についてのすべての情報と文書 -は からはじまる Web上で入手でき -ます. gated のコンパイルとインストールを行ったならば, 独自の -設定のために /etc/gated.conf ファイルを記述してください. 次の -例は, 筆者が FreeBSDによる SLIPサーバで使っている内容と類似のものです. - - ------ begin sample /etc/gated.conf for gated version 3.5Alpha5 ----- -# -# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5 -# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface -# -# -# tracing options -# -traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; - -rip yes { - interface sl noripout noripin ; - interface ed ripin ripout version 1 ; - traceoptions route ; -} ; - -# -# Turn on a bunch of tracing info for the interface to the kernel: -kernel { - traceoptions remnants request routes info interface ; -} ; - -# -# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP -# - -export proto rip interface ed { - proto direct { - xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections - } ; -} ; - -# -# Accept routes from RIP via ed Ethernet interfaces - -import proto rip interface ed { - all ; -} ; - ------ end sample /etc/gated.conf ----- - - -この gated.conf ファイルの例では, SLIPのサブネット -xxx.xxx.yy についての経路情報を RIPを使って Ethernetへブロー -ドキャストしています. もし gatedの動作をデバッグするために, -/var/tmp/gated.output へトレース情報を出力するように指示して -います. gated が希望通りに動作したならば, このトレースオプショ -ンを止めることができます. なお, 例における xxx.xxx.yy を, あ -なた自身の SLIPサブネットのネットワークアドレスに換えてください (また -proto direct 部分のネットワークマスクも換えることを忘れないこ -と) . - -gated のコンパイルとインストールが終了し, コンフィグレーショ -ンファイルの作成も完了したら, FreeBSDシステムではデフォルトの -routedに代わって gated を起動してください. そのため -には, /etc/netstartrouted/gated 起動パラメタを -適切な値に設定してください. gated のコマンドラインパラメタにつ -いての情報は, gated のマニュアルページを参照してください. - -謝辞 - -

-このチュートリアルについてのコメントやアドバイスを寄せてくれた次の方々 -に感謝します. - - - - - diff --git a/ja/handbook/stable.sgml b/ja/handbook/stable.sgml deleted file mode 100644 index 87a9fd0410..0000000000 --- a/ja/handbook/stable.sgml +++ /dev/null @@ -1,126 +0,0 @@ - - - - -FreeBSD の安定状態の持続 - -

原作: &a.jkh;. -

訳: &a.iwasaki;. - - - - -FreeBSD-stable ってなに? - -

FreeBSD-stable は, 次の本流のリリースを目指した新機能をあまり採り入 -れない保守的な変更のための開発の支流です. 実験的またはテスト未完の変更 -はこの支流には取り入れられません ( 参照). - -誰が FreeBSD-stable を必要としているの? - -

もしあなたが仕事で使用しているとか, なによりも FreeBSD システムの安 -定性を最重要視するなら, stable を追いかけることを考えるべきで -しょう. stableの支流は前のリリースに関して効果的にバグフィッ -クスされた流れであるため, 最新のリリース ( 執筆時点) をインストールしているのであれば, 特に -そうです. - -

stable ツリーが常に完全に互換性があり安定するように努力し -ていますが, たまに間違いがあることに注意してください (結局, 内容が吟味 -されずに素早く送られた変更を含むソースがまだあるのです). また, -currentstable へ移行する前に完璧なテストフィック -スに最善を尽くしますが, 私たちのテストはすべてのケースを十分に網羅して -いるとは限りません. もし何か stable で不具合があるようでした -ら, 私たちにすぐに教えてください (次の節参照). - -FreeBSD-stable を入手する - -

&a.stable へ加わってください. このメーリングリスト - では, stable の構築に関連する事柄や, その他の注意すべき点 - に関する情報が流れています. また開発者は議論の余地がある修正や変更 - を考えている場合に, このメーリングリストで公表し, 提案された変更に - 関して問題が生じるかどうかを返答する機会をユーザに与えます. - - また, cvs-all メーリングリストでは, それぞれの変更がなされると - 起こりうる副作用に関するすべての適切な情報と一緒に commit log を - 読むことができます. subscribe しておきたいもう一つのメーリングリストです. - - メーリングリストに参加するには, &a.majordomo へメッセージの本文に - 次のように書いたメールを送ってください: - - subscribe freebsd-stable - subscribe cvs-all - - オプションとして本文に `help' と書けば, Majordomo は私たちがサポートする - 様々なメーリングリストに参加 / 脱退する方法に関する詳しいヘルプを送付します. - -

もし, あなたが新しいシステムを可能な限り -stable に近いものに - インストールしようとする場合には, 最新のブランチの snapshot を - から取得し, これを一般の - リリースのものと同様にインストールしてください. - -

もし, 既に 2.2 系列の前のリリースが動いている場合で, これを - ソースからアップグレードしようとするならば, ftp.FreeBSD.ORG より簡単に - これを行う事が出来ます. これには次の 3つの方法があります. - - - 機能を使用する. 転送レートが - 安定している TCP/IP 接続でない場合は, この方法が適して - います. - -

を - - を用いて使用する. 一度コレクション全体を入手してしまえば, - 前回からの変更部分だけですむので, 2番目に推奨される方法で - す. 多くの人が cron から cvsup を実行し, 自動的にソースコー - ドを最新の状態に保っています. これを簡単に扱うには次のように - タイプしてください. - - pkg_add -f ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz - - -

ftp を使用する. FreeBSD-stable 用のソースツリーは - 常に次のところで「公開」されています : - - -

私たちはまた, tar/compress でツリー全体を入手できる - `wu-ftpd' を使用しています. 例えば : - - usr.bin/lex - - に対して: - - ftp> cd usr.bin - ftp> get lex.tar.Z - - とすることにより, ディレクトリ全体を compress された tar - ファイルとして入手することができます. - - -

基本的には, ソースに迅速でオンデマンドなアクセスが必要で, - 接続のバンド幅が問題でなければ, cvsup か ftp を使いましょう. そうで - ない場合は CTM を使いましょう. - -

stable をコンパイルする前に, /usr/src にある Makefile をよ - く読んでください. 少なくとも一回はアップグレードの処理の一部として - 最初に `' - を実行するべきでしょう. &a.stable を読めば, 次のリリースに移行する - に当たって時々必要となる既存システムからの新システムの構築手順に - ついての最新情報が得られるでしょう. - - - diff --git a/ja/handbook/submitters.sgml b/ja/handbook/submitters.sgml deleted file mode 100644 index e78d081cb5..0000000000 --- a/ja/handbook/submitters.sgml +++ /dev/null @@ -1,1728 +0,0 @@ - - - - -FreeBSD への貢献 - -

原作: &a.jkh;. -

訳: &a.iwasaki;.27 April 1997. - -

あなたも何か FreeBSD のために貢献したくなりましたか? 素晴らしい! -私たちは常に支援を受ける用意がありますし, FreeBSD は生き残るためにユー -ザベースの貢献に頼るようなシステムの一つです. あなたの貢献は -感謝されるだけではなく, FreeBSD が成長し続けるために極めて重要なものな -のです! - -

一部の人達が言っているのとは逆に, 貢献を受け付けてもらうために腕利 -きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はあ -りません. FreeBSD プロジェクトの開発は, 多くのそして益々増加する世界中 -の貢献者達によってなされており, 彼らの年齢, 専門技術分野は多岐に渡りま -す. そして手の空いている人よりも成されるべき仕事の方が常に多いのです. - -

FreeBSD プロジェクトがカーネルや散在しているユーティリティよりも, -オペレーティングシステム環境 (と, そのインストール) に対して責任を持つ -ようになったため, 私たちの「TODO」リストはドキュメンテーション, ベータテ -スト, 高度に専門化されたタイプのカーネル開発の好例を紹介するなど非常に -広い範囲のタスクに渡ります. あなたの技能レベルに関わらず, プロジェクト -を支援できることが必ず何かあります! - -

FreeBSD 関連の事業に従事している商業団体が私たちにコンタクトすること -も歓迎します. あなたの製品を (FreeBSD 上で) 動作させるには, 特別な拡張 -が必要ではありませんか? あまりにも風変わりな要求でなければ, それを受け -入れる用意が私たちにあるとわかるはずです. -付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは, ある -面において共同して作業をすることができるでしょう. フリーソフトウェア界 -は, ソフトウェアがそのライフサイクルを通してどのように開発され, 売られ, -保守されていくかについて, 既存の仮説に挑戦しています. 少なくとももう一 -度考慮してみることを私たちは強くお奨めします. - -何が必要? - -

次のタスクとサブプロジェクトのリストは, コアチームの色々な TODO リ -ストと最近2ヶ月で集めたユーザリクエストを合わせたものです. 可能なとこ -ろでは, 緊急度によってタスクがランクづけされています. もしここにあるタ -スクの実行に興味があるのでしたら, コーディネータの名前をクリックしてメー -ルを送ってください. もしコーディネータが決まっていなければ, あなたがボ -ランティアしてみませんか? - -優先度の高いタスク -

次のタスクは通常, ひどく壊れているとか, とても必要とされている何かを -表しているため, 急務と考えられています: - - -第3ステージ・ブート問題. 全体コーディネーション: -&a.hackers - -

-第3ステージがディスクの BIOS ジオメトリの正確なマッピングを提供 -できるように WinNT コンパチブルなドライブの追跡をおこなう. - - -ファイルシステム問題. 全体コーディネーション: -&a.fs - - -nullfs ファイルシステムコードのクリーンアップと -ドキュメンテーション. コーディネータ: &a.gibbs - -union ファイルシステムの修正. コーディネータ: &a.dg - - -カーネル vm86 及びユーザ vm86 サポート実装. コーディネータ: -&a.jlemon - -Int13 vm86 ディスクドライバの実装. コーディネータ: &a.hackers - -カーネル問題. 全体コーディネーション: -&a.hackers - -

-すべての現存ドライバの eisaconf 変換の達成. - -すべての割り込みルーチンをユニット番号を使う代わりに (void *) を -取るように変更. - -EISA/PCI/ISAの割り込み登録コードの統合. - -PCI/EISA/ISA デバイス検出を bt742a.c(WIP) のようなドライバから分割. - -syscons の ALT-Fn/vt 切替えによるハングの修正. コーディネータ: -&a.sos - -3c509と3c590 ドライバの統合 (本質的には PCI デバイス検出の ep.c -への提供). - - - - -優先度がさほど高くないタスク -

次のタスクはやっておくべきではありますが, 特にさし迫っているわけで -はありません: - - -MCA サポート? これは続けるにしても止めてしまうにしても結論を出 -すべき. - -完全な KLD ベースのドライバのサポート / コンフィグレーションマネー -ジャ. - -

-ld なしですべての LKM の登録をおこなう方法を考案する. これは -カーネル中にある種のシンボルテーブルを持たせることを意味します. - -穏やかな方法でハードウェアを検知するコンフィグレーションマネージャ -の作成 (第3ステージ・ブートの中に?). ハードウェアが必要とする KLD だけを -残す等. - - -PCMCIA/PCCARD. コーディネータ: &a.msmith と &a.phk - -ドキュメンテーション! -pcic ドライバの信頼性のある操作 (テスト要). - -sio.c のリコグナイザとハンドラ (ほぼ完了). - -ed.c のリコグナイザとハンドラ (ほぼ完了). - -ep.c のリコグナイザとハンドラ (ほぼ完了). - -User-mode のリコグナイザとハンドラ (部分的に完了). - - -先進的なパワーマネージメント. コーディネータ: &a.msmith と -&a.phk - - -APM サブドライバ (ほぼ完了). - -IDE/ATA ディスクサブドライバ (部分的に完了). - -syscons/pcvt サブドライバ. - -PCMCIA/PCCARD ドライバ群との統合 (サスペンド / レジューム). - - - - -優先度の低いタスク -

次のタスクは全くのあら隠し, または誰もすぐにおこないそうもない投資 -のような仕事を表します: - -

最初の20項目は Terry Lambert <terry@lambert.org> からのもので -す. - - -プロセッサ上で V86 モードを使用して, プロテクトモードからの BIOS -コールができるようにし, マップされた割り込み IPC 機構を経由してプロテ -クトモードの呼出し元に結果を返すようにする. - -DOS と同じように, 実際の下位ハードウェアから独立になるよう, BIOS -コール機構を使用したカーネルの中に組み込まれたドライバ. これは DOS ベー -スのローダプログラムで BSD がロードされる前に DOS にロードされていたネッ -トワークドライバや ASPI ドライバも含みます. このことは潜在的なポーリン -グ, つまりプロテクトモードカーネルによる V86 マシンのための -DOS-not-busy 割り込みの生成を意味します. - -ハードウェア固有のプロテクトモードのドライバがロードされて活性化 -された後で, デフォルトのカーネル実行形式の中の, そのようなドライバデー -タとテキストエリアを追跡して, カーネルアドレス空間のその部分が回復され -るようにするためのイメージ形式. -これは個々の BIOS ベースのドライバを互いに分離することを含みます. なぜ -なら全く実行しないよりも, すべてのケースにおいて BIOS ベースのドライバ -と共に実行した方が良いためです. - -バスインタフェース機構の抽象化. 現在のところ, PCMCIA, EISA そし -て PCI バスはブリッジで ISA バスに接続されていると仮定しています. こう -いった仮定はおこなうべきではありません. - -パワーマネージメントイベント, カードの挿入, 取り出し, そしてバス -(PNPISA と PCMCIA とのブリッジチップ) 対カードのレベルのイベント管理を -含む PNP イベントを解釈するコンフィグレーションマネージャ. - -固定デバイスによる他の再割当可・不可のデバイス空間リソースの使用 -と衝突しない, 再割当可能なアドレスの割り当てのためのトポロジカルソート -機構. - -ハードウェアサービス登録のための登録ベースの機構. 特にタイマ, -サウンドおよび他のシステムクリティカルなサービス供給源のためのデバイス -中心の登録機構. 単一の独立していないサービス供給源の一つの例として -Timer2, Timer0 そしてスピーカサービスを考慮する必要があります. - -ネットワークカードと一緒に提供される ODI カードドライバを使用で -きるようにする, NetWare サーバ (プロテクトモードの ODI ドライバ) ロー -ダとサブサービス. NDIS ドライバと NetWare の SCSI ドライバについても同 -様. - -前のリビジョンの FreeBSD マシンではなく, Linux マシンで動作する -「アップグレード システム」オプション. - -移植を簡単にするためと, X, ThinkPad, PS/2マウス, LED, コンソール -スイッチング, しつこい NumLock などの問題を全部一度に片付けるためのコ -ンソールドライバの抽象レイヤへの分割. - -機会が許したら, 他の外部ドライバのための他のカーネルのエミュレー -ション環境. SCO と Solaris は UnixWare などに続く良い候補です. - -異なるアーキテクチャのバイナリの実行のためのプロセッサエミュレー -ション環境. これはシステムコールインタフェースがあまり変わらなければ, -思ったより簡単です. - -商用のストリームドライバを使用可能にするためのストリーム機構. - -カーネルのマルチスレッド化 (カーネルのプリエンプションが必要). - -カーネルのプリエンプション付き対称マルチプロセッシング (カーネル -のプリエンプションが必要). - -ポータブルコンピュータのサポートにおける協調の試み. -これは PCMCIA ブリッジング規則と電源管理イベント処理の変更により, いく -らかは処理できます. しかし, 内蔵ディスプレイと外部ディスプレイの検出, -この2種類のディスプレイがあるという事実に基づく異なる解像度の選択, マ -シンがドックにある場合にはディスクのモータ停止を防止すること, マシンの -ブート能力に影響を与えずにドックベースのカードの消滅を可能にすること -(PCMCIA と同じ問題) などの問題があります. - -マルチプラットフォームへの移植のためのソースツリーの再組織化. - -「make world」できちんと「世界を創造する」ができるようにする. -(もし「make regress 訳注: 後退する」と呼び方が適当であれば, そのように -名前を変える) - -最小必要メモリ 4MB 化 (もっと小さければなお良し!). - - - -もっと簡単なタスク -

-上のセクションで挙げたタスクは膨大な時間の投資または -FreeBSD のカーネルに関する深い知識を必要とします(もしくはそのどちらも). -しかしながら, "週末ハッカー"やプログラミングのスキルを持 -たない人々に適した立派なタスクも数多くあります. - - -FreeBSD-current を運用しており, 状態の良いインターネット接続があ -るならば, current.freebsd.org という一日に一回フルリリースを行っている -マシンがあります - 時おり最新のリリースをそこからインストールし, その -過程で何か問題があるなら報告して下さい. - -freebsd-bugs メーリングリストを読んでください. そこではあなたが建 -設的なコメントを付けたりテストできるパッチが提供されているような問題がある -かもしれません. もしくはそれらの問題の一つをあなた自身で修正することさえ -できるかもしれません. - -定期的に FAQ とハンドブックを通して読んでみてください. -もしまずい説明や古い事柄や完全に間違っていることなどがあれば我々に -しらせて下さい. さらに良いのは我々に修正案を送ることです -(SGML は学ぶのにそれほど難しくありませんが, プレインテキストでも問題は -ありません). - -(もしまだないならば) FreeBSD のドキュメントを自分の母国語に翻訳 -するのを手伝ってください - 作業している人がいるかどうか &a.doc にメールを -送って聞くだけです. とはいっても, そうすることによってあなたが全ての -FreeBSD ドキュメントの翻訳に携わるようになるというわけではないですから -ね - 実際, もっとも翻訳が必要とされているドキュメントはインストール方 -法です. - -たまに(もしくは定期的に) freebsd-questions メーリングリストや -comp.unix.bsd.freebsd.misc を読んでください. これは, あなたの持ってい -る専門知識を共有したり誰かが抱えている問題を解決するのに非常に有効な -ものになり得ることです. 時にはあなた自身で新しいことを学ぶことさえ -できるかもしれません. これらのフォーラムはやるべきことのアイディア -の源にもなり得るのです. - --current に正しく当てられるがしばらく経っても(通常は 2, 3 週間) --stable に取り込まれてないようなバグフィックスがあるならばコミッターに -丁寧に思い出させてください. - -寄贈ソフトウェアをソースツリーの src/contrib に移動させてください. - -src/contrib 以下のコードが最新のものであるか確認してください. - -2000 年問題に関するバグを探してください(そして, -見つけたら修正してください!). - -ソースツリー全体(もしくはその一部)を, -警告を詳細に報告するようにして構築してみてください. -そして警告が出ないようにしてください. - -ports で, gets() を使っているとか malloc.h をインクルードしている -などといった警告が出ないようにしてください. - -もしなんらかの ports に関わっているなら, あなたのパッチを作者に -フィードバックしてください(次のバージョンが出た時にあなたが楽になります). - -このリストに追加するタスクを提案して下さい! - - - -貢献の仕方 - -

一般的に, システムへの貢献は次の6つのカテゴリの1つ以上に分類されます: - -バグ報告と一般的な論評 - - -

報告するべきバグがあったり, 提案したいことがあれば: - -

一般的な技術的関心事に関するアイデアや提案は -&a.hackers; へメールしてください. -同様に, このような事柄に興味のある (そして膨大なメール! -に耐えられる) 人は, &a.majordomo; へメールを送って hackers -メーリングリストに参加すると良いでしょう. 情報については - を参照してください. - -バグを発見したり変更を送付しようとしている場合は send-pr(1) -プログラムか を使用して報告してください. -バグレポートの各項目を埋めるようにしてください. -65KB を超えるのでなければ, レポート中に直接 -パッチを入れてくださって結構です. -20KB を超える場合は, それらを compress して uuencode(1) -することも検討してください. -とても大きくなる場合は - -を利用してください. - -レポートがファイリングされれば, バグ報告の確認と -トラッキング番号をメールで受け取るはずです. -このトラッキング番号を覚えておき, 問題に関する詳細情報を - に -メールで送って更新できるようにしてください. -例えば "Re: kern/3377" のように, -この番号をサブジェクト行に使用してください. -すべてのバグレポートの追加情報は, この方法で送付されなければいけません. - -もしタイムリに (あなたの電子メール接続形態にもよりますが, 3日から 1週間) -確認を受けとれないとか, 何らかの理由で send-pr(1) コマンドが -使用できない場合には, &a.bugs; へメールを送り, 誰か代りにバグ報告を -送付してもらうようたずねてください. - -文書の変更 - -

文書の変更は &a.doc; が監督しています. - -に記述されているように send-pr コマンドを使用して, -提案や変更 (どんな些細なものでも歓迎します!) -を送ってください. - -現存のソースコードの変更 -

現存のソースコードへの追加または変更は, いくらかトリッキーな仕事で - あり, core の FreeBSD 開発の現状にあなたがどれだけ通じているかに大 - きく依存します. 「FreeBSD-current」として知られる FreeBSD の特別な - 継続的リリースがあります. FreeBSD-current は開発者の積極的な活動の - 便宜のために, 色々な方法で利用可能になっています. FreeBSD-current - の入手と使用方法についての詳しい情報については を参照してください. - - 不幸にして古いソースをもとに仕事をすることは, 時々あなたの変更が時 - 代遅れ, または FreeBSD への簡単な再統合に合わなくなっていることを意 - 味します. システムの現状に関する議論がおこなわれている &a.announce と - &a.current へ参加することで, この可能性を最小限にすることができます. - - 完全な最新のソースを変更のベースにできることが確実になったと仮定し - て, 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です. - これは diff(1) コマンドを使用しておこないますが, 「context - diff」形式が好まれるようです. 例えば: - -diff -c oldfile newfile - -または - -diff -c -r olddir newdir - - - これで指定されたソースファイルまたはディレクトリ階層に対するコンテ - キスト形式の差分が生成されます. 詳しい説明は diff(1) のマ - ニュアルページを参照してください. - - 差分ファイル (patch(1) コマンドでテストできます) を作ったら, - それらを FreeBSD に含めてもらうようメールで送ってください. - - に記述されているように send-pr コマンドを使用してください. - 差分ファイルだけを &a.hackers; へ送ってはいけません. - 途方にくれてしまいます! - 私たちは多忙なので, あなたの提案に大変感謝します - (これはボランティアのプロジェクトです!). - すぐに取りかかることはできませんが, 処理されるまでは - ちゃんと pr データベースに残っています. - - あなたがそうした方がいいと思う場合 (例えば, ファイルの追加, - 削除または名称変更など), 変更を tar ファイルにまとめ, - uuencode(1) プログラムにかけてください. - Shar アーカイブも歓迎します. - - 例えばあなたがそれ自身のさらなる配布を管理するコピーライト問題を良 - く分かっていないとか, 単に厳しいレビューをおこなっておらず, リリース - する準備ができていないなど, あなたの変更が潜在的に不安定な性質をも - つものである場合, send-pr(1) で送付するよりむしろ &a.core; - へ直接送ってください. コアチームメーリングリスト宛のメールは, 日々の仕 - 事のほとんどを FreeBSD でおこなっている人たちの, より小さなグルー - プに届きます. このグループもまたとても忙しい ことに注意し - て, 本当に必要な場合にコアチームの彼らにメールを送るだけにしてください. - - コーディングスタイルに関する情報は man 9 intro および - man 9 style を参照してください. コードを提出する前には, - 少なくともこの情報を意識しておいてくださるようお願いします. - -新たなコードやメジャーな付加価値の高いパッケージ - -

重要な大きい仕事の寄贈や, 重要な新しいフィーチャーを FreeBSD に追加 - する稀な場合には, 変更点を tar/uuencode したファイルにして送るか, - それらを私たちの ftp サイト へアップロードす - ることのどちらかが通常必要になります. - - 大量のコードを伴った仕事の場合, コピーライトの神経過敏な問題が常に - 出てきます. FreeBSD に含めるコードのコピーライトとして受け入れるこ - とができるのは, 以下の二つです: - - - BSD コピーライト. このコピーライトは「権利に縛られない」性格 - と商用企業にとって一般的な魅力をもつために最も好まれま - す. FreeBSD プロジェクトは商用利用を阻んだりせず, 何かを - FreeBSD へ投資する気になった商業関係者による参加を積極的に奨励 - します. - - GNU一般公有使用許諾, または「GPL」. このライセンスはコード - を商用目的に使用する場合に余分な努力が求められるため, 私たち - にあまり評判が良いというわけではありません. しかし, 私たちは - 既に GPL 下の高品質なコード (コンパイラ, アセンブラ, テキスト - フォーマッタ等) の提供を受けており, 私たちは現在それを必要と - しています. そのため, このライセンスによる新たな貢献を拒絶す - るというのは愚かなことでしょう. GPL 下のコードはソースツリー - の別の部分, 現在のところ /sys/gnu か - /usr/src/gnu に入っています. そのため, GPL が問題と - なるような人は, 誰でも簡単にそれとわかるようになっています. - - -

これ以外のタイプのコピーライトによる寄贈は, FreeBSD へ含めることを - 考慮する前に, 注意深いレビューを受けなければなりません. 作者が独自 - のチャネルを通して配布しており, そのような変更をおこなうことを常に - 奨励している場合でも, 特に限定的な商用のコピーライトが適用される寄 - 贈は一般に拒否されます. - - あなたの作品に「BSD-スタイル」のコピーライトを付けるには, 保護した - いソースコードファイルすべての一番最初に以下のテキストを入れて, - `%%' の間を適切な情報に置き換えください. - - -Copyright (c) %%適切な年%% - %%あなたの名前%%, %%あなたの州%% %%郵便番号%%. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY %%あなたの名前%% ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL %%あなたの名前%% BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - $Id$ - -便宜をはかるため, このテキストのコピーは次の場所に置いてあります. -/usr/share/examples/etc/bsd-style-copyright. - -(訳注: 以下は神田敏広氏より寄贈された bsd-style-copyright の日本語訳です. -ソースファイルに含めるものは原文の方であることに注意してご利用ください. -また, 原文との間に趣旨の差異が生じた場合, 原文の内容が FreeBSD プロジェクトの -意思であるものとします.) - - -Copyright (C) [年] - [あなたの名前] All rights reserved. - -ソースとバイナリ形式の再配布および使用は, 変更の有無にかかわらず以下の -条件を満たす場合に限り許可される: -1. ソースコードの再配布は, 上記の著作権表示・この条件のリスト・下記の - 否認声明文を保持しなければならない. - -2. バイナリ形式の再配布は, 上記の著作権表示・この条件のリスト・下記の - 否認声明文を, 配布物と共に提供される文書および/または他の資料の中に - 含めなければならない. - -(訳注:ここから「否認声明文」です) - -このソフトウェアは[あなたの名前]および貢献者によって ``あるがままの状態'' -で提供され, 商品性と特定の目的に対する適合性についての暗黙の保証に留ま -らず, いかなる明示および暗黙の保証を認めない. [あなたの名前]および貢献 -者は, あらゆる直接的・間接的・偶発的・特殊的・典型的・必然的な損害 (代 -替製品または代替サービスの獲得費; 効用・データ・利益の喪失; または業務 -中断を含み, またそれだけに留まらない損害) に対して, たとえどのようにし -て生じたとしても, そしてこのソフトウェアの使用によってどのようにであれ -生じる, 契約上であろうと, 厳密な責任内であろうと, あるいは不正行為 (過 -失やそうでない場合を含む) における場合であろうとも, いかなる責任論上も, -たとえそのような損害の可能性が予見されていたとしても, 一切の責任を持た -ない. - -翻訳: 神田敏広 -御協力 (五十音順・敬称略): - 池田研二, 内川 喜章, 藤村 英治, むらたしゅういちろう - 杢野 雅一, 横田@宇都宮 - - -金銭, ハードウェアまたはインターネットアクセス -

FreeBSD プロジェクトの目的を進めるための寄付や, 私たちと同じような -ボランティアの細く長い ! 努力を, 私たちは常に喜んで受け入れています. -また一般的に私たちは自分達で周辺機器を買う資金が不足しているため, -周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です. - -資金の寄付 -

FreeBSD プロジェクトは501(C3) (非営利) 企業ではないため, いかなる寄 -付に対しても特別な税金の優遇措置を提供することができません. このような -寄付はプロジェクトを代表して FreeBSD, Inc により感謝をもって受け入れら -れるでしょう. - -

FreeBSD, Inc.は FreeBSD プロジェクトの推進とプロジェクトに企業とし -ての最小限の体裁を持たせることを目的として, 1995年の初めに &a.jkh と -&a.dg により設立されました. 寄付されたすべての資金は (最終的に -FreeBSD, Inc.によりもたらされるであろうすべての利益も同様に) プロジェク -トの目標を推進するためだけに使われるでしょう. - -支払い先を FreeBSD, Inc. とした小切手を, 次の住所気付けで送ってください: - -FreeBSD, Inc. -c/o Jordan Hubbard -4041 Pike Lane, suite #F. -Concord CA, 94520 - -[現在 私書箱が開設されるまで一時的に Walnut Creek CDROM の住所を使用] - - -電信振替は次の所まで直接送れるでしょう: - - -Bank Of America -Concord Main Office -P.O. Box 37176 -San Francisco CA, 94137-5176 - -Routing #: 121-000-358 -Account #: 01411-07441 (FreeBSD, Inc.) - - -寄付に関することは全て電子メールもしくは上記 FreeBSD, Inc. -の住所宛の郵政省メールにて までお送りくださるようお願いします. - -もし の節で匿名を希望される -方は, 寄付の際にその旨お伝えください. Thanks! - -ハードウェアの寄贈 - -

FreeBSD プロジェクトは, 次の3つのカテゴリのどんなハードウェアの寄贈 -も, 喜んで受け付けます: - - -ディスクドライブ, メモリまたは完全なシステムといった一般用途のハー -ドウェアは, 資金の寄付の節にある FreeBSD, Inc. の住所まで送っ -てください. - -進行中の受け入れテストのためのハードウェアが必要とされていま -す. 新たなリリース毎に適切な逆行テストができるように, 私たちは現在, -FreeBSD がサポートするすべてのコンポーネントのテストラボを設置しよう -としています. 私たちにはまだ, たくさんの重要な部品 (ネットワークカード, -マザーボードなど) が不足していますので, このような寄贈をしたいと思って -いるならば, &a.dg へコンタクトしてどの部品がまだ必要とされているか -の情報を得てください. - -現在 FreeBSD にサポートされていないハードウェアで, サポートに追 -加して欲しいもの. 私たちが新しいハードウェアを受けとる前にそのタスクを -引き受けてくれる開発者を探す必要があるため, その部品を送る前に &a.core; -にコンタクトを取ってください. - - - -インターネットアクセスの寄付 - -

私たちは常に FTP, WWW や cvsup の新しいミラーサイトを募集しています. -ミラーサイトになりたい場合には にコンタクトを取って, 詳し -い情報を手に入れてください. - -寄贈者ギャラリー - -

FreeBSD プロジェクトは次の寄贈者に恩義を受けており, ここに公表して -感謝の意を表したいと思います. - - -セントラルサーバプロジェクトへの寄贈者: -

次に挙げる個人および企業からは, セントラルサーバマシンのための - 部品の寄贈を頂いており, それによって freefall.freebsd.org - をリプレースして新たに FreeBSD プロジェクトのセントラルサーバマシンを - 構築することができました: - - - - と彼の所属する は, Pentium Pro (P6) 200Mhz CPU - を寄贈してくださいました. - - - は, Tyan 1662 マザーボード を寄贈してくださいました. - - - の は, - Kingston イーサネットコントローラを寄贈してくださいました. - - は, NCR 53C875 SCSI コントローラカード - を寄贈してくださいました. - - の - は, - 128MB のメモリ, そして 4 GB のディスクドライブと匡体 - を寄贈してくださいました. - - -直接的な資金提供: -

次に挙げる個人および企業からは FreeBSD プロジェクトに対する直接的な - 資金提供を頂いております: - - - - - - - - - Sean Eric Fagan - Don Scott Wilde - - - - - - Robert T. Morris - - - - - の - - - - 日本の はいくつかの FreeBSD CD の販売利益の一部を寄付してくれました. - - は、はじめての FreeBSD の売り上げの一部を FreeBSD プロジェクト及び XFree86 プロジェクトへ寄付してくれました. - - は FreeBSD 関連の書籍の売り上げの一部を FreeBSD プロジェクト及び FreeBSD 友の会へ寄付してくれました. - - からは FreeBSD プロジェクトへ多大な寄付をいただきました. - - - - - - - -ハードウェアの寄贈者: -

次に挙げる個人および企業からは, テストやデバイスドライバの開発 / サポート - のためのハードウェアの寄贈を頂いております: - - - Walnut Creek CDROM は, ネットワークへのアクセスおよび - 他のハードウェアリソースの寄贈はいうまでもなく, 開発に使うための - Pentium P5-90 と 486/DX2-66 EISA/VL のシステム数台を - 提供してくださいました. - - TRW Financial Sysytems社は, PC 130台, 68 GB のファイルサーバ 3台, - 12のイーサネット, ディスクレスコードのデバッグをおこなうための - ルータ 2台及び ATM スイッチを提供してくださいました. - また, 彼らは 2, 3人の FreeBSD ハッカーを雇って, FreeBSD に専念させて - くださっております. ありがとうございます! - - Dermot McDonnell は, 東芝 XM3401B CD-ROM ドライブを - 寄贈してくださいました. その CD-ROM ドライブは現在 freefall - で使用されています. - - &a.chuck; は, 実験用のフロッピーテープストリーマを - 寄付してくださいました. - - Larry Altneu と &a.wilko;は, - wt ドライバを改良するために Wangtek と Archive の - QIC-02 テープドライブを提供してくださいました. - - Ernst Winter は, このプロジェクトへ - 2.88 MB のフロッピードライブを提供してくださいました. - うまくいけば, これでフロッピーディスクドライバを書き直すための - プレッシャーが増えるでしょう. ;-) - - - は NCR ドライバや AMD ドライバと自社のカードの逆行テストのため - FAST/ULTRA SCSI ホストアダプタ DC-390, DC-390U, DC-390F を - 各1枚提供してくださいました. また, フリーな OS のためのドライバの - ソースを自社の FTP サーバ で公開されていることも - 称賛に値するでしょう. - - - は Symbios Sym8751S SCSI カードを寄贈してくださっただけでなく, - Ultra-2 や LVD をサポートする次期チップ Sym53c895 のものを含む - データブックのセットと, 最新の Symbios SCSI チップが持つ先進的機能を - 安全に使う方法について書かれた最新のプログラミングマニュアルも - 寄贈してくださいました. 本当にありがとうございます ! - - は, - IDE CD-ROM ドライバ開発用の FX120 12 倍速 Mitsumi CD-ROM ドライブ - を提供してくださいました. - - -特筆すべき寄贈者: -

- - - は, 言い表せないほど多くの寄付をしてくださいました (詳細は を参照). - 特に, 私たちのもともとのプライマリ開発マシンである - freefall.FreeBSD.ORG, テストおよびビルドマシンである - thud.FreeBSD.ORG で使用しているハードウェアに対し - 感謝したいと思います. - また彼らには, 数年にわたる色々な貢献者への資金提供や, インターネット - への T1 コネクションの無制限使用を提供して頂いた恩義があります. - - は, &a.joerg; を根気よく - サポートしてくださいました. - 彼は本職より FreeBSD の仕事を好みがちであり, 彼個人の接続があまりに - 遅くなったり途切れたりして仕事にならない時は必ず interface business の - (非常に高価な) EUnet インターネット接続に頼ったものです... - - - は, 同社の DOS エミュレータのコードを BSD コミュ - ニティ全体に対して提供してくれました. このコードは, - dosemu コマンドに利用されています. - - - - -コアチームの卒業生 - -

次に挙げる人々は()で記した期間, FreeBSD コアチームのメンバーでした. -FreeBSD プロジェクトにおける彼らの努力に感謝の意を表します. - -

だいたいの年代順:

- -

- - Guido van Rooij (1995 - 1999) - John Dyson (1993 - 1998) - Nate Williams (1992 - 1996) - Rod Grimes (1992 - 1995) - Andreas Schulz (1992 - 1995) - Geoff Rehmet (1993 - 1995) - Paul Richards (1993 - 1995) - Scott Mace (1992 - 1994) - Andrew Moore (1993 - 1994) - J.T. Conklin (1992 - 1993) - Christoph Rotitschko (1992 - 1993) - - -BSD派生ソフトウェアへのコントリビュータ - -

このソフトウェアは最初は William F. Jolitz の 386BSD release 0.1 - から派生しましたが, オリジナルの 386BSD に固有のコードはほとんど - 残っていません. このソフトウェアは基本的にはカリフォルニア大学 - バークレイ校の Computer Science Research Group (CSRG) とその共同研究者 - たちによる 4.4BSD-Lite リリースから再実装されました. - - また, NetBSD や OpenBSD の一部も FreeBSD に取り込まれています. - したがって私たちは NetBSD と OpenBSD へ貢献した人々すべてに感謝します. - -その他の FreeBSD へのコントリビュータ - -

(名前でアルファベット順に): - - - ABURAYA Ryushirou - Ada T Lim - Adam Glass - Adam McDougall - Adrian T. Filipi-Martin - Akito Fujita - Alain Kalker - Alan Cox - Amancio Hasty - Andreas Kohout - Andreas Lohr - Andrew Gallatin - Andrew Gordon - Andrew Herbert - Andrew McRae - Andrew Moore - Andrew Stevenson - Andrew V. Stesin - Andrey Zakhvatov - Andy Whitcroft - Angelo Turetta - Anthony C. Chavez - Anthony Yee-Hang Chan - Anton Berezin - Ari Suutari - Ben Hutchinson - Bernd Rosauer - Bill Kish - Brandon Gillespie - &a.wlloyd - Bob Wilcox - Boyd Faulkner - Brent J. Nordquist - Brett Taylor - Brian Clapper - Brian F. Feldman - Brian Handy - Brian Tao - Brion Moss - Bruce Gingery - Bruce Mah - Carey Jones - Carl Fongheiser - Charles Hannum - Charles Mott - Chet Ramey - Chia-liang Kao - Chris Dabrowski - Chris G. Demetriou - Chris Piazza - Chris Shenton - Chris Stenton - Chris Timmons - Chris Torek - Christian Gusenbauer - Christian Haury - Christoph Robitschko - Christopher T. Johnson - Choi Jun Ho - Chuck Hein - Clive Lin - Conrad Sabatier - Cornelis van der Laan - Craig Struble - Cristian Ferretti - Curt Mayer - Dai Ishijima - Dan Cross - Daniel Baker - Daniel M. Eischen - Daniel O'Connor - Danny J. Zerkel - Dave Bodenstab - Dave Burgess - Dave Chapeskie - Dave Edmondson - Dave Rivers - David A. Bader - David Dawes - David Holloway - David Leonard - Dean Huxley - Dima Sivachenko - Dirk Froemberg - Dmitry Kohmanyuk - Dom Mitchell - Don Croyle - &a.whiteside; - Don Yuniskis - Donald Maddox - Doug Ambrisko - Douglas Carmichael - Eckart "Isegrim" Hofmann - Eiji-usagi-MATSUmoto - ELISA Font Project - Eric A. Griff - Eric Blood - Eric J. Chet - Eric J. Schwertfeger - Francis M J Hsieh - Frank Bartels - Frank Chen Hsiung Chan - Frank Maclachlan - Frank Nobis - Frank Volf - FUJIMOTO Kensaku - FURUSAWA Kazuhisa - Gary A. Browning - Gary Kline - Gea-Suan Lin - Gerard Roudier - Gilad Rom - Ginga Kawaguti - Glenn Johnson - Greg Ungerer - Hans Huebner - Hans Petter Bieker - Harlan Stenn - Havard Eidnes - Hideaki Ohmon - Hidekazu Kuroki - Hideyuki Suzuki - Hiroaki Sakai - Hironori Ikura - Hiroyuki NAKAJI - Holger Veit - HONDA Yasuhiro - Horance Chou - Hung-Chi Chu - Ian Struble - Ian Vaudrey - Igor Vinokurov - Ikuo Nakagawa - IMAMURA Tomoaki - Ishii Masahiro - Issei Suzuki - Itsuro Saito - J. David Lowe - J. Han - J.T. Conklin - J.T. Jang - James Clark - James da Silva et al - Janusz Kokot - Jason Thorpe - Javier Martin Rueda - Jeff Bartig - Jeff Kletsky - Jeffrey Wheat - Jeremy Lea - Jerry Hicks - Jian-Da Li - Jim Binkley - Jim Lowe - Jim Mock - Jim Wilson - Jimbo Bahooli - Joao Carlos Mendes Luis - Joe Abley - Joe "Marcus" Clarke - Joe Jih-Shian Lu - Joel Sutton - Johann Tonsing - John Capo - John Heidemann - John Hood - John Perry - John Polstra - John Rochester - John Sadler - John Saunders - Jonathan Hanna - Josef Karthauser - Joseph Stein - Josh Gilliam - Josh Tiefenbach - Juergen Lock - Juha Inkari - Julian Assange - Julian Jenkins - Julian Stacey - Junichi Satoh - Junya WATANABE - Kapil Chowksey - Kazuhiko Kiriyama - Keith Bostic - Keith Moore - Kenneth Monville - Kent Vander Velden - Kentaro Inagaki - Kirk McKusick - Kiroh HARADA - Koichi Sato - Kostya Lukin - KUNISHIMA Takeo - Kurt Olsen - Lars Köller - Liang Tai-hwa - Lucas James - Luigi Rizzo - Malte Lance - Makoto MATSUSHITA - Makoto WATANABE - MANTANI Nobutaka - Manu Iyengar - Marc Frajola - Marc Ramirez - Marc Slemko - Marc van Kempen - Mario Sergio Fujikawa Ferreira - Mark Huizer - Mark J. Taylor - Mark Krentel - Mark Tinguely - - Martin Birgmeier - Martti Kuparinen - Masachika ISHIZUKA - Masanori Kiriake - Mats Lofkvist - Matt Bartley - Matt Thomas - Matt White - Matthew N. Dodd - Matthew Stein - Maurice Castro - Michael Butschky - Michael Elbel - Michael Searle - Miguel Angel Sagreras - Mikael Hybsch - Mikhail Teterin - Mike McGaughey - Mike Peck - Ming-I Hseh - MITA Yoshio - MOROHOSHI Akihiko - Motoyuki Kasahara - Munechika Sumikawa - Murray Stokely - NAKAMURA Kazushi - Naoki Hamada - Narvi - NIIMI Satoshi - Nick Sayer - Nicolas Souchu - Nisha Talagala - Nobuhiro Yasutomi - Nobuyuki Koganemaru - Norio Suzuki - Noritaka Ishizumi - Oliver Breuninger - Oliver Fromme - Oliver Laumann - Oliver Oberdorf - Palle Girgensohn - Paul Fox - Paul Kranenburg - Paul Mackerras - Paulo Menezes - Paul T. Root - Pedro Giffuni - Pedro A M Vazquez - Peter Cornelius - Peter Haight - Peter Stubbs - Pierre Beyssac - Phil Maker - R. Kym Horsell - Randall Hopper - Ricardas Cepas - Richard Hwang - Richard M. Neswold - Richard Seaman, Jr. - Richard Stallman - Richard Wiwatowski - Rob Mallory - Rob Shady - Rob Snow - Robert Sanders - Robert Withrow - Ronald Kuehn - Roland Jesse - Ruslan Shevchenko - SURANYI Peter - Samuel Lam - Sander Vesik - Sandro Sigala - Sascha Blank - Sascha Wildner - Satoshi Taoka - Satsuki FUJISHIMA - Scot W. Hetzel - Scott Blachowicz - Scott A. Kenney - Seigou TANIMURA - Serge Babkin - Serge V. Vakulenko - Sheldon Hearn - Shigeyuki FUKUSHIMA - Simon Marlow - Slaven Rezic (Tomic) - Soren Dayton - Soren Dossing - Stefan Eggers - Stefan Moeding - Stefan `Sec` Zehl - Stephane Legrand - Stephen Farrell - Stephen J. Roznowski - Steve Gerakines - Steven G. Kargl - - Steven H. Samorodin - Stuart Henderson - SUGIMURA Takashi - Suzuki Yoshiaki - Tadashi Kumano - Taguchi Takeshi - Takashi Mega - Takashi Uozu - Takayuki Ariga - Takeru NAIKI - Ted Faber - Terry Lambert - Terry Lee - Tetsuya Furukawa - Theo Deraadt - Thomas König - Þórður Ívarsson - Tim Kientzle - Tim Wilkinson - Tom Hukins - Tom Jobbins - Tom Samplonius - Tony Lynn - Torbjorn Granlund - Toshihiro Kanda - Toshihiko SHIMOKAWA - Trefor S. - Vadim Chekan - Ville Eerola - Vladimir Kushnir - Werner Griessl - Wes Santee - Wilko Bulte - William Liao - Wolfgang Stanglmeier - Wu Ching-hong - Yen-Shuo Su - Ying-Chieh Liao - Yoshiaki Uchikawa - Yoshiro Mihira - Yukihiro Nakai - Yusuke Nawano - Yuval Yarom - Yves Fonk - Zhong Ming-Xun - - -386BSD パッチキットへのパッチ提供者 - -

(名前でアルファベット順): - - - Adam Glass - Adrian Hall - Andrey A. Chernov - Andrew Herbert - Andrew Moore - Andy Valencia - - Arne Henrik Juul - Bakul Shah - Barry Lustig - Bob Wilcox - Branko Lankester - Brett Lymn - Charles Hannum - Chris G. Demetriou - Chris Torek - Christoph Robitschko - Daniel Poirot - Dave Burgess - Dave Rivers - David Dawes - David Greenman - Eric J. Haug - Felix Gaehtgens - Frank Maclachlan - Gary A. Browning - Gary Howland - Geoff Rehmet - Goran Hammarback - Guido van Rooij - Guy Harris - Havard Eidnes - Herb Peyerl - Holger Veit - Ishii Masahiro, R. Kym Horsell - J.T. Conklin - Jagane D Sundar - James Clark - James Jegers - James W. Dolter - James da Silva et al - Jay Fenlason - Jim Wilson - Jörg Lohse - Jörg Wunsch - John Dyson - - John Woods - Jordan K. Hubbard - Julian Elischer - Julian Stacey - Karl Dietz - Karl Lehenbauer - - Keith Bostic - Ken Hughes - Kent Talarico - Kevin Lahey - - Marc Frajola - Mark Tinguely - - Martin Renters - Michael Clay - Michael Galassi - Mike Durkin - Naoki Hamada - Nate Williams - Nick Handel - - Pace Willisson - Paul Kranenburg - Paul Mackerras - Paul Popelka - Peter da Silva - Phil Sutherland - Poul-Henning Kamp - Ralf Friedl - Rick Macklem - Robert D. Thrush - Rodney W. Grimes - Sascha Wildner - Scott Burris - Scott Reynolds - Sean Eric Fagan - Simon J Gerraty - - Stephen McKay - Terry Lambert - Terry Lee - Tor Egge - Warren Toomey - Wiljo Heinen - William Jolitz - Wolfgang Solfrank - Wolfgang Stanglmeier - Yuval Yarom - diff --git a/ja/handbook/synching.sgml b/ja/handbook/synching.sgml deleted file mode 100644 index feb7e9f6f7..0000000000 --- a/ja/handbook/synching.sgml +++ /dev/null @@ -1,66 +0,0 @@ - - - - -インターネットを通じたソースツリーの同期 - -

原作: &a.jkh;. -

訳: &a.iwasaki;.13 September 1997. - - - -

インターネット接続 (または電子メール) を使用して, あなたの興味の対 -象によって FreeBSD プロジェクトのソースのある一部分または全体の最新を -追いかける方法は色々あります. 私たちが提供している基本的なサービスは -, -と です: - -

Anonymous CVSCVSuppull -同期モデルを採用しています. -CVSup の場合, ユーザ (または cron スクリプト) が -cvsup プログラムを -起動し, どこかにある cvsupd サーバとやりとりしてファイルを -最新状態にします. 届けられる更新情報はその時点の最新のものであり, -また必要な時にだけ取り寄せられます. 興味のある特定のファイルやディレクトリに -限定して更新することも簡単にできます. クライアント側のソースツリーの状態・ -設定ファイルの指定に従い, サーバによって更新情報が素早く生成されます. -Anonymous CVS は, このプログラムがリモートの CVS -リポジトリから直接変更点を pull できるようにした cvs(1) -への拡張であるという点で, CVSup よりもずっと単純です. -CVSup は効率の点ではるかにまさっていますが, -anoncvs の方が簡単に利用できます. - -

一方, CTM はあなたが持っているソースとマスタアーカイブ上に -あるそれとの対話的な比較をおこないませんし, -あるいは向こう側から変更点を pull したりもしません. -そのかわりに, 前回の実行時からの変更を認識するスクリプトがマスタ CTM マシン -上で一日に数回実行され, すべての変更を compress して通し番号を振り, -さらに電子メールで転送できるようにエンコードします (印字可能な ASCII -キャラクタのみです). 受信した後は, これらの「CTM のデルタ」は自動 -的にデコード, 検査してユーザのソースのコピーに変更を適用する -ctm_rmail(1) によって処理可能となります. この処理は CVSup や Anonymous CVS よりずっと効率 -的であり, pull モデルというよりむしろ push モデルで -あるため, 私たちのサーバ資源の負荷は軽くなります. - -

もちろん他のトレードオフもあります. うっかりアーカイブ -の一部を消してしまっても, CVSup は壊れた部分を検出して再構築してくれます. -CTM はこれをやってくれませんし, -anoncvs はおそらく他の何よりも深く混乱してしまうことが多いでしょう. -もしソースツリーの一部を消してしまったら, -(最新の CVS 「ベースデルタ」から) 一からやり直し, -CTM か anoncvs を使って悪い部分を消去し, 再同期させることによって -すべてを再構築しなければなりません. - - -Anonymous CVS, CVSup と CTM についての -詳しい情報については, 以下の節を参照してください: - - &anoncvs; - &ctm; - &cvsup; diff --git a/ja/handbook/term.sgml b/ja/handbook/term.sgml deleted file mode 100644 index 4d5f35ea12..0000000000 --- a/ja/handbook/term.sgml +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - -シリアル端末 - -

原作: &a.kelly;28 July 1996 -

訳: &a.max; - -シリアル端末を利用することで, コンピュータのコンソールのそばにいないと -きや, 手近にネットワーク接続されているコンピュータがないときでも, -FreeBSD の機能を便利に, かつ安価に利用することができます. ここでは, -FreeBSD にシリアル端末を接続する方法を解説します. - - 端末の種類と利用方法 - -

もともと Unix システムにはコンソールがありませんでした. ユー -ザはコンピュータのシリアル ポートに接続された端末からログインして -プログラムを利用していました. ちょうどモデムと通信ソフトを使ってリモート -のコンピュータにログインし, テキスト ベースのプログラムを利用するのと -よく似ています. - - 最近の PC は, 高品質の画像を表示できるコンソールを搭載していま -すが, ほとんどすべての Unix 系 OS には未だにシリアル ポートを使ってログ -インするための機能があり, FreeBSD でもこの機能がサポートされています. -現在使用されていないシリアル ポートに端末を接続することでシステムに -ログインし, 通常はコンソールや Xウィンドウ システムの - - - - - - 以下は, それぞれについての解説です. - - ダム端末 - -

ダム端末は, シリアルライン経由でのコンピュータとの接続専 -用のハードウェアです. ダム端末は, テキストの送受信および表示ができる -程度の計算能力しかもっていないので, ``dumb'' (間抜け) というように呼ば -れています. この端末上でプログラムを実行することはできません. テキスト -エディタ, コンパイラ, E-mail, ゲームなどなどのプログラムを実行するのは, -ダム端末を接続しているコンピュータの方です. - - Digital Equipment社の VT-100 や, Wyse社の WY-75 を初めとして, -多くのメーカが何百種類もの ダム端末を作っています. ほとんどどんな種 -類のダム端末でも FreeBSD に接続して使用できます. さらに, 高性能の端 -末の中には画像を取り扱えるものもありますが, 限られた数のソフトウェア -パッケージしかこういった機能には対応していません. - - ダム端末は, X ウィンドウ システムで提供されるようなグラ -フィックアプリケーションを必要としない職場で広く用いられています. - - PC を端末として利用する - -

がテキストの表示およ -び送受信の機能をそなえただけのものならば, 言うまでもなく, どんなPC -もダム端末になり得ます. 必要なものは適切なケーブルと, そのPCの上 -で動作するX 端末 - -

X 端末は, 既存のものの中で最も洗練された種類の端末といえ -ます. X 端末は, たいていの場合シリアル ポートで゜はなく, イーサネッ -トのようなネットワークを利用した接続をおこないます. また, アプリケーション -の利用においても, テキストベースのものだけでなく, X アプリケーション -の利用が可能です. - - ここでは, 参考までに 端末について紹介しただけで, X 端 -末の設定や利用についての解説はケーブルとポート - -

シリアル端末を FreeBSD システムに接続するためには, 適切なケー -ブルと, 端末を接続するためのシリアルポートが必要です. ここでは, これ -らについて説明します. もし既にあなたの利用したい端末と, その端末 -を接続するためのケーブルについてよく理解していれば, の章まで読み飛ばしてください. - - ケーブル - -

端末の接続は, シリアルポートを利用します. そこで, 端末を -FreeBSD システムに接続するためには, シリアルケーブル (RS-232C ケーブ -ルとも呼ばれています) が必要となります. - - シリアルケーブルには2種類のケーブルがあります. どちらの種類の -ケーブルを使わなければいけないかは, どんな端末を接続したいかによります. - - - もし, PC を端末として利用したい場合は, ケーブル (リバースケーブルもしくは -クロスケーブルと呼ばれることもしばしばあります) を使用してください. -ヌルモデムケーブルは, コンピュータ同士や端末同士を接続するために用い -られるケーブルです. - - もし, 本物の端末を接続するのであれば, その端末につい -てきたドキュメントからどのようなケーブルを使うべきか調べてください. も -しドキュメントがない場合は, まず ケーブルを試してみて, うまくいかない場合は ケーブル (しばしばストレートケーブルと呼 -ばれます) を試してみてください. - - - また, 端末側と FreeBSD 側の ヌルモデムケーブル - -

ヌルモデムケーブル (またはリバースケーブルあるいはクロ -スケーブル) は, たとえば ``signal ground'' 信号のように, いくつかの信 -号はそのまま通しますが, 他の信号は途中で入れ替えて通します. たとえば, -``send data'' 信号のピンは, 反対側のコネクタの ``receive data'' 信号の -ピンと繋がっています. - - 自分で使うケーブルは自分で作りたいということであれば, 以下にター -ミナルを接続する際に推奨されるヌルモデムケーブルの結線を示しておきま -す. この表では, RS-232C の信号線の名前と, DB-25 コネクタ上のピンの番 -号を示しています. - - Signal Pin# Pin# Signal - TxD 2 ----------------------- 3 RxD - RxD 3 ----------------------- 2 TxD - DTR 20 ----------------------- 6 DSR - DSR 6 ----------------------- 20 DTR - SG 7 ----------------------- 7 SG - DCD 8 ----------------------+ 4 RTS* - *RTS 4 + + 5 CTS* - *CTS 5 +---------------------- 8 DCD - -* まず, コネクタ内部でピン4を5に接続し, そして逆側のコネクタのピン8と接 -続します. - - - スタンダード RS-232C ケーブル - -

スタンダードシリアルケーブル (またはストレートケーブル) -の場合は, すべての RS-232C 信号をそのまま通します. つまり, 片方の ``send -data'' 信号のピンは, 逆側の ``send data'' 信号のピンと繋がっています. -モデムを FreeBSD に接続するときや, 一部の端末を接続するときにこのタイプの -ケーブルを使用します. - - ポート - -

シリアルポートは, FreeBSDが動作しているホスト コンピュータと端 -末の間でデータのやりとりを行うために用いるデバイスです. ここでは, -現在存在するポートの種類と FreeBSD でのポートのアクセス方法について解 -説します. - - ポートの種類 - -

シリアルポートには何種類かのものがあります. ケーブルを購 -入したり自作したりする前に, そのケーブルのコネクタの形状が端末および FreeBSD -システムのポートの形状と一致していることを確認してください. - -ほとんどの端末は DB25 ポートを搭載しています. FreeBSDが動作しているも -のを含めて, PCは DB25 または DB9 ポートを搭載しています. マルチポート -のシリアルカードの場合は, RJ-12 や RJ-45 のポートを搭載しているかもし -れません. - -利用されているポートの種類に関しては, ハードウェアについてきたドキュメ -ントを参照してください. また, 多くの場合, ポートの形状から判断すること -もできるでしょう. - - ポートの名前 - -

FreeBSDでは, /dev ディレクトリ内のエントリを介 -してシリアルポートへのアクセスがおこなわれます. 2種類の異なったエン -トリがあります. - - 着信用のポートの名前は, /dev/ttyd -(発信用のポートの名前は, /dev/cuaa -となっています. 発信用のポートは普通モデムの接続に用い, 端末の接続には -利用しません. ただ, ケーブルまたは端末がキャリア検出信号を使えない -タイプのものの場合は, 発信用のポートを使うとよいでしょう. - - -詳しくは, sio(4) のマニュアルをご覧ください. - -たとえば, 端末を一つ目のシリアルポート (DOS でいうところの COM1) に接 -続したとすると, /dev/ttyd0 がこの端末を指すことになります. -また, 二つ目のシリアルポート (COM2) ならば /dev/ttyd1 となり, -以下この形式のデバイスエントリを使います. - - 各シリアルポート, 特にマルチポートのシリアルカードを利用する -ために, kernel の設定をおこなう必要がある場合がありますので, 注意してくだ -さい. 詳しくは, をご覧ください. - - 設定 - -

ここでは, 端末からのログインを可能にするために必要な FreeBSD -側の設定について解説します. 既に端末を接続するポートが利用できるように -kernel の設定をおこない, 端末が接続されているものと考えて, 解説を進め -ます. - -簡単に言えば, プロセス管理や初期化をおこなっている /etc/ttys の内容を編集する必要があります. -まず, /etc/ttys に以下の -変更を加えてください. - - 端末を接続するポートの /dev のエントリが含ま -れている行がまだ存在しなければ, これを /etc/ttys に追加してく -ださい. - - /usr/libexec/getty が対象となるポートに対して -実行されるように指定してください. また, /etc/gettytab ファイ -ル内の適切な デフォルトのターミナルタイプを指定してください. - - 対象となるポートを ``on'' に設定してください. - - そのポートが ``secure'' であるかどうかを指定してくださ -い. - - /etc/ttys を読み込みなおさせてく -ださい. - - -また, 必要に応じて /etc/gettytab を変更し, 上の 2で使用する -/etc/ttys について, より詳しくは, ttys(5) のマニュアルをご覧 -ください. - - /etc/ttys へのエントリの追加 -

既にエントリがある場合を除いて, まず初めに -/etc/ttys にエントリを追加しなければいけません. - -/etc/ttys には, FreeBSDシステム上のログインを許可するすべての -ポートを記述します. たとえば, 一つ目の仮想コンソール /dev のエントリを, /dev の部分 -を省略して記述します. - -FreeBSD のインストール当初の状態では, /etc/ttys に記述され -ています. これらのポートのいずれかに端末を接続する場合は, 新たなエント -リを追加する必要はありません. - -ここで紹介している例では, 既にファイルにエントリが存在する 2番目のシリ -アルポート, /etc/ttys か -ら抜粋して示します. - -ttyd1 "/usr/libexec/getty std.9600" unknown off secure -ttyd5 - - - -

次に, 端末からのログインを処理するプログラムの指定をおこな -います. FreeBSDでは, 標準的には /usr/libexec/getty をこの目的 -で利用しています. /etc/gettytab から -読み込みます. - -ファイル /etc/gettytab には, 新旧の端末に関する多数のエントリ -が記述されています. ほとんどの場合, /etc/ttys/etc/ttys の設定です. - -ttyd1 "/usr/libexec/getty std.38400" unknown off secure -ttyd5 "/usr/libexec/getty std.19200" - -ここで, 実行するプログラムを指定している 2番目のフィールドが, ダブルクォー -テーションに囲まれていることに注意してください. こうしないと, -デフォルトのターミナルタイプの指定 - -

/etc/ttys の 3番目のフィールドには, そのポートのター -ミナルタイプのデフォルトを指定します. ダイアルアップ用のポートの場合 -は, ユーザがどのタイプの端末あるいは通信ソフトを利用してダイアルアップ -してくるかは分からないので, /etc/ttys の中でターミナルタイプが指定されていれば, -このプロンプトを表示せずに先に進むことが可能です. - -FreeBSD 上で, どのターミナルタイプを利用できるかは, -/usr/share/misc/termcap をご覧ください. このファイルには, お -よそ 600 のターミナルタイプが定義されています. 必要ならば, 新たなエン -トリを追加することも可能です. 詳しくは termcap(5) のマニュアルをご覧く -ださい. - -紹介している例では, Wyse-50 のターミナルタイプは Wyse-50 です (もっ -とも他のタイプをエミュレートすることも可能ですが, ここでは Wyse-50 モー -ドで使用します. ). また, 286マシン上では Procomm が VT-100 エミュレー -ションをおこなうように設定されています. 以下が, まだ未完成の -/etc/ttys の関連部分です. - -ttyd1 "/usr/libexec/getty std.38400" wy50 off secure -ttyd5 "/usr/libexec/getty std.19200" vt100 - - - ポートを利用可能にする -

/etc/ttys のつぎのフィールド, つまり 4番目のフィー -ルドは, そのポートをアクティブにするかどうかの設定です. このフィールド -に ``on'' を指定すると, /etc/ttys です. それぞれのポートを -ttyd1 "/usr/libexec/getty std.38400" wy50 on secure -ttyd5 "/usr/libexec/getty std.19200" vt100 on - - - - ``secure'' なポートの指定 -

とうとう最後のフィールドの設定です. (実際にはここでは触れ -ませんが, オプショナルな/etc/ttys のエントリに端末の場所を表 -すコメントを追加したものを示します. - -ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Kitchen -ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom - - - /etc/ttys の再読み -込みをさせる -

FreeBSD をブートすると, 最初に起動されるプロセス, /etc/ttys を読み込んで, 記述されているプログラムを利用可能な -ポートに対して実行し, ログインプロンプトを送り出させます. - -/etc/ttys の編集が終わった後, /etc/ttys を読み込みなおすようになっています. - -/etc/ttys の変更を保存したら, 以下のようなコマンドを実行して, - -kill -HUP 1 - -(トラブルシューティング -

細心の注意を払って設定をおこなっても, ときには端末の接続がう -まくいかない場合があるでしょう. 以下に, よく見られる問題とその解決方法 -を示します. - - - -ps -axww|grep getty - -その端末に対する /etc/gettytab 中の -22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 - - -もし, /etc/ttys の中で, そのポートを利用可能にする設定をしたかどう -か確かめてください. また, /etc/ttys を修正し -てから, diff --git a/ja/handbook/uart.sgml b/ja/handbook/uart.sgml deleted file mode 100644 index 9fd809fd44..0000000000 --- a/ja/handbook/uart.sgml +++ /dev/null @@ -1,1095 +0,0 @@ - - - - - -UART とは何か, そしてどのように動作するか - -

Copyright © 1996 &a.uhclem;, All Rights Reserved. -13 January 1996. -

訳: &a.saeki;, &a.iwasaki;. -11 November 1996. - - - -

( ここからは &a.saeki; が翻訳を担当) - - 汎用非同期送受信コントローラ (UART) はコンピュータのシリアル通信 - サブシステムの鍵となる部品です. UART は何バイトかのデータを受けとり, - これを 1 ビットずつ順番に送信します. 受信側では, もう一つの UART が - このビット列を完全なバイト列に組み立て直します. - - シリアル転送は, モデムやコンピュータ間の非ネットワーク型の通信, - ターミナルその他のデバイスで広く使われています. - - シリアル転送には主に同期と非同期という二つの形式があります: - 通信サブシステムの名前は, そのハードウェアでサポートされている - 通信モードによって変化します. - 通常, 非同期通信をサポートしているものは文字 "A" を含み, - 同期通信をサポートしているものは文字 "S" を含みます. - 以下で両方の形式について詳しく説明します. - - 通常使われている略号は以下の通りです: -UART 汎用非同期送受信装置 (Universal Asynchronous Receiver/Transmitter) -USART 汎用同期-非同期送受信装置 (Universal Synchronous-Asynchronous Receiver/Transmitter) - - - 同期シリアル転送 - -

同期シリアル転送では, 送信側と受信側がクロックを共有している - 必要があります. さもなければ, 送信側がストローブまたは - その他のタイミング信号を供給して, 受信側にデータの次のビットを - いつ「読み込」めばよいのかを知らせる必要があります. - - ほとんどの同期シリアル通信では, 常に何らかのデータが転送され続けます. - そのため, 転送のタイミングまでに送信データが用意できていなければ, - 通常のデータのかわりに「埋め草」 (fill character) が送られます. - 同期通信では, 送信側と受信側との間でデータビットのみが転送されるため, - 同じビット速度の非同期シリアル通信に比べて効率的です. - しかし, 送信側と受信側でクロック信号を共有するために余分な電線と - 回路が必要となる場合には, よりコスト高となる可能性があります. - - プリンタやハードディスクでも同期転送の一種が使用されています. - このときデータが 1 組みの電線で送られる一方, クロック信号または - ストローブ信号が別の電線で送られます. - プリンタやハードディスクは通常, シリアルデバイスではありません. - ほとんどのハードディスクのインターフェース規格では, データを送るための - 線とは別にクロックまたはストローブ信号を送るための線を持っていて, - ストローブ 1 回毎に一つのデータ全体を送ります. - PC 産業界では, これらはパラレルデバイスとして知られています. - - PC の標準的なシリアル通信ハードウェアは, 同期モードをサポートして - いません. ここで同期モードについて述べたのは, 非同期モードとの - 比較のために過ぎません. - - - 非同期シリアル転送 - -

非同期転送は, 送信側がクロック信号を受信側に送らなくても - データを転送することができます. そのかわり, 送信側と受信側は - あらかじめタイミングパラメータや同期のために追加される - 特別なビットについて取り決めをおこなっておかなければなりません. - - 非同期転送をおこなうために UART にデータが与えられると, - 「スタートビット」と呼ばれるビットが転送データの先頭に追加されます. - スタートビットはデータの転送開始を受信側に知らせるために使われ, - これにより受信側のクロックを送信側のクロックに同期させます. - この二つのクロックは, 転送データの残りのビットを転送する間に - 10% 以上ふらつかないように正確なものでなければなりません. - (この条件は機械式テレタイプの時代に定められたものなので, - 現代の電子装置であれば容易に満足させることができます). - - スタートビットが送られた後, データの各ビットが最下位 (LSB) から - 順番に送られます. 転送されるビットの長さはすべて同じになっていて, - 受信側はそれぞれのビットの中央部でそれが "1" か "0" かを判断します. - 例えば, 仮に 1 ビットを送るのに 2 秒かかるとすると, 受信側は - スタートビットの始まりを認識した 1 秒後に信号が "1" か "0" かを調べ, - その後 2 秒ごとに次のビットの値を調べるという動作を繰り返します. - - 送信側は, いつ受信側がビットの値を「見た」のかはわかりません. - 送信側はクロックにしたがって次々にビットを転送するだけです. - - 設定によっては, 1 ワードのデータ全体が送られたあとに - 送信側が内部で生成したパリティビットを付加する場合があります. - パリティビットは受信側で簡単なエラーチェックをするために使われます. - その後に, 最低でも 1 ビットのストップビットが送られます. - - 1 ワードのすべてのビットを受信すると, 受信側がパリティビットの - チェックをおこなうように設定することができます. (パリティビットを - 使用するかどうか, 送信側と受信側であらかじめ取り決めておかなければ - なりません). それから受信側はストップビットをチェックします. - もしもストップビットが期待通りの位置に存在しなければ, UART は - 転送エラーが発生したと判断して, ホストがデータを読もうとした時に - フレーミングエラーが起きたと報告します. 通常, フレーミングエラーは - 送信側と受信側のクロックが一致していなかったり, 信号に割り込みが - 入った時に起こります. - - データが正しく受信されたかどうかにかかわらず, - UART はスタート, パリティ, ストップビットを自動的に捨てます. - 送信側と受信側で設定が正しく一致していれば, これらのビットが - 誤ってホストに転送されることはありません. - - 1 回の転送が終了する前に次のデータの転送準備ができていれば, - 前のデータのストップビットを送った後, 間を空けずに - 次のデータのスタートビットを送ることができます. - - 非同期転送データは「自己同期」なので, 転送するべきデータがない場合は - 転送路は空き状態になります. - - -UART のその他の機能 - -

転送のためにデータをパラレルからシリアルに変換し, 受信時に - シリアルからパラレルに戻すという基本的な機能の他に, UART は通常, - 転送路の状態を示したり, リモートデバイスで次のデータを受けとる準備が - できていない場合にデータの流れを抑制するのに使われる信号のための - 付加回路も持っています. - 例えば UART に接続されているデバイスがモデムの場合, モデムは - 回線上に搬送波 (carrier) が存在していることを報告するかもしれません. - 一方, コンピュータはこれらの付加信号を操作することにより - モデムのリセットをおこなったり, かかってきた電話を取らないように - モデムに指示するかもしれません. - これらの付加信号の機能はそれぞれ EIA RE232-C 規格で定義されています. - -RS-232C と V.24 規格 - -

ほとんどのコンピュータシステムでは, UART は EIA RS-232C 規格に - 準拠した信号を生成するための回路に接続されています. - また, RS-232C の仕様を反映した, V.24 という CCITT 規格に - 準拠したシステムも存在しています. - -RS-232C のビット割り当て (マークとスペース) - -

RS-232C では, "1" の値を「マーク」, "0" の値を「スペース」と - 呼びます. 通信路にデータが流れていない時, 回線は「マーキング」 - であるとか, "1" の値を連続して転送し続けているとか言われます. - - スタートビットは常に "0" (スペース) で, - ストップビットは常に "1" (マーク) です. - このことは, たとえ複数のデータが連続して転送されている場合でも, - それぞれのデータの転送開始時には必ず, マーク (1) から - スペース (0) への遷移が回線上で起こるということを意味しています. - - これによって, 転送されるデータビットの内容にかかわらず, - 送信側と受信側のクロックを同期させることができるのです. - - ストップビットとスタートビットの間の空き時間は, その通信路で - 1 ビットを転送するのに必要な時間の正確な倍数である必要はありません. - (倍数にはゼロを含みます). しかし, ほとんどの UART では - 設計の単純化のために, 倍数になるように設計されています. - - RS-232C では, 「マーク」信号 ("1") は -2V から -12V の間の電圧で, - 「スペース」信号 ("0") は 0V から +12V の間の電圧で示されます. - 送信部は +12V または -12V を送ることになっていて, 受信部では - 長いケーブルによるいくらかの電圧ロスを許容するように定められています. - (ポータブルコンピュータなどで使用されている) 低消費電力デバイスの - 送信部では しばしば +5V と -5V のみを使用していますが, - 短いケーブルを使用するならば, これらの電圧も RS-232C 受信部の - 許容範囲に入っています. - - -RS-232C のブレーク信号 - -

RS-232C は「ブレーク」と呼ばれる信号についても定めています. - これは (スタートビットもストップビットも無しで) 連続して - スペースの値を送ることで発生されます. - データ回路に電流が流れていない場合は, - 回線は「ブレーク」を送り続けているものと解釈されます. - - 「ブレーク」信号は完全な 1 バイトとスタート, ストップ, パリティ - ビットを送るために必要な時間よりも長い間続かなければなりません. - ほとんどの UART はフレーミングエラーとブレークを区別することが - できますが, もしも これを区別できない UART があった場合, - フレーミングエラーの検出をブレークの識別のために - 使用することができます. - - テレタイプの時代には, 国中でおびただしい数のテレタイプが - (ニュースサービスなどで) 電線で直列に接続されていました. - 任意のテレタイプユニットは, 電流が流れないように一時的に回路を - オープンにすることで「ブレーク」信号を発生させることができました. - これは, 他のテレタイプが情報を送信している間に, 緊急ニュースを - 送る必要のあるテレタイプが割り込みをかけるために使われました. - - 現在のシステムでは, ブレーク信号には二つのタイプがあります. - もしブレーク信号が 1.6 秒よりも長ければ, それは - 「モデムブレーク」であると解釈されます. - モデムがこの信号を検出すると, 通信を終了して電話を切ったり, - コマンドモードに入るようにプログラムされていることがあります. - もしブレーク信号が 1.6 秒よりも短ければ, それはデータブレークを - 示します. この信号に応答するのはリモートコンピュータの仕事です. - この形のブレークは, しばしば注意喚起または割り込みのための信号として - 使われ, ASCII の CONTROL-C 文字の代用とされることもあります. - - マークとスペースは紙テープシステムでの「穴空き」と「穴無し」に - 相当しています. - - ブレーク信号は, 紙テープまたはその他のバイト列から生成できない - ことに注意してください. なぜならバイト列は常にスタートビットや - ストップビットとともに送られるからです. - UART には通常, ホストプロセッサからの特別なコマンドにより - 連続したスペース信号を生成する能力があります. - -RS-232C の DTE デバイスおよび DCE デバイス - -

RS-232C 規格は二つのタイプの装置を定めています: - それはデータターミナル装置 (DTE) とデータキャリア装置 (DCE) です. - 通常, DTE デバイスはターミナル (またはコンピュータ) で, DCE は - モデムです. 電話回線を介した通信のもう一方の端である受信側のモデムも - また DCE デバイスで, そのモデムに接続されているコンピュータは - DTE デバイスです. DCE デバイスが信号を受け取るピンは DTE デバイスが - 信号を送るピンであり, また逆も同様です. - - 二つのデバイスがともに DTE であったり, ともに DCE であって, - モデムやそれに類似したメディア変換装置を介さずに接続する必要が - ある場合, ヌルモデム (NULL modem) を使わなければなりません. - ヌルモデムはケーブルを電気的に再配列し, 一方のデバイスの送信出力が - もう一方のデバイスの受信入力に接続され, その逆もまた同様に - 接続されるようにしてくれます. - 同様の変換はすべての制御信号についておこなわれ, それぞれのデバイスが - 他方のデバイスからの DCE (または DTE) 信号を受けとれるようになります. - - DTE デバイスと DCE デバイスで生成される信号の数は等しくありません. - DTE デバイスが DCE デバイスのために生成する信号の数は, - DTE デバイスが DCE デバイスから受けとる信号の数よりも - 少なくなっています. - -RS-232C のピン割当て - -

EIA の RS-232C 規格 (およびこれに相当する ITU の V.24 規格) は - 25 ピンのコネクタ (通常 DB25 が使われます) を要求し, - そのコネクタのほとんどのピンの使用目的を定義しています. - - IBM PC および類似のシステムでは, RS-232C 信号のサブセットが - 9 ピンのコネクタ (DB9) で提供されています. - 主に同期モードで使用される信号は PC のコネクタには含まれていませんが, - もともと この転送モードは IBM が IBM PC で使用することにした - UART ではサポートされていません. - - メーカーによっては RS-232C 用のコネクタに DB25 か DB9, - またはその両タイプのコネクタを使っている場合があります. - (IBM PC はパラレルプリンタインターフェースにも DB25 コネクタを - 使っているので, このことは しばしば混乱を引き起こします.) - - 以下は DB25 および DB9 コネクタにおける RS-232C 信号の割り当て表です. - - -DB25 DB9 EIA CCITT 一般 信号源 説明 -RS-232C IBM PC 回路 回路 名称 -端子 端子 符号 符号 - -1 - AA 101 PG/FG --- 保安用接地 -2 3 BA 103 TD DTE 送信データ -3 2 BB 104 RD DCE 受信データ -4 7 CA 105 RTS DTE 送信要求 -5 8 CB 106 CTS DCE 送信可 -6 6 CC 107 DSR DCE データセットレディ -7 5 AV 102 SG/GND --- 信号用接地 -8 1 CF 109 DCD/CD DCE 受信キャリア検出 -9 - - - - - 予約 (テスト用) -10 - - - - - 予約 (テスト用) -11 - - - - - 未割当て -12 - CI 122 SRLSD DCE 従局受信キャリア検出 -13 - SCB 121 SCTS DCE 従局送信可 -14 - SBA 118 STD DTE 従局送信データ -15 - DB 114 TSET DCE 送信信号エレメントタイミング -16 - SBB 119 SRD DCE 従局受信データ -17 - DD 115 RSET DCE 受信信号エレメントタイミング -18 - - 141 LOOP DTE ローカルループバック -19 - SCA 120 SRS DTE 従局送信要求 -20 4 CD 108.2 DTR DTE データ端末レディ -21 - - - RDL DTE リモートデジタルループバック -22 9 CE 125 RI DCE 被呼表示 -23 - CH 111 DSRS DTE データ信号速度選択 -24 - DA 113 TSET DTE 送信信号エレメントタイミング -25 - - 142 - DCE テストモード - - - - ビット, ボー, そしてシンボル - -

ボーとは非同期通信における転送速度の単位です. - モデム通信技術の進歩により, 新しいデバイスのデータ速度を - 表記するにあたって, この用語が しばしば誤って使われるようになりました. - - ボーレートは伝統的に, 通信路を通して実際に送られるビットの数を - 表します. ある DTE デバイスからもう一方へと実際に移動した - データの量を表すものではありません. - ボーレートは, 送信側 UART で生成されて受信側 UART で取り除かれる - スタート, ストップ, パリティといったオーバーヘッドビットをも - 含んでいます. - これは 1 ワード 7 ビットのデータを送るためには, 実際には 10 ビットの - データが完全に転送される必要があるということを意味します. - そのため, もしパリティを使い, スタートビットとストップビットが - それぞれ 1 ビットずつ存在する場合には, 1 秒あたり 300 ビットの - 転送能力を持つモデムでは, 7 ビットのワードを通常 30 個しか - 転送することができません. - - もし 1 ワード 8 ビットのデータとパリティビットを使用する場合には, - データ転送速度は 1 秒あたり 27.27 ワードまで低下します. - なぜなら 8 ビットのワードを送るのに 11 ビットが必要で, - このモデムは 1 秒間に 300 ビットしか送ることができないからです. - - 1 秒あたりの転送バイト数をボーレートに変換したり, その逆をおこなう - 計算式は, エラー訂正をおこなうモデムが現れるまでは単純でした. - エラー訂正をおこなうモデムは, ホストコンピュータの UART から - シリアルのビット列を受けとり, それをバイト列に戻します. - (内蔵モデムを使用している場合でさえ, データは今まで通り - 頻繁にシリアル化されます) - その後これらのバイトはパケットに変換され, 同期転送方式を用いて - 電話回線を通じて送信されます. - これは DTE (コンピュータ) 中の UART で追加されたストップ, スタート - およびパリティビットは, モデムから送り出される前に, モデムによって - 取り除かれるということを意味します. - これらのバイト列がリモートモデムに受信されると, リモートモデムは - スタート, ストップおよびパリティビットを追加して, それらを - シリアル形式に変換し, リモートコンピュータの受信側 UART に送ります. - そしてリモートコンピュータの UART はスタート, ストップおよび - パリティビットを取り除きます. - - これらの特別な変換はすべて, 二つのモデムの間でエラー訂正が - 実行できるようにするためおこなわれています. - エラー訂正とは, 受信側のモデムが正しいチェックサムで - 受信できなかったデータブロックの再送を, - 送信側のモデムに要求することができるということです. - この作業はモデムにより処理されて, DTE デバイスは - このようなプロセスがおこなわれていることに, 通常気がつきません. - - スタート, ストップおよびパリティビットを取り除くことにより, - エラー訂正のために二つのモデムの間で共有しなければならない - 追加のビットを, 実効転送速度を低下させずに送ることができます. - そのため, 送受信 DTE にはエラー訂正がおこなわれているかどうかが - ほとんど見えなくなります. - 例えば, もしモデムが 10 個の 7 ビットデータをもう一方のモデムに送る - 際に, スタート, ストップ, およびパリティビットを送る必要がなければ, - その分の 30 ビットの情報を, 真のデータの転送速度に影響を与えることなく - エラー訂正のために追加することができるわけです. - - データ圧縮をおこなうモデムでは, ボーという言葉の使い方は - さらに混乱することになります. - 例えば電話回線を通じて送られた二つの 8 ビットデータは, - 送信側モデムに送られた 12 バイトのデータを表すかもしれません. - 受信側モデムはそのデータを本来の内容に展開し, 受信側の DTE に渡します. - - また, 最近のモデムはバッファを内蔵しており, (DCE から DCE へ) 電話線を - 流れるデータの転送速度と, 両端の DTE と DCE の間で流れるデータの - 転送速度とを別々に設定することができます. - モデムによる圧縮を使用する場合, 通常は DTE と DCE の間の速度を - DCE と DCE の間の速度より速くしておきます. - - 1 バイトを記述するのに必要なビットの数は, 二つのマシンの間でも - DTE-DCE と DCE-DCE のリンクでそれぞれ変化する場合がありますし, - そのうえ, それぞれのビット転送速度が異なる場合もあります. そのため, - 全体としての通信速度を表現するためにボーという言葉を使うことは - 問題でもありますし, 真の転送速度を正しく伝えない場合があります. - 1 秒あたりの転送ビット数 (bps) は DCE と DCE の間のインターフェースに - おける転送速度を記述するために使うなら正しい用語ですし, - ボーまたは 1 秒あたりのビット数は, 二つのシステムが電線で直接 - 接続されていたり, エラー訂正や圧縮をおこなわないモデムが - 使われている場合には, 許容可能な用語です. - - 最近の高速モデム (2400, 9600, 14,400, 19,200bps などのもの) も, - 実際には 2,400 ボー (正確には 2,400 シンボル/秒) か, それ以下の - 速度で通信しています. 高速モデムでは, 複数のビットを一つのシンボルで - 伝送する技術 (多値符合化など) を用いて, シンボル速度 (シンボル/秒) よりも - 高い通信速度 (ビット/秒) を達成しています. - これが電話の限られた音声帯域で高い伝送速度を得られる理由です. - 28,800bps やそれ以上のモデムでは, シンボル速度自体が - 可変になっていますが, それ以外は同様の技術が用いられています. - - IBM PC の UART - -

元祖 IBM PC を設計した際に, IBM はナショナル・セミコンダクタ社の - INS8250 UART を IBM PC パラレル/シリアルアダプタで使用することに - 決めました. - - IBM 自身やその他のベンダが作っている後継世代の AT 互換機でも, - INS8250 そのものやナショナル・セミコンダクタの UART ファミリの - 改良版を使い続けられています. - - ナショナル・セミコンダクタの UART ファミリ系統図 - -

INS8250 UART にはいくつかのバージョンと後継の部品があります. - 主要なバージョンを以下に示します. - - - INS8250 -> INS8250B - \ - \ - \-> INS8250A -> INS82C50A - \ - \ - \-> NS16450 -> NS16C450 - \ - \ - \-> NS16550 -> NS16550A -> PC16550D - - - - INS8250 この部品は元祖 IBM PC と IBM PC/XT で - 使われていました. - この部品は本来 INS8250 ACE (Asynchronous Communications Element) と - いう名前で, NMOS 技術で作られていました. - - 8250 は八つの I/O ポートを占有し, 送信バッファ 1 バイトと - 受信バッファ 1 バイトを持っています. この元祖の UART はいくつかの - 競合状態などに関する欠陥を持っています. - 元祖の IBM BIOS はこれらの欠陥を回避してうまく動くようなコードを - 含んでいましたが, そのために BIOS が欠陥の存在に依存するように - なってしまいました. このため, 元祖 IBM PC や IBM PC/XT では - 8250A, 16450, または 16550 のような後継部品を使うことは - できませんでした. - - INS8250-B これは NMOS 技術で作られた INS8250 の低速版です. - これもオリジナルの INS8250 と同じ問題を含んでいます. - - INS8250A XMOS 技術を使い, さまざまな機能的欠陥を修正した - INS8250 の改良版です. INS8250A は当初, 「クリーン」な BIOS を - 使用したベンダの PC クローンで使用されていました. - なぜなら欠陥が修正されたことにより, この部品は INS8250 や INS8250B の - ために書かれた BIOS で使うことはできなかったからです. - - INS82C50A これは INS8250A の CMOS 版 (低消費電力版) で, - INS8250A と同じ機能特性を持っています. - - NS16450 より高速な CPU バスにも対応できるように - 改良されたこと以外は NS8250A と同じです. - IBM はこの部品を IBM AT で使うことに決め, もはや IBM BIOS が - INS8250 のバグに依存しなくなるように変更をおこないました. - - NS16C450 これは NS16450 の CMOS 版 (低消費電力版) です. - - NS16550 送信バッファと受信バッファをそれぞれ 16 バイトに - 変更したこと以外は NS16450 と同じですが, バッファの設計に - 欠陥があるため, 信頼して使用することはできません. - - NS16550A バッファの欠陥が修正されたこと以外は NS16550 と - 同じです. 割り込みへの反応が遅い OS でも高い信頼性で高速なデータを - 扱うことができることから, 16550A とその後継部品は PC 産業界で - 最も一般的に使われる UART となりました. - - NS16C552 これは 2 個の NS16C550A CMOS UARTを - 一つのパッケージに入れた部品です. - - PC16550D ささいな欠陥が修正されたこと以外は NS16550A と - 同じです. これは 16550 ファミリの D リビジョンで, - ナショナル・セミコンダクタ社から提供されている最新の部品です. - - -NS16550AFとPC16550Dは同じもの -

( ここからは &a.iwasaki; が翻訳を担当) - -

ナショナル・セミコンダクタは数年前に部品番号体系を再編成して - おり, NS16550AFN という名称はもはや存在しません. (もしあなたが - NS16550AFN を持っていたら, 部品の日付コードを見てください. それは - 通常 9 から始まる4桁の数字です. 最初の2桁の数字は年度, 次の2桁 - は部品がパッケージされた年度の週です. あなたの持っている - NS16550AFN は, おそらく数年前のものでしょう.) - - 新しい番号は PC16550DV の様に, パッケージ材料と形状により接尾辞 - に小さな違いがあります (番号体系についての記述は後述します). - - ここで注意しなければいけないことがあります. 例えば, ある店に行って - 1990年製の NS16550AFN を15米ドルで売っているとします. ところが, - そのすぐ隣には ナショナル・セミコンダクタが AFN を生産開始してから - それにマイナーな変更を加えて作った PC16550DN があり, そちらは - 最近 6ヶ月に作られたものなのに, 簡単に入手できるため NS16550AFN の - 半額 (たくさん一度に買うと 5米ドルまで下がることもあります) 位で - 買えたりすることがあるのです. - - NS16550AFN のチップ供給は減少し続けているため, PC16550DN が古い - 部品番号のものとまったく同じ機能を持っていることに, より多くの人が - 気付いて受け入れるまでは, 価格はおそらく上昇し続けるでしょう. - -ナショナル・セミコンダクタの部品番号体系 - -

古い NSnnnnnrqp の部品番号は, 現在 - PCnnnnnrgp というフォーマットになっています. - - 「r」はリビジョンのフィールドです. 現在のナショナルセ - ミコンダクタの 16550 のリビジョンは「D」です. - - 「p」はパッケージタイプのフィールドです. タイプは以下 - の通りです: - "F" QFP (quad flat pack) L lead type - "N" DIP (dual inline package) through hole straight lead type - "V" LPCC (lead plastic chip carrier) J lead type - -

訳注: 具体的なパッケージ形状についての情報は を参照 - してください. - - 「g」は製品グレードのフィールドです. もしパッケージタイ - プの文字の前に「I」があれば, 「工業用」グレード部品を表し, 標準 - 部品より高いスペックを持ちますが, Miltary 仕様 (Milspec) ほど高 - くはありません. これは付加的なフィールドです. - - 私たちがかつて NS16550AFN (DIP パッケージ) と呼んでいたものは, 現在 - は PC16550DN または PC16550DIN と呼ばれています. - - 他のベンダと類似の UART - -

長年に渡り, 8250, 8250A, 16450 そして 16550 はライセンスされ, - または他のチップベンダにコピーされてきました. 8250, 8250A そして - 16450 の場合は, そのものの回路 (「megacell」: LSIの中に組み込む - ことのできるライブラリ化された回路の大規模な物) が Western - Digital と Intel を含むたくさんのベンダにライセンスされまし - た. 他のベンダは部品をリバースエンジニアリングした物か同じように - 動作する互換品を製造しました. - - 内蔵モデムにおいては, モデム設計者はモデムのマイクロプロセッサで - 8250A/16450 をエミュレートすることはよくおこなわれます. このエミュレート - による (互換の) UART は数百バイトの隠れたバッファを持つでしょう. - バッファのサイズのため, このような互換品は高速データ処理の能力では - 16550A と変わらない信頼性を持つことができます. しかし, それでも - ほとんどのオペレーティングシステムは UART は 8250A か 16450 である - と報告し, 特殊なドライバが使用されなければ エミュレートによる UART - の余分に存在するバッファリングの効果的な使用はおこないません. - - 幾つかのモデムメーカーは, 市場における競争を有利にするために数百バ - イトのバッファを持ち 16550A の置き換えができるはずの設計を, たとえ - 性能が低下する事になったとしても棄てざるを得なくなるような市場の圧 - 力を受けています. - - 一般的にある誤解は, 「16550A」と書かれたすべての部品が同じ性能であると - いうことです. それらは異なるものであり, 状況によってはまちがいなく - 欠陥と呼べるものがこれらの 16550A クローンのほとんどにあります. - - NS16550 が開発された時に, ナショナル・セミコンダクタは設計に関する - 幾つかの特許を取得し, 彼らはライセンスを制限して他のベンダが類似 - の特徴を持つチップを供給することを困難にしました. 特許のため, リバー - スエンジニアリングによる設計とエミュレーションは, 特許がカバーする - 請求権を侵害を回避しなくてはなりませんでした. 結果として, これらの - コピーのほとんどは, 多くのコンピュータとモデムのメーカーは支払いた - くはない程の価格であった本物の部品の NS16550A または PC16550D とまった - く同じような動作をさせることはできませんでした. - - 16550A のクローンに存在する相違点のうち いくつかは些細なものですが, - そのほかに 特定のオペレーティングシステムやドライバでは - 全然使いものにならないような相違が存在する場合もあります. - あるドライバでは問題なく動作しても, 別のドライバを使用した場合には - 問題が発生することもありますし, Windows のドライバにおいても - 充分にテストや考慮がおこなわれなかったイベントの組合わせが - 起こった場合には, これらの相違点が明らかになるかもしれません. - これはほとんどのモデムベンダと 16550 クローンメーカーが, NS16550A - との互換性のプライマリテストとして Windows for Workgroups 3.11 と - Microsoft MSD ユーティリティの Microsoft ドライバを使用しているか - らです. この安易過ぎる規準は, もし異なるオペレーティングシステムが - 使用されたらクローンと本物の部品の微妙な違いのために問題が発生し得 - る, ということを意味しています. - - ナショナル・セミコンダクタは, どんな OS のドライバからも独立した互 - 換性テストを実行する COMTEST という名前の入手可能なプログラムを作 - 成しました. このタイプのプログラムの目的は, 競合製品にある欠陥のデ - モンストレーションであることをおぼえておくべきです. ですからそのプ - ログラムは, テスト中の部品の動作の重要な問題と極めてささいな相違を - 同じように報告するでしょう. - - この文書の著者が1994年に実行した一連のテストでは, ナショナルセミ - コンダクタ, TI, StarTech そして CMD が製造した部品は megacell 及び - COMTEST でテストされた内蔵モデムに埋め込まれたエミュレーションと同 - 等です. これらの部品のの幾つかで注目される相違点を以下に示します. - これらのテストは1994年に実行されたので, これらはベンダから供給さ - れた製品の現在の性能には反映されないでしょう. - - 極端に多くの問題やあるタイプの問題が検出された場合に, COMTEST は通 - 常は実行を中止することに注意してください. このテストの一部では, たと - え何回相違点に遭遇しても中止しないように COMTEST を修正しました. - - -ベンダ 部品番号 報告された「相違点」として知られるエラー -National (PC16550DV) 0 * - -National (NS16550AFN) 0 - -National (NS16C552V) 0 * - -TI (TL16550AFN) 3 - -CMD (16C550PE) 19 - -StarTech (ST16C550J) 23 - -Rockwell reference modem - with internal 16550 or an - emulation (RC144DPi/C3000-25) 117 - -Sierra modem with an internal - 16550 (SC11951/SC11351) 91 - -

COMTEST からの相違点の単純なカウントが, 何の相違点が重要であり - どれがそうでないのかについて多くを明らかにしないことを理解すること - が大切です. 例えば, 内蔵の UART を持つ上記の二つのモデムで報告され - た相違点の約半分が, 5及び6ビットキャラクタモードをサポートしないク - ローンの UART によって引き起こされました. 本物の 16550, 16450 そし - て 8250 UART すべてはこれらのモードをサポートし, COMTEST はこれらの - モードの機能性をチェックするので, 50を越える相違点が報告されました. - しかし, 5及び6ビットキャラクタモードをサポートするモデムは殆どなく, - 特ににこれらはエラー修正と圧縮機能付のものです. これは5及び6ビット - キャラクタモードに関連した相違点は差し引いて考えることができること - を意味しています. - - COMTEST が報告した相違点の多くは, タイミングに関する点でしょう. - 多くのクローンの設計では, ホストが一つのポートから読み込んだ時に他 - のあるポートのステータスビットは, 本当の NS16550AFN と同じ - 長さの時間内で更新されない (あるものは速く, あるものは遅く) かもしれ - ませんが, COMTEST はこれらの相違点を探します. これは相違点の数は誤 - 解を招き易いものです. あるデバイスには一つか二つの相違点しかありま - せんがそれらは非常に重大かもしれません. また別のデバイスは基準部品 - と比べて速くまたは遅く status レジスタを更新するために (適切に書か - れたドライバの操作にはまったく影響しないかもしれません) 多くの相違点を - 報告されるかもしれません. - - * この文書の著者は今まで, COMTEST プログラムを使用して相違点がゼロ - と報告されるナショナル・セミコンダクタ以外の部品を一つも発見しませ - んでした. ナショナル・セミコンダクタは長年に渡り 16550 の五つのバー - ジョンを持っており, 最新の部品は機能性のために, ベンチマークを考慮 - した古い NS16550AFN と少し異なる振る舞いをすることに注意するべきで - す. COMTEST はナショナル・セミコンダクタの製品ラインの相違点につい - ては見て見ぬふりをするようになり, 部品のリビジョン A, B そして C - にあるバグが記述されている公式な正誤表がある時でも, (オリジナルの - 16550 を除いては) ナショナル・セミコンダクタの部品についてエラーを - 報告しなくなったので, この COMTEST のひいきを考慮にいれるべきです. - - COMTEST は問題を引き起こすかも知れない, または特殊なケースとして処 - 理しなければならない潜在的に矛盾した部品の存在に対して, 管理者に警 - 告を出すスクリーニングツールとして使用できます. - - もしモデムの中にある 16550 やシリアルポート接続されているモデムに - 対して COMTEST を実行する場合, モデムがテストキャラクタをエコーし - ないように最初に ATE0&W コマンドをモデムに発行する必要がありま - す. これをおこなうことを忘れた場合, COMTEST は少なくともこの相違点を - 報告するでしょう: - Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61 - - 8250/16450/16550 のレジスタ - -

8250/16450/16550 UART は八つの連続する I/O ポートアドレスを予約 - しています. IBM PC ではこれらの八つのポートに対して二つの定義された - 位置があり, それらは集合的に COM1 と COM2 として知られています. PC - クローンとアドオンカードのメーカーは COM3 と COM4 として知られる二つ - の付加的な領域を作成しましたが, 幾つかのシステムではこれらの余分な - COM ポートは他のハードウェアと衝突します. 最もよく起きるものは IBM - 8514 エミュレーションを提供するビデオアダプタとの衝突です. - - -COM1 には 0x3f8 から 0x3ff が割り当てられ, 通常 IRQ 4 が使用されます -COM2 には 0x2f8 から 0x2ff が割り当てられ, 通常 IRQ 3 が使用されます -COM3 には 0x3e8 から 0x3ef が割り当てられ, IRQ は標準化されていません -COM4 には 0x2e8 から 0x2ef が割り当てられ, IRQ は標準化されていません - -

8250/16450/16550 UART のI/Oポートの詳細は以下に提供されています. - - -I/O 許可された 説明 -ポート アクセス - -+0x00 write Transmit Holding Register (THR) - (DLAB==0) このポートに書き込まれた情報はデータ命令として - 処理され, UART により送信されます. - -+0x00 read Receive Buffer Register (RBR) - (DLAB==0) シリアル接続から UART によって受信されたすべての - データ命令は, このポートを読むことによってホス - トによりアクセスされます. - -+0x00 write/read Divisor Latch LSB (DLL) - (DLAB==1) マスタ入力クロックの周波数をこのレジスタに入っ - ている値で割ることにより, UART の周波数が決定 - されます (IBM PCでは, マスタクロックの周波数は - 1.8432MHzです). このレジスタには上記の除数の下 - 位8ビットが入っています. - - -+0x01 write/read Divisor Latch MSB (DLH) - (DLAB==1) マスタ入力クロックの周波数をこのレジスタに入っ - ている値で割ることにより, UART の周波数が決定 - されます (IBM PCでは, マスタクロックの周波数は - 1.8432MHzです). このレジスタには上記の除数の上 - 位8ビットが入っています. - -+0x01 write/read Interrupt Enable Register (IER) - (DLAB==0) 8250/16450/16550 の UART はイベントを四つのカテ - ゴリの一つに分類します. それぞれのカテゴリは設 - 定可能です. それぞれのカテゴリは, どんな類のイ - ベントの発生時に割り込みを生成するように設定可 - 能です. 8250/16450/16550 の UART は, 有効になっ - ているカテゴリ内でいくつのイベントが発生してい - るかに関わらず, 単一の外部割り込みシグナルを生 - 成します. 割り込みに応答し有効になっている割り - 込みカテゴリ (通常すべてのカテゴリが有効になって - いる割り込みを持ちます) を割り込みの本当の原因 - を決定するためにポーリングするかは, ホストのプ - ロセッサ次第です. - - Bit 7 予約済み, 常に 0. - - Bit 6 予約済み, 常に 0. - - Bit 5 予約済み, 常に 0. - - Bit 4 予約済み, 常に 0. - - Bit 3 Enable Modem Status Interrupt (EDSSI) - このビットを「1」に設定することで, - 一つ以上の状態ラインで変更が発生した時 - に, UART が割り込みを生成可能となりま - す. - - Bit 2 Enable Receiver Line Status - Interrupt (ELSI) - このビットを「1」に設定することで, 入っ - てくるデータにエラー (または BREAK シ - グナル) が検知された時に, UART が割り - 込みを生成するようになります. - - Bit 1 Enable Transmitter Holding Register - Empty Interrupt (ETBEI) - このビットを「1」に設定することで, - UART に送信される一つ以上の付加的な文 - 字に対する空きが生じた時に, UART が割 - り込みを生成するようになります. - - Bit 0 Enable Received Data Available - Interrupt (ERBFI) - このビットを「1」に設定することで, - UART が FIFO のトリガーレベルを越え - る十分な文字を受け取るか, FIFO のタイ - マが期限切れとなるか (古くなったデータ), - FIFO が無効の場合にシグナル文字が受信 - された時に, UART が割り込みを生成する - ようになります. - - -+0x02 write FIFO Control Register (FCR) - (このポートは 8250 と 16450 の UART では - 存在しません.) - - Bit 7 Receiver Trigger Bit #1 - Bit 6 Receiver Trigger Bit #0 - この二つのビットは FIFO が機能している - 場合にレシーバがどの時点で割り込みを生 - 成するかを制御します. - - 7 6 割り込み生成前にいくつの命令が - 受信されたか. - - 0 0 1 - - 0 1 4 - - 1 0 8 - - 1 1 14 - - Bit 5 予約済み, 常に 0. - - Bit 4 予約済み, 常に 0. - - Bit 3 DMA Mode Select - Bit 0 が「1」 (FIFO 有効) に設定されて - いる場合, このビットの設定は -RXRDY と - -TXRDY の処理を Mode 0 から Mode 1 へ - 変更します. - - Bit 2 Transmit FIFO Reset - このビットに「1」が書き込まれている場 - 合, FIFO の内容は破棄されます. 現在送 - 信されているすべての命令は損なわれずに送 - られるでしょう. この機能は送信中止の場 - 合に役に立ちます. - - Bit 1 Receiver FIFO Reset - このビットに「1」が書き込まれている場 - 合, FIFO の内容は破棄されます. 現在 - shift レジスタ内で組み立てられているすべ - ての命令は損なわれずに受信されるでしょ - う. - - Bit 0 16550 FIFO Enable - 設定されている場合, 送信 / 受信両方の - FIFO が有効になります. holding レジス - タ, shift レジスタまたは FIFO 内のすべて - の内容は, FIFO が有効または無効になっ - た時点で失われます. - - -+0x02 read Interrupt Identification Register (IIR) - - Bit 7 FIFO有効. - 8250/16450 UART では, このビットはゼロ. - - Bit 6 FIFO有効. - 8250/16450 UART では, このビットはゼロ. - - Bit 5 予約済み, 常に0. - - Bit 4 予約済み, 常に0. - - Bit 3 Interrupt ID Bit #2 - 8250/16450 UART では, このビットはゼロ. - Bit 2 Interrupt ID Bit #1 - Bit 1 Interrupt ID Bit #0 - これらの3つのビットは進行中の割り込み - を引き起こしたイベントのカテゴリを併せ - て報告します. これらのカテゴリは優先度 - を持つため, イベントの複数のカテゴリが - 同時に発生した場合, UART は最初に最も - 重要なイベントを報告し, ホストは報告さ - れた順に解決するでしょう. 現在の割り込 - みを引き起こしたすべてのイベントは, 新し - い割り込みが生成される前に解決されなけ - ればなりません (これは PC のアーキテク - チャの制限です). - - 2 1 0 優先度 説明 - - 0 1 1 First レシーバエラー - (OE, PE, BI または - FE) - - 0 1 0 Second 有効な受信データ - - 1 1 0 Second トリガーレベル - 識別子 - (受信バッファ中の - 古いデータ) - - 0 0 1 Third トランスミッタに - 命令用の空きがある - (THRE) - - 0 0 0 Fourth モデムの状態が - 変わった (-CTS, - -DSR, -RI, または - -DCD) - - Bit 0 Interrupt Pending Bit - このビットが「0」に設定されている場合, - 少なくとも一つの割り込みがペンディング - されています. - -+0x03 write/read Line Control Register (LCR) - - Bit 7 Divisor Latch Access Bit (DLAB) - 設定されている場合, transmit/receive - register (THR/RBR) と Interrupt Enable - Register (IER) へのアクセスが無効にな - ります. 現在これらのポートへのすべてのア - クセスは Divisor Latch Register へリダ - イレクトされます. このビットの設定, - Divisor Register のローディング, そし - て DLAB のクリアは割り込みが無効になっ - ている状態でおこなわれるべきです. - - Bit 6 Set Break - 「1」に設定されている場合, トランスミッ - タはこのビットが「0」に設定されるまで - スペースを切り目なく送信します. これは - 送信されている文字のすべてのビットに優先 - します. - - Bit 5 Stick Parity - parity が有効になっている場合, このビッ - トの設定はビット4の値に基づき parity - を常に「1」か「0」にします. - - Bit 4 Even Parity Select (EPS) - parity が有効でビット5が「0」の場合, - このビットの設定は偶数 parity が送信そ - して要求されるようにします. そうでなけ - れば奇数 parity が使用されます. - - Bit 3 Parity Enable (PEN) - 「1」に設定されている場合, データの最 - 後のビットとストップビットの間に - parity ビットが挿入されます. また UART - は受信データに存在する parity を要求す - るでしょう. - - Bit 2 Number of Stop Bits (STB) - 「1」に設定されている場合, 5-bit デー - タ命令を使用して, 1.5の Stop ビットが - 送信され各データ命令内に要求されま - す. 6, 7 そして 8-bit データ命令に対し - ては, 2つの Stop ビットが送信され要求 - されます. このビットが「0」に設定され - ている場合, 1つの Stop ビットが各デー - タ命令で使用されます. - - Bit 1 Word Length Select Bit #1 (WLSB1) - - Bit 0 Word Length Select Bit #0 (WLSB0) - これらのビットは共に各データ命令内のビッ - トの数を指定します. - - 1 0 命令長 - - 0 0 5 Data Bits - 0 1 6 Data Bits - 1 0 7 Data Bits - 1 1 8 Data Bits - -+0x04 write/read Modem Control Register (MCR) - - Bit 7 予約済み, 常に 0. - - Bit 6 予約済み, 常に 0. - - Bit 5 予約済み, 常に 0. - - Bit 4 Loop-Back Enable - 「1」に設定されている場合, UART のトラ - ンスミッタとレシーバは診断処理のために - 内部的に相互に接続されます. 付け加えて - UART のモデム制御出力はモデム制御入力 - に接続されます. CTS は RTS へ, DTR は - DSRへ, OUT 1 は R1 へ, OUT 2 は DCD へ - 各々接続されます. - - Bit 3 OUT 2 - ホストのプロセッサが high または low - に設定するであろう補助的な出力. IBM PC - のシリアルアダプタ (とクローンの殆ど) - では, OUT 2 は 8250/16450/16550 UART - からの割り込み信号をハイインピーダンス - (無効) にするのに使用されます. - - Bit 2 OUT 1 - ホストのプロセッサが high または low - に設定するであろう補助的な出力. IBM PC - のシリアルアダプタではこの出力は使用 - されません. - - Bit 1 Request to Send (RTS) - 「1」に設定されている場合, UART の - -RTS ラインの出力は Low (有効) となり - ます. - - Bit 0 Data Terminal Ready (DTR) - 「1」に設定されている場合, UART の - -DTR ラインの出力は Low (有効) となり - ます. - - -+0x05 write/read Line Status Register (LSR) - - Bit 7 Error in Receiver FIFO - 8250/16450 UART では, このビットはゼロ - です. FIFOの中に次のエラー条件が一つ以 - 上含まれている場合, このビットは「1」 - に設定されます: PE, FE, または BI. - - Bit 6 Transmitter Empty (TEMT) - 「1」に設定されている場合, 送信 FIFO - または送信 shift レジスタ中に残ってい - る命令はありません. トランスミッタは完 - 全に働いていません. - - Bit 5 Transmitter Holding Register Empty (THRE) - 「1」に設定されている場合, 現在 FIFO - (または holding レジスタ) には少なくと - も一つの送信される付加的な命令に対する - 空きあります. このビットが「1」に設定 - されている時は, 多分トランスミッタはま - だ送信しています. - - Bit 4 Break Interrupt (BI) - レシーバは Break シグナルを検知しました. - - Bit 3 Framing Error (FE) - Start ビットが検知されましたが, Stop - ビットは要求された時間内には現れません - でした. 受信された命令はおそらく勝手に - 解釈されます. - - Bit 2 Parity Error (PE) - parity ビットが受信された命令に対して - 不正です. - - Bit 1 Overrun Error (OE) - 新しい命令が受信され, 受信バッファに空 - きがありませんでした. shift レジスタに - 新たに到着した命令は破棄されます. - 8250/16450 UART では, holding レジスタ - 内の命令は破棄され新たに到着した命令は - holding レジスタに置かれます. - - Bit 0 Data Ready (DR) - 一つ以上の命令がホストが読むであろう受 - 信 FIFO にあります. このビットが設定さ - れる前に, 命令は完全に受信され shift - レジスタから FIFO (または 8250/16450 - の設計では holding レジスタ) へ移動さ - れなければなりません. - - -+0x06 write/read Modem Status Register (MSR) - - Bit 7 Data Carrier Detect (DCD) - UART の DCD ラインの状態を反映します. - - Bit 6 Ring Indicator (RI) - UART の RI ラインの状態を反映します. - - Bit 5 Data Set Ready (DSR) - UART の DSR ラインの状態を反映します. - - Bit 4 Clear To Send (CTS) - UART の CTS ラインの状態を反映します. - - Bit 3 Delta Data Carrier Detect (DDCD) - ホストによって MSR が最後に読み込まれ - た時点から, -DCD ラインが状態を一回以 - 上変えた場合に「1」に設定されます. - - Bit 2 Trailing Edge Ring Indicator (TERI) - ホストによって MSR が最後に読み込まれ - た時点から, -RI ラインが low から high - へ移り変わった場合に「1」に設定されま - す. - - Bit 1 Delta Data Set Ready (DDSR) - ホストによって MSR が最後に読み込まれ - た時点から, -DSR ラインが状態を一回以 - 上変えた場合に「1」に設定されます. - - Bit 0 Delta Clear To Send (DCTS) - ホストによって MSR が最後に読み込まれ - た時点から, -CTS ラインが状態を一回以 - 上変えた場合に「1」に設定されます. - - -+0x07 write/read Scratch Register (SCR) - このレジスタは UART では機能しません. この場所 - には どんな値でもホストによって書き込まれるこ - とができ, その後ホストによって読み込むことが可 - 能です. - - - 16550A UART を越えて - -

ナショナル・セミコンダクタは付加的な機能を持つ 16550 と互換 - 性のある部品を提供していませんが, 色々な他のベンダがそれを持っ - ています. これらの部品の幾つかは以下に記述されています. 効果的 - にこれらの改良を使用するためには, 殆どのポピュラーなオペレーティ - ングシステムが 16550 が提供する機能以上のものをサポートしない - ため, ドライバはチップベンダから提供されなければならないことを - 理解しておく必要があります. - - -ST16650デフォルトではこの部品は NS16550A と似ていますが, 拡 - 張された32バイトの送受信バッファをオプションで有効にで - きます. Startech により製造されました. - -TIL16660デフォルトではこの部品は NS16550A と類似した振舞いを - しますが, 拡張された64バイトの送受信バッファをオプショ - ンで有効にできます. Texas Instruments により製造されま - した. - -Hayes ESPこの専売特許のプラグインカードは, 2048バイトの送受 - 信バッファを含み, 230.4Kbit/sec のデータレートをサポー - トします. Hayes により製造されました. - - - -

これらの「ダム」UART に加え, たくさんのベンダがインテリジェ - ントシリアルコミニュケーションボードを製造しています. こ - のタイプの設計は通常マイクロプロセッサを提供しており, このマイ - クロプロセッサは幾つかの UART へのインタフェースとなってデータ - を処理 / バッファリングし, そして必要な時にメインの PC のプロセッ - サへ警告を出します. UART はこのタイプのコミニュケーションシ - ステムにおいて PC のプロセッサによって直接アクセスされないため, - ベンダにとっては 8250, 16450, または 16550 UART と互換性のある - UART を使用する必要はありません. これにより設計者は, より良い - 性能特性を持つ部品が自由に利用できます. - - - diff --git a/ja/handbook/userppp.sgml b/ja/handbook/userppp.sgml deleted file mode 100644 index 4392709a54..0000000000 --- a/ja/handbook/userppp.sgml +++ /dev/null @@ -1,976 +0,0 @@ - - - - -ユーザ ppp の設定

ユーザ ppp は FreeBSD 2.0.5-RELEASE において, - 既存のカーネル実装版の PPP に加えて導入されました. - それでは, これまでの pppd との違い, すなわち - この新しい PPP が追加された理由とは いったい何なのでしょうか? - マニュアルから引用してみます: - - - これはユーザプロセス PPP ソフトウェアパッケージです. - 通常, PPP は (例えば pppd でそうなっているように) カーネルの一部として - 実装されていますので, デバッグや動作の変更が少々困難です. - しかし, この実装では, PPP はトンネルデバイスドライバ (tun) の - 助けにより, ユーザプロセスとして実装されています. - - - 本質として, これは常に PPP デーモンを実行しておかなくても, - 必要な時に ppp プログラムを実行できるということを意味します. - このプログラムはカーネルとのデータ送受のために一般のトンネルデバイスを - 使うことができるため, PPP インターフェースをカーネルに組み込んでおく - 必要がありません. - - 以降では, ユーザ ppp と pppd のような他の PPP クライアント/サーバ - ソフトウェアとを区別する必要が無い場合には, ユーザ ppp を単に ppp とだけ - 呼びます. 特に断らない限り, このセクションのすべてのコマンドは root 権限で - 実行する必要があります. - - バージョン 2 の ppp では, 数多くの機能強化がおこなわれています. - どのバージョンの ppp がインストールされているのかを調べるには, - 引数なしで ppp を起動し, プロンプトが表示されたら show version と - タイプしてください. - 最新版の ppp にアップグレードするのは, (どのバージョンの FreeBSD においても) - 難しいことではありません. から最新版のアーカイブをダウンロードしてください. - -スタートの前に - -

このドキュメントでは, あなたが - およそ以下のような状況にあると仮定しています: - - PPP 接続の使えるインターネットサービスプロバイダ (ISP) のアカウントを - 持っている. さらに, 接続済みのモデム (またはその他のデバイス) があり, - プロバイダとの接続が可能なように正しく設定されている. - - 以下の情報を手に入れておく必要があるでしょう: - - -

プロバイダの電話番号. - -

ログイン名とパスワード. これは通常の unix 形式のログイン名と - パスワードの組という場合もありますし, PPP PAP や CHAP の - ログイン名とパスワードの組という場合もあります. - -

一つ以上のネームサーバの IP アドレス. 通常, プロバイダから - IP アドレスを二つ指示されているはずです. - 自分でネームサーバを立ち上げている場合を除き, バージョン 1.X の - ppp を使用している場合には, この情報は絶対に必要です. - バージョン 2 の ppp からは, ネームサーバアドレスの自動設定機能が - 追加されています. この機能をプロバイダ側でもサポートしていれば, - ppp の設定ファイルに enable dns と書いておくことで - ppp がネームサーバアドレスの設定をおこなうようになります. - - - プロバイダからは以下の情報が提供されているはずですが, - どうしても必要というわけではありません: - - -

プロバイダのゲートウェイの IP アドレス. - ゲートウェイとは, あなたがそこに接続をおこなって, - デフォルトルートとして設定することになるマシンです. - プロバイダがこのアドレスを明示していないとしても, 最初は - 適当に設定しておいて, 接続時にプロバイダの PPP サーバから - 正しいアドレスを教えてもらうことができます. -

このアドレスは, 以降 HISADDR と呼ぶことにします. - -

プロバイダのネットマスク設定. プロバイダが明示していないとしても, - ネットマスクとして 255.255.255.0 を使用しておけば問題ありません. - -

もしプロバイダから固定の IP アドレスとホスト名の割り当てを - 受けていれば, その情報を指定しておくこともできます. - 割り当てを受けていなければ, 接続先から適切な IP アドレスを - 指定してもらいます. - - - もし, 必要な情報が不足していれば, プロバイダに連絡を取って - 確認しておいてください. - -ppp 対応カーネルの構築 - -

説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います. - そのため, このデバイスがカーネルに組み込まれているかどうかを - 確認しておかなくてはいけません. - - これを確認するには, カーネルコンパイルディレクトリ - (/sys/i386/conf または /sys/pc98/conf) に移動して, - カーネルコンフィグレーションファイルを調べます. - 以下の行がどこかに含まれている必要があります. - - - pseudo-device tun 1 - - - 元々の GENERIC カーネルは標準でこれを含んでいますので, - カスタムカーネルをインストールしているのではなかったり, - /sys ディレクトリが存在しないのであれば, 何も変更する必要はありません. -

この行がカーネルコンフィグレーションファイルに含まれていなかったり, - tun デバイスが一つでは足りない場合 (例えば, 同時に 16 本の - ダイアルアップ PPP 接続を処理できるサーバを立ち上げるとしたら, - ``1'' のかわりに ``16'' を指定する必要があるでしょう), この行を追加して - カーネルの再コンパイルとインストールをおこなう必要があります. - それからこの新しいカーネルを使ってブートしてください. - カーネルコンフィグレーションの詳細については, - - を参照してください. - -

以下のコマンドを実行することで, 現在のカーネルにトンネルデバイスが - いくつ組み込まれているかを調べることができます: - - - # ifconfig -a - tun0: flags=8051 mtu 1500 - inet 200.10.100.1 --> 203.10.100.24 netmask 0xffffffff - tun1: flags=8050 mtu 576 - tun2: flags=8051 mtu 1500 - inet 203.10.100.1 --> 203.10.100.20 netmask 0xffffffff - tun3: flags=8010 mtu 1500 - - - この例ではトンネルデバイスが四つ存在し, そのうち二つに設定が - おこなわれ, 使用中であることがわかります. - 上の例で RUNNING フラグがオンになっているものがありますが, これは - そのインターフェースが何かに使用されていることを示しているだけである - ということに注意してください. つまり, RUNNING になっていない - インターフェースがあったとしても, それはエラーではありません. - -

トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で - カーネルの再構築ができない場合でも, 方法がないわけではありません. - 動的にデバイスをロードすることができるはずです. 詳細については - modload(8) や lkm(4) など, 適切なマニュアルを参照してください. - -

この機会にファイアウォールも設定しておきたいと思っているのであれば, - 詳細についてはセクションを - 参照してください. - -tun デバイスの確認 - -

ほとんどのユーザは ``tun'' デバイス (tun0) が一つあれば充分でしょう. - より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション - ファイルで tun 疑似デバイスの行に `1' 以外の数値を指定している場合), - 以下で ``tun0'' と書かれている部分をすべて, あなたが使うデバイスの番号に - あわせて読みかえてください. - - tun0 デバイスが正しく作成されていることを確認する最も簡単な方法は, - それを作り直すことです. そのためには, 以下のコマンドを実行します: - - - # cd /dev - # ./MAKEDEV tun0 - - -

カーネルに 16 個のトンネルデバイスを組み込んだのであれば, - tun0 だけでなく他の tun デバイスも作成しておく必要があるでしょう: - - - # cd /dev - # ./MAKEDEV tun15 - - -

また, カーネルが正しく設定されているかどうかを調べるために - 以下のコマンドを実行して, このような出力が得られることを確認します: - - - $ ifconfig tun0 - tun0: flags=8050 mtu 1500 - $ - - - まだ RUNNING フラグがセットされていない場合もあります. - その時は以下のような出力が得られるでしょう: - - - $ ifconfig tun0 - tun0: flags=8010 mtu 1500 - $ - - -名前の解決に関する設定 - -

リゾルバ (resolver) はシステムの一部分で, IP アドレスとホスト名との - 変換をおこないます. IP アドレスとホスト名を対応させるためのマップを, - 二つの場所のうちの一つから探すように設定できます. - 一つめは /etc/hosts (man 5 hosts) と呼ばれるファイルです. - 二つめはインターネット ドメインネームサービス (DNS) と呼ばれる - 分散データベースですが, これに関する議論は このドキュメントで扱う範囲を - 越えていますので, これについての説明はおこないません. - -

このセクションではリゾルバの設定方法について簡単に説明します. - -

リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし - どこからマッピング情報を見つけるのかは, 最初に指示しておく必要があります. - これは まず /etc/host.conf ファイルを編集することでおこないます. - 混乱の元になりますので, このファイルを /etc/hosts.conf と - 呼んだりしてはいけません (余分な ``s'' がついていますね). - -/etc/host.conf ファイルの編集 - -

このファイルには 以下の 2 行が (この順番で) 書かれているはずです: - - - hosts - bind - - - これは, 最初に /etc/hosts ファイルを調べ, そこで目的の名前が - 見つけられなかった場合に DNS を引きにいくようリゾルバに指示します. - -/etc/hosts(5) ファイルの編集 - -

このファイルはローカルネットワーク上に存在するマシンの IP アドレスと - ホスト名を含んでいるはずです. 最低でも ppp を動作させるマシンのエントリが - 含まれている必要があります. そのマシンのホスト名が foo.bar.com で, - IP アドレスが 10.0.0.1 であると仮定すると, /etc/hosts は - 以下の行を含んでいなければいけません: - - - 127.0.0.1 localhost - 10.0.0.1 foo.bar.com foo - - - 一つめの行は ``localhost'' を現在のマシンの別名として定義しています. - マシン固有の IP アドレスが何であっても, この行の IP アドレスは - 常に 127.0.0.1 でなければいけません. 二つめの行はホスト名 ``foo.bar.com'' - (と, その省略形 ``foo'') を IP アドレス 10.0.0.1 にマップします. - - もしプロバイダから固定の IP アドレスとホスト名を割り当てられて - いるのであれば, それを 10.0.0.1 エントリのかわりに使ってください. - -/etc/resolv.conf ファイルの編集 - -

/etc/resolv.conf はリゾルバの振舞いを指定します. - もし自前の DNS サーバを走らせているのなら, このファイルは空のままに - しておくこともできます. 通常は, 以下のように書いておく必要があるでしょう: - - - nameserver x.x.x.x - nameserver y.y.y.y - domain bar.com - - - x.x.x.xy.y.y.y はプロバイダから指示されたアドレスで, - 接続するプロバイダが提供している「ネームサーバ」を すべて書いてください. - ``domain'' に指定するのは このマシンのデフォルトのドメイン名で, おそらく - 書かなくても問題は無いでしょう. このファイルの各エントリの詳細については, - resolv.conf のマニュアルページを参照してください. - -

バージョン 2 以降の ppp を使用している場合には, - ``enable dns'' コマンドを使用してネームサーバのアドレスを - プロバイダに問い合わせるように指示することができます. - 上の指定とは異なるアドレスをプロバイダが指定してきた場合 - (または /etc/resolv.conf でネームサーバが指定されていない場合), - ppp はプロバイダが指定したアドレスで resolv.conf を書きかえます. - -ppp の設定 - -

ユーザ ppp と pppd (カーネルレベルの PPP 実装) は - どちらも /etc/ppp ディレクトリに置かれた設定ファイルを使います. - ここには設定ファイルのサンプルが用意されていて, ユーザ ppp の設定を - おこなう際に大変参考になりますので, 削除したりしないでください. - -

ppp の設定をするためには, 必要に応じていくつかのファイルを編集する必要が - あります. 書き込む内容は, プロバイダが静的に IP アドレスを割り当てる - (つまり, 固定の IP アドレスを一つ与えられて, 常にそれを使う) か, - または動的に IP アドレスを割り当てる (つまり, PPP セッションごとに - IP アドレスが変化する可能性がある) かということに ある程度依存します. - -静的 IP アドレスによる PPP 接続 - -

まず /etc/ppp/ppp.conf という設定ファイルを作成する必要があります. - これは以下の例とほとんど同じようなものになるでしょう. ``:'' で終る行は - 1 カラム目から始め, その他の行はスペースまたはタブで以下の例のように - 段をつける (インデントする) 必要があることに注意してください. - - -1 default: -2 set device /dev/cuaa0 -3 set speed 115200 -4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK -\\dATDT\\T TIMEOUT 40 CONNECT" -5 provider: -6 set phone "(0123) 456 7890" -7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp" -8 set timeout 300 -9 set ifaddr x.x.x.x y.y.y.y 255.255.255.0 0.0.0.0 -10 add default HISADDR -11 enable dns - - ファイルでは行番号を取り除いておいてください. - これは解説の際に参照する行を示すためにつけたものです. - - -/dev/cuaa0 に, - COM2: は /dev/cuaa1 になります. - -chat(8) 言語に似た, 受信待ち文字列と - 送信文字列の対からなるスクリプトを使用します. - この言語の機能に関しては, マニュアルページを参照してください. - - - J. Random Provider - login: foo - password: bar - protocol: ppp - - - このスクリプトは必要に応じて書きかえなければならないでしょう. - 初めてスクリプトを書く時には, 予想した通りに - 処理が進んだかどうかを確認するため, ``chat'' ログを - とるようにしておいた方が良いでしょう. -

PAP や CHAP を使用する場合には, ここでログインすることは - ありませんから, ログイン文字列は空白のままにしておくべきです. - 詳細については を参照してください. - -10.0.0.2/0 を使用しておいてください. - もし「仮の」アドレスを使用する必要がある場合には, - に関する指示に従って, - /etc/ppp/ppp.linkup にエントリを作成していることを - 確認してください. - この行が省略されている場合, ppp を -auto モードで - 動作させることはできません. - -HISADDR は, 9 行目で指定された - ゲートウェイのアドレスで置きかえられます. - HISADDR は 9 行目までは初期化されていませんので, - その行よりも後でしか使えないことに注意してください. - -/etc/resolv.conf のネームサーバエントリを - 正しいアドレスに更新することができます. - - -

静的な IP アドレスを持っていて, 接続が完了する前にルーティングテーブルの - エントリが正しく設定されているのであれば, ppp.linkup に - エントリを追加する必要はありません. - しかし, この場合でもエントリを追加して, 接続が完了した時点で - プログラムを呼び出したいことがあるかもしれません. - これについては後ほど sendmail を例として説明します. - -

これらの設定ファイルのサンプルが /etc/ppp ディレクトリに - 置かれています. - -動的 IP アドレスによる PPP 接続 - -

プロバイダが静的な IP アドレスの割り当てをおこなっていない場合, - ppp が相手側のホスト (ゲートウェイ) と交渉して, - こちら側と相手側のアドレスを決めるように設定することができます. - これは, 起動時には「仮の」アドレスを使っておいて, - 接続後に IP コンフィグレーション プロトコル (IPCP) を使用して - ppp が IP アドレスを正しく設定できるようにすることで実現されます. - に - 以下の変更を加える以外は, ppp.conf の設定は同じです: - - -9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 - - - 繰り返しますが, 行番号は取り除いておいてください. - これは解説の際に参照する行を示すためにつけたものです. - なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です. - - -0.0.0.0) は, アドレスの交渉の際に - 10.0.0.1 ではなく 0.0.0.0 を使用するよう - ppp に指示するためのものです. - set ifaddr コマンドの最初の引数として - 0.0.0.0/0 を指定してはいけません. - さもないと, -auto モードで動作させる際に - 初期経路を設定することができなくなります. - - -

バージョン 1.X の ppp を使用する場合, /etc/ppp/ppp.linkup にも - エントリを作成しておく必要があります. - ppp.linkup は接続が確立された後に使用されます. この時点では, - ppp は実際にどの IP アドレスを使うべきなのか わかっているはずです. - 以下のエントリは存在する仮の経路を削除し, 正しい経路を作成します: - - -1 provider: -2 delete ALL -3 add default HISADDR - - - -ppp.linkup のエントリを検索します: - まず ppp.conf で使用されたのと同じラベルを探します. - もし見つからなければ, ゲートウェイの IP アドレスのエントリを - 探します. このエントリは 4 オクテットの IP アドレス形式の - ラベルです. それでも まだエントリが見つからなければ, - MYADDR エントリを探します. - -HISADDR への経路をデフォルトルートとして - 追加するように ppp に指示します. HISADDR IPCP で - 決定されたゲートウェイの IP アドレスで置きかえられます. - - -

詳細なサンプルについては, /etc/ppp/ppp.conf.sample ファイル中の - pmdemand エントリと /etc/ppp/ppp.linkup.sample を参照してください. - -

バージョン 2 の ppp から ``sticky routes'' が導入されました. - MYADDRHISADDR を含む add コマンドと - delete コマンドを記憶して, MYADDRHISADDR の - アドレスが変化した際には経路の再設定をおこないます. - したがって, これらのコマンドを ppp.linkup に - 繰り返し記述する必要は無くなりました. - -かかってきた電話を ppp で受けるには - -

このセクションでは ppp をサーバとして設定する方法について説明します. - -

かかってきた電話を ppp が受けるように設定する際に, - そのマシンが LAN に接続されているのであれば, - パケットを LAN に転送するかどうかを決定する必要があります. - 転送をおこなう場合には, その LAN のサブネットから IP アドレスを - ppp クライアントに割り当て, 以下のコマンドを指定するのが良いでしょう. - - - enable proxy - - - また, /etc/rc.conf に以下のオプションが指定してあることを - 確認しておいてください. (以前のバージョンの FreeBSD では, - このファイルは /etc/sysconfig と呼ばれていました): - - - gateway_enable=YES - - -どの getty を使いますか? - -

getty でダイアルアップサービスをおこなう場合の優れた解説が にあります. - -

getty に代わるものとしては, - - があります. これは getty をより柔軟にしたもので, - ダイアルアップ回線での使用を意図して設計されています. - -

mgetty を使う場合の利点は, mgetty が積極的にモデムと通信する - ということです. つまり, もし /etc/ttys でポートを閉じている場合, - モデムは電話をとらなくなります. - -

最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの - 自動検出もサポートされています. これにより, クライアント側で - スクリプトを準備しなくてもサーバにアクセスすることができます. - -

mgetty に関する, より詳細な情報については を参照してください. - -ppp の実行許可 - -

ppp は通常, ID 0 のユーザ (root) として動作しなければいけませんが, - 以下で説明するように, ppp を通常のユーザとしてサーバモードで実行させたい - 場合には, そのユーザを /etc/groupnetwork グループに - 追加して, ppp を実行する許可を与えておかなければいけません. - -

また, そのユーザが設定ファイル内の目的のエントリにアクセスできるように, - 以下のように allow コマンドで許可を与えておく必要があります: - - - allow users fred mary - - - このコマンドがデフォルトエントリに書かれている場合には, 指定されたユーザは - すべてのエントリをアクセスできるようになります. - -動的 IP ユーザのための ppp シェルの設定 - -

/etc/ppp/ppp-shell という名前で, 以下のような内容のファイルを - 作成します: - - - #!/bin/sh - IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` - CALLEDAS="$IDENT" - TTY=`tty` - - if [ x$IDENT = xdialup ]; then - IDENT=`basename $TTY` - fi - - echo "PPP for $CALLEDAS on $TTY" - echo "Starting PPP for $IDENT" - - exec /usr/sbin/ppp -direct $IDENT - - -

このスクリプトには実行可能属性をつけておきます. - 次に, 以下のコマンドを実行し, ppp-dialup という名前で - このスクリプトへのリンクを作成します: - - - # ln -s ppp-shell /etc/ppp/ppp-dialup - - -

すべてのダイアルアップ ppp ユーザのログインシェルとして - このスクリプトを使用します. 以下は pchilds というユーザ名の - ダイアルアップユーザを /etc/password へ登録した場合の例です. - (パスワードファイルを直接エディタで編集したりせず, - vipw を使ってください) - - - pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup - - -

任意のユーザが読むことのできる, /home/ppp ディレクトリを - 作成します. /etc/motd が表示されないようにするため, - このディレクトリには以下のように大きさが 0 バイトのファイルを - 作成しておきます. - - - -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin - -r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts - - -静的 IP ユーザのための PPP シェルの設定 - -

上記と同じように ppp-shell ファイルを作成し, - 静的な IP アドレスを割り当てるアカウントそれぞれについて - ppp-shell へのシンボリックリンクを作成します. - -

例えば, クラス C ネットワークの経路制御を必要とする, - 三人のダイアルアップユーザ fred, sam, mary がいるとすると, - 以下のコマンドを実行することになります: - - - # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred - # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam - # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary - - -

これらのユーザのダイアルアップアカウントでは, 上で作成した - それぞれのシンボリックリンクをログインシェルとして設定しておきます. - (つまり, ユーザ mary のログインシェルは /etc/ppp/ppp-mary に - なります). - -動的 IP ユーザのための ppp.conf の設定 - -

/etc/ppp/ppp.conf ファイルは, 大体以下のような内容になるでしょう: - - - default: - set debug phase lcp chat - set timeout 0 - - ttyd0: - set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 - enable proxy - - ttyd1: - set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 - enable proxy - - -

上の例のように段をつける (インデントする) 必要があることに注意してください. - -

default: エントリはセッションごとにロードされます. - /etc/ttys で有効にしてある各ダイアルアップ回線ごとに一つ, - 上記の ttyd0: のようなエントリを作成します. - 各行の相手側アドレスとして, それぞれ別の IP アドレスを - 動的 IP ユーザのための IP アドレスのプールから割り当てておく必要があります. - -静的 IP ユーザのための ppp.conf の設定 - -

上のサンプルの /etc/ppp/ppp.conf の内容に加えて, - 静的に IP を割り当てられたダイアルアップユーザ - それぞれのためのエントリを追加する必要があります. - ここでも fred, sam, mary の例を使うことにしましょう. - - - fred: - set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 - - sam: - set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 - - mary: - set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 - - -

必要であれば, それぞれの静的 IP ユーザに対する経路制御情報も - /etc/ppp/ppp.linkup ファイルに書いておくべきでしょう. - 以下の例ではクライアントの PPP リンクを経由する, - クラス C の 203.14.101.0 ネットワークへの経路を追加しています. - - - fred: - add 203.14.101.0 netmask 255.255.255.0 HISADDR - - sam: - add 203.14.102.0 netmask 255.255.255.0 HISADDR - - mary: - add 203.14.103.0 netmask 255.255.255.0 HISADDR - - -mgetty, AutoPPP, マイクロソフト拡張の詳細 - -Mgetty と AutoPPP - -

AUTO_PPP オプションつきでコンパイルした mgetty を使えば, mgetty が - PPP 接続の LCP フェーズを検出して, 自動的に PPP シェルを起動するように - 設定することができます. - しかし この場合, デフォルトの login/password シーケンスは発生しないので, - ユーザの認証は PAP または CHAP を使っておこなう必要があります. - -

このセクションでは, ユーザ (あなた) が問題なく - AUTO_PPP オプションつきの mgetty (v0.99beta またはそれ以降) の設定, - コンパイル, インストールができているものと仮定しています. - -

/usr/local/etc/mgetty+sendfax/login.config ファイルが - 以下の行を含んでいることを確認してください: - - - /AutoPPP/ - - /etc/ppp/ppp-pap-dialup - - -

これにより, PPP 接続を検出したら mgetty が ppp-pap-dialup - スクリプトを実行するようになります. - -

/etc/ppp/ppp-pap-dialup という名前で, 以下のような内容のファイルを - 作成します (このファイルには実行可能属性をつけておく必要があります): - - - #!/bin/sh - exec /usr/sbin/ppp -direct pap - - -

さらに, かかってきた電話すべてを自分で扱うエントリを - /etc/ppp/ppp.conf に作成します: - - - pap: - enable pap - set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 - enable proxy - - -

この方法でログインする それぞれのユーザは, PAP によるユーザ認証を - おこなうために /etc/ppp/ppp.secret ファイルにユーザ名とパスワードを - 書いておくか, または /etc/password ファイルを使うように, - - - enable passwdauth - - - オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. - -

ユーザに静的な IP アドレスを割り当てる場合には, そのアドレスを - /etc/ppp/ppp.secret の第三引数として指定することができます. - サンプルについては, /etc/ppp/ppp.secret.sample を参照してください. - -マイクロソフト拡張 - -

クライアントからの要求に応じて, ppp が DNS や NetBIOS ネームサーバの - アドレスを通知するように設定をおこなうこともできます. - -

バージョン 1.X の ppp で これらの拡張機能を有効にするには, 以下の行を - /etc/ppp/ppp.conf の適切なセクションに追加する必要があるでしょう. - - - enable msext - set ns 203.14.100.1 203.14.100.2 - set nbns 203.14.100.5 - - - バージョン 2 以降の ppp では, 以下のようになります: - - - accept dns - set dns 203.14.100.1 203.14.100.2 - set nbns 203.14.100.5 - - -

これにより, クライアントはプライマリとセカンダリのネームサーバアドレス - および NetBIOS ネームサーバホストを知ることができます. - -

バージョン 2 以降の ppp では, ``set dns'' の行を省略した場合には - /etc/resolv.conf に書かれているネームサーバのアドレスを使用します. - -PAP および CHAP による認証 - -

いくつかのプロバイダでは、PAP または CHAP のいずれかの認証メカニズムを - 使用して接続時の認証をおこなうようにシステムを設定しています. - この場合, プロバイダは接続の際に login: プロンプトを送信せず, - 最初から PPP で通信を始めようとするでしょう. - - PAP ではパスワードがそのまま送られてしまうため, CHAP に比べると安全性が - 低くなりますが, このパスワードはシリアル回線のみを通して送られます. - そのため, クラッカーが「盗み聞き」する余地は多くないので, 通常ここの - セキュリティは問題にはなりません. - - または - の - セクションに戻って, 以下の変更をおこないます: - - -7 set login -..... -12 set authname MyUserName -13 set authkey MyPassword - - - これまでと同様に, 行番号は取り除いておいてください. - これは解説の際に参照する行を示すためにつけたものです. - なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です. - - -MyUserName に - 正しい値を入れておく必要があります. -MyPassword に - 正しい値を入れておく必要があります. - PAP と CHAP はデフォルトで両方とも受け付けられるようになって - いますが, PAP や CHAP を使用するという意思を明示するために, - -15 accept PAP - - または - -15 accept CHAP - - という行を追加しておくのも良いでしょう. - - -動作中の ppp の設定変更 - -

適切な診断ポートが設定されている場合には, バックグラウンドで動作中の - ppp プログラムと通信することができます. - この設定をおこなうためには, 以下の行を設定ファイルに追加しておきます: - - - set server /var/run/ppp-tun%d DiagnosticPassword 0177 - - - これにより, ppp は指定された unix ドメインのソケットをモニタして, - クライアントから正しいパスワードを受け取った後にアクセスを許可します. - このソケット名に含まれる %d は, この ppp が使用している tun デバイスの - デバイス番号で置きかえられます. - -

一旦ソケットの設定が終了したら, スクリプト中で pppctl(8) を - 使用して, 動作中の ppp を操作することができるでしょう. - -システムの最終設定 - -

これで ppp の設定は終りました. - しかし ppp を動かす前に, まだ少し必要なことがあります. - それらの設定は, すべて /etc/rc.conf ファイルを - 編集することでおこないます. - (このファイルは以前には /etc/sysconfig と呼ばれていました) - - このファイルを上から順に設定していきます. - まずは ``hostname='' の行が設定されていることを確認します. - 例えば以下のように: - - - hostname=foo.bar.com - - -

もしプロバイダが静的な IP アドレスとホスト名を割り当てているのなら, - ホスト名としてそれを使うのが おそらくベストでしょう. - -

次に network_interfaces 変数を調べます. 必要に応じて (on demand) - プロバイダにダイアルするようにシステムを設定したい場合には, - tun0 デバイスがこのリストに追加されていることを確認しておきます. - それ以外の場合には, tun0 デバイスをリストから削除しておきます. - - - network_interfaces="lo0 tun0" - ifconfig_tun0= - - - ifconfig_tun0 変数が空で, /etc/start_if.tun0 という名前の - ファイルが作成されていなければならない ということに注意してください. - このファイルの内容は以下のようになります. - - - ppp -auto mysystem - - - このスクリプトはネットワークの設定時に実行され, - ppp デーモンを自動モードで立ち上げます. - このマシンがもし LAN のゲートウェイであれば, - -alias スイッチも使用したいと思うかもしれません. - 詳細に関しては, マニュアルページを参照してください. - - -

以下のようにルータプログラムを ``NO'' に設定します. - - - router_enable=NO (/etc/rc.conf) - router=NO (/etc/sysconfig) - - - routed は, ppp が作成したデフォルトのルーティングテーブル - エントリを削除してしまう場合がありますので, - (初期設定では起動されるようになっている) routed デーモンが - 起動されないようにしておくことが重要です. - -

``sendmail_flags'' 行が ``-q'' オプションを含まないように - 設定しておいた方がよいでしょう. さもないと, sendmail が - アドレスを調べようとして発信をおこなってしまう場合があります. - 以下のような設定で良いでしょう: - - - sendmail_flags="-bd" - - - この結果, PPP リンクを立ち上げた時には - いつでも以下のコマンドを実行して, キューにたまっているメールを - sendmail に送信させる作業が必要になるでしょう. - - - # /usr/sbin/sendmail -q - - -

ppp.linkup 中で !bg コマンドを使用することで, これを自動的に - おこなうこともできます: - - -1 provider: -2 delete ALL -3 add 0 0 HISADDR -4 !bg sendmail -bd -q30m - - - -

こうするのが嫌であれば, SMTP トラフィックをブロックするように - "dfilter" を設定しておくこともできます. - 詳細についてはサンプルファイルを参照してください. - -

後はマシンをリブートするだけです. - -

リブートが終ったら, - - - # ppp - - - コマンドを実行し, 続いて PPP セッションを開始させるために - ``dial provider'' と入力することもできますし, - (start_if.tun0 スクリプトを作成していない場合に), - 外部へのトラフィックが発生した時に, ppp が自動的に - セッションを確立してくれるようにしたいのであれば, - 以下のコマンドを実行することもできます. - - - # ppp -auto provider - - -まとめ - -

要約すると, 初めて ppp を設定する際には, 以下のステップが不可欠です: - -

クライアント側: - - - カーネルに tun デバイスが組み込まれていることを確認. - /dev ディレクトリに tunX デバイスファイルが - 存在することを確認. - /etc/ppp/ppp.conf にエントリを作成. - ほとんどのプロバイダでは, pmdemand の例で充分でしょう. - 動的 IP アドレスを使用するなら, /etc/ppp/ppp.linkup に - エントリを作成. - /etc/rc.conf (または sysconfig) ファイルを更新. - 必要に応じてダイヤル (demand dialing) したいのであれば, - start_if.tun0 スクリプトを作成. - - -

サーバ側: - - カーネルに tun デバイスが組み込まれていることを確認. - /dev ディレクトリに tunX デバイスファイルが - 存在することを確認. - (vipw(8) コマンドを使って) /etc/passwd にエントリを作成. - このユーザのホームディレクトリに - ``ppp -direct direct-server'' か何かを実行するプロファイルを作成. - /etc/ppp/ppp.conf にエントリを作成. - direct-server の例で充分でしょう. - /etc/ppp/ppp.linkup にエントリを作成. - /etc/rc.conf (または sysconfig) ファイルを更新. - - -謝辞 - -

ハンドブックの このセクションは, 1998 年 8 月 10 日 (月) に - &a.brian によって更新されました. - -

以下の人々による情報提供, 批評そして提案に感謝します: - -

&a.nik -

&a.dirkvangulik -

&a.pjc diff --git a/ja/handbook/vm.sgml b/ja/handbook/vm.sgml deleted file mode 100644 index 112dc75808..0000000000 --- a/ja/handbook/vm.sgml +++ /dev/null @@ -1,258 +0,0 @@ - - - - - -FreeBSD VM システム - -

原作: &a.dillon;. - 6 Feb 1999. - -FreeBSD における VM の内部構造詳説 - -物理メモリ管理 - vm_page_t - -

- 物理メモリはページ単位に, - vm_page_t構造体を用いて管理されます. - 物理メモリのページは, ページキューの一つに存在する, - それぞれの vm_page_t 構造体の配置によって分類されます. -

- ページは, wired(ワイヤード), active(活性状態), - inactive(非活性状態), cache(キャッシュ状態), free(使われていない状態)の - 各状態をとります. wired 状態を除いて, ページは通常 - その状態を示す二重連結リストのキューに置かれます. - wired 状態のページがキューに置かれることはありません. -

- FreeBSD は, ページカラーリング(page coloring)を実装するため, - cache 状態, free 状態にあるページ用に, - さらに複雑なページキューを実装しています. その各々の状態は, - プロセッサの L1, L2 キャッシュサイズに応じて最適化された - 多重キューを利用します. - FreeBSD は, 新たなページを確保(allocate)することが - 必要になった場合に確保される VM オブジェクトのために, - L1, L2 キャッシュに対して合理的にアライン(align)されたページを - 得ようと試みます. -

- 加えて, ページは参照カウントとともに保持され, - ビジーカウントとともにロックされます. - VM システムは, ページフラグとして - PG_BUSY を使う「完全ロック状態」も実装しています. -

- 一般的には, 各々のページキューは最長不使用 (LRU) 方式で動作します. - ページは普通, 最初に wired, もしくは active 状態に置かれます. - wired 状態の場合, そのページはどこかにあるページテーブルに - 関連づけられています. - VM システムはアクティブなキュー内のページをスキャンし, - wired 状態のページにエイジング(訳注: ページ参照頻度を量る手法の一つ; - aging)を施します。そして, そのページはあまりアクティブでないキューへ - 移動することになります. - cache キューに移動させられたページは, 再利用の候補になっている - VM オブジェクトに割り付けられています. - free キューにあるページは, 完全に自由の状態にあります. - FreeBSD は, free キューにあるページ数を最小限にとどめようと - 試みますが, 割り込み発生時のページ確保を融通するため, - 完全に自由なページをいくつか持っていなければなりません. -

- プロセスがページテーブルに存在しない, - ページキューの一つ(例えば, inactive, cache キュー等)に - 存在するページをアクセスしようとしたとき, - 比較的負荷の小さなページ再活性化フォールトが起こります. - システムメモリに全く存在していないページの場合は, - ディスクからページを読み出す間, そのプロセスはブロック(block)されます. -

- FreeBSD は, ページキューを動的に調節し, - 同期済(clean)のページ, 同期していない(dirty)ページの分類を - 合理的に保つのと同様に, それぞれのキューにあるページが合理的な - 比率に保つように試みます. - 再バランス化処理が起こる量は, システムのメモリ負荷に依存します. - この再バランス化処理はページアウトデーモンによって実装されていて, - (補助記憶とページを同期して)同期していないページの - クリーニングすることや, (LRU キュー内でのページ位置を再配置したり, - ページをキューの間を移動することで)ページが頻繁に - 参照状態にあることに注目すること, キューを均等にするための - キュー間ページ移動等を伴います. - ページが実際にどれだけ使われているかを決定するために, - FreeBSD の VM システムは, ページの再活性化フォールトを - 自発的に, 合理的な数だけ発生します. - これは, ページをスワップアウトしたり, クリーニングする時期を - より良く決めることに繋がります. - -統合バッファキャッシュ - vm_object_t - -

- FreeBSD は, 一般化した「VM オブジェクト」という考え方を実装しています. - VM オブジェクトは, 様々な種類の補助記憶(backing store) - 補助記憶なし, - スワップ, 物理デバイス, ファイル, に割り付けられます. - ファイルシステムはファイルと関連するインコアデータを管理するのに, - 同じ VM オブジェクトを利用するため, 統合バッファキャッシュと呼ばれます. -

- VM オブジェクトは, シャドウ化することができます. - シャドウ化とは, オブジェクトがそれぞれ互いの上に - スタック(stack)されるということです. 例えば, MAP_PRIVATE mmap() の - 動作を実装するために, - ファイルに割り付けられた VM オブジェクトの上にスタックされた, - スワップに割り付けられた VM オブジェクトが存在しているでしょう. - このスタッキングは, fork されたアドレス空間のための - 様々な共有属性, コピーオンライト(訳注: ページ共有のための - 手法の一つ; cow,copy-on-write)を実装するのにも利用されています. -

- vm_page_t は, 同時に一つの VM オブジェクトしか割り付けられることが - できないことに注意しなければなりません. - VM オブジェクトのシャドウ化は, 複数のインスタンスが同じページに - 共有できるように実装されています. - -ファイルシステム I/O - struct buf - -

- 補助記憶にファイルを使う VM オブジェクトのように, - v ノードを使う VM オブジェクトは通常, - 処理されているかどうかという情報を, - VMシステムが管理する処理情報から独立して管理される必要があります. - 例えば, VM システムが物理ページと補助記憶を同期させようとしたとき, - VM システムは, 実際に書き戻す前に, - ページがクリーニング済であるというマークを付ける必要があるわけです. - さらに, ファイルシステムは, KVM 内で操作できるように, - ファイルや, ファイルメタデータの一部分を KVM にマッピングすることが - できなくてはなりません. -

- これを管理するために使われる実体は, ファイルシステムバッファ, - struct buf, bp として知られています. - ファイルシステムに VM オブジェクトの一部を操作することが - 必要となるときは通常, オブジェクトの部分が struct buf に - マッピングされ, KVM に struct buf 内のページがマッピングされます. - 同じ方法で, ディスク I/O はオブジェクトの部分を - バッファ構造体内にマッピングし, その時バッファ構造体上の I/O を - 発行することで発行されます. 基礎となっている vm_page_t は, - I/O 処理の間 ビジー(busy)状態になります. ファイルシステムにも - 独立したビジー状態があり, それはハードウェア上の VM ページの代わりに - ファイルシステムバッファで動作するファイルシステムドライバのコードに - とって有用です. -

- FreeBSD は, マッピングを保持するためにある量に制限された KVM を - 予約していますが, KVM がマッピングを保持するためだけに使われ, - キャッシュデータの能力を制限しないということは - 明確にされるべきでしょう. - 物理データキャッシュを行うことは厳密に vm_page_t の機能になっており, - ファイルシステムバッファの機能ではありません. - しかし, ファイルシステムバッファは placehold I/O に使われるため, - それは実質的に同時処理可能な I/O 処理量を制限します. - 通常は二, 三千のファイルバッファが利用可能ですから, - このことは問題にならないでしょう. - -マッピングページテーブル - vm_map_t, vm_entry_t - -

- FreeBSD は, 物理ページテーブルの形態を VM システムと分離しています. - ハードウェア上にある全てのプロセス毎のページテーブルは, - その場その場で再構成され, 通常, 使い捨てだとみなされています. - KVM を管理するような特殊なページテーブルは, 最初に永続的な確保が - 行われ, これらのページテーブルが破棄されることはありません. -

- FreeBSD は, vm_objects の部分を, 仮想メモリのアドレス範囲に - vm_map_t と vm_entry_t 構造体を通して割り付けます. - ページテーブルは, vm_map_t/vm_entry_t/vm_object_t という階層から - 直接つくられます. 「物理ページは, 直接一つの vm_object に - 割り付けられる」と私が述べたことを思い出して下さい. - ええと, そうですね, しかしそれはいつでも完全に当てはまる, - というわけでもないのです. vm_page_t のは, 実際に割り付けられた - ページテーブルにもリンクされています. 一つの vm_page_t は - ページテーブルが呼ばれた時, いくつかの pmaps と - リンクされることがあります. しかし, そのような階層的な割り付けは, - 同じ vm_page_t を参照するオブジェクト内の, - 同じページへの参照全てを保持しているため, - その結果, 常にバッファキャッシュの統合を得ることができるわけです. - -KVM メモリマッピング - -

- FreeBSD は, 様々なカーネル構造体を保持するため, KVM を利用します. - ファイルシステムバッファキャッシュは, KVM 内で最も大きなものです. - それはつまり, struct buf の実体に対するマッピングに他なりません. -

- Linux と異なり, FreeBSD は全ての物理メモリを KVM にマッピングしません. - これは, FreeBSD が 32 ビットプラットフォームで 4G バイトまでの - メモリを扱える, ということを意味します. - 実際, MMU がそれを可能にしているならば, - 理論上, FreeBSD は 32 ビットプラットフォームで - 8TB までのメモリを扱うことができることになります. - しかし, 大部分の 32 ビットプラットフォームは 4G バイトの RAM しか - マッピングできないようになっている, ということには議論の余地があるでしょう. -

- KVM は, いくつかのメカニズムによって管理されています. - 中心となっているのは, ゾーンアロケータ(zone allocator)です. - ゾーンアロケータは, 特定の構造体型を確保するために - KVM の部分(chunk)を得て, 一定の大きさのメモリブロックに分割します. - vmstat -m コマンドで, ゾーンによって - 分割された, 現在の KVM 利用状況一覧を得ることができます. - -FreeBSD VM システムのチューニング -

- FreeBSD カーネルでは, 動的に自分自身をチューニングするために, - 協調的な努力が行なわれています. - 普通は, 'maxusers' と 'NMBCLUSTERS' という - カーネルオプション, つまり, /usr/src/sys/i386/conf/XXX で - 指定されるもの以外, 変更する必要はありません. - 可能なカーネルオプションの一覧は, /usr/src/sys/i386/conf/LINT に - 記載されています. -

- 大きなシステムに対しては, 'maxusers' を増やしたいと思うかも知れませんね. - この値は普通, 10 から 128 の間の値にします. - maxusers を増やしすぎるとシステムの利用可能な KVM がオーバフローしてしまい, - 予測できない動作に陥ってしまうことに注意して下さい. - maxusers はある適度な値にとどめておいて, 特定のリソースを制御する - NMBCLUSTERS のような, 他のオプションを増加させる方が良いでしょう. -

- もし, システムが負荷の高いネットワーク用途に使われるなら, - NMBCLUSTERS を増やしたいと望むことでしょう. - この値は普通, 1024 から 4096 の間です. -

- NBUF パラメータも, 伝統的にシステムの規模を決めるのに使われます. - これは, システムがファイルシステムバッファを I/O のために - マッピングするのに使われる, KVA の大きさを決めるのに使われます. - このパラメータは, 統合バッファキャッシュには何の影響も与えません. - これは -3.x 以降のカーネルでは動的にチューニングされるため, - 普通は手作業で調整されるべきものではありません. - NBUF パラメータは, 指定しようとしないことを推奨します. - システムに選択させれば良いのです. - 小さすぎる値は極端に非効率的なファイルシステム動作を招き, - 一方で, 大きすぎる値は wired 状態のページを数多くつくりだし, - ページキューを枯渇させてしまうでしょう. -

- デフォルトでは, FreeBSD カーネルは最適化されていません. - カーネルコンフィグにある 'makeoption' ディレクティブを使って - 最適化とデバッグフラグをセットすることができます. - ただし, それによって得られる大きな(7MB 超の)カーネルを相手にするのが嫌なら, - -g オプションは使ってはいけません. -

makeoptions DEBUG="-g" -

makeoptions COPTFLAGS="-O2 -pipe" -

- sysctl は, 実行時にカーネルパラメータをチューニングする手段を提供しています. - しかし, 普通は sysctl 変数, 特に VM に関連したものを変更する必要が - 生じるようなことはありません. -

- 実行時の VM とシステムのチューニングは, 比較的単純です. - まず, 可能ならば UFS/FFS ファイルシステムで softupdates を使いましょう. - /usr/src/contrib/sys/softupdates/README のファイルに, - 設定方法に関する手順(と制限)について書かれています. -

- 次に, 十分なスワップを設定します. '作業'ディスクを含む - 各物理ディスク装置毎に一つずつ(最大四つまで)のスワップパーティションを - 設定すべきです. 少なくとも, メインメモリの 2 倍の - スワップ空間が望ましく, メモリがあまりない場合には, - おそらくそれより多く必要になります. - また, スワップパーティションのサイズは, - 後でパーティションをつくり直しする必要がないように - マシンに設定したいメモリ設定の最大値を基準に決めるべきでしょう. - もし, クラッシュダンプをとりたい場合, - スワップパーティションは最低限メインメモリと同じの大きさで, - /var/crash にはダンプを保持するのに十分な - 空きがなければなければなりません. -

- NFS 経由のスワップは, -4.x 以降のシステムで完全に動作しますが, - NFS サーバ側では, ページングがその負荷の主な原因になることに - 注意しなければなりません. - -Contributed by &a.dillon;. - 6 Feb 1999. -