diff --git a/ja/handbook/authors.sgml b/ja/handbook/authors.sgml index 987fde1935..69eb2341e9 100644 --- a/ja/handbook/authors.sgml +++ b/ja/handbook/authors.sgml @@ -1,642 +1,646 @@ - + - + "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> +"> + "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> diff --git a/ja/handbook/contrib.sgml b/ja/handbook/contrib.sgml index 787649ad16..b4104f6c4a 100644 --- a/ja/handbook/contrib.sgml +++ b/ja/handbook/contrib.sgml @@ -1,203 +1,204 @@ - + - + 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.guido; &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.billf; &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.tedm; &a.amurai; &a.markm; &a.max; &a.alex; &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.dima; &a.sada; &a.wosch; &a.ats; &a.jseger; &a.vanilla; &a.msmith; &a.des; &a.brian; &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.guido / 責任者: &a.peter 副責任者: &a.jdp 国際版 (暗号) 担当: &a.markm / &a.asami / &a.joerg / &a.phk; と &a.steve; / &a.wosch diff --git a/ja/handbook/eresources.sgml b/ja/handbook/eresources.sgml index 3b46fc3f73..0723ddd1ab 100644 --- a/ja/handbook/eresources.sgml +++ b/ja/handbook/eresources.sgml @@ -1,487 +1,517 @@ - + - + インターネット上のリソース

原作: &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-stable FreeBSD-stableの使用に関連する議論 freebsd-isp FreeBSDを用いているインターネットサービスプロバイダの話題 freebsd-jobs FreeBSD 関連の雇用機会に関する話題 freebsd-newbies FreeBSD 初心者ユーザの活動と議論 freebsd-questions ユーザからの質問 技術的なメーリングリスト: 以下のメーリングリストは, 技術的な 議論のためのものです. それらの利用や内容のためにしっかりとしたガイドラ インがあるので, これらのメーリングリストに入ったり, どれか一つにメール を送ったりする前には, それらのメーリングリストの憲章を注意深く読むべきで す. リスト 目的 ---------------------------------------------------------------------- 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のメーリングリストか ら削除され, そのメーリングリストへのさらなる投稿から締め出されるでしょ う. これらのルールや対策が必要なのは残念です. しかし,今日のインターネッ トはずいぶんいやらしい環境になっており, 一般の人々は, その(対策の)メカ ニズムがいかにもろいかという事すら認識する事が出来ていないと思われます.

道標 いかなる投稿記事もそのメーリングリストの基本的な憲章を守るべきで す. 例えば, そのメーリングリストが技術的な問題に関するものであ れば, 技術的な議論を含む投稿でなければなりません. 現在継続中の 不適切な憲章やフレイムは, 所属している全ての人に対してメーリングリスト の価値を下げてしまうだけですし, 許される行為ではないでしょう. とくに話題のない自由形式の議論に対してはメーリ ングリストが自由に認可されているので, かわりに使うべきでしょう. 2つのメーリングリストに送るはっきりとした明確な必要性が存在する 時, 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-stableの使用に関する議論 これは freebsd-stable のユーザ用のメーリングリストです. メーリングリストでの話題は, -stable で登場した新しい機能について, そ の新機能によってユーザに影響することについての注意, および -stable のままでいるために必要な手順についての説明を含みます. "stable" を走らせている人はこのメーリングリストに登録すべきです. これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. ドキュメンテーションプロジェクト このメーリングリストは、このプロジェクトやこのプロジェクトの 発行物に関する議論をするためのメーリングリストです。このメーリングリストに 参加しているメンバーを'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 の組み込み技術に関する議論. これは技術的なメーリングリストなので, 完全に技術的な内容を要求します. ユーザグループの調整のメーリングリスト これは, ローカルなユーザグループがお互いに, または, コアチームが指定した個人と問題を議論する, それぞれのローカルエリアのユーザグループからの調整人向けの メーリングリストです. このメーリングリストはユーザグループ間の ミーティングの概要やプロジェクトの調整に制限されるべきです. これはクローズドなメーリングリストです. 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. + - スロバキア. + - スロベニア. + - スペイン. + - 南アフリカ/1. + - 南アフリカ/2. + - スウェーデン. + - トルコ. + - ウクライナ/1. + - ウクライナ/2. + - イギリス. + - アメリカ/インディアナ. + - アメリカ/オレゴン. + - アメリカ/テキサス. diff --git a/ja/handbook/mail.sgml b/ja/handbook/mail.sgml index 67dce04443..49faf263b2 100644 --- a/ja/handbook/mail.sgml +++ b/ja/handbook/mail.sgml @@ -1,597 +1,597 @@ - + - + 電子メール

原作: &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/printing.sgml b/ja/handbook/printing.sgml index e73bf777ed..75e27e3836 100644 --- a/ja/handbook/printing.sgml +++ b/ja/handbook/printing.sgml @@ -1,4330 +1,4330 @@ - + - + プリンタの利用

著者 &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 + 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 + ( 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 + 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/submitters.sgml b/ja/handbook/submitters.sgml index 1c658d9184..f9cf3b8f12 100644 --- a/ja/handbook/submitters.sgml +++ b/ja/handbook/submitters.sgml @@ -1,1678 +1,1682 @@ - + - + FreeBSD への貢献

原作: &a.jkh;.

訳: &a.iwasaki;.27 April 1997.

あなたも何か FreeBSD のために貢献したくなりましたか? 素晴らしい! 私たちは常に支援を受ける用意がありますし, FreeBSD は生き残るためにユー ザベースの貢献に頼るようなシステムの一つです. あなたの貢献は 感謝されるだけではなく, FreeBSD が成長し続けるために極めて重要なものな のです!

一部の人達が言っているのとは逆に, 貢献を受け付けてもらうために腕利 きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はあ りません. FreeBSD プロジェクトの開発は, 多くのそして益々増加する世界中 の貢献者達によってなされており, 彼らの年齢, 専門技術分野は多岐に渡りま す. そして手の空いている人よりも成されるべき仕事の方が常に多いのです.

FreeBSD プロジェクトがカーネルや散在しているユーティリティよりも, オペレーティングシステム環境 (と, そのインストール) に対して責任を持つ ようになったため, 私たちの「TODO」リストはドキュメンテーション, ベータテ スト, 高度に専門化されたタイプのカーネル開発の好例を紹介するなど非常に 広い範囲のタスクに渡ります. あなたの技能レベルに関わらず, プロジェクト を支援できることが必ず何かあります!

FreeBSD 関連の事業に従事している商業団体が私たちにコンタクトすること も歓迎します. あなたの製品を (FreeBSD 上で) 動作させるには, 特別な拡張 が必要ではありませんか? あまりにも風変わりな要求でなければ, それを受け 入れる用意が私たちにあるとわかるはずです. 付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは, ある 面において共同して作業をすることができるでしょう. フリーソフトウェア界 は, ソフトウェアがそのライフサイクルを通してどのように開発され, 売られ, 保守されていくかについて, 既存の仮説に挑戦しています. 少なくとももう一 度考慮してみることを私たちは強くお奨めします. 何が必要?

次のタスクとサブプロジェクトのリストは, コアチームの色々な TODO リ ストと最近2ヶ月で集めたユーザリクエストを合わせたものです. 可能なとこ ろでは, 緊急度によってタスクがランクづけされています. もしここにあるタ スクの実行に興味があるのでしたら, コーディネータの名前をクリックしてメー ルを送ってください. もしコーディネータが決まっていなければ, あなたがボ ランティアしてみませんか? 優先度の高いタスク

次のタスクは通常, ひどく壊れているとか, とても必要とされている何かを 表しているため, 急務と考えられています: 第3ステージ・ブート問題. 全体コーディネーション: &a.hackers

userconfig (-c) の 第3ステージ・ブートへの移動. 第3ステージがディスクの BIOS ジオメトリの正確なマッピングを提供 できるように WinNT コンパチブルなドライブの追跡をおこなう. ファイルシステム問題. 全体コーディネーション: &a.fs MSDOS ファイルシステムの修正. 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 への提供). 優先度がさほど高くないタスク

次のタスクはやっておくべきではありますが, 特にさし迫っているわけで はありません: AFS (Andrew ファイルシステム) の FreeBSD への移植 コーディネータ: MCA サポート? これは続けるにしても止めてしまうにしても結論を出 すべき. 完全な LKM ベースのドライバのサポート / コンフィグレーションマネー ジャ.

ld なしですべての LKM の登録をおこなう方法を考案する. これは カーネル中にある種のシンボルテーブルを持たせることを意味します. 穏やかな方法でハードウェアを検知するコンフィグレーションマネージャ の作成 (第3ステージ・ブートの中に?). ハードウェアが必要とする LKM だけを 残す等. 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 そしてスピーカサービスを考慮する必要があります. 配置転換とシンボル空間操作をおこなう LKM ローダ機構からアクセス 可能な, カーネルのデータ空間内にあるエキスポートされたシンボル空間. こ のインタフェースの目的は, 必要な時にカーネルモジュールをロードして, 必 要がなくなればアンロードできる能力をサポートすることです. ネットワークカードと一緒に提供される 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 コマンドに利用されています. 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 Ari Suutari Ben Hutchinson Bernd Rosauer Bill Kish Brandon Gillespie &a.wlloyd Bob Wilcox Boyd Faulkner Brent J. Nordquist Brett Taylor Brian Clapper 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 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 Gerard Roudier Gilad Rom Ginga Kawaguti Glenn Johnson Greg Ungerer Hans Huebner Hans Petter Bieker Harlan Stenn Havard Eidnes Hideaki Ohmon Hidekazu Kuroki Hidetoshi Shimokawa Hideyuki Suzuki 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 Wilson Jimbo Bahooli Joao Carlos Mendes Luis Joe "Marcus" Clarke Joe Jih-Shian Lu Joel Sutton Johann Tonsing John Capo John Heidemann John Hood John Perry John Polstra John Rochester 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 Kurt Olsen Lars Köller Liang Tai-hwa Lucas James Luigi Rizzo Makoto MATSUSHITA Makoto WATANABE 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 Murray Stokely NAKAMURA Kazushi Naoki Hamada Narvi NIIMI Satoshi Nick Sayer Nicolas Souchu Nisha Talagala Nobuhiro Yasutomi Nobuyuki Koganemaru Noritaka Ishizumi Oliver Breuninger Oliver Fromme Oliver Laumann Oliver Oberdorf 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 Scot W. Hetzel Scott Blachowicz Scott A. Kenney Seigou TANIMURA Seiichirou Hiraoka 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 Suzuki Yoshiaki Tadashi Kumano Taguchi Takeshi Takashi Mega Takashi Uozu Takayuki Ariga Takeru NAIKI Ted Faber Terry Lambert Terry Lee - Terry Liao Tetsuya Furukawa Theo Deraadt Thomas König Þórður Ívarsson Tim Kientzle Tim Wilkinson Tom Jobbins Tom Samplonius Torbjorn Granlund Toshihiro Kanda Toshihiko SHIMOKAWA Trefor S. Ville Eerola Vladimir Kushnir Werner Griessl Wes Santee Wilko Bulte Wolfgang Stanglmeier Wu Ching-hong Yen-Shuo Su + Ying-Chieh Liao Yoshiaki Uchikawa Yoshiro Mihira Yukihiro Nakai Yusuke Nawano Yuval Yarom Yves Fonk 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