diff options
author | Satoshi Asami <asami@FreeBSD.org> | 1996-11-15 05:14:44 +0000 |
---|---|---|
committer | Satoshi Asami <asami@FreeBSD.org> | 1996-11-15 05:14:44 +0000 |
commit | 4ae0a12bcb1233829b2cfd2ae9898a66c1a60643 (patch) | |
tree | d0b0e92f4e7211964d434e90525eb7deb207b557 /share/doc | |
parent | 6a90d9750d93e0fc7c4e3cffdb8efb33a9135ccc (diff) |
Finally, the Japanese version of the handbook. Not in the parent
Makefile yet as John needs to figure out ${LANG}-based doc building.
Please put this in 2.2, or the translators are going to kill me. ;)
Submitted by: doc-jp@jp.freebsd.org (The FreeBSD Japanese Doc Team)
Reviewed by: doc-jp@jp.freebsd.org (mutual review)
Notes
Notes:
svn path=/cvs2svn/branches/DOC_JP/; revision=19754
Diffstat (limited to 'share/doc')
59 files changed, 25248 insertions, 0 deletions
diff --git a/share/doc/ja_JP.EUC/handbook/Makefile b/share/doc/ja_JP.EUC/handbook/Makefile new file mode 100644 index 000000000000..302fa0291f34 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/Makefile @@ -0,0 +1,22 @@ +# $Id$ +# Original revision: 1.17 +# The FreeBSD Japanese Documentation Project + +DOCDIR=${SHAREDIR}/doc/ja_JP.EUC +FORMATS= html roff + +SRCS= authors.sgml basics.sgml bibliography.sgml boothelp.sgml +SRCS+= booting.sgml contrib.sgml crypt.sgml ctm.sgml current.sgml +SRCS+= cyclades.sgml development.sgml dialup.sgml +SRCS+= diskless.sgml dma.sgml eresources.sgml esdi.sgml +SRCS+= firewalls.sgml glossary.sgml goals.sgml +SRCS+= handbook.sgml history.sgml hw.sgml install.sgml isdn.sgml kerberos.sgml +SRCS+= kernelconfig.sgml kerneldebug.sgml memoryuse.sgml +SRCS+= mirrors.sgml nfs.sgml nutshell.sgml pgpkeys.sgml policies.sgml +SRCS+= porting.sgml ports.sgml ppp.sgml printing.sgml quotas.sgml relnotes.sgml +SRCS+= routing.sgml scsi.sgml sections.sgml sio.sgml skey.sgml slipc.sgml +SRCS+= slips.sgml stable.sgml submitters.sgml sup.sgml synching.sgml +SRCS+= term.sgml troubleshooting.sgml userppp.sgml uart.sgml linuxemu.sgml +SRCS+= lists.sgml jcontrib.sgml jmembers.sgml + +.include <bsd.sgml.mk> diff --git a/share/doc/ja_JP.EUC/handbook/authors.sgml b/share/doc/ja_JP.EUC/handbook/authors.sgml new file mode 100644 index 000000000000..e133cae16577 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/authors.sgml @@ -0,0 +1,365 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.39 --> + +<!-- +Names and email address of contributing authors and CVS committers. +Use these entities when referencing people. Please note the use of single +and double quotes. +--> + +<!ENTITY a.asami "浅見 賢 + <tt><htmlurl url='mailto:asami@FreeBSD.ORG' + name='<asami@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.awebster "Andrew Webster + <tt><htmlurl url='mailto:awebster@dataradio.com' + name='<awebster@dataradio.com>'></tt>"> + +<!ENTITY a.davidg "David Greenman + <tt><htmlurl url='mailto:davidg@FreeBSD.ORG' + name='<davidg@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.dufault "Peter Dufault + <tt><htmlurl url='mailto:dufault@FreeBSD.ORG' + name='<dufault@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gclarkii "Gary Clark II + <tt><htmlurl url='mailto:gclarkii@FreeBSD.ORG' + name='<gclarkii@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gena "Gennady B. Sorokopud + <tt><htmlurl url='mailto:gena@NetVision.net.il' + name='<gena@NetVision.net.il>'></tt>"> + +<!ENTITY a.jhay "John Hay + <tt><htmlurl url='mailto:jhay@FreeBSD.ORG' + name='<jhay@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ghelmer "Guy Helmer + <tt><htmlurl url='mailto:ghelmer@alpha.dsu.edu' + name='<ghelmer@alpha.dsu.edu>'></tt>"> + +<!ENTITY a.smpatel "Sujal Patel + <tt><htmlurl url='mailto:smpatel@FreeBSD.ORG' + name='<smpatel@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.msmith "Michael Smith + <tt><htmlurl url='mailto:msmith@FreeBSD.ORG' + name='<msmith@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.scrappy "Marc G. Fournier + <tt><htmlurl url='mailto:scrappy@FreeBSD.ORG' + name='<scrappy@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.andreas "Andreas Klemm + <tt><htmlurl url='mailto:andreas@FreeBSD.ORG' + name='<andreas@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gpalmer "Gary Palmer + <tt><htmlurl url='mailto:gpalmer@FreeBSD.ORG' + name='<gpalmer@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gryphon "Coranth Gryphon + <tt><htmlurl url='mailto:gryphon@healer.com' + name='<gryphon@healer.com>'></tt>"> + +<!ENTITY a.jehamby "Jake Hamby + <tt><htmlurl url='mailto:jehamby@lightside.com' + name='<jehamby@lightside.com>'></tt>"> + +<!ENTITY a.jfieber "John Fieber + <tt><htmlurl url='mailto:jfieber@FreeBSD.ORG' + name='<jfieber@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jkh "Jordan K. Hubbard + <tt><htmlurl url='mailto:jkh@FreeBSD.ORG' + name='<jkh@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.joerg "Jörg Wunsch + <tt><htmlurl url='mailto:joerg@FreeBSD.ORG' + name='<joerg@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.imp "Warner Losh + <tt><htmlurl url='mailto:imp@FreeBSD.ORG' + name='<imp@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.john "John Lind + <tt><htmlurl url='mailto:john@starfire.MN.ORG' + name='<john@starfire.MN.ORG>'></tt>"> + +<!ENTITY a.kelly "Sean Kelly + <tt><htmlurl url='mailto:kelly@fsl.noaa.gov' + name='<kelly@fsl.noaa.gov>'></tt>"> + +<!ENTITY a.md "Mark Dapoz + <tt><htmlurl url='mailto:md@bsc.no' + name='<md@bsc.no>'></tt>"> + +<!ENTITY a.nik "Nik Clayton + <tt><htmlurl url='mailto:nik@blueberry.co.uk' + name='<nik@blueberry.co.uk>'></tt>"> + +<!ENTITY a.phk "Poul-Henning Kamp + <tt><htmlurl url='mailto:phk@FreeBSD.ORG' + name='<phk@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.paul "Paul Richards + <tt><htmlurl url='mailto:paul@FreeBSD.ORG' + name='<paul@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.rgrimes "Rodney Grimes + <tt><htmlurl url='mailto:rgrimes@FreeBSD.ORG' + name='<rgrimes@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.uhclem "Frank Durda IV + <tt><htmlurl url='mailto:uhclem@FreeBSD.ORG' + name='<uhclem@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.whiteside "Don Whiteside + <tt><htmlurl url='mailto:whiteside@acm.org' + name='<whiteside@acm.org>'></tt>"> + +<!ENTITY a.wilko "Wilko Bulte + <tt><htmlurl url='mailto:wilko@yedi.iaf.nl' + name='<wilko@yedi.iaf.nl>'></tt>"> + +<!ENTITY a.wollman "Garrett Wollman + <tt><htmlurl url='mailto:wollman@FreeBSD.ORG' + name='<wollman@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.peter "Peter Wemm + <tt><htmlurl url='mailto:peter@FreeBSD.ORG' + name='<peter@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.dyson "John Dyson + <tt><htmlurl url='mailto:dyson@FreeBSD.ORG' + name='<dyson@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ache "Andrey A. Chernov + <tt><htmlurl url='mailto:ache@FreeBSD.ORG' + name='<ache@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gibbs "Justin T. Gibbs + <tt><htmlurl url='mailto:gibbs@FreeBSD.ORG' + name='<gibbs@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.pst "Paul Traina + <tt><htmlurl url='mailto:pst@FreeBSD.ORG' + name='<pst@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.sos "Søren Schmidt + <tt><htmlurl url='mailto:sos@FreeBSD.ORG' + name='<sos@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.nate "Nate Williams + <tt><htmlurl url='mailto:nate@FreeBSD.ORG' + name='<nate@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.karl "Karl Strickland + <tt><htmlurl url='mailto:karl@FreeBSD.ORG' + name='<karl@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.csgr "Geoff Rehmet + <tt><htmlurl url='mailto:csgr@FreeBSD.ORG' + name='<csgr@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ats "Andreas Schulz + <tt><htmlurl url='mailto:ats@FreeBSD.ORG' + name='<ats@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.rich "Rich Murphey + <tt><htmlurl url='mailto:rich@FreeBSD.ORG' + name='<rich@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jvh "Johannes Helander + <tt><htmlurl url='mailto:jvh@FreeBSD.ORG' + name='<jvh@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.proven "Chris Provenzano + <tt><htmlurl url='mailto:proven@FreeBSD.ORG' + name='<proven@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.guido "Guido van Rooij + <tt><htmlurl url='mailto:guido@FreeBSD.ORG' + name='<guido@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.hsu "Jeffrey Hsu + <tt><htmlurl url='mailto:hsu@FreeBSD.ORG' + name='<hsu@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.bde "Bruce Evans + <tt><htmlurl url='mailto:bde@FreeBSD.ORG' + name='<bde@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.sef "Sean Eric Fagan + <tt><htmlurl url='mailto:sef@FreeBSD.ORG' + name='<sef@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.se "Stefan Esser + <tt><htmlurl url='mailto:se@FreeBSD.ORG' + name='<se@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.torstenb "Torsten Blum + <tt><htmlurl url='mailto:torstenb@FreeBSD.ORG' + name='<torstenb@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.julian "Julian Elischer + <tt><htmlurl url='mailto:julian@FreeBSD.ORG' + name='<julian@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.dfr "Doug Rabson + <tt><htmlurl url='mailto:dfr@FreeBSD.ORG' + name='<dfr@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.martin "Martin Renters + <tt><htmlurl url='mailto:martin@FreeBSD.ORG' + name='<martin@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.swallace "Steven Wallace + <tt><htmlurl url='mailto:swallace@FreeBSD.ORG' + name='<swallace@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ljo "L Jonas Olsson + <tt><htmlurl url='mailto:ljo@FreeBSD.ORG' + name='<ljo@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.dima "Dima Ruban + <tt><htmlurl url='mailto:dima@FreeBSD.ORG' + name='<dima@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.lars "Lars Fredriksen + <tt><htmlurl url='mailto:lars@FreeBSD.ORG' + name='<lars@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jmz "Jean-Marc Zucconi + <tt><htmlurl url='mailto:jmz@FreeBSD.ORG' + name='<jmz@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ugen "Ugen J.S.Antsilevich + <tt><htmlurl url='mailto:ugen@FreeBSD.ORG' + name='<ugen@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.wpaul "Bill Paul + <tt><htmlurl url='mailto:wpaul@FreeBSD.ORG' + name='<wpaul@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.amurai "Atsushi Murai + <tt><htmlurl url='mailto:amurai@FreeBSD.ORG' + name='<amurai@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jmacd "Joshua Peck Macdonald + <tt><htmlurl url='mailto:jmacd@FreeBSD.ORG' + name='<jmacd@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.olah "Andras Olah + <tt><htmlurl url='mailto:olah@FreeBSD.ORG' + name='<olah@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.roberto "Ollivier Robert + <tt><htmlurl url='mailto:roberto@FreeBSD.ORG' + name='<roberto@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.markm "Mark Murray + <tt><htmlurl url='mailto:markm@FreeBSD.ORG' + name='<markm@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.gj "Gary Jennejohn + <tt><htmlurl url='mailto:gj@FreeBSD.ORG' + name='<gj@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.mpp "Mike Pritchard + <tt><htmlurl url='mailto:mpp@FreeBSD.ORG' + name='<mpp@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.smace "Scott Mace + <tt><htmlurl url='mailto:smace@FreeBSD.ORG' + name='<smace@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.erich "Eric L. Hernes + <tt><htmlurl url='mailto:erich@FreeBSD.ORG' + name='<erich@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.graichen "Thomas Graichen + <tt><htmlurl url='mailto:graichen@FreeBSD.ORG' + name='<graichen@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.adam "Adam David + <tt><htmlurl url='mailto:adam@FreeBSD.ORG' + name='<adam@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.tg "Thomas Gellekum + <tt><htmlurl url='mailto:tg@FreeBSD.ORG' + name='<tg@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jdp "John Polstra + <tt><htmlurl url='mailto:jdp@FreeBSD.ORG' + name='<jdp@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jlrobin "James L. Robinson + <tt><htmlurl url='mailto:jlrobin@FreeBSD.ORG' + name='<jlrobin@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jmb "Jonathan M. Bresler + <tt><htmlurl url='mailto:jmb@FreeBSD.ORG' + name='<jmb@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.wosch "Wolfram Schneider + <tt><htmlurl url='mailto:wosch@FreeBSD.ORG' + name='<wosch@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.fenner "Bill Fenner + <tt><htmlurl url='mailto:fenner@FreeBSD.ORG' + name='<fenner@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.brian "Brian N. Handy + <tt><htmlurl url='mailto:handy@sxt4.physics.montana.edu' + name='<handy@sxt4.physics.montana.edu>'></tt>"> + +<!ENTITY a.chuck "Chuck Robey + <tt><htmlurl url='mailto:chuckr@glue.umd.edu' + name='<chuckr@glue.umd.edu>'></tt>"> + +<!ENTITY a.jraynard "James Raynard + <tt><htmlurl url='mailto:jraynard@freebsd.org' + name='<jraynard@freebsd.org>'></tt>"> + +<!ENTITY a.alex "Alex Nash + <tt><htmlurl url='mailto:alex@freebsd.org' + name='<alex@freebsd.org>'></tt>"> + +<!ENTITY a.hm "Hellmuth Michaelis + <tt><htmlurl url='mailto:hm@kts.org' + name='<hm@kts.org>'></tt>"> + +<!ENTITY a.rhuff "Robert Huff + <tt><htmlurl url='mailto:rhuff@cybercom.net' + name='<rhuff@cybercom.net>'></tt>"> + +<!ENTITY a.chuckr "Chuck Robey + <tt><htmlurl url='mailto:chuckr@FreeBSD.ORG' + name='<chuckr@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.jfitz "James FitzGibbon + <tt><htmlurl url='mailto:james@nexis.net' + name='<james@nexis.net>'></tt>"> + +<!ENTITY a.max "中根 雅文 + <tt><htmlurl url='mailto:max@FreeBSD.ORG' + name='<max@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.fsmp "Steve Passe + <tt><htmlurl url='mailto:fsmp@FreeBSD.ORG' + name='<fsmp@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.steve "Steve Price + <tt><htmlurl url='mailto:steve@FreeBSD.ORG' + name='<steve@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.wlloyd "Bill Lloyd + <tt><htmlurl url='mailto:wlloyd@mpd.ca' + name='<wlloyd@mpd.ca>'></tt>"> + +<!ENTITY a.obrien "David O'Brien + <tt><htmlurl url='mailto:obrien@cs.ucdavis.edu' + name='<obrien@cs.ucdavis.edu>'></tt>"> diff --git a/share/doc/ja_JP.EUC/handbook/basics.sgml b/share/doc/ja_JP.EUC/handbook/basics.sgml new file mode 100644 index 000000000000..75f4d6a75d10 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/basics.sgml @@ -0,0 +1,93 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.7 --> + +<chapt><heading>Unix の基礎知識<label id="basics"></heading> + +<p><em>訳: &a.nakai;<newline>12 October 1996.</em> + + <sect> + <heading>オンラインマニュアル<label id="basics:man"></heading> + + <p>FreeBSD についてのもっとも包括的なドキュメントは + <em>マニュアルページ</em>の形式になっているものです. + FreeBSD システム上のほとんどすべてのプログラムには基本的な + 操作方法とさまざまな引数を説明しているリファレンスマニュアル + がついています。これらのマニュアルは + <tt><bf>man</bf></tt> コマンドで見ることができます。 + <tt><bf>man</bf></tt> コマンドの使い方は簡単です : + <tscreen> + <bf>man</bf> <it>コマンド名</it> + </tscreen> + <it>コマンド名</it>のところには知りたいコマンドの名前を入れます。 + たとえば、<tt><bf>ls</bf></tt> コマンドについて知りたい場合には + 次のように入力します : + <tscreen> + % <bf>man ls</bf> + </tscreen> + + <p>オンラインマニュアルは数字のついたセクションに分けられています : + <enum> + <item>ユーザコマンド</item> + <item>システムコールとエラー番号</item> + <item>C のライブラリ関数</item> + <item>デバイスドライバ</item> + <item>ファイル形式</item> + <item>ゲームとほかのお楽しみ</item> + <item>そのほかの情報</item> + <item>システムの管理と操作のためのコマンド</item> + </enum> + 場合によっては, 同じことがらでもオンラインマニュアルでは + 複数のセクションに記載されていることがあります。たとえば、 + <tt><bf>chmod</bf></tt> ユーザコマンドと <tt><bf>chmod()</bf></tt> + システムコールがあります。この場合、<tt><bf>man</bf></tt> + コマンドでどちらを参照したいかをセクションで指定することが + できます : + <tscreen> + % <bf>man 1 chmod</bf> + </tscreen> + とすればユーザコマンドとしての <tt><bf>chmod</bf></tt> + のマニュアルページが表示されます。オンラインマニュアル上の特定の + セクションへの参照は通常、書かれているドキュメントの + 括弧の中に示されています。ですから、<tt><bf>chmod(1)</bf></tt> は + <tt><bf>chmod</bf></tt> ユーザコマンドを、 + <tt><bf>chmod(2)</bf></tt> はシステムコールの方を示しています。 + + <p>コマンドの名前を知っていて, 単純にその使い方が分かる場合は + よいのですが、もしコマンドの名前を思い出せない場合には + どうしたらいいのでしょう? <tt><bf>man</bf></tt> に + <tt><bf>-k</bf></tt> スイッチをつければ, + コマンドデスクリプション中のキーワードから検索することができます : + <tscreen> + % <bf>man -k mail</bf> + </tscreen> + このコマンドを使うことで, 「mail」というキーワードを含むコマンドの + 一覧を参照することができます。実を言うと <tt><bf>apropos</bf></tt> + コマンドを使うのと機能的には同じです。 + + <p>それから、<tt>/usr/bin</tt> にある優れたコマンドすべてを目にしても、 + それらの大半がどういった働きをするのかまったく見当もつかないときは + どうしたらよいでしょう。単純に、 + <tscreen> + % <bf>cd /usr/bin; man -f *</bf> + </tscreen> + あるいは同じ働きをする + <tscreen> + % <bf>cd /usr/bin; whatis *</bf> + </tscreen> + としましょう。 + + <sect> + <heading>GNU の Info ファイル<label id="basics:info"></heading> + + <p>FreeBSD には Free Software Foundation (FSF) によるアプリケーションや + ユーティリティがたくさんあります。こうしたプログラムには + manページに加えて、<em>info</em> ファイルと呼ばれる + ハイパーテキスト形式のドキュメントが付属になっていて、<tt>info</tt> + コマンドや、<tt>emacs</tt> をインストールしているなら + <tt>emacs</tt> の info モードで見ることができます。 + + <tt>info(1)</tt> コマンドを使うには, 単にこう入力します。 + <tscreen>% <bf>info</bf></tscreen> おおまかなイントロダクションを + 見るには、<tt><bf>h</bf></tt> と入力します。 + クイックコマンドリファレンスは <tt><bf>?</bf></tt> とします。 diff --git a/share/doc/ja_JP.EUC/handbook/bibliography.sgml b/share/doc/ja_JP.EUC/handbook/bibliography.sgml new file mode 100644 index 000000000000..f5a6bfd4033e --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/bibliography.sgml @@ -0,0 +1,265 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.14 --> + + <chapt> + <heading>参考図書<label id="bibliography"></heading> + + <p><em>訳: &a.nakai;<newline>12 October 1996.</em> + + <p>FreeBSD オペレーティングシステムの個々の部分については + マニュアルページで定義のような説明がなされていますが, + それらにはどうやってその部分どうしをつなぎあわせて + オペレーティングシステム全体を円滑に動作させるかを + 説明していないという欠点がよく指摘されます. + それを補うためには UNIX システム管理についてのよい本や, + すぐれた利用者向けのマニュアルが欠かせません. + + <sect> + <heading>利用者向けのガイド</heading> + + <p><itemize> + <item>Computer Systems Research Group, UC Berkeley. + <sl>4.4BSD User's Reference Manual</sl>. + O'Reilly & Associates, Inc., 1994. + <newline>ISBN 1-56592-075-9</item> + + <item>Computer Systems Research Group, UC Berkeley. + <sl>4.4BSD User's Supplementary Documents</sl>. + O'Reilly & Associates, Inc., 1994. + <newline>ISBN 1-56592-076-7</item> + + <item><sl>UNIX in a Nutshell</sl>. + O'Reilly & Associates, Inc., 1990. + <newline>ISBN 093717520X</item> + + <item><htmlurl url="http://www-wks.acs.ohio-state.edu/" + name="Ohio State University"> has written + a <htmlurl + url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html" + name="UNIX Introductory Course"> which is available online + in HTML and postscript format.</item> + </itemize> + + <sect> + <heading>管理者向けのガイド</heading> + + <p><itemize> + + <item>Albitz, Paul and Liu, Cricket. <em>DNS and + BIND</em>. O'Reilly & Associates, Inc., 1993. + <newline>ISBN 1-56592-010-4 </item> + + <item>Computer Systems Research Group, UC Berkeley. + <sl>4.4BSD System Manager's Manual</sl>. + O'Reilly & Associates, Inc., 1994. + <newline>ISBN 1-56592-080-5</item> + + <item>Costales, Brian, et al. + <em>Sendmail</em>. O'Reilly & + Associates, Inc., 1993. <newline>ISBN 1-56592-056-2 </item> + + <item>Frisch, Æleen. <em>Essential System + Administration</em>. O'Reilly & + Associates, Inc., 1993. <newline>ISBN 0-937175-80-3 </item> + + <item>Hunt, Craig. <em>TCP/IP Network Administration</em>. + O'Reilly & Associates, Inc., 1992. + <newline>ISBN 0-937175-82-X</item> + + <item>Nemeth, Evi. <em>UNIX System Administration + Handbook</em>. 2nd ed. Prentice Hall, 1995. + <newline>ISBN 0131510517</item> + + </itemize> + + + + <sect> + <heading>プログラマ向けのガイド</heading> + + <p><itemize> + + <item>Asente, Paul. <em>X Window System + Toolkit</em>. Digital Press. + <newline>ISBN 1-55558-051-3</item> + + <item>Computer Systems Research Group, UC Berkeley. + <sl>4.4BSD Programmer's Reference Manual</sl>. + O'Reilly & Associates, Inc., 1994. + <newline>ISBN 1-56592-078-3</item> + + <item>Computer Systems Research Group, UC Berkeley. + <sl>4.4BSD Programmer's Supplementary Documents</sl>. + O'Reilly & Associates, Inc., 1994. + <newline>ISBN 1-56592-079-1</item> + + <item>Ellis, Margaret A. and Stroustrup, + Bjarne. <em>The Annotated C++ Reference + Manual</em>. Addison-Wesley, 1990. + <newline>ISBN 0-201-51459-1</item> + + <item>Harbison, Samuel P. and Steele, Guy + L. Jr. <em>C: A Reference Manual</em>. 4rd ed. Prentice + Hall, 1995. <newline>ISBN 0-13-326224-3</item> + + <item>Kernighan, Brian and Dennis M. Ritchie. + <em>The C Programming Language.</em>. + PTR Prentice Hall, 1988. + <newline>ISBN 0-13-110362-9</item> + + <item>Plauger, P. J. <em>The Standard C + Library</em>. Prentice Hall, 1992. + <newline>ISBN 0-13-131509-9</item> + + <item>Stevens, W. Richard. <em>Advanced + Programming in the UNIX Environment</em>. + Reading, Mass. : Addison-Wesley, 1992 + <newline>ISBN 0-201-56317-7</item> + + <item>Stevens, W. Richard. <em>UNIX Network + Programming</em>. PTR Prentice Hall, 1990. + <newline>ISBN 0-13-949876-1</item> + + <item>Wells, Bill. "Writing Serial Drivers for UNIX". + <em>Dr. Dobb's Journal</em>. 19(15), December + 1994. pp68-71, 97-99.</item> + + </itemize> + + <sect> + <heading>オペレーティングシステム内部</heading> + + <p><itemize> + + <item>Jolitz, William. "Porting UNIX to the + 386". <em>Dr. Dobb's Journal</em>. January + 1991-July 1992.</item> + + <item>Leffler, Samuel J., Marshall Kirk McKusick, + Michael J Karels and John Quarterman <em>The Design and + Implementation of the 4.3BSD UNIX Operating + System</em>. Reading, Mass. : Addison-Wesley, 1989. + <newline>ISBN 0-201-06196-1</item> + + <item>Leffler, Samuel J., Marshall Kirk McKusick, + <em>The Design and Implementation of the 4.3BSD + UNIX Operating System: Answer Book</em>. + Reading, Mass. : Addison-Wesley, 1991. + <newline>ISBN 0-201-54629-9</item> + + <item>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, + and John Quarterman. <em>The Design and + Implementation of the 4.4BSD Operating + System</em>. Reading, Mass. : Addison-Wesley, 1996. + <newline>ISBN 0-201-54979-4</item> + + <item>Stevens, W. Richard. <em>TCP/IP Illustrated, + Volume 1: The Protocols</em>. + Reading, Mass. : Addison-Wesley, 1996. + <newline>ISBN 0-201-63346-9</item> + + <item>Stevens, W. Richard. <em>TCP/IP Illustrated, + Volume 3: TCP for Transactions, HTTP, NNTP + and the UNIX Domain Protocols</em>. + Reading, Mass. : Addison-Wesley, 1996. + <newline>ISBN 0-201-63495-3</item> + + <item>Wright, Gary R. and W. Richard Stevens. + <em>TCP/IP Illustrated, Volume 2: + The Implementation</em>. + Reading, Mass. : Addison-Wesley, 1995. + <newline>ISBN 0-201-63354-X</item> + + </itemize> + + + <sect> + <heading>セキュリティの参考資料</heading> + + <p><itemize> + + <item>Cheswick, William R. and Steven M. Bellovin. + <em>Firewalls and Internal Security: + Repelling the Wily Hacker</em>. + Reading, Mass. : Addison-Wesley, 1995. + <newline>ISBN 1-201-63357-4 </item> + + <item>Garfinkel, Simson and Gene Spafford. + <em>Practical UNIX Security</em>. 2nd Ed. + O'Reilly & Associates, Inc., 1996. + <newline>ISBN 1-56592-148-8 </item> + + </itemize> + + <sect> + <heading>ハードウェアの参考資料</heading> + + <p><itemize> + + <item>Anderson, Don and Tom Shanley. + <em>Pentium Processor System Architecture</em>. + 2nd ed. Reading, Mass. : Addison-Wesley, 1995. + <newline>ISBN 0-201-40992-5</item> + + <item>Ferraro, Richard F. <em>Programmer's Guide + to the EGA, VGA, and Super VGA Cards</em>. + 3rd ed. Reading, Mass. : Addison-Wesley, 1995. + <newline>ISBN 0-201-62490-7</item> + + <item>Shanley, Tom. <em>80486 System + Architecture</em>. 3rd ed. Reading, Mass. : + Addison-Wesley, 1995. <newline>ISBN + 0-201-40994-1</item> + + <item>Shanley, Tom. <em>ISA System + Architecture</em>. 3rd ed. Reading, Mass. : + Addison-Wesley, 1995. + <newline>ISBN 0-201-40996-8</item> + + <item>Shanley, Tom. <em>PCI System + Architecture</em>. 3rd ed. Reading, Mass. : + Addison-Wesley, 1995. <newline>ISBN + 0-201-40993-3</item> + + <item>Van Gilluwe, Frank. <em>The Undocumented PC</em>. + Reading, Mass: Addison-Wesley Pub. Co., 1994. + <newline>ISBN 0-201-62277-7</item> + + </itemize> + + <sect> + <heading>UNIX の歴史</heading> + + <p><itemize> + + <item>Saulus, Peter H. <em>A quarter century of UNIX</em>. + Addison-Wesley Publishing Company, Inc., 1994. + <newline>ISBN 0-201-54777-5</item> + + <item>Simon Garfinkel, Daniel Weise, Steven Strassmann. + <em>The UNIX-HATERS Handbook</em>. + IDG Books Worldwide, Inc., 1994. + <newline>ISBN 1-56884-203-1</item> + + <item>Don Libes, Sandy Ressler <em>Life with UNIX</em> - special + edition. Prentice-Hall, Inc., 1989. + <newline>ISBN 0-13-536657-7</item> + + </itemize> + + <sect> + <heading>雑誌とジャーナル</heading> + + <p><itemize> + + <item><em>The C/C++ Users Journal</em>. R&D Publications + Inc. ISSN 1075-2838</item> + + <item><em>Sys Admin - The Journal for UNIX System + Administrators</em> Miller Freeman, Inc., ISSN 1061-2688</item> + + </itemize> + + </sect> + diff --git a/share/doc/ja_JP.EUC/handbook/boothelp.sgml b/share/doc/ja_JP.EUC/handbook/boothelp.sgml new file mode 100644 index 000000000000..3a212d00647d --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/boothelp.sgml @@ -0,0 +1,51 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.2 --> + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!-- Conditional flags for this version of the document --> +<!ENTITY % boothelp.only "INCLUDE"> +<!ENTITY % handbook.only "IGNORE"> + +<!-- Entity shorthand for authors' names and email addresses --> +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +<!-- Entity definitions for all the parts --> +<!ENTITY % sections SYSTEM "sections.sgml"> +%sections; + +]> + +<linuxdoc> + <book> + + <title>FreeBSD のインストール + <author> + <name></name> + </author> + + <abstract>FreeBSD の世界へようこそ! このガイドは FreeBSD の + インストール方法について説明しています. + 矢印キーの<bf>上</bf>と<bf>下</bf>を使って + このガイドの読みたいセクションに移動し, + <bf>右矢印キー</bf>か<bf>リターンキー</bf>を使ってお読みください. + 一度読んだことのあるセクションは<bf>左矢印キー</bf>で + 戻って読みなおすことができます. + </abstract> + + <chapt><heading>一般的な情報</heading> + &nutshell; + &history; + &relnotes; + + &install; + &troubleshooting; + &bibliography; + &eresources; + &hw; + &contrib; + + </book> +</linuxdoc> diff --git a/share/doc/ja_JP.EUC/handbook/booting.sgml b/share/doc/ja_JP.EUC/handbook/booting.sgml new file mode 100644 index 000000000000..0c1034cb26cc --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/booting.sgml @@ -0,0 +1,183 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.11 --> + +<!-- This is a SGML version of the text on FreeBSD boot procedures + made by Poul-Henning Kamp <phk@FreeBSD.ORG> + + This conversion has been made by Ollivier Robert. + + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> + + <article> + + <title>ブートの概要</title> + <author>Poul-Henning Kamp, <tt/<phk@login.dknet.dk>/</author> + <date>v1.1, April 26th</date> + <abstract> + FreeBSDのブートには基本的に3つの段階があります: + カーネルの読み込み、ルートのファイルシステムの決定、そして + ユーザ領域にあるものの初期化です。このことは下に述べる + いくつかの興味深い可能性につながっているのです... + </abstract> + + <toc> +--> + + <sect><heading>FreeBSDのブート処理の流れ<label id="booting"></heading> + + <p><em>原作: &a.phk;. v1.1, April 26th.</em> + <p><em>訳: &a.nakai; September 6 1996.</em> + + FreeBSDのブートには基本的に3つの段階があります: + カーネルの読み込み, ルートのファイルシステムの決定, そして + ユーザ領域にあるものの初期化です. このことは下に述べる + いくつかの興味深い可能性につながっています。 + + <sect1><heading>カーネルの読み込み</heading> + <p> + 現在, カーネルの読み込みには基本的に下に挙げる3つの方法が + あります: + これらはカーネルが次に何をしたらいいのかという情報をカーネルに + 与えます. + + <descrip> + <tag>Biosboot</tag> + + Biosbootは「ブートブロック」に相当するもので, 2つのファイル + から構成されており, フロッピーディスクやハードディスクのブートを + 開始する側の 8K バイトにインストールされています。 + + Biosboot は FreeBSD のファイルシステムからカーネルを + 読み込むことができます. + + <tag>Dosboot</tag> + + Dosbootは DI. Christian Gusenbauerによって書かれましたが, + 不幸にしてこの場合には、コードのある一部分がマイクロソフトの + コンパイラ向けに書かれているため、FreeBSD 単体ではコンパイル + することはできません. + + Dosboot は MS-DOS のファイルから、またはディスクの + FreeBSD ファイルシステムのパーティションからカーネルをブートします。 + これは MS-DOS システムのハイメモリ領域に潜んでいるメモリマネージャ等の + さまざまな怪しい代物とメモリの取り合いをして、なんとかブートしています. + + <tag>Netboot</tag> + + Netboot はサポートされているイーサネットカードを検出し、 + BOOTP や TFTP、NFS を使ってブートするカーネルを探そうとします。 + +</descrip> + + + <sect1><heading>ルートファイルシステムの決定</heading> + <p> + カーネルが読み込まれ、ブートプログラムがカーネルに移行したら, + カーネルは自身の初期化をし, どんなハードウェアが組み込まれいるか + を決定し、それからルートファイルシステムを探さなくてはなりません。 + + 現在サポートされているルートファイルシステムは次の通りです : + +<descrip> + <tag>UFS</tag> + + UFS は, もっとも一般的なタイプのルートシステムです。 + フロッピーディスクやハードディスク上に存在します。 + + <tag>MSDOS</tag> + + 技術的に可能ですが、あまり有用ではありません。なぜならば、 + ``FAT''ファイルシステムではリンクやデバイスノードなどの + ``UNIX 主義''を実現できないからです。 + + <tag>MFS</tag> + + MFS はカーネル内部に組み込みになっている UFS + ファイルシステムです。つまり MFS を機能させるのに + ディスクやフロッピーディスクなどのハードウェアは + 必要ではありません. + + + <tag>CD9660</tag> + + CD9660 は CD-ROM をルートファイルシステムに使用したものです。 + + <tag>NFS</tag> + + これはルートシステムにファイルサーバを使用していて、基本的に + ディスクレスのマシンのためにあります。 +</descrip> + + + <sect1><heading>ユーザ領域にあるものの初期化</heading> + <p> + + ユーザ領域で動作させるようにするために、カーネルが初期化を終えると、 + カーネルは``<tt/pid == 1/''のプロセスを生成し、ルートファイルシステム + 上のプログラムを実行します。このプログラムは通常``<tt>/sbin/init</tt>'' + です。 + + /sbin/init を別なプログラム置き換えてしまうことは可能ですが、そのプロセス + には以下のような制約があります: + + pid が 1 のプロセスには stdin/stdout/stderr は割り当てられていませんので、 + プログラムは自分でこれらをオープンしないとなりません。 + このプロセスが終了するとカーネルはパニックメッセージを表示して + 停止します。 + また、このプロセスに対するシグナル処理は特殊です。 + + この例として、インストール用のフロッピーディスクにある + ``<tt>/stand/sysinstall</tt>''があります。 + + + <sect1><heading>興味深い連係</heading> + <p> + カーネルを MFS でブートするのには次のような特別の<tt>/sbin/init</tt> + を使います。 + <descrip> + <tag/A -- DOS を使う場合/ + <itemize> + <item><tt/C:/ を <tt>/C:</tt> にマウントします。 + <item><tt>C:/freebsd.fs</tt> を <tt>/dev/vn0</tt> にアタッチします。 + <item><tt>/dev/vn0</tt> を <tt>/rootfs</tt> にマウントします。 + <item>シンボリックリンクを作ります。<newline> + <tt>/rootfs/bin -> /bin</tt><newline> + <tt>/rootfs/etc -> /etc</tt><newline> + <tt>/rootfs/sbin -> /sbin</tt><newline> + (etc...)<newline> + </itemize> + + これでハードディスクのパーティションを切り直さずに FreeBSD を + 使うことができます。 + + <tag/B -- NFS を使う場合/ + + NFS は<tt>サーバ:˜you/FreeBSD</tt> を + <tt>/nfs</tt>にマウントし、ルートディレクトリを <tt>/nfs</tt> に変更して, + そこで<tt>/sbin/init</tt>を実行します。 + + これで FreeBSD をディスクレスで実行できますが、NFS サーバを + コントロールできないままです... + + <tag/C -- X-server を起動する場合/ + + これで Xターミナルが手に入りました. これは, これでハードウェア + に費用を割いたりするよりはいい, と上司が主張した, Windows で + 動作する遅くて何がおこなわれているのか見ることができるような + すすけた X Window エミュレータなんかよりよいものです. + + <tag/D -- テープを使う場合/ + <tt>/dev/rwd0</tt> のコピーを取って、リモートにあるテープ + ステーションやファイルサーバに書き込んでください。 + + これで一年前に取っておくべきだったバックアップをやっと + 取ることができました。 + + <tag>E -- ファイアウォール/Web サーバとして動作させる場合 (私の知っている範囲で...)</tag> + + これは特に面白いもので、書き込み禁止のフロッピーディスクから + ブートができて、ルートのファイルシステムに書き込むことができる + というものです。 + </descrip> diff --git a/share/doc/ja_JP.EUC/handbook/contrib.sgml b/share/doc/ja_JP.EUC/handbook/contrib.sgml new file mode 100644 index 000000000000..212d324cc064 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/contrib.sgml @@ -0,0 +1,430 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.150 --> + +<!-- Please try to keep the file 'avail' (from CVSROOT) + in sync with the list of FreeBSD Developers --> + + +<chapt><heading>FreeBSD へのコントリビュータ<label id="contrib"></heading> + +<p><em>原作: 不明</em> +<p><em>訳: &a.hanai;<newline>28 August 1996.</em> + + <sect><heading>BSD派生ソフトウェアへのコントリビュータ</heading> + + <p>このソフトウェアは最初は William F. Jolitz の 386BSD release 0.1 + から派生しましたが, オリジナルの 386BSD に固有のコードはほとんど + 残っていません. このソフトウェアは基本的にはカリフォルニア大学 + バークレイ校の Computer Science Research Group (CSRG) とその共同研究者 + たちによる 4.4BSD-Lite リリースから再実装されました. + + また, NetBSD の一部も FreeBSD に取り込まれています. したがって私たちは + NetBSD へ貢献した人々すべてに感謝します.二つのグループの関係が + ギクシャクすることも時にはありますが, 私たちは基本的には共に同じ目的 + を持っています. すなわち, 人々のコンピュータにもっと BSD をベースに + したオペレーティングシステムを! ということです. 私たちは NetBSD + の努力が常に成功してほしいと思っています. + + <sect><heading>ハードウェアのコントリビュータ</heading> + + <p>特に Walnut Creek CDROM にはネットワークへのアクセス及び他のハードウェア + リソースの寄贈はいうまでもなく, 開発に使うための Pentium P5-90 と + 486/DX2-66 EISA/VL システムを提供してくれたことについて感謝しています. + 彼らのサポートがなければこのリリースをおこなうことは不可能であったで + しょう. + + TRW Financial Sysytems社は, PC 130台,三つの 68 GB のファイルサーバ + 12のイーサネット, ディスクレスコードのデバッグをおこなうための + 二つのルータ及び ATM スイッチを提供してくれました. + また, かれらは 2, 3人の FreeBSD ハッカーを雇って, FreeBSD に専念させて + くれています. ありがとう! + + また, 東芝 XM3401B CDROM ドライブ を寄付してくれた Dermot McDonnell + に感謝します. その CDROM ドライブはもっとも役に立ちました. + + 実験的な仕事としてフロッピーテープストリーマを寄付してくれた + &a.chuck; に感謝します. + + <tt>wt</tt>ドライバを改良するために Wangtek と Archive の + QIC-02 テープドライブを提供してくれた Larry Altneu <larry@ALR.COM> + と &a.wilko; に感謝します. + + このプロジェクトへ 2.88 MB のフロッピードライブを提供してくれた + Ernst Winter <ewinter@lobo.muc.de> に感謝します. + うまくいけば, これでフロッピーディスクドライバを書き直すための + プレッシャーが増えるでしょう. ;-) + + また, FreeBSDプロジェクトへ資金やサービスを提供してくれた人々の + リストは <ref id="donors" name="寄贈者ギャラリー"> をご覧ください. + + <sect><heading>FreeBSD コアチーム<label id="contrib:core"></heading> + + <p>(姓でアルファベット順): + + <itemize> + <item>&a.asami + <item>&a.ache + <item>&a.dyson + <item>&a.bde + <item>&a.gibbs + <item>&a.davidg + <item>&a.jkh + <item>&a.phk + <item>&a.rich + <item>&a.gpalmer + <item>&a.sos + <item>&a.peter + <item>&a.wollman + <item>&a.joerg + </itemize> + + <sect><heading>FreeBSD の開発者たち<label id="contrib:committers"></heading> + + <p>(CVSの)commitする権利を持っていて, FreeBSD のソースツリーについて + 作業をおこなっている人々がいます. すべてのコアチームのメンバはまた + 開発者でもあります. + + <itemize> + <item>&a.torstenb; + <item>&a.gclarkii; + <item>&a.adam; + <item>&a.dufault; + <item>&a.uhclem; + <item>&a.julian; + <item>&a.sef; + <item>&a.se; + <item>&a.fenner; + <item>&a.jfieber; + <item>&a.jfitz; + <item>&a.scrappy; + <item>&a.jhay; + <item>&a.lars; + <item>&a.tg; + <item>&a.graichen; + <item>&a.rgrimes; + <item>&a.hsu; + <item>&a.ugen; + <item>&a.gj; + <item>&a.andreas; + <item>&a.imp; + <item>&a.ljo; + <item>&a.erich; + <item>&a.smace; + <item>&a.amurai; + <item>&a.markm; + <item>&a.max; + <item>&a.alex; + <item>&a.obrien; + <item>&a.wpaul; + <item>&a.smpatel; + <item>&a.jmacd; + <item>&a.jdp; + <item>&a.mpp; + <item>&a.dfr; + <item>&a.csgr; + <item>&a.martin; + <item>&a.paul; + <item>&a.roberto; + <item>&a.jraynard; + <item>&a.chuckr; + <item>&a.dima; + <item>&a.wosch; + <item>&a.ats; + <item>&a.msmith; + <item>&a.karl; + <item>&a.pst; + <item>&a.guido; + <item>&a.swallace; + <item>&a.nate; + <item>&a.jmz; + <item>&a.fsmp; + <item>&a.steve; + </itemize> + + <sect><heading>担当者<label id="contrib:who"></heading> + + <p><descrip> + <tag/議長/ &a.jkh + <tag/最高技術責任者/ &a.davidg + <tag/(各種)文書/ &a.mpp + <tag/国際化/ &a.ache + <tag/ネットワーク/ &a.wollman + <tag/ポストマスタ/ &a.jmb; + <tag/広報/ &a.jkh + <tag/リリースコーディネータ/ &a.jkh + <tag/セキュリティ担当/ &a.pst + <tag/CVS ツリー管理者/ &a.peter + <tag/ports コレクション担当/ &a.asami + <tag/システム管理者/ &a.gpalmer + <tag/Web 管理者/ &a.jkh; and &a.jfieber + <tag/XFree86 Project, Inc. との渉外担当/ &a.rich + </descrip> + + <sect><heading>その他の FreeBSD へのコントリビュータ<label + id="contrib:additional"></heading> + + <p>(名前でアルファベット順に): + + <itemize> + <item>A JOSEPH KOSHY <koshy@india.hp.com> + <item>ABURAYA Ryushirou <pcs51674@asciinet.or.jp> + <item>Adam Glass <glass@postgres.berkeley.edu> + <item>Adrian T. Filipi-Martin <atf3r@agate.cs.virginia.edu> + <item>Akito Fujita <fujita@zoo.ncl.omron.co.jp> + <item>Alain Kalker <A.C.P.M.Kalker@student.utwente.nl> + <item>Andy Whitcroft <andy@sarc.city.ac.uk> + <item>Andrew Gordon <andrew.gordon@net-tel.co.uk> + <item>Andrew Herbert <andrew@werple.apana.org.au> + <item>Andreas Kohout <shanee@rabbit.augusta.de> + <item>Andrew McRae <amcrae@cisco.com> + <item>Andrew Moore <alm@FreeBSD.org> + <item>Andrew V. Stesin <stesin@elvisti.kiev.ua> + <item>Andrey Zakhvatov <andy@cgu.chel.su> + <item>Anthony Yee-Hang Chan <yeehang@netcom.com> + <item>Bernd Rosauer <br@schiele-ct.de> + <item>Bill Kish <kish@osf.org> + <item>&a.wlloyd + <item>Bob Wilcox <bob@obiwan.uucp> + <item>Brent J. Nordquist <nordquist@platinum.com> + <item>Brian Clapper <bmc@willscreek.com> + <item>Brian Tao <taob@io.org> + <item>Charles Hannum <mycroft@ai.mit.edu> + <item>Chet Ramey <chet@odin.INS.CWRU.Edu> + <item>Chris G. Demetriou <cgd@postgres.berkeley.edu> + <item>Chris Stenton <jacs@gnome.co.uk> + <item>Chris Timmons <skynyrd@opus.cts.cwu.edu> + <item>Chris Torek <torek@ee.lbl.gov> + <item>Christian Gusenbauer <cg@fimp01.fim.uni-linz.ac.at> + <item>Christian Haury <Christian.Haury@sagem.fr> + <item>Christoph Robitschko <chmr@edvz.tu-graz.ac.at> + <item>Chuck Hein <chein@cisco.com> + <item>Cornelis van der Laan <nils@guru.ims.uni-stuttgart.de> + <item>Craig Struble <cstruble@vt.edu> + <item>Cristian Ferretti <cfs@riemann.mat.puc.cl> + <item>Curt Mayer <curt@toad.com> + <item>Daniel Baker <dbaker@crash.ops.neosoft.com> + <item>Daniel M. Eischen <deischen@iworks.InterWorks.org> + <item>Danny J. Zerkel <dzerkel@feephi.phofarm.com> + <item>Dave Bodenstab <imdave@synet.net> + <item>Dave Burgess <burgess@hrd769.brooks.af.mil> + <item>Dave Chapeskie <dchapes@zeus.leitch.com> + <item>Dave Edmondson <davided@sco.com> + <item>Dave Rivers <rivers@ponds.uucp> + <item>David Dawes <dawes@physics.su.OZ.AU> + <item>David Leonard <d@scry.dstc.edu.au> + <item>David O'Brien <obrien@cs.ucdavis.edu> + <item>Dean Huxley <dean@fsa.ca> + <item>Dirk Froemberg <dirk@hal.in-berlin.de> + <item>Dmitry Kohmanyuk <dk@farm.org> + <item>&a.whiteside; + <item>Don Yuniskis <dgy@rtd.com> + <item>Donald Burr <d_burr@ix.netcom.com> + <item>Doug Ambrisko <ambrisko@ambrisko.roble.com> + <item>Eric Blood <eblood@cs.unr.edu> + <item>Frank Bartels <knarf@camelot.de> + <item>Frank Maclachlan <fpm@crash.cts.com> + <item>Frank Nobis <fn@trinity.radio-do.de> + <item>Gary A. Browning <gab10@griffcd.amdahl.com> + <item>Gene Stark <stark@cs.sunysb.edu> + <item>Greg Ungerer <gerg@stallion.oz.au> + <item>Harlan Stenn <Harlan.Stenn@pfcs.com> + <item>Havard Eidnes <Havard.Eidnes@runit.sintef.no> + <item>Hideaki Ohmon <ohmon@tom.sfc.keio.ac.jp> + <item>Hidekazu Kuroki <hidekazu@cs.titech.ac.jp> + <item>Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp> + <item>Holger Veit <Holger.Veit@gmd.de> + <item>Igor Vinokurov <igor@zynaps.ru> + <item>Ikuo Nakagawa <ikuo@isl.intec.co.jp> + <item>Ishii Masahiro <?> + <item>J.T. Conklin <jtc@cygnus.com> + <item>James Clark <jjc@jclark.com> + <item>James da Silva <jds@cs.umd.edu> et al + <item>Janusz Kokot <janek@gaja.ipan.lublin.pl> + <item>Jason Thorpe <thorpej@nas.nasa.gov> + <item>Javier Martin Rueda <jmrueda@diatel.upm.es> + <item>Jian-Da Li <jdli@csie.NCTU.edu.tw> + <item>Jim Lowe <james@cs.uwm.edu> + <item>Jim Wilson <wilson@moria.cygnus.com> + <item>Johann Tonsing <jtonsing@mikom.csir.co.za> + <item>John Capo <jc@irbs.com> + <item>John Perry <perry@vishnu.alias.net> + <item>John-Mark Gurney <gurney_j@efn.org> + <item>Juergen Lock <nox@jelal.hb.north.de> + <item>Juha Inkari <inkari@cc.hut.fi> + <item>Julian Jenkins <kaveman@magna.com.au> + <item>Julian Stacey <jhs@freebsd.org> + <item>Keith Bostic <bostic@toe.CS.Berkeley.EDU> + <item>Keith Moore <?> + <item>Kirk McKusick <mckusick@mckusick.com> + <item>Kostya Lukin <lukin@okbmei.msk.su> + <item>Kurt Olsen <kurto@tiny.mcs.usu.edu> + <item>Lars Koeller <Lars_Koeller@odie.physik2.uni-rostock.de> + <item>Lucas James <Lucas.James@ldjpc.apana.org.au> + <item>Manu Iyengar <iyengar@grunthos.pscwa.psca.com> + <item>Marc Frajola <marc@dev.com> + <item>Marc Ramirez <mrami@mramirez.sy.yale.edu + <item>Marc van Kempen <wmbfmk@urc.tue.nl> + <item>Mark Huizer <xaa@stack.urc.tue.nl> + <item>Mark Tinguely <tinguely@plains.nodak.edu> + <tinguely@hookie.cs.ndsu.NoDak.edu> + <item>Martin Birgmeier + <item>Masachika ISHIZUKA <ishizuka@isis.min.ntt.jp> + <item>Mats Lofkvist <mal@algonet.se> + <item>Matt Bartley <mbartley@lear35.cytex.com> + <item>Matt Thomas <thomas@lkg.dec.com> + <item>Matt White <mwhite+@CMU.EDU> + <item>Matthew N. Dodd <winter@jurai.net> + <item>Matthew Stein <matt@bdd.net> + <item>Michael Butschky <butsch@computi.erols.com> + <item>Michael Elbel <me@FreeBSD.ORG> + <item>Michael Searle <searle@longacre.demon.co.uk> + <item>Mikael Hybsch <micke@dynas.se> + <item>Mike Peck <mike@binghamton.edu> + <item>MITA Yoshio <mita@jp.FreeBSD.ORG> + <item>MOROHOSHI Akihiko <moro@race.u-tokyo.ac.jp> + <item>Naoki Hamada <nao@sbl.cl.nec.co.jp> + <item>NIIMI Satoshi <sa2c@and.or.jp> + <item>Nick Sayer <nsayer@quack.kfu.com> + <item>Nisha Talagala <nisha@cs.berkeley.edu> + <item>Nobuhiro Yasutomi <nobu@psrc.isac.co.jp> + <item>Nobuyuki Koganemaru <kogane@kces.koganemaru.co.jp> + <item>Noritaka Ishizumi <graphite@taurus.bekkoame.or.jp> + <item>Paul Kranenburg <pk@cs.few.eur.nl> + <item>Paul Mackerras <paulus@cs.anu.edu.au> + <item>Peter Stubbs <PETERS@staidan.qld.edu.au> + <item>Philippe Charnier <charnier@lirmm.fr> + <item>R. Kym Horsell <?> + <item>Randall Hopper <rhh@stealth.ct.picker.com> + <item>Richard Stallman <rms@gnu.ai.mit.edu> + <item>Richard Wiwatowski <rjwiwat@adelaide.on.neti> + <item>Rob Shady <rls@id.net> + <item>Rob Snow <rsnow@txdirect.net> + <item>Robert Sanders <rsanders@mindspring.com> + <item>Robert Withrow <witr@rwwa.com> + <item>Ronald Kuehn <kuehn@rz.tu-clausthal.de> + <item>Sascha Wildner <swildner@channelz.GUN.de> + <item>Scott Blachowicz <scott@sabami.seaslug.org> + <item>Serge V. Vakulenko <vak@zebub.msk.su> + <item>Soren Dayton <csdayton@midway.uchicago.edu> + <item>Stephen McKay <syssgm@devetir.qld.gov.au> + <item>Steve Gerakines <steve2@genesis.tiac.net> + <item>Taguchi Takeshi <taguchi@tohoku.iij.ad.jp> + <item>Tatsumi Hosokawa <hosokawa@mt.cs.keio.ac.jp> + <item>Terry Lambert <terry@lambert.org> + <item>Terry Lee <terry@uivlsi.csl.uiuc.edu> + <item>Theo Deraadt <deraadt@fsa.ca> + <item>Tim Kientzle <kientzle@netcom.com> + <item>Tim Vanderhoek <ac199@freenet.hamilton.on.ca> + <item>Tom Samplonius <tom@misery.sdf.com> + <item>Torbjorn Granlund <tege@matematik.su.se> + <item>Ville Eerola <ve@sci.fi> + <item>Werner Griessl <werner@btp1da.phy.uni-bayreuth.de> + <item>Wes Santee <wsantee@wsantee.oz.net> + <item>Wolfgang Stanglmeier <wolf@kintaro.cologne.de> + <item>Yoshiro Mihira <sanpei@yy.cs.keio.ac.jp> + <item>Yukihiro Nakai <nakai@mlab.t.u-tokyo.ac.jp> + <item>Yuval Yarom <yval@cs.huji.ac.il> + <item>Yves Fonk <yves@cpcoup5.tn.tudelft.nl> + </itemize> + + <sect><heading>386BSD パッチキットへのパッチ提供者</heading> + + <p>(名前でアルファベット順): + + <itemize> + <item>Adam Glass <glass@postgres.berkeley.edu> + <item>Adrian Hall <adrian@ibmpcug.co.uk> + <item>Andrey A. Chernov <ache@astral.msk.su> + <item>Andrew Herbert <andrew@werple.apana.org.au> + <item>Andrew Moore <alm@netcom.com> + <item>Andy Valencia <ajv@csd.mot.com> <jtk@netcom.com> + <item>Arne Henrik Juul <arnej@Lise.Unit.NO> + <item>Bakul Shah <bvs@bitblocks.com> + <item>Barry Lustig <barry@ictv.com> + <item>Bob Wilcox <bob@obiwan.uucp> + <item>Branko Lankester + <item>Brett Lymn <blymn@mulga.awadi.com.AU> + <item>Charles Hannum <mycroft@ai.mit.edu> + <item>Chris G. Demetriou <cgd@postgres.berkeley.edu> + <item>Chris Torek <torek@ee.lbl.gov> + <item>Christoph Robitschko <chmr@edvz.tu-graz.ac.at> + <item>Daniel Poirot <poirot@aio.jsc.nasa.gov> + <item>Dave Burgess <burgess@hrd769.brooks.af.mil> + <item>Dave Rivers <rivers@ponds.uucp> + <item>David Dawes <dawes@physics.su.OZ.AU> + <item>David Greenman <davidg@Root.COM> + <item>Eric J. Haug <ejh@slustl.slu.edu> + <item>Felix Gaehtgens <felix@escape.vsse.in-berlin.de> + <item>Frank Maclachlan <fpm@crash.cts.com> + <item>Gary A. Browning <gab10@griffcd.amdahl.com> + <item>Geoff Rehmet <csgr@alpha.ru.ac.za> + <item>Goran Hammarback <goran@astro.uu.se> + <item>Guido van Rooij <guido@gvr.win.tue.nl> + <item>Guy Harris <guy@auspex.com> + <item>Havard Eidnes <Havard.Eidnes@runit.sintef.no> + <item>Herb Peyerl <hpeyerl@novatel.cuc.ab.ca + <item>Holger Veit <Holger.Veit@gmd.de> + <item>Ishii Masahiro, R. Kym Horsell + <item>J.T. Conklin <jtc@cygnus.com> + <item>Jagane D Sundar < jagane@netcom.com > + <item>James Clark <jjc@jclark.com> + <item>James Jegers <jimj@miller.cs.uwm.edu> + <item>James W. Dolter + <item>James da Silva <jds@cs.umd.edu> et al + <item>Jay Fenlason <hack@datacube.com> + <item>Jim Wilson <wilson@moria.cygnus.com> + <item>Jörg Lohse <lohse@tech7.informatik.uni-hamburg.de> + <item>Jörg Wunsch <joerg_wunsch@uriah.heep.sax.de> + <item>John Dyson - <formerly dyson@ref.tfs.com> + <item>John Polstra <jdp@polstra.com> + <item>John Woods <jfw@eddie.mit.edu> + <item>Jordan K. Hubbard <jkh@whisker.hubbard.ie> + <item>Julian Elischer <julian@dialix.oz.au> + <item>Julian Stacey <jhs@freebsd.org> + <item>Karl Lehenbauer <karl@NeoSoft.com> + <karl@one.neosoft.com> + <item>Keith Bostic <bostic@toe.CS.Berkeley.EDU> + <item>Ken Hughes + <item>Kent Talarico <kent@shipwreck.tsoft.net> + <item>Kevin Lahey <kml%rokkaku.UUCP@mathcs.emory.edu> + <kml@mosquito.cis.ufl.edu> + <item>Marc Frajola <marc@dev.com> + <item>Mark Tinguely <tinguely@plains.nodak.edu> + <tinguely@hookie.cs.ndsu.NoDak.edu> + <item>Martin Renters <martin@tdc.on.ca> + <item>Michael Clay <mclay@weareb.org> + <item>Michael Galassi <nerd@percival.rain.com> + <item>Mike Durkin <mdurkin@tsoft.sf-bay.org> + <item>Naoki Hamada <nao@sbl.cl.nec.co.jp> + <item>Nate Williams <nate@bsd.coe.montana.edu> + <item>Nick Handel <nhandel@NeoSoft.com> + <nick@madhouse.neosoft.com> + <item>Pace Willisson <pace@blitz.com> + <item>Paul Kranenburg <pk@cs.few.eur.nl> + <item>Paul Mackerras <paulus@cs.anu.edu.au> + <item>Paul Popelka <paulp@uts.amdahl.com> + <item>Peter da Silva <peter@NeoSoft.com> + <item>Phil Sutherland <philsuth@mycroft.dialix.oz.au> + <item>Poul-Henning Kamp<phk@FreeBSD.ORG> + <item>Ralf Friedl <friedl@informatik.uni-kl.de> + <item>Rick Macklem <root@snowhite.cis.uoguelph.ca> + <item>Robert D. Thrush <rd@phoenix.aii.com> + <item>Rodney W. Grimes <rgrimes@cdrom.com> + <item>Rog Egge <?> + <item>Sascha Wildner <swildner@channelz.GUN.de> + <item>Scott Burris <scott@pita.cns.ucla.edu> + <item>Scott Reynolds <scott@clmqt.marquette.mi.us> + <item>Sean Eric Fagan <sef@kithrup.com> + <item>Simon J Gerraty <sjg@melb.bull.oz.au> + <sjg@zen.void.oz.au> + <item>Stephen McKay <syssgm@devetir.qld.gov.au> + <item>Terry Lambert <terry@icarus.weber.edu> + <item>Terry Lee <terry@uivlsi.csl.uiuc.edu> + <item>Warren Toomey <wkt@csadfa.cs.adfa.oz.au> + <item>Wiljo Heinen <wiljo@freeside.ki.open.de> + <item>William Jolitz <withheld> + <item>Wolfgang Solfrank <ws@tools.de> + <item>Wolfgang Stanglmeier <wolf@dentaro.GUN.de> + <item>Yuval Yarom <yval@cs.huji.ac.il> + </itemize> diff --git a/share/doc/ja_JP.EUC/handbook/crypt.sgml b/share/doc/ja_JP.EUC/handbook/crypt.sgml new file mode 100644 index 000000000000..7ca832627301 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/crypt.sgml @@ -0,0 +1,81 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.1 --> + +<sect><heading>DES, MD5, と Crypt<label id="crypt"></heading> + +<p><em>原作: &a.wollman;<newline>24 September 1995.</em> + +<p><em>訳: &a.hanai;<newline>12 September 1996.</em> + +<p><bf>歴史</bf> + +<p>UN*X システムにおいてパスワードを保護し, 簡単に覗かれるのを防 +ぐために, 従来パスワードはある方法によりスクランブルされてきました. +ベル研の ???Unix 第7版に始まって以来, パスワードはセキュリティの専門家がい +うところの``一方向ハッシュ関数''というものを用いることにより暗号化されるようになりました. +つまり, 可能な限りのパスワード空間を検索するという強引な +方法以外にそのオリジナルを得ることができない, というような方法でパスワードは変換 +されるのです. 不幸なことに, その当時 AT&T の研究者たちが手に入れることができ +た唯一の暗号化方法は DES(Data Encryption Standard) に基づいたものでし +た. これは営利企業にとっては大して問題ではありませんが, FreeBSDのよ +うにすべてのソースコードが自由に手に入るオペレーティングシステムにとっ +ては重大な問題となります. なぜなら, 多くの政府は DES やその他の暗号化ソフ +トウェアが国境を越えることに制限をつけようとしているからです. + +<p>ここで, FreeBSD チームは一つのジレンマに直面しました. つまり, どうす +れば法に触れることなく国外にあるそれらの UNIX システムのすべてに互換性を持 +たせることができるか, ということです. 私たちは ``dual track approach'' を +取ることに決めました. 規制されていないパスワードスクランブラのみを含む +配布用物件を作り, DES に基づいたパスワードハッシュを付加ライブラリ +として分けて供給するのです. パスワードをスクランブルさせる関数は, C ライブラリから +`<tt>libcrypt</tt>' と呼ばれる(それを実行する C 関数が `<tt>crypt</tt>' と +いう名前だからです)別のライブラリへ移されました. FreeBSD 1.x 及び +2.0 のリリース前のスナップショットでは, その規制されていないスクランバは +Nate Williams によって書かれた安全でない関数を使っていますが, 次の +リリースでは RSA Data Security 社の一方向ハッシュ関数の MD5 を使う方法 +に置き換えられました. これらの関数はどれも暗号化を含んでいないため, +合衆国から持ち出し, 他の多くの国へ持ち込めるものであるとされています. + +<p>一方, DES に基づいたパスワードハッシュ関数に関する作業もまた進行中 +でした, まず, 合衆国及び他の国で書かれたコードの同期をとりながら, +合衆国の外で書かれた `<tt>crypt</tt>' のあるバージョンが持ち込まれました. +そしてライブラリは修正され, 二つにわけられました. すなわち +DES `<tt>libcrypt</tt>' は一方向パスワードハッシュをおこなうのに必要なコード +のみを含み, それとは別の `<tt>libcipher</tt>' は実際に暗号化をおこなう +ためのエントリポイントとして生成されました. コンパイルされたライブラリに対 +して国外に持ち出す許可を得るのを簡単にするために, コードはこのように分け +られたのです. + +<p><bf>`<tt>crypt</tt>' メカニズムを理解する</bf> + +<p>あるパスワード文字列を作るのに, DES に基づいたハッシュ関数を使っ +たのか, MD5に基づいたハッシュ関数を使ったのかは非常に簡単にわかります. +MD5 を使ったパスワード文字列は必ず `<tt>$1$</tt>' という文字 +で始まります. DESを使ったパスワード文字列はどんな特定の文字も持っていま +せんが, MD5を使ったパスワードよりも短く, `<tt>$</tt>' という文字 +を持たない64文字のアルファベットで構成されています. したがって, ドル記号で +始まっていない比較的短い文字列は DES を使ったパスワードである可能性が非常 +に高いです. + +<p>あなたのシステムで, どちらのライブラリが使われているかを決めるの +は, スタティックにリンクされている `<tt>init</tt>' のようなもの(その +ようなプログラムに対する唯一の方法はわかっているパスワードを試してみ +て動くかどうかを確認することです.)を除いたほとんどのプログラムについ +ては非常に簡単なことです. `<tt>crypt</tt>' を使うようなプログラムは +`<tt>libcrypt</tt>' にリンクされています. そしてそれぞれのライブラリに +対する `<tt>libcrypt</tt>' は適切な実装へのシンボリックリンクとなってい +ます. 例えば, DES 版を使っているようなシステムにおいては次のようになって +います: + +<tscreen><verb> +$ cd /usr/lib +$ ls -l /usr/lib/libcrypt* +lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a +lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0 +lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a +</verb></tscreen> + +MD5 に基づいたライブラリを使っているシステムにおいては, 同じようなリンクが +見られるでしょうが, そのターゲットは `<tt>libdescrypt</tt>' ではなく +`<tt>libscrypt</tt>' になっているでしょう. diff --git a/share/doc/ja_JP.EUC/handbook/ctm.sgml b/share/doc/ja_JP.EUC/handbook/ctm.sgml new file mode 100644 index 000000000000..0f9d4e3e1f37 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/ctm.sgml @@ -0,0 +1,217 @@ +<!-- +# This is the sgml version of the ctm.FAQ file. +# +# Converted by Ollivier Robert <roberto@FreeBSD.ORG> +# +# $Id$ +# The FreeBSD Japanese Documentation Project +# Original revision: 1.12 +# +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42): +# <phk@login.dknet.dk> wrote this file. As long as you retain this notice you +# can do whatever you want with this stuff. If we meet some day, and you think +# this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp +# ---------------------------------------------------------------------------- +# +--> + +<sect><heading>CTM<label id="ctm"></heading> + +<p><em>原作: &a.phk;. 更新: 16-Mar-1995.</em> + +<p><em>訳: &a.hanai;<newline>5 November 1996.</em> + + <tt/CTM/ はリモートのディレクトリツリーを中央のツリーに同期させるための + 手段です. これはFreeBSDのソースツリーの配布を行なうために開発されまし + たが, 時が経つにつれて別の目的にも有用であることがわかるかも + しれません. デルタを作り出す処理に関するドキュメントは現在ほとんど + ありません。従って, もしあなたが<tt/CTM/ を他のことに使いたいなら + &a.phk;にさらなる情報を問い合わせてください. + + <sect1><heading>なぜ<tt/CTM/を使うの?</heading> + <p><tt/CTM/ を使うことにより``FreeBSD-current''のローカルコピーを得ることが + できます. もしあなたがFreeBSDのアクティブな開発者であるにもかかわらず + お粗末なTCP/IP接続しか持っていなかったり, またはTCP/IP接続が + 行なえないとしたら, <tt/CTM/はそんなあなたのために作られたのです. + あなたは一日あたり四つまでのデルタを転送する必要があるでしょう + (またはそれを自動的にメールで受けとることができます). + デルタのサイズは常にできるだけ小さく保たれています. + 大抵の場合5KBよりも小さく, + たまに(10回に1回程度)10-50KBになり, ときおり100KBかもっと大きくなる + でしょう. + + ``current''のソースを追いかけるのに, + 様々な注意に気を付けておく必要もあるでしょう. そのためには + <ref id="current" name="最新のカレントを追いかける">を読むことを + お勧めします. + + <sect1><heading><tt/CTM/を使うには何が必要?</heading> + + <p>二つのものが必要でしょう: ``<tt/CTM/'' プログラムとそれに与える + (``current''レベルを得るための)最初のデルタです. + + <tt/CTM/ プログラムはバージョン2.0のリリース以来FreeBSDの一部にな + りました. もしソースのコピーを持っているなら + <tt>/usr/src/usr.sbin/<tt/CTM/</tt>にあります. + + もしFreeBSDの2.0以前のバージョンなら, 最新の<tt/CTM/のソースを直接 + + <url + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm"> + + から入手できます. + <tt/CTM/に与える「デルタ」は二つの方法, FTPまたはe-mail, で得ること + ができます. + もしインターネットにFTPアクセスできるなら, 次のFTPサイト: + + <url url="ftp://freefall.cdrom.com/pub/CTM"> + + または、その<ref id="mirrors-ctm" name="ミラーサイト">が<tt/CTM/ + へのアクセスをサポートします. + 適切なディレクトリにFTPして<tt/README/ファイルを入手し, そこから + スタートしてください. + + もし電子メールにしかアクセスできない もしくはFTPの使用が制限され + ているなら, e-mailでデルタを入手したいと思うかもしれません. + + メーリングリスト``ctm-src-cur''に参加するために&a.majordomo + へメールを送ってください. (もしmajordomoを使って参加する方法を知らない + のであれば, 最初に``help''という語を含むメッセージを送ってください. + - 使い方の説明が送られてくるでしょう.) + + メールで<tt/CTM/による更新ファイルを受け取り始めると, 中身を取り出して使用 + するために<tt/ctm_rmail/プログラムを使うかもしれません. それを完全 + に自動で行ないたいなら, <tt>/etc/aliases</tt>から<tt/ctm_rmail/プロ + グラムを直接使うこともできます. + さらに詳しいことは<tt/ctm_rmail/ manページを御覧ください. + + <bf/注/: <tt/CTM/デルタを得るためにどの方法を使うのであっても, + <tt/ctm-announce@FreeBSD.ORG/メーリングリストに参加するべきです. + このメーリングリストは将来的には<tt/CTM/システムの操作に関する + アナウンスがポストされる唯一の場になるでしょう. + メーリングリストに加わるためには``<tt/subscribe ctm-announce/'' + と書いた一行だけのメールを &a.majordomo へ送ってください. + + <sect1><heading>はじめて<tt/CTM/を使い始める</heading> + <p><tt/CTM/ デルタを使い始めるためには, 特別な「ベース」デルタを + 入手する必要があるでしょう. これは以降作られる全てのデルタの + 出発点となるものです. + + ベースデルタは数字に付け加えられた``<tt/A/''によって認識することが + 出来ます(例えば, <tt/src-cur.0341A.gz/). + 規則としてベースデルタは100デルタ毎に作られるので, 次のベースデルタ + は<tt/src-cur.0400A.gz/となるでしょう. ところで, ベースデルタは + とても大きいです! 25MBから30 MB の<tt/gzip/されたデータ, というのが + ベースデルタとしては普通です. + + もし2.0-RELEASEの<tt/srcdist/を持っているのなら, 代わりに + <tt/src-cur.0372R20.gz/ファイルを見つけることができるでしょう. これは + たったの4MBしかなく, これにより2.0-RELEASEのソースからcurrentを + 得ることができます. + + 一度スタートするためのベースデルタを得ると, それに続く多数の + 全てのデルタも必要になるでしょう. + + <sect1><heading><tt/CTM/を日常で使う</heading> + <p>デルタを適用するためには, 単に + <verb> + cd /where/ever/you/want/the/stuff?? + ctm -v -v /where/you/store/your/deltas/src-cur.*?? + </verb> + とします. + <tt/CTM/ はどれが<tt/gzip/されているか理解します. 従って最初に + gunzipしておく必要はありません. ディスクの節約にもなります. + + 全体の処理に関して確信するまでは<tt/CTM/は(ソース)ツリーに対して + 何もしません. + また, デルタを確かめるためには``<tt/-c/''フラグを使うことができます. + このフラグがあると<tt/CTM/はツリーに対して実際には何も行ないません. + 単にデルタの完全性を確認し, 現在のツリーに問題なく使用できるかを確認 + するだけです. + + <tt/CTM/には他にもオプションがあります. 詳細に関してはソースを + 見てください. + + もし誰かが「ユーザ インターフェース」の部分に関して助けてくれるなら + 私はとても嬉しいです. なぜならどういうオプションが何を, どのよう + に, いつ行なうようにするべきか決めかねているからです. + + 以上でやることは本当に全部です. 新しいデルタを入手した時には, + ソースを最新のものにするためにそれを<tt/CTM/に通すだけです. + + もしデルタを再ダウンロードするのが骨の折れる作業であれば, デルタを + 消さないでおいてください. + なにかおかしなことが起こった場合には置いておけば良かった + と思うかもしれません. もしフロッピーディスクしか持っていない状況 + であってもコピーを取るのに<tt/fdwrite/を使うことを考えてください. + + + <sect1><heading><tt/CTM/の将来計画</heading> + <p> + 重要なもの + <itemize> + <item> + ソースツリーへのローカルな修正を可能にすること. これを実現 + する一つの方法は次のようなものでしょう: + <p> <tt/CTM/が``<tt>foo/bar.c</tt>''というファイルを変更しようと + する時, 最初に<tt>foo/bar.c#CTM</tt>というファイルがあるか + どうかチェックします. もしこのファイルがあれば, それに + デルタを適用します. このようにして<tt>foo/bar.c</tt> + ファイルをローカルな要求に合うように変更しておくことができます. + <item> + 「ファイル復活」のオプションを<tt/CTM/に付ける. これは + 次のようなものです. + <verb> + ctm -r src/sys/i386/wd.c /here/are/my/deltas/src-cur.* + </verb> + これは src-cur ファイルから<tt/wd.c/を復旧して現在の状態に戻します. + <item> + <tt/CTM/へのオプションを整理する. さもないと混乱し, 直観に反したもの + になります. + </itemize> + + 残念なことに私は非常に忙しいです. 従ってこれを行なうどんな手助け + でも歓迎します. その際, 自分が何をやりたいかを私に + 言うのを忘れずに. + + <sect1><heading>その他</heading> + <p> + 「DESに染まった」(例えば, 国外への持ち出しが規制された)ソースは + まったく含まれません. 手に入るのは「国際」バージョンだけです. + もし興味のある人が多いようであれば, 我々は``<tt/sec-cur/''シーケンスも + セットアップするつもりです. + + もしあなたがFreeBSDに対して頻繁なまたは価値のある貢献をしている + のであれば, 私は特別なサービス, 一つには<tt/ftp/か<tt/rcp/によるあなた + の近くのマシンへの配布, をしたいと思うでしょう. + これには時間がかかるので, あなたがこれを受けるに値する必要があります. + しかし, あなたにその価値があるなら, 私は喜んでそうするでしょう. + + <tt/ports/コレクションに対するデルタのシーケンスもあります. しかし, + まだあまり興味は持たれていないようです. もしこれに対するメーリング + リストが欲しい時も私に言ってください. 我々はセットアップすることを + 考えます. + + もしあなたがコミット特権を持っているか, または同様にFreeBSDコアチーム + からその必要ありと認められていれば, CVSリポジトリツリーへの + アクセスも同じ手段で得ることができます. 詳細は&a.phk;へ聞いてください. + + + <sect1><heading>ありがとう!</heading> + <p> + <descrip> + <tag/&a.bde;/ + 辛辣なペンと価値のないコメントに対して. + <tag/&a.sos;/ + よく辛抱してくれました. + <tag/Stephen McKay/ + <tt/ctm_[rs]mail/を書いてくれました. とても感謝して + います. + <tag/&a.jkh/ + 彼が頑固として譲らなかったため, 私もこの <tt/CTM/ をもっと良いものに + しないわけにはいきませんでした. 彼の頑固さに感謝します. + <tag/ユーザの人みんな/ + 気に入ってくれることを願っています... + </descrip> + diff --git a/share/doc/ja_JP.EUC/handbook/current.sgml b/share/doc/ja_JP.EUC/handbook/current.sgml new file mode 100644 index 000000000000..967a84eabf76 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/current.sgml @@ -0,0 +1,161 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.16 --> + +<chapt><heading>最新のFreeBSDを追いかける<label id="current"></heading> + +<p><em>原作: &a.jkh;.</em> + +<p><em>訳: &a.hanai;<newline>6 November 1996.</em> + +<!-- + + THE FREEBSD CURRENT POLICY + +Last updated: $Date: 1996/09/09 23:21:27 $ + +This document attempts to explain the rationale behind +FreeBSD-current, what you should expect should you decide to run it, +and states some prerequisites for making sure the process goes as +smoothly as possible. +--> + +<sect><heading>FreeBSD-currentってなに?</heading> + +<p>FreeBSD-currentとは,文字通りに,日々変更されているFreeBSDのソース +のスナップショット以外の何ものでもありません.中には現在開発途上の +ソフトウェア, 実験的な変更、あるいは過渡的な機能などが含まれています. +また, この中に入っている機能がすべて次の公式リリースに入るとはかぎりません. +FreeBSD-currentをソースからほとんど毎日コンパイルしている人はたくさん +いますが, 時期によってはFreeBSD-currentはコンパイルさえできない状態に +なっていることもあります. これらの問題は一般的には可能な限り素早く解決 +されますが, FreeBSD-currentのソースが不幸をもたらすか, それとも非常に +素晴らしい機能をもたらすかというのは文字通り, ある与えられた24時間の間 +のどの部分であなたがソースを手に入れたか, による場合もあります. + +必要があるときには, 時折 FreeBSD-current の一部をバイナリとして提供する +こともありますが, それはただ何かをテストしてほしいためであって, +我々が current をバイナリリリースとして提供することにしたわけではありません. +我々が提供していないならば, 要求しないで下さい! +これは普段から行なうにはあまりにも時間がかかり過ぎるのです. + +<sect><heading>誰がFreeBSD-currentを必要としてるの?</heading> + +<p>FreeBSD-currentは次の3つのどれかにあてはまる人のために一般に公開してい +ます. +<enum> + <item> ソースツリーの,ある部分または別の部分に関して活発に作業して + いるFreeBSDグループのメンバ.彼らにとっては`最新のもの'に維持して + おくことは絶対的な要求なのです. + + <item> FreeBSD-currentが出来るだけ健全である時間の割合を増やすために + 様々な問題と戦うのに時間を費やすのを厭わず活発にテストを行なっている + FreeBSDグループのメンバ.彼らはまた様々な変更に関する提案やFreeBSD + の大まかな方向付けを行ないたいと思っている人々でもあります. + + <item> 単に,様々な事に目を向け,参考のために(例えば,動かすためではなく + <em>読むため</em>に)最新のソースを使いたいと思っているFreeBSD(または + 他の)グループのまわりにいるメンバ.これらの人々はまた時によってコメ + ントをしたりコードを寄稿したりします. +</enum> + +<sect><heading>FreeBSD-currentに期待しては<em>いけない</em>ことは?</heading> + +<p><enum> + <item> あなたが何か新しいカッコイイモノがあると聞き, あなたの + 周りで最初にそれを持ちたいためにリリース前のコードの断片を + 追いかけること. + + <item> バグを修正するための素早い方法. + + <item> いずれにしても我々によって``公式にサポートされている''. + + 私たちは3つの「公式な」FreeBSD-currentのグループの一つに実際に属する + 人々を助けるのにベストを尽くしますが, 技術的なサポートを行なうには + 単に「時間が足りない」のです. + これは我々が外の人を助けるのが好きではないケチで意地悪い人間だと + いうことではなく(もしそうなら FreeBSD なんかやっていません), 文字通り + 我々は一日に400ものメッセージに答え<em>かつ</em> FreeBSD の作業をする + ことなど出来ない! ということなのです. もし, たくさんの質問に答えるか + それとも FreeBSD を良くする作業を続けるかという選択が与えられた場合, + あなた方のほとんどは後者を支持する, と私は確信しています. +</enum> + +<sect><heading>FreeBSD-currentを使う</heading> + +<p><enum> <item> &a.current;と&a.cvsall;に加わって下さい. + これは単に良い考えであるというだけでなく, <em>必須の</em>ことなのです. + もし<em>FreeBSD-current</em>メーリングリストに入っていなければ, + 様々な人がシステムの現在の状態について述べているコメントを決して見ることは + ありませんし, 従って他の人が既に見つけて解決している多くの問題に戸惑っ + てあきらめてしまうでしょう. さらに言うと, 非常に不可欠な情報 + (例えば, 「やぁ, みんな! <tt>/usr/src</tt>を作り直す前にカーネルの + 再構築を<em>やらないといけないよ</em>, さもないととんでもないクラッシュが起きるぜ!」)を見逃してしまうでしょう. + + <em>cvs-all</em>メーリングリストはそれぞれの変更についてそれに関して起 + こり得る情報を見ることが出来ます. + + これらのメーリングリストに入るには, &a.majordomo;へ +<verb> +subscribe freebsd-current +subscribe cvs-all +</verb> + と書いたメールを送って下さい. + オプションとして本文に`help'と書けば Majordomo はあなたへ我々がサポ + ートする様々なメーリングリストに参加/脱退する方法に関する詳しい + ヘルプを送ります. + + <item> ftp.FreeBSD.ORGからのソースの入手. 以下の3つの方法で行なうこと + が出来ます. + + <enum> + <item> 下に述べられている<ref id="ctm" name="CTM">を用いる. + 均一なレートの, 良質の TCP/IP 接続を持っていない人には, + これが一番いい方法でしょう. + + <item> CMUの<ref id="sup" name="sup">プログラム(Software Update + Protocol)を用いる. + これも後で述べられています. + これは2番目に推薦される方法です. なぜなら, supによって一度全体 + を入手し, 後は変更されたところだけを入手することが出来るからです. + たくさんの人がsupをcronから起動し, 自動的にソースを最新のもの + に保っています. + + <item> ftpを使う. FreeBSD-currentのソースツリーは常に + <htmlurl url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current"> + に公開されています. + 我々はまた全体をcompress/tarして入手できる `wu-ftpd' を使ってい + ます. 例えば, +<verb> + usr.bin/lex +</verb> + があったとすると, +<verb> + ftp> cd usr.bin + ftp> get lex.tar.Z +</verb> + とすることにより, ディレクトリ全体(この場合, usr.bin/lex以下全体) + をcompressされたtarファイルとして入手することができます. + </enum> + + <item> 以上のことをまとめると, 必要に応じて迅速なアクセスをする必要があり, + 接続のバンド幅が問題ではなければsupかftpを使いましょう. そうではなければ + CTMを使いましょう. + + <item> もしソースを, 眺めるだけでなく走らせるために入手しているので + あれば, 一部だけ選ぶのではなく, + current の<em>全体</em>を手に入れてください. + なぜなら, ソースの様々な部分が他の部分の更新に依存しており, 一部のみを + コンパイルしようとすると, ほぼ間違いなくトラブルを起こすからです. + + <item> current をコンパイルする前に /usr/src にある Makefile + をよく読んでください. アップグレードの処理の一部として, + 少なくとも一回は最初に `make world' を行なうべきでしょう. + &a.current;を読めば, 次のリリースへ向けて, 時々必要になる + 他のブートストラップの方法に関して常に最新情報を得ることが出来ます. + + <item> アクティブになって下さい! もしFreeBSD-currentを走らせているなら + 我々はそれに関するコメント, 特に拡張やバグ潰しに関する提案, を欲して + います. コードを伴う提案はもっとも歓迎されるものです! +</enum> diff --git a/share/doc/ja_JP.EUC/handbook/cyclades.sgml b/share/doc/ja_JP.EUC/handbook/cyclades.sgml new file mode 100644 index 000000000000..d5a9a985ae03 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/cyclades.sgml @@ -0,0 +1,58 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.1 --> + +<!-- +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +]> +--> +<sect2><heading><tt>cy</tt> ドライバのコンフィグ<label id="cy"></heading> + + <p><em>原作: &a.alex;.<newline>6 June 1996.</em> + <p><em>訳: &a.yuki;.<newline>6 September 1996.</em> + + Cyclades社のマルチポートカードは, 他のマルチポートカードが + 使う<tt>sio</tt>の代わりに<tt>cy</tt>ドライバを使います. + コンフィグレーションは非常に簡単で, + + <enum> + <item><tt>cy</tt> デバイスをあなたの + <ref id="kernelconfig:config" + name="カーネルのコンフィグレーション">に足します. + (注意. あなたのirqやiomemの設定がが違っているかもしれません) + +<tscreen><verb> +device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr +</verb></tscreen> + + <item>新しいカーネルの<ref id="kernelconfig:building" + name="再構成とインストール"> をします. + + <item><ref id="kernelconfig:nodes" name="デバイスノード"> + を次(8ポートと仮定しています.)のように打って作ります: + +<tscreen><verb> +# cd /dev +# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done +</verb></tscreen> + + <item>もし, 必要なら + シリアルデバイス(<tt>ttyd</tt>)とそっくりにコピーして + <ref id="dialup" name="dialup">エントリを作り, <tt>ttyd</tt> + <tt>ttyd</tt>の代わりに<tt>ttyc</tt>を使います. 例: + +<tscreen><verb> +ttyc0 "/usr/libexec/getty std.38400" unknown on insecure +ttyc1 "/usr/libexec/getty std.38400" unknown on insecure +ttyc2 "/usr/libexec/getty std.38400" unknown on insecure +[...] +ttyc7 "/usr/libexec/getty std.38400" unknown on insecure +</verb></tscreen> + + <item>新しいカーネルで立ち上げます. + + </enum> diff --git a/share/doc/ja_JP.EUC/handbook/development.sgml b/share/doc/ja_JP.EUC/handbook/development.sgml new file mode 100644 index 000000000000..e1cc80c71531 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/development.sgml @@ -0,0 +1,104 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.7 --> + +<sect><heading>FreeBSDの開発モデル<label id="development"></heading> + +<p><em>原作: &a.asami;. +<newline>18 October 1996.</em> + +<p><em>訳: &a.asami;. +<newline>31 October 1996.</em> + +<p>FreeBSDの開発は非常に開かれた, 柔軟性のあるプロセスです. <ref +id="contrib" name="コントリビュータのリスト">を見ていただければわかる +とおり, FreeBSDは文字通り世界中の何百という人々の努力によって開発され +ています. 新しい開発者はいつでも大歓迎ですので, &a.hackers; にメールを +送ってください. また, 大勢で議論するよりは一人で静かに開発にふけりた +いという人は私たちのFTPサイト<htmlurl +url="ftp://ftp.freebsd.org/pub/FreeBSD/incoming" +name="ftp.freebsd.org">を使ってパッチや開発中のソースを公開してくださっ +て結構です. &a.announce; もありますので, 他のFreeBSDユーザに自分のやっ +ていることを宣伝したい時にはどうぞ使ってください. + +あと, FreeBSDプロジェクトとその開発プロセスについて, どなたにも知って +いていただきたいのは以下のようなことです. + +<descrip> +<itemize> + +<item><bf>CVSリポジトリ</bf><label id="development:cvs-repository"> + +<p>FreeBSDのソースツリーは<htmlurl +url="http://www.cyclic.com/cyclic-pages/CVS-sheet.html" name="CVS"> +(Concurrent Version System)によってメンテナンスされています. CVSはソー +スコード管理用のフリーソフトウェアで, FreeBSDのリリースにも含まれてい +ます. FreeBSDの<htmlurl url="http://www.freebsd.org/cgi-bin/cvsweb" +name="メインのCVSリポジトリ">は米国カリフォルニア州のコンコルド市に存在 +し, そこから世界中のたくさんのミラーサイトにコピーされています. CVSツ +リーそのもの, そしてそのチェックアウトされたバージョンである<ref +id="current" name="-current">と<ref id="stable" name="-stable">はあな +たのマシンにも簡単に取ってくることができます. これについては<ref +id="synching" name="ソースツリーの同期">の章をご覧ください.</item> + +<item><bf>ソースツリー管理者</bf><label id="development:committers"> +<p><ref id="contrib:committers" name="ソースツリー管理者">はCVSツリー +への書き込み権限を持っている人, つまりFreeBSDのソースに変更を加えるこ +とができる人です. (CVSでリポジトリに変更を加えるには<tt>cvs(1)</tt> +``<tt>commit</tt>'' というコマンドを使うので, これらの人々は英語では +``committers'' と呼ばれます.) 開発者にコードを送って見てもらうのに一 +番いい方法は<htmlurl url="http://www.freebsd.org/send-pr.html" +name="send-pr(1)">コマンドを使うことです. もし, 何か問題があって +<tt>send-pr</tt>が使えないなら<htmlurl +url="mailto:committers@freebsd.org" name="committers@freebsd.org">にメー +ルを送っていただいても結構です.</item> + +<item><bf>FreeBSDコアチーム</bf><label id="development:core"> + +<p><ref id="contrib:core" name="FreeBSDコアチーム">はFreeBSDプロジェク +トが会社だとすると取締役会にあたるものです. コアチームとして一番重要 +な役割はFreeBSDプロジェクトが全体としてよい方向に向かっていることを確 +認することです. 責任感あふれる開発者を上記のソースツリー管理者として +招くこと, また仕事上の都合などでコアチームをやめた人たちの後任を見つけ +ることもコアチームの役割です. 現在のコアチームのほとんどは最初は単な +る一開発者としてプロジェクトに関わりはじめ, ずるずるといつのまにか深み +にはまってしまった人です. + +<p>コアチームのうち何人かは特定の<ref id="contrib:who" name="担当分野"> +を持っており, システムのうち一部に特に重点をおいて面倒を見ています. +また, 忘れてほしくないのはコアチームのほとんどはFreeBSDについてはボラ +ンティアであり, FreeBSDプロジェクトからは何ら金銭的な支援を受けていな +いということです. ですから, ここでの「責任」は「保証されたサポート」 +ではありません. そういう意味で, 上記の取締役会という例えはあまりよく +ないかもしれません. むしろ, FreeBSDのために人生を棒に振ってしまった人 +の集まりといった方が正しいかも.... <tt>;)</tt></item> + +<item><bf>その他のコントリビュータ</bf> + +<p>最後になりますが, もっとも重要で多数をしめる開発者はフィードバック +やバグフィクスをどんどん送ってくれるユーザ自身です. FreeBSDの開発に外 +郭から関わっていきたいという人は &a.hackers; (<ref id="eresources:mail" +name="メーリングリスト情報">を見てください) に参加するといいでしょう. + +FreeBSDのソースツリーに入っている何かを書いた人の<ref +id="contrib:additional" name="リスト">は日に日に長くなっています. あ +なたも今日, 何か送ることからはじめてみませんか? <tt>:-)</tt> + +<p>もちろんFreeBSDに貢献するにはコードを書くほかにもいろいろな方法があ +ります. 助けが求められている分野については, このハンドブックの<ref +id="submitters" name="貢献の仕方">の節を見てください. + +</itemize> +</descrip> + +ひとことで言うと, FreeBSDの開発組織はゆるやかな同心円状になっています. +ともすると中央集権的に見えがちなこの組織は, FreeBSDの<em>ユーザ</em>が +きちんと管理されたコードベースを容易に追いかけられるようにデザインされ +ているもので, 貢献したいという人を締め出す意図は全くありません! 私た +ちの目標は安定したオペレーティングシステムと簡単にインストールして使う +ことのできる<ref id="ports" name="アプリケーション">を提供することであ +り, この方法は結構うまくはたらくのです. + +これからFreeBSDの開発にたずさわろうという人に, 私たちが望むことはただ +一つです: FreeBSDの成功を継続的なものにするために, 現在の開発者と同じ +ような情熱を持って接してください! diff --git a/share/doc/ja_JP.EUC/handbook/dialup.sgml b/share/doc/ja_JP.EUC/handbook/dialup.sgml new file mode 100644 index 000000000000..333ec8cf0ce6 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/dialup.sgml @@ -0,0 +1,822 @@ +<!-- This is an SGML document in the linuxdoc DTD of the Tutorial for + Configuring a FreeBSD for Dialup Services by Guy Helmer. + $Id$ + The FreeBSD Japanese Documentation Project + Original revision: 1.13 + +<!DOCTYPE linuxdoc PUBLIC "-//Linux//DTD linuxdoc//EN"> + + +<article> + +<title> +FreeBSD でダイアルアップ サービスを行うための設定 +<author>Guy Helmer, <tt/ghelmer@alpha.dsu.edu/ +<date>v0.1, 28 March 1995 +<abstract> + +--> + +<sect><heading>ダイアルアップによるアクセス<label id="dialup"></heading> + +<p><em>原作: &a.ghelmer;.</em> +<p><em>訳: &a.max;.<newline>6 September 1996.</em> + +このドキュメントでは, FreeBSD で外部からのモデムによるアクセスを受け付 +けるための設定に関してまとめてあります. このドキュメントは筆者が +FreeBSD 1.0, 1.1 および 1.1.5.1 での経験と, 他の UNIX 系 OS での経験を +基に書いたものですが, 必ずしも十分な内容でないかもしれませんし, 掲載し +た実例もあなたが今お使いの環境とは一致しないかもしれません. また, 筆者 +はこのドキュメントに従って行われた作業でデータが失われたりシステムが破 +壊されるようなことがあっても, 一切責任をとれません. + +<sect1><heading>設定を始める前に<label id="dialup:prereqs"></> +<p> + +筆者は, 読者が FreeBSD に関する基本的な知識をもっていることを仮定して +このドキュメントをまとめました. まず, FreeBSD が既にインストールされ +ていて, UNIX 系環境においてファイルの編集の方法やシステムに付属のマニュ +アルを参照する方法を知っている必要があります. また, 以下に示すように, + FreeBSD の特定のバージョンが必要となりますし, いくつかの用語に関する +知識, そしてモデムや多少の配線に関する知識も必要となります. + +<sect2><heading>FreeBSD のバージョン</heading> +<p> + +まず, FreeBSD のバージョンは 1.1 以上を使用してください (バージョン +2.x でもかまいません. ). FreeBSD 1.0 には, 2種類のシリアル ドライバ +が含まれているので, 混乱の元となり得ます. また, FreeBSD のシリアル +ディバイス ドライバ (<tt/sio/) は, バージョンを追う毎に改善されてき +ていますので, より新しいバージョンの FreeBSD を使用することで, よりよ +い, より効率の高いドライバを利用することができるはずです. + +<sect2><heading>用語解説</heading> +<p> + +以下, 簡単にいくつかの用語について解説しておきます. + +<descrip> + +<tag/bps/ Bits per Second の略で, データの転送速度を表す単位. + +<tag/DTE/ Data Terminal Equipment の略. たとえばコンピュータ本体のこと. + +<tag/DCE/ Data Communications Equipment の略で, 具体的にはモデムのこと. + +<tag/RS-232/ EIA (米電気産業協会) のハードウェア間シリアル通信の標準規 +格. + +</descrip> + +これらの用語やデータ通信一般に関して, より詳しい情報が必要な場合は, +<em/The RS-232 Bible/ という本 (誰か ISBN 分かる方いませんか?) が参考 +になると思います. + +通信においてのデータ転送速度に関して, このドキュメントでは <bf/ボーレー +ト/ (baud rate) ではなく, <bf/bps/ (bits per second) をその単位として +使うことにします. これは, ボーというのは一定時間に生じる電気的状態の変 +化の数を表す単位にすぎず, <bf/bps/ という単位の方が実体に即しているか +らです. (少なくとも, こういう表現をしておけば, 意地の悪い人に怒られる +こともないのではないかと思います. ) + +<sect2><heading>外づけモデムと内蔵モデムについて</heading> +<p> + +ダイアルアップのサービスに関していえば, 外づけのモデムの方が適している +ようです. これは, 多くの外づけのモデムは設定を不揮発ラムに書き込んで半 +永久的に保存することができますし, また RS-232 に関する重要な情報を知る +ための点滅するライトによるインディケータが搭載されているからです. 点滅 +するライトは, システムを見に来た訪問者に強い印象を与えるという効果だけ +でなく, モデムが適切に動作しているかどうかを知るためにも有効です. + +一方, たいていの内蔵型のモデムには不揮発性ラムが搭載されていないため, +ディップ スイッチの変更以外に設定を保存する方法がありません. また, も +しインディケータがついていても, おそらくコンピュータのケース カバーが +外されていなければその状態を確認するのは難しいでしょう. + +<sect2><heading>モデムとケーブル</heading> +<p> + +以下のことに関して, 予め知っておく必要があります. + +<itemize> + +<item> コンピュータとモデムの間での通信が行えるようにするための接続方 +法. (内蔵型の場合は接続の必要はありません) + +<item> お使いのモデムのコマンドについての知識, あるいはコマンドの解説 +の在処 + +<item> (通信ソフトを使っての) モデムの不揮発ラムに保存可能な設定の変更 +方法 + +</itemize> + +1番目のモデムの接続はたいてい簡単に行えるはずです. ほとんどのストレー +ト シリアル ケーブルが使えるでしょう. 使用すべきケーブルは, 両端に適 +切なコネクタ (DB-25 または DB-9 の雄または雌) のついた, DCE-DTE 間接 +続用のもので, 以下の信号線が接続されていなければなりません. + +<itemize> +<item> Transmitted Data (<tt/SD/) +<item> Received Data (<tt/RD/) +<item> Request to Send (<tt/RTS/) +<item> Clear to Send (<tt/CTS/) +<item> Data Set Ready (<tt/DSR/) +<item> Data Terminal Ready (<tt/DTR/) +<item> Carrier Detect (<tt/CD/) +<item> Signal Ground (<tt/SG/) +</itemize> + +FreeBSD で 2400bps 以上の転送速度を利用する場合には, フロー制御のため +に <tt/RTS/ 信号と <tt/CTS/ 信号が必要です. また, 接続の確立と回線の切 +断を検出するために <tt/CD/ 信号を利用します. さらに, <tt/DTR/ 信号を使っ +て回線切断後のモデムのリセットを行います. ケーブルの中には, 総ての必要 +な信号線が接続されていないものもありますので, たとえば, 回線切断後でも +ログイン セッションが残ってしまうといった問題が発生した場合などには, +ケーブルに問題がある可能性もあります. + +次に, お使いのモデムにもよりますが, もしモデムのコマンドをよく覚えてい +ない場合は, モデムのマニュアルをすぐに参照できるようにしておいてくださ +い. このドキュメントでは例として USR Sportstar の 14,400 bps の外づけ型 +モデムのコマンドを示しておきます. 他の種類のモデムをお使いの場合も, 参 +考になるかもしれません. + +最後に, FreeBSDで快適にモデムを使うためにも, モデムの設定方法を知って +おく必要があります. FreeBSD も他の UNIX 系 OS と同様, 回線の接続およ +び切断の検出や回線の切断および回線切断後のモデムの初期化にハードウェア +シグナルを利用します. FreeBSD は, モデムに対するコマンドの送信やモデ +ムの状態の監視を行いません. パソコンで運用されている BBS への接続に慣 +れている方にとっては, ちょっとめんどうかもしれませんね. + +<sect2><heading>シリアル インタフェースについて</heading> +<p> + +FreeBSD では, NS8250-, NS16450-, NS16550- および NS16550A- に基づ +いた EIA RS-232C (CCITT V.24) 規格のシリアル インタフェースをサポート +しています. 8250 および 16450 ベースのディバイスには1文字のキャラクタ +バッファが搭載されています. また, 16550 系のディバイスには, 16文字分 +のバッファが搭載されていて, はるかによいパフォーマンスを得られます. +(ただし, 無印の 16550 では, バグがあって 16 文字バッファが利用できませ +んので, 可能であれば 16550A 系のディバイスを利用してください. ) 1文字 +のバッファの物は, 16550 系のものと比べて OS にかける負荷が大きいので, +16550A 系ディバイスの利用を強く推奨します. 多数のシリアル ポートを利 +用する場合や, 負荷の高いシステムにおいては, 16550A 系ディバイスを使う +ことで, エラー発生率を低く押さえることができます. + +<sect1><heading>概要</heading> +<p> + +FreeBSD は以下の手順でモデムからのログインを受付ます. <tt/init/ から起 +動された <tt/getty/ のプロセスが, 割り当てられたシリアル ポート (この +例では <tt>/dev/ttyd0</tt>) がオープンされるのを辛抱強く待ちます. +<tt/ps ax/ コマンドを実行すると, 以下のような出力が得られるはずです. + +<tscreen><verb> + 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 +</verb></tscreen> + +ユーザがモデムに電話をかけ, モデム同士が接続されると, モデムの <tt/CD/ +が検出されます. その結果, kernel がキャリア信号を検出して, +<tt/getty/ によるポートのオープンの処理が終了します. <tt/getty/ は, +<tt/login:/ プロンプトを指定されている初期回線速度で送信します. +<tt/getty/ は, 正常に文字列を受信できるかどうか監視し, 通常の設定では, +もし以上な文字列を検出した場合 (理由としては, <tt/getty/ の速度とモデ +ムの接続速度が異なっているような場合が考えられます. ), 正常に文字列が +受信できるまで, <tt/getty/ は速度を変え続けます. + +<tt/getty/ が正しい速度を検出すれば, ユーザに対して <tt/login:/ プロン +プトが表示されるはずです. ユーザがログイン名を入力すると, <tt/getty/ +は <tt>/usr/bin/login</tt> を起動して, パスワードの入力を要求し, その +後ユーザのシェルを起動します. + +それでは, 続いて設定についての解説です. + +<sect1><heading>Kernel の設定</heading> +<p> + +通常, FreeBSD の kernel は, PC-DOS の世界で <tt/COM1:/, <tt/COM2:/ +, <tt/COM3:/ および <tt/COM4:/ と呼ばれる四つのシリアル ポートを探す +ように設定されています. また, FreeBSD では, 現在のところ Boca の 1008 +や 2016 のような, 単純なマルチポートのシリアル インタフェースもサポー +トしています. (マルチポートのシリアル ボードに関しての kernel の設定 +については, <tt/sio(4)/ のマニュアルを参照してください. ) デフォルト +の kernel は, COM ポートだけを探します. + +搭載されているシリアル ポートのいずれかを, kernel が認識しているかどう +か確認したい場合は, kernel 起動時のメッセージを注意深く見ているか, あ +るいは <tt>/sbin/dmesg</tt> コマンドを使って, ブート時の出力メッセージ +を確認してください. 特に, <tt/sio/ で始まるメッセージをよく見てくださ +い. 参考までに, 以下のコマンドで <tt/sio/ という文字列を含むメッセージ +だけを表示することができます. + +<tscreen><verb> +/sbin/dmesg | grep 'sio' +</verb></tscreen> + +たとえば, シリアル ポートを四つ持つシステムの場合は, 以下のようなシリ +アル ポートに関するメッセージが kernel によって表示されます. + +<tscreen><verb> +sio0 at 0x3f8-0x3ff irq 4 on isa +sio0: type 16550A +sio1 at 0x2f8-0x2ff irq 3 on isa +sio1: type 16550A +sio2 at 0x3e8-0x3ef irq 5 on isa +sio2: type 16550A +sio3 at 0x2e8-0x2ef irq 9 on isa +sio3: type 16550A +</verb></tscreen> + +もし, kernel に正常に認識されないポートがある場合は, おそらくカスタマ +イズした kernel を構築する必要があるでしょう. + +kernel 構築と構築のための設定に関しては, BSD System Manager's Manual +の ``Building Berkeley Kernels with Config (config コマンドによる BSD +kernel の構築) '' [ソース ファイルは +<tt>/usr/src/share/doc/smm</tt> にあります]と ``FreeBSD +Configuration Options'' [ <tt>/sys/conf/options</tt> および +<tt>/sys/<em>arch</em>/conf/options.<em>arch</em></tt> の +<em>arch</em>の部分をたとえば<tt>i386</tt>としたファイル ] を参照 +してください. + +kernel の設定と構築をするためには, kernel のソース + (FreeBSD 1.1 では <tt>srcdist/srcsys.??</tt>, FreeBSD 1.1.5.1 では +<tt>srcdist/sys.??</tt>, またFreeBSD 2.0 では総てのソース)を展開 +する必要があります. + +まだ自分のシステムの kernel 用のコンフィギュレーション ファイルを作っ +ていない場合は, <tt>/sys/i386/conf</tt> に <tt/cd/ して作成してくださ +い. 初めてコンフィギュレーション ファイルを作る場合は, まず GENRICAH +(FreeBSD 1.x で BusTek の SCSI コントローラを使っている場合は +GENERICBT) というファイルを, <em/YOURSYS/ にコピーしてください. ここ +で, <em/YOURSYS/ はあなたのシステム名で, 大文字である必要があります. +このファイルを編集して, ディバイスに関する記述を変更します. + +<tscreen><verb> +device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr +device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr +device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr +device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr +</verb></tscreen> + +システムに搭載されていないディバイスに関する記述は, コメントアウトまた +は削除してしまってかまいません. Boca の BB2016 のようなマルチポートの +シリアル ボードをお持ちの場合は, <tt/sio(4)/ のマニュアルを見て, マ +ルチポートのボードのためのコンフィギュレーション ファイルの記述のし方 +に関して確認してください. ディバイスのフラグの指定方法がバージョンによっ +て異なりますので, 別のバージョンの FreeBSD で利用していたコンフィギュ +レーション ファイルを流用する場合には十分注意してください. + +なお, <tt/port "IO_COM1"/, <tt/"IO_COM2"/, <tt/"IO_COM3"/ および +<tt/"IO_COM4"/ は, それぞれのポートの一般的なアドレスである <tt/0x3f8/, + +<tt/0x2f8/, <tt/0x3e8/ および <tt/0x2e8/ を表します. また, 割り込 +み番号 4, 3, 5 と 9 は, それぞれ <tt/COM1:/ から <tt/COM4:/ のポー +トで一般的に使用される IRQ です. また, ISA バスのコンピュータの場合, +一般的なシリアルポートは複数のポートで一つの IRQ を共有することが <bf> +できません</bf>ので注意が必要です. (マルチポートのシリアル ボードの +場合は, 複数の 16550A ベースのポートで一つまたは二つの IRQ を共有する +ための機構を備えています. ) + +コンフィギュレーション ファイルの編集が終わったら, ``Building +Berkeley Kernels with Config (config コマンドによる BSD kernel の構築)'' +および <tt/config(8)/ のマニュアルにしたがって, <tt/config/ コマンド +を使って kernel 構築のためのディレクトリを作成した後, kernel の構築, +インストールおよびテストを行ってください. + +<sect1><heading>ディバイス スペシャル ファイル</heading> +<p> + +kernel に組み込まれているほとんどのディバイスは, <tt>/dev</tt> ディレ +クトリにある, 「ディバイス スペシャル ファイル」を介してアクセスされ +ます. <tt/sio/ ディバイスの場合は, 着信用の <tt>/dev/ttyd?</tt> およ +び, 発信用の <tt>/dev/cua0?</tt> が利用されます. さらに, FreeBSD の +1.1.5 以降では, 初期化ディバイス (<tt>/dev/ttyi?</tt> と +<tt>/dev/cuai0?</tt>)およびロッキング ディバイス (<tt>/dev/ttyld?</tt> と +<tt>/dev/cual0?</tt>) も合わせて利用されます. 初期化ディバイスは, 通信 +ポートがオープンされる度に, そのポートの初期設定を行うために使われます. +たとえば, <tt>CTS/RTS</tt> によるフロー制御を行うモデムが接続されてい +る場合の <tt/crtscts/ などのパラメータの初期化が行われます. ロッキング +ディバイスは, ポートの設定をロックし, 他のユーザやプログラムにこれらを +変更されることのないようにするために利用されます. 通信ポートの設定, 初 +期化とロックおよび設定の変更に関しては, それぞれ <tt/termios(4)/, +<tt/sio(4)/ と <tt/stty(1)/ のマニュアルをご覧ください. + +<sect2><heading>ディバイス スペシャル ファイルの作成</heading> +<p> + +ディバイス スペシャル ファイルの管理は, ディレクトリ <tt>/dev</tt> +にあるシェル スクリプト <tt/MAKEDEV/ によって行います. (FreeBSD +1.1.5 の <tt/MAKEDEV(8)/ のマニュアルの <tt/COM/ ポートに関する記述は, +かなりいい加減なので無視してください. ) <tt/MAKEDEV/ を使って, +<tt/COM1:/ (ポート 0) をダイアルアップのポートとして利用するためのディ +バイス スペシャル ファイルを作るには, <tt>/dev</tt> に <tt/cd/ して +から, <tt/MAKEDEV ttyd0/ と実行してください. 同様に, <tt/MAKEDEV +ttyd1/ とすることで, <tt/COM2:/ (ポート 1) 用のディバイス スペシャル ファイル +を作成することができます. + +<tt/MAKEDEV/ は, <tt>/dev/ttyd?</tt> のディバイス ファイルだけでなく, +<tt>/dev/cua0?</tt> (および FreeBSD 1.1.5 以降では総ての初期化ディバイ +スとロッキング ディバイスのスペシャル ファイル) も作成します. さらに, +もしシリアル端末用のスペシャル ファイル<tt>/dev/tty0?</tt> が存在すれ +ば, それらの削除も行います. + +ディバイス スペシャル ファイルの作成後, これらのファイルのパーミション +が適切に設定されていて, これらのディバイスを利用してもよいユーザのみが +読み書きできるようになっていることを確認してください. (特に +<tt>/dev/cua*</tt> のパーミションには注意を払ってください. ) この確認 +を怠ると, 一般のユーザがあなたのモデムを使うことができるようなことにな +りかねません. デフォルトの <tt>/dev/cua*</tt> のパーミションは, 以下の +ようになっていて, たいていの場合適切なものだと思います. + +<tscreen><verb> +crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01 +crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01 +crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01 +</verb></tscreen> + +上の設定では, ユーザ <tt/uucp/ と, グループ <tt/dialer/ に属するユーザ +が発信用のディバイスを利用できます. + +<sect1><heading>設定ファイル</heading> +<p> + +FreeBSD のシステムへのダイアル アップによるアクセスを実現するために編 +集が必要と思われる設定ファイルが, <tt>/etc</tt> ディレクトリに三つあ +ります. まず, <tt>/etc/gettytab</tt> には, +<tt>/usr/libexec/getty</tt> デーモンの設定を記述します. つぎに, +<tt>/etc/ttys</tt> に保存されている情報から, <tt>/sbin/init</tt> はど +の <tt/tty/ ディバイスに対して <tt/getty/ のプロセスを実行するべきか判 +断します. 最後に, お使いの FreeBSD が 1.1.5.1 以降のものならば +<tt>/etc/rc.serial</tt> スクリプトに, それ以前のものならば +<tt>/etc/rc.local</tt> スクリプトにシリアル ポートの初期化のためのコマ +ンドを記述することができます. + +UNIX にダイアル アップ モデムを接続する方法には, 二つの考え方がありま +す. 一つの方法は, ダイアル インしてくるユーザの接続速度に関係なく, 常 +にモデムとローカルのコンピュータの RS-232 インタフェースの接続速度を一 +定に保つように設定する方法です. この設定の長所は, ユーザがダイアル イ +ンして接続されると, 即座にシステムからのログイン プロンプトが送信され +るということです. 短所は, システムが実際のモデム間の速度を知ることがで +きないために, Emacs のようなフル スクリーンのプログラムが, 端末との接 +続速度が遅い場合でも, そのような場合に効果的な方法で画面出力を行わない +点です. + +もう一つは, モデムの RS-232 インタフェースとコンピュータの接続速度を, +モデム間の接続速度に応じて変化させるような設定です. たとえば, モデム間 +の接続が V.32bis (14.4 Kbps) ならば, モデムとコンピュータの間の接続を +19.2 Kbps とし, モデム間の接続が 2400 bps の時には, モデムとコンピュー +タ間も 2400 bps で接続するような設定をします. この場合, <tt/getty/ は, +モデムが返すリザルト コードからモデムとコンピュータの接続速度を認識す +ることができませんので, <tt/getty/ は, まず初期速度で <tt/login:/ とい +う文字列を送信して, それに対する応答の文字列を監視します. ここで, ユー +ザ側の端末に無意味な文字列が表示された場合, ユーザは意味のある文字列を +受信するまで <tt><Enter></tt> キーを繰り返し押さなければならない +ということを知っていると仮定しています. もし接続速度が間違っている場合, +<tt/getty/ は, ユーザから送られた文字を無意味な文字列として扱い, 次の +速度を試します. そして, ここで再度 <tt/login:/ プロンプトを送信します. +この一連の動作が異常な回数繰り返されることも考えられますが, 普通は1度 +か2度のキー入力があれば, ユーザはまともなプロンプトを受信できます. こ +のログインの動作が前者の固定速度による方法に比べて美しくないのは明らか +ですが, この方法では, 低速度で接続しているユーザに対するフル スクリー +ンのプログラムからのレスポンスが改善されます. + +このドキュメントでは, 両方の設定方法について解説しますが, どちらかとい +うとモデム間の速度に応じて RS-232 インタフェースの速度が変化するような +設定の方に偏った説明になってしまうと思います. + +<sect2><heading>/etc/gettytab</heading> +<p> + +<tt>/etc/gettytab</tt> は, <tt/getty(8)/ の設定ファイルで, +<tt/termcap(5)/ と同様の形式で記述されます. ファイルのフォーマットや定 +義できる機能についての詳細については, <tt/gettytab(4)/ のマニュアルを +ご覧ください. + +<sect3><heading>固定速度の設定</heading> +<p> + +モデムとコンピュータ間の通信速度を固定して使う場合, おそらく +<tt>/etc/gettytab</tt> に特に変更を加える必要はないはずです. + +<sect3><heading>可変速度の設定</heading> +<p> + +<tt/getty/ が利用するモデムとコンピュータの接続速度に関する情報を +<tt>/etc/gettytab</tt> に記述する必要があります. もし, 2400 bps のモ +デムをお使いになるのであれば, 既存の <tt/D2400/ のエントリがそのまま利 +用できるでしょう. このエントリは FreeBSD の 1.1.5.1 の <tt/gettytab/ +には既に含まれていますので, あなたの FreeBSD のバージョンでこのエント +リが存在しているのであれば, 新たに追加する必要はありません. + +<tscreen><verb> +# +# Fast dialup terminals, 2400/1200/300 rotary (can start either way) +# +D2400|d2400|Fast-Dial-2400:\ + :nx=D1200:tc=2400-baud: +3|D1200|Fast-Dial-1200:\ + :nx=D300:tc=1200-baud: +5|D300|Fast-Dial-300:\ + :nx=D2400:tc=300-baud: +</verb></tscreen> + +高速モデムをお使いの場合は, おそらく <tt>/etc/gettytab</tt> に新たなエ +ントリを追加する必要があります. 以下の例は, 14.4 Kbps のモデムを, 最 +大インタフェース速度を 19.2 Kbps として利用するためのエントリです. + +<tscreen><verb> +# +# Additions for a V.32bis Modem +# +um|V300|High Speed Modem at 300,8-bit:\ + :nx=V19200:tc=std.300: +un|V1200|High Speed Modem at 1200,8-bit:\ + :nx=V300:tc=std.1200: +uo|V2400|High Speed Modem at 2400,8-bit:\ + :nx=V1200:tc=std.2400: +up|V9600|High Speed Modem at 9600,8-bit:\ + :nx=V2400:tc=std.9600: +uq|V19200|High Speed Modem at 19200,8-bit:\ + :nx=V9600:tc=std.19200: +</verb></tscreen> + +上記の例を利用した場合, FreeBSD 1.1.5 以降ではパリティなし, 8ビットの +接続が行われます. FreeBSD 1.1 では, <tt/:np:/ パラメータをファイルの +先頭の <tt/std.<em/xxx/</tt> のエントリに追加することで, パリティなし, +8ビットの接続が行われますが, このパラメータを追加しなければ接続は偶数 +パリティ, 7ビットになります. + +上記の例では, まず 19.2 Kbps (V.32bis) によるモデムとコンピュータ間の +接続を試み, 続いて 9600 bps (V.32), 2400 bps, 1200 bps, 300 bpsと順に +試み, 再び 19.2 Kbps による接続を試みるという循環に入ります. この接続 +速度の循環は, <tt/nx=/(<bf/next table/) の機能で実現されています. ま +た, 各行はそれぞれ <tt/tc=/(<bf/table continuation/) の機能を使って, +その他の接続速度に依存した「標準的な」設定を取り込んでいます. + +もし, お使いのモデムが 28.8 Kbps であったり, 14.4 Kbps の圧縮転送の機 +能を有効に利用したい場合は, 19.2 Kbps よりも速い速度を利用するように +設定する必要があります. 以下に 57.6 Kbps から接続を試みる +<tt/gettytab/ の設定例を示しておきます. + +<tscreen><verb> +# +# Additions for a V.32bis or V.34 Modem +# Starting at 57.6 Kbps +# +vm|VH300|Very High Speed Modem at 300,8-bit:\ + :nx=VH57600:tc=std.300: +vn|VH1200|Very High Speed Modem at 1200,8-bit:\ + :nx=VH300:tc=std.1200: +vo|VH2400|Very High Speed Modem at 2400,8-bit:\ + :nx=VH1200:tc=std.2400: +vp|VH9600|Very High Speed Modem at 9600,8-bit:\ + :nx=VH2400:tc=std.9600: +vq|VH57600|Very High Speed Modem at 57600,8-bit:\ + :nx=VH9600:tc=std.57600: +</verb></tscreen> + +もし, お使いの CPU が低速のものであったり, CPU に対する負荷が高い場合 +で, 16650A 系のシリアル ポートをお使いでない場合, 57.6 Kbps の接続に +おいて, sio の ``slio'' エラーが発生するかもしれません. + +<sect2><heading>/etc/ttys<label id="dialup:ttys"></heading> +<p> + +<tt>/etc/ttys</tt> には, <tt/init/ が監視すべき <tt/tty/ のリストを記 +述します. さらに, <tt>/etc/ttys</tt> は, <tt/login/ に対してセキュリ +ティに関する情報を提供します. (ユーザ <tt/root/ は, <tt/secure/ とマー +クされている <tt/tty/ のみからログインできます. ) 詳しくは +<tt/ttys(5)/ のマニュアルをご覧ください. + +<tt>/etc/ttys</tt> の既存の行を変更するか, あるいは新しい行を追加して, +<tt/init/ が自動的に新しいダイアル アップ サービス用のポートに対して +<tt/getty/ プロセスを起動するようにしてください. 書式は, 固定速度の設 +定か可変速度の設定かに関わらず, 以下のとおりです. + +<tscreen><verb> +ttyd0 "/usr/libexec/getty xxx" dialup on +</verb></tscreen> + +1番目の項目は, このエントリで対象とするディバイス スペシャル ファイル +です. 上の例では <tt/ttyd0/ として, <tt>/dev/ttyd0</tt> を <tt/getty/ +に監視させることを表しています. 2番目の項目 <tt>"/usr/libexec/getty +<em/xxx/"</tt> (<em/xxx/ は初期段階で使われる <tt/gettytab/ のエントリ +に置き換えてください. ) が, <tt/init/ がこのディバイスに対して起動する +プロセスです. 3番目の <tt/dialup/ は, デフォルトのターミナル タイプで +す. 4番目の <tt/on/ は, この行が有効であることを <tt/init/ に対して示 +しています. 5番目の項目に <tt/secure/ を指定することもできますが, これ +は, たとえばシステムのコンソールのように, 物理的に安全な端末に対しての +み指定するようにしてください. + +デフォルトのターミナル タイプ (上記の例では <tt/dialup/) は, ローカル +のユーザの好みによって異なってきます. ユーザがログイン スクリプトをカ +スタマイズして, ターミナル タイプが <tt/dialup/ の時には自動的に他のター +ミナル タイプを設定できるように, ダイアル アップのポートのデフォルトの +ターミナル タイプには <tt/dialup/ が伝統的に用いられています. しかし, +筆者のサイトでは, ほとんどのユーザが VT102 エミュレイションを使ってい +るので, ダイアル アップのポートのデフォルト ターミナル タイプとして +<tt/vt102/ を指定しています. + +<tt>/etc/ttys</tt> の修正がすんだら, 以下のようなコマンドを使って +<tt/init/ プロセスに <tt/HUP/ シグナルを送り, <tt>/etc/ttys</tt> を +読み込み直させてください. + +<tscreen><verb> +kill -1 1 +</verb></tscreen> + +ただ, もし初めてシステムを設定しているのであれば, モデムが適切に設定さ +れて接続されるまでは, <tt/init/ に対してシグナルを送らない方がいいか +もしれません. + +<sect3><heading>固定速度の設定</heading> +<p> + +速度を固定する設定では, <tt>/etc/ttys</tt> の中で, <tt/getty/ に対し +て固定速度のエントリを指定する必要があります. たとえば, 以下の例はポー +トのスピードが 19.2 Kbps に固定されたモデムのための <tt/ttys/ のエント +リです. + +<tscreen><verb> +ttyd0 "/usr/libexec/getty std.19200" dialup on +</verb></tscreen> + +別の速度でモデムのポートのスピードを固定したい場合は, +<tt>/etc/gettytab</tt> から適切なエントリを選んで, 上の例の +<tt/std.19200/ の部分を <tt>std.<em/speed/</tt> として, 適切な速度のも +のに置き換えてください. + +<sect3><heading>可変速度の設定</heading> +<p> + +可変速度の設定では, <tt/ttys/ のエントリが, <tt>/etc/gettytab</tt> +の中の適切な「自動速度調整」の初期設定のエントリを参照していなければな +りません. たとえば, もし前述の 19.2 Kbps から接続を試みる可変速度の設 +定例 (<tt/V19200/ の <tt/gettytab/ エントリ)をそのまま <tt/ttys/ に追 +加したのであれば, <tt/ttys/ エントリは以下のようになります. + +<tscreen><verb> +ttyd0 "/usr/libexec/getty V19200" dialup on +</verb></tscreen> + +<sect2><heading>/etc/rc.serial または /etc/rc.local</heading> +<p> + +V.32, V.32bis または V.34 モデムのような高速モデムを利用する場合, ハー +ドウェア (<tt>RTS/CTS</tt>) フロー制御を行う必要があります. FreeBSD +kernel のモデム ポートにハードウェア フロー制御のフラグを設定するため +の <tt/stty/ コマンドを, FreeBSD 1.1.5.1 以降では +<tt>/etc/rc.serial</tt> に, FreeBSD 1.1 では <tt>/etc/rc.local</tt> に +記述できます. + +たとえば, FreeBSD 1.1.5.1 の <tt>/etc/rc.serial</tt> のサンプルは以下 +のとおりです. + +<tscreen><verb> +#!/bin/sh +# +# Serial port initial configuration + +stty -f /dev/ttyid1 crtscts +stty -f /dev/cuai01 crtscts +</verb></tscreen> + +この例では, <tt/termio/ のフラグ <tt/crtscts/ をシリアル ポート #1 +(<tt/com2:/) のダイアル インおよびダイアル アウトの初期化ディバイスに +設定しています. + +古い FreeBSD 1.1 では, 以下のエントリが <tt/crtscts/ フラグを設定する +ために <tt>/etc/rc.local</tt> に追加されていました. + +<tscreen><verb> +# Set serial ports to use RTS/CTS flow control +stty -f /dev/ttyd0 crtscts +stty -f /dev/ttyd1 crtscts +stty -f /dev/ttyd2 crtscts +stty -f /dev/ttyd3 crtscts +</verb></tscreen> + +FreeBSD 1.1 には初期化のためのディバイス スペシャル ファイルがないので, +ディバイス ファイルそのものにフラグを設定して, その後はフラグをクリア +してしまうような極悪人が現れないことを願うしかありません. + +<sect1><heading>モデムの設定</heading> +<p> + +もし, あなたのモデムがパラメータを不揮発ラムに保存できるタイプならば, +PC-DOS 上の Telix や FreeBSD 上の <tt/tip/ などのような通信プログラム +を使って, パラメータを設定してください. +<tt/getty/ が利用する初期速度でモデムに接続して, 以下の条件を満たすよ +うに不揮発ラムの設定を変更してください. + +<itemize> + +<item> 接続時に <tt/CD/ 信号がオンになる + +<item> 接続時に <tt/DTR/ がオンになり, <tt/DTR/ オフで回線を切断しモ +デムをリセットする. + +<item> 送信時フロー制御には <tt/CTS/ を利用. + +<item> <tt>XON/XOFF</tt> によるフロー制御を行わない. + +<item> 受信時のフロー制御は <tt/RTS/ を使用. + +<item> Quiet mode (リザルト コードを返さない) + +<item> コマンド エコーを返さない. + +</itemize> + +これらを実現するためのコマンドやディップ スイッチの設定に関しては, モ +デムのマニュアルを参照してください. + +以下に, USRobotics Sportster の 14,400 bps の外づけモデムの設定例を示 +しておきます. + +<tscreen><verb> +ATZ +AT&C1&D2&H1&I0&R2&W +</verb></tscreen> + +ことのついでに, たとえば, V42.bis や MNP5 のデータ圧縮を使用するかど +うかなどのモデムの他の設定について確認, 調整しておくのもよいかもしれま +せん. + +さらに, USRobotics Sportster の 14,400 bps の外づけモデムでは, 以下の +ようなディップ スイッチの設定も必要です. 他のモデムをお使いの方も, 以 +下の例を設定の参考にしてください. + +<itemize> + +<item> スイッチ1: UP - DTR 標準 + +<item> スイッチ2: 無視 (リザルト コードを単語形式にするか数値形式にす +るか) + +<item> スイッチ3: UP - リザルト コードを返さない + +<item> スイッチ4: DOWN - コマンド エコーを返さない + +<item> スイッチ5: UP - 自動着信 + +<item> スイッチ6: UP - CD 標準 + +<item> スイッチ7: UP - 不揮発ラムからデフォルト値をロードする + +<item> スイッチ8: 無視 (Smart Mode/Dumb Mode) + +</itemize> + +リザルト コードを返さないように設定しておかないと, <tt/getty/ が誤っ +て <tt/login:/ プロンプトをコマンド モードのモデムに送信してしまった場 +合に, モデムがこの入力をエコーしたり, この入力に対するリザルト コード +を返してしまったりすることになります. この結果として, モデムと +<tt/getty/ の間で延々と無意味なやりとりが続いたというケースを聞いたこ +とがあります. + +<sect2><heading>固定速度の設定</heading> +<p> + +固定速度の設定では, モデムとコンピュータ間の通信速度をモデムとモデム間 +の接続速度に関係なく, 常に一定に保つように, モデムを設定する必要があり +ます. USRobotics Sportster の 14,400 bps 外づけモデムの場合, 以下のコ +マンドで, モデムとコンピュータ間の速度が, コマンド送信時の速度に固定さ +れます. + +<tscreen><verb> +ATZ +AT&B1&W +</verb></tscreen> + +<sect2><heading>可変速度の設定</heading> +<p> + +可変速度の設定では, シリアル ポートの速度が, 着信速度に応じて変化する +ように設定しなければいけません. USRobotics Sporster の 14,400 bps 外 +づけモデムの場合, 以下のコマンドで, エラー訂正機能を利用した通信の場合 +は, コマンドを送信した時の通信速度にシリアル ポートの速度を固定し, エ +ラー訂正機能を利用しない接続では, シリアル ポートの速度が変化するよう +に設定されます. + +<tscreen><verb> +ATZ +AT&B2&W +</verb></tscreen> + +<sect2><heading>モデムの設定の確認</heading> +<p> + +ほとんどの高速モデムには, 現在の設定をある程度人間にも理解できる形式に +して表示させるコマンドがあります. USRobotics Sporster の 14,400 bps +外づけモデムの場合は, <tt/ATI5/ コマンドで, 現在の不揮発ラムの設定を +表示することができます. さらに, ディップ スイッチの設定も含めた現在の +設定を確認するためには, <tt/ATZ/ コマンドを送信してから, <tt/ATI4/ +コマンドを送信してください. + +他のメーカーのモデムをお使いの場合は, モデムのマニュアルで設定値の確認 +方法を確認してください. + +<sect1><heading>トラブルシューティング</heading> +<p> + +以下の手順でダイアル アップ モデムの動作を確認することができます. + +<sect2><heading> FreeBSD システムの動作確認</heading> +<p> + +モデムを FreeBSD システムに接続し, システムをブートします. あなたのモ +デムにモデムの状態を確認するためのインジケータがあれば, <tt/DTR/ のイ +ンジケータの状態に注目してください. もし, システムのコンソールに +<tt/login:/ プロンプトが表示された時に, <tt/DTR/ のインジケータが点灯 +すれば, FreeBSD が適切なポートに対して <tt/getty/ を起動し, モデムへ +の着信を待っている状態であることを意味しています. + +もし <tt/DTR/ のインジケータが点灯しない場合は, システムのコンソールか +ら FreeBSD にログインして, <tt/ps ax/ を実行し, FreeBSD が 適切なポー +トに対して<tt/getty/ プロセスを起動しようとしているのかどうか確認して +ください. プロセスに関する情報の中に, 以下のような行が表示されるはずで +す. + +<tscreen><verb> + 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 + 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 +</verb></tscreen> + +モデムにまだ着信がない状態の時に, 以下のように上とは異なる出力があった +場合, <tt/getty/ は既にモデム ポートのオープンを終了したということに +なります. + +<tscreen><verb> + 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 + ^^ +</verb></tscreen> + +<tt/getty/ は, <tt/CD/ (carrier detect) 信号がオンの状態になるまで, +ポートのオープンを完了することはできませんので, この場合は接続に問題が +あるか, あるいはモデムの設定に問題があることが考えられます. + +もし, 適切なポートをオープンしようとしている <tt/getty/ が見あたらない +場合は, 再度 <tt>/etc/ttys</tt> の内容を確認し, 書式などに誤りがないか +調べてみてください. また, ログ ファイル <tt>/var/log/messages</tt> に +<tt/init/ および <tt/getty/ から何か出力がないかどうかも確認してみてく +ださい. もし何かメッセージが記録されていたら, 再度 <tt>/etc/ttys</tt> , +<tt>/etc/gettytab</tt> の二つの設定ファイルと, ディバイス スペシャル +ファイル <tt>/dev/ttyd?</tt> を確認し, 記述に誤りがないか, 足りないエ +ントリがないか, 足りないディバイス スペシャルファイルがないかといった +点について調べてみてください. + +<sect2><heading>モデムで接続してみる</heading> +<p> + +実際にモデムを使って別のコンピュータから接続してみてください. この時, +8ビット, パリティなし, 1ストップ ビットで接続するようにしてください. +接続後すぐにプロンプトが返ってこない場合や, 無意味な文字列が表示される +場合は, 1秒に1回くらいの割合で <tt><Enter></tt> キーを押してみて +ください. しばらくたって, なおも <tt/login:/ プロンプトが現れない場合 +は, <tt>BREAK</tt> 信号を送信してみてください. この時, 端末側で使って +いるモデムが高速モデムならば, このモデムのインタフェースの接続速度を固 +定してから, 再度ダイアル インしてみてください. (たとえば, USRobotics +Sportster の場合は, <tt>AT&B1</tt>) + +それでもまだ <tt/login:/ プロンプトが表示されない場合は, +<tt>/etc/gettytab</tt> の以下の点について再度確認してみてください. + +<itemize> +<item> <tt>/etc/ttys</tt> の対応する行の 2番目の項目で, +<tt>/etc/gettytab</tt> の中で定義されているエントリが指定されているか + +<item> 各 <tt/nx=/ で <tt>/etc/gettytab</tt> の中で定義されているもの +が指定されているか + +<item> 各 <tt/tc=/ で <tt>/etc/gettytab</tt> の中で定義されているもの +が指定されているか + +</itemize> + +もしダイアル インしても, FreeBSD システム側のモデムが応答しない場合は, +FreeBSD 側のモデムが <tt/DTR/ がオンになった時に電話にでるように設定さ +れているかを確認してください. もしモデムの設定に問題がなさそうならば, +モデムのインジケータ (がもしあれば) で, <tt/DTR/ がオンになっているか +を確認してください. + +この確認のステップを数回繰り返してもうまくいかない場合は, 一度休憩して, +しばらくたってから挑戦してみましょう. それでもだめなら, おそらく +&a.questions にあなたのモデムについての情報と問題を書いたメールを送れ +ば, メーリング リストのメンバーが問題の解決を助けるべく努力してくれる +でしょう. + +<sect1><heading>謝辞</heading> +<p> + +以下の方々から, 多くのコメントやアドバイスをいただきました. ここに謝意 +を表します. + +<descrip> + +<tag/Sean Kelly/ <kelly@fsl.noaa.gov> 多くのすばらしい助言をいた +だきました + +</descrip> diff --git a/share/doc/ja_JP.EUC/handbook/diskless.sgml b/share/doc/ja_JP.EUC/handbook/diskless.sgml new file mode 100644 index 000000000000..0591acb419f9 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/diskless.sgml @@ -0,0 +1,163 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.7 --> +<!-- 日本語訳 Y.Suzuki(yasu@hike.te.chiba-u.ac.jp)--> + +<sect><heading>Diskless operation<label id="diskless"></heading> + +<p><em>Contributed by &a.martin;.</em> + + <tt>netboot.com/netboot.rom</tt>によって、 + ディスクのないクライアントで + ネットワーク経由でFreeBSDマシンのブートを行い + FreeBSDを走らせることができます。 + 2.0ではローカルなスワップを持つことができます。 + NFS経由のスワッピングもサポートされています。 + + サポートされているイーサネットカード: + Western Digital/SMC 8003, 8013, 8216 とその互換ボード, + NE1000/NE2000 とその互換カード (再コンパイルが必要) + + <sect1> + <heading>セットアップの手順</heading> + + <p><enum> + <item>サーバにするマシンを見つけます。 + このマシンには、FreeBSD 2.0のバイナリとbootpを + 記憶するだけの十分なディスクスペースが必要です。 + tftp と NFS も使えます。 + + テストしたマシン: + <itemize> + <item>HP9000/8xx / HP-UX 9.04以降 + (9.04以前では動きません)</item> + <item>Sun/Solaris 2.3. (bootpが必要)</item> + </itemize> + + <item>クライアントにIP,gateway,netmaskを提供する + bootpサーバをセットアップします。 +<tscreen><verb> +diskless:\ + :ht=ether:\ + :ha=0000c01f848a:\ + :sm=255.255.255.0:\ + :hn:\ + :ds=192.1.2.3:\ + :ip=192.1.2.4:\ + :gw=192.1.2.5:\ + :vm=rfc1048: +</verb></tscreen></item> + + <item>クライアントにブート情報を提供するTFTPサーバを + (bootpサーバと同じマシンに)セットアップします。 + このファイルの名前は、<tt>cfg.X.X.X.X</tt> (もしくは + <tt>/tftpboot/cfg.X.X.X.X</tt>)で、 + ここで<tt>X.X.X.X</tt> はクライアントのIPアドレスです。 + このファイルの内容は netbootコマンドで有効です。 + 2.0では、netboot は以下のようなコマンドを持ちます: +<tscreen><verb> +help - helpリストの表示 +ip <X.X.X.X> - クライアントのIPアドレスの表示/セット +server <X.X.X.X> - bootp/tftp サーバのアドレスの表示/セット +netmask <X.X.X.X> - netmaskの表示/セット +hostname <name> - hostnameの表示/セット +kernel <name> - カーネル名の表示/セット +rootfs <ip:/fs> - root ファイルシステムの表示/セット +swapfs <ip:/fs> - swap ファイルシステムの表示/セット +swapsize <size> - diskless swapsize を Kbytes単位でセット +diskboot - ディスクからのブート +autoboot - ブートプロセスの続行 +trans <on|off> - トランシーバのオン|オフ +flags [bcdhsv] - ブートフラグの設定 +</verb></tscreen> + 完全にディスクレスな場合の一般的なcfgファイルは以下のようになります: +<tscreen><verb> +rootfs 192.1.2.3:/rootfs/myclient +swapfs 192.1.2.3:/swapfs +swapsize 20000 +hostname myclient.mydomain +</verb></tscreen> + ローカルにswapを持つマシンについては以下のようになります: +<tscreen><verb> +rootfs 192.1.2.3:/rootfs/myclient +hostname myclient.mydomain +</verb></tscreen> + + <item>NFS サーバがクライアントにroot(必要ならswapも) + ファイルシステムをexportしているか、また、 + クライアントがこれらのファイルシステムに + ルートアクセスできるか確認します。 + + FreeBSDにおける一般的な <tt>/etc/exports</tt> ファイルは + 以下のようになります: +<tscreen><verb> +/rootfs/myclient -maproot=0:0 myclient.mydomain +/swapfs -maproot=0:0 myclient.mydomain +</verb></tscreen> + + そして、HP-UX側では以下のようになります: +<tscreen><verb> +/rootfs/myclient -root=myclient.mydomain +/swapfs -root=myclient.mydomain +</verb></tscreen> + + <item>NFS経由でスワッピングを行う場合 + (完全にディスクレスな場合の設定)、 + クライアントが <tt>dd</tt> で使用する swap ファイルを作成します。 + もし、<tt>swapfs</tt> コマンドが上記の例のように + 引数 <tt>/swapfs</tt>を持ちそのサイズが 20000 である場合、 + myclientに対するスワップファイルは + <tt>/swapfs/swap.X.X.X.X</tt> で呼び出されます。 + ここで <tt>X.X.X.X</tt> はクライアントのIPアドレスです。 + + 例: +<tscreen><verb> +# dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000 +</verb></tscreen> + + また、スワッピングが開始されるとクライアントのスワップスペースは + センシティブな情報を含むようになるので、不正なアクセスを防止するため、 + このファイルへの読み書きのアクセス制限がなされていることを確認して下さい: +<tscreen><verb> +# chmod 0600 /swapfs/swap.192.1.2.4 +</verb></tscreen> + + <item>クライアントがそれぞれのrootファイルシステムとして使う + ディレクトリにrootファイルシステムを展開します。 + (上記の例では<tt>/rootfs/myclient</tt>). + + <itemize> + + <item> HP-UX システム: サーバはHP9000/800 シリーズのマシンで、 + HP-UX 9.04 以降が必要です。 + これ以前のバージョンではNFSを経由するデバイスファイルが + 作成ができません。 + + <item> <tt>/rootfs/myclient</tt> に <tt>/dev</tt> を + 展開する際に、いくつかのシステム(HPUX)ではFreeBSDに合った + デバイスファイルが作成されないので注意してください。 + その際には最初の起動時にシングルユーザモードに移行して + (ブートの段階でCtrl-Cを押す)、<tt>/dev</tt> に移って + "<tt>sh ./MAKEDEV all</tt>" として、クライアントからこれを + 修正してください。 + </itemize> + + <item>クライアントで <tt>netboot.com</tt> を実行するか、 + <tt>netboot.rom</tt> ファイルから EPROMを作成します。 + </enum> + + <sect1> + <heading><tt>/</tt> および <tt>/usr</tt> ファイルシステムを共有して使用する</heading> + + <p>今のところ、これを行う公式に認められた方法はありませんが、 + 私はそれぞれのクライアントで <tt>/usr</tt> ファイルシステムと + 個々の <tt>/</tt> ファイルシステム を共有して使っています。 + どなたかこれをきちんと行うやり方の提案がありましたら、 + 私に、もしくは &a.core; グループに知らせてください。 + + <sect1> + <heading>特定の設定についてnetbootをコンパイルする</heading> + + <p><tt>/sys/i386/boot/netboot/Makefile</tt> の中の設定を変更して + コンパイルすることで、netbootでNE1000/2000 カードをサポートします。 + このファイルの先頭にあるコメントを見てください。 diff --git a/share/doc/ja_JP.EUC/handbook/dma.sgml b/share/doc/ja_JP.EUC/handbook/dma.sgml new file mode 100644 index 000000000000..41deb81ec79a --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/dma.sgml @@ -0,0 +1,478 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.4 --> +<!-- 日本語訳 鈴木康修 (yasu@hike.te.chiba-u.ac.jp) --> +<!-- +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +]> +--> +<sect><heading>DMAとはどういったものでどういう働きをするのか <label id="dma"></heading> + +<p><em>Copyright © 1995 &a.uhclem;, All Rights Reserved.<newline> +18 October 1995.</em> + +<!-- Version 1(2) --> + + Direct Memory Access (DMA)は, 中央演算処理装置 (CPU)からの干渉なく + データを計算機中である場所から別の場所に動かすための手法です. + + DMA機能の実装の方法はそれぞれの計算機アーキテクチャ間で異なるもので + あるため, ここでの議論はIBMパーソナルコンピュータ(PC), + PC/ATとその互換機におけるDMAサブシステムの実装と働きに限定します. + + PCの DMAサブシステムは, Intelの 8237 DMAコントローラをベースにして + います. 8237はそれぞれ独立にプログラムできる4つのDMAチャネルを持ち, + どのチャネルもいつでもアクティブにできます. + これらのチャネルは順に 0, 1, 2, 3となっています. + PC/ATからは, セカンド 8237 チップが追加され,それらは 4, 5, 6, 7と + なっています. + + オリジナルの DMAコントローラ(0, 1, 2, 3)は, 1回の転送で1バイト + 転送します. セカンドDMAコントローラ(4, 5, 6, 7)は1回で 16ビット転送 + します. 2つのコントローラは全く同じものであり, 転送量が異なるのは + セカンドコントローラがシステムに直結しているためです. + + 8237 は個々のチャネルについて, DRQと-DACKという2つの電気信号を + 持っています. その他に, HRQ (Hold Request), HLDA (Hold Acknowledge), + -EOP (End of Process)があり, バス制御信号として -MEMR (Memory Read), + -MEMW (Memory Write), -IOR (I/O Read), and -IOW (I/O Write)があります. + + 8237 DMACは, いわゆる``fly-by'' DMAコントローラです. + これは, データの移動を行う際に, データは DMACチップを通過せず, + DMACチップに格納されないことを意味します. + また, DMACはI/Oポートとメモリアドレス間でのみデータを + 転送することができますが, 2つのI/Oポートもしくは2つのメモリアドレス + 間ではできません. + + <quote><em>注:</em> 8237は, 非``fly-by''モードでは, 互いに接続された + 2つのチャネルでのメモリ-メモリ間でのDMA操作を許可します. + しかし, PCメーカは, ただでさえ乏しいこのリソースをこんなふうに + 使ったりしません。 + なぜなら, CPUを使用してメモリ間のデータを動かす方が早いからです. + </quote> + + PCアーキテクチャでは, それぞれのDMAチャネルは, 通常そのDMAを + 使用するハードウェアがそのチャネルについてDRQを使って + 転送を要求した時のみ動作します. + + + <sect1><heading>DMA転送の例</heading> + + <p>これはDMA転送の手順の例です. + この例では, フロッピーディスクコントローラ (FDC)が + ディスケットから1バイト読み込んで, DMAを使って,メモリの0x00123456番地に + 格納したいとします. 処理は, FDCによって, DRQ2信号を有効にして + DMAコントローラに要求を伝えることで開始します. + + DMAコントローラはDRQ2シグナルが有効になったことを記録します. + するとDMAコントローラはDMAチャネル2がプログラムされ, 有効に + なっていることを確認します. + DMAコントローラはまた, 他のDMAチャネルがアクティブでないか, または + より高い優先度を持っていないかを確認します. + 一旦これらのチェックが完了すると, DMACはDMACがバスを使うために + バスを開放するようにCPUに要求します. + DMACはCPUにHRQ信号を送ってバスを要求します. + + CPUはHRQ信号を検出し, 現在の指示の実行を完了します. + 一旦プロセッサがバスを開放することができる状態になると, 解放を + 行います. + 通常は CPU により駆動される信号 (-MEMR, -MEMW, -IOR, -IOW, その他)を + すべてハイインピーダンス (ハイともローとも指定しない)状態にした後, + CPUは HLDA信号を有効にして DMAコントローラにバスを明け渡したことを + 伝えます. + + プロセッサによっては, CPUはバスを使用しないいくつかの + 命令を追加して実行することもできますが, + しかし,プロセッサの内部キャッシュやパイプライン以外のメモリから + 何か読み出すといった指示に到達したら結局CPUは待たなくてはなりません. + + ここで,DMACが バスを「託される」と, + DMACはその -MEMR, -MEMW, -IOR, -IOW 出力信号をアクティブにし, + DMACから出力されるアドレスは 0x3456にセットされます.これは + 転送しようとする特定のメモリ番地をバイトで指示するのに使われます. + + するとDMACはDMA転送をリクエストしたデバイスに転送が始まることを + 知らせます.これは -DACK信号をアクティブにすることで行われます. + フロッピーディスクコントローラの場合は, -DACK2を + アクティブにすることで行われます. + + バスのデータ線に転送されるバイトにを出力することについては + フロッピーディスクコントローラが責任をもつことになります. + もし,フロッピーディスクコントローラがバス上にバイトデータを + 出力するのに余計な時間を必要としなければ + (もし周辺装置がもっと時間を必要とする場合には, READY信号を + 経由してDMACに通知します), DMAは 1 DMAクロック待ち, + メモリにバス上のバイトデータを格納するために + -MEMW および -IOR 信号を解除します. そして + FDCはバイトデータが転送されたことを認識します. + + DMAサイクルは1度に1バイトしか転送しないので, + FDCはDRQ2信号を止めて, DMACに転送の終了を知らせます. + DMACは-DACK2信号を解除して, FDCはバス上へのデータ出力を + 停止しなくてはならないことを知らせます. + + 次にDMACは他のDMAチャネルのいずれかに要求がきていないか + チェックを行います. もしどのチャネルのDRQも有効になっていなければ, + DMAコントローラは処理を完了して, -MEMR, -MEMW, -IOR, -IOW および + アドレス信号をハイインピーダンス状態にします. + + 最後に, DMAはHRQ信号を解除します. CPUはこれを見ると,HOLDA信号を + 解除します. そしてCPUは自らの -MEMR, -MEMW, -IOR, -IOW 信号および + アドレス線を有効にし, 命令の実行やメインメモリや周辺機器へのアクセスを + 再開します. + + 典型的なフロッピーディスクの1セクタについては, 上記のプロセスが + それぞれのバイトについて1回行われ, 全部で512回繰り返されます. + 1バイト転送される毎に,DMAC内のアドレスレジスタはインクリメントされ, + 何バイト転送すればよいかを示すカウンタがデクリメントされます. + + カウンタが0になると, DMAはカウンタが0になったことを示すEOP信号を + 送り, DMAコントローラがCPUによって再びプログラムされるまで + これ以上データは転送されなくなります. + + このイベントはターミナルカウント(TC)とも呼ばれます. + EOP信号は1本しかありません. なぜならどんな時もただ1つのDMAチャネル + のみをアクティブにすることができるためです. + + もし, バッファの転送が完了した時に周辺機器から割り込みを発生させたい + とき, 周辺機器は -DACK信号およびEOP信号の両方が同時に発信されたか + どうかをテストします. それが生じると, DMACはCPUの介在がなければ + これ以上はその周辺機器についての情報を転送しないことを意味します. + すると周辺機器はプロセッサの注意を得るために割り込み信号のうちの1つを + 発信します. DMAチップ自身は割り込みを生じさせる能力は持っていません. + 周辺機器とそれに関連するハードウェアが割り込みを生成する責任を + 持ちます. + + DMACが要求を出したときにはCPUは常にバスをDMACに開放しますが, + この動作は, DMACがアクティブになった時にプロセッサが命令を実行するのに + かかる時間がわずかに変化することを除いては, アプリケーション, + オペレーティングシステムの両方からはわからないということを + 理解することが重要です. + そのため, プロセッサが確かにDMA転送が完了したことを知るためには, + 周辺装置やDMAチップ中のレジスタを調べたり,周辺装置からの割り込みを + 受け取る必要があります. + + +<sect1><heading>DMA ページレジスタ および 16メガ アドレス空間制限</heading> + + <p>これまで述べたのとは異なり, DMACはアドレス線を 0x0123456 にセットする + 代わりに 0x3456 だけをセットすることにあなたは気づいたかも + しれません. この理由について少し説明します. + + オリジナルのIBM PCがデザインされた時, IBMは, DMACと割込み制御チップの + 両方を, 8085(8ビットプロセッサで, 16ビットのアドレス空間(64k)を持つ)と + 組み合わせて使うように設計されたチップを使うことを選びました. + IBM PCが64k以上のメモリをサポートしていたため, + DMACが64kを越えるメモリ番地に読み込み又は書き込みを行うために + 変更を行う必要が生じました. + この問題を解決するためにIBMが行ったのは, それぞれのDMAチャネルに + ついてラッチを追加することでした. つまり, 読み込む又は書き込む先の + アドレスの上位ビットに保持するためのものです. + DMAチャネルがアクティブな時はいつでも, + このラッチの内容はアドレスバスに書かれて, そのチャネルのDMA操作が + 終了するまでそこに保持されます. + これらのラッチは「ページレジスタ」と呼ばれます. + + そのため上記に示した例では, DMACはアドレスの0x3456の部分をバス上に + 置き, DMAチャネル2に対するページレジスタは, 0x0012xxxxをバス上に + 置きます. これらの2つの値が組み合わされてアクセスされるメモリ中の完全な + アドレスを形成します. + + ページレジスタのラッチはDMAチップとは独立であるので, + 読み込まれる又は書き込まれるメモリ領域は, 64kの物理的境界を + またいではなりません. + もしDMACがメモリの0xffff番地をアクセスすると, DMACはアドレスレジスタを + インクリメントします. 次にアクセスされるバイトは 0x0000番地に + なるでしょう. 0x10000ではありません. + これはおそらく意図されたものとは異なっているでしょう. + + <quote><em>注:</em> 「物理的な」 64Kの境界を 8086モードの + 64k「セグメント」と混同してはいけません. セグメントは, セグメント + レジスタにオフセットレジスタを加算して作られるものです. + ページレジスタにはアドレスのオーバーラップはありません. </quote> + + さらに複雑なことには, PC/ATでは外部のDMAアドレスのラッチは + 8ビットしか保持しません. よって8+16で24ビットになり, これは + DMAが0から16メガの間のメモリ番地しか指し示せないことを + 意味します. 16メガ以上のメモリを持ったより新しいマシンにおいても, + PCコンパチブルなDMAでは16メガ以上の番地にはアクセスできません. + + この制限を避けるために, オペレーティングシステムは + 16メガ以下にある物理的な64kの境界をまたがない領域にバッファを + 予約します. そして, DMACはデータをそのバッファに読み出すように + プログラムされます. 一旦DMACこのバッファにデータを動かすと, + オペレーティングシステムは本当にデータを格納したいアドレスに + バッファからデータをコピーします. + + 16メガを越えるアドレスからDMAベースの周辺機器にデータを + 書き込む際には, データは16メガ以下に位置したバッファから最初に + コピーされなくてはならず, その後, DMACはバッファからハードウェアに + データをコピーすることができます. FreeBSDでは, これらの予約バッファは + 「バウンスバッファ」と呼ばれます. MS-DOSの世界では, + これらは「スマートバッファ」などと呼ばれます. + + + <sect1><heading>DMA操作モードとその設定</heading> + + <p>8237 DMA はいくつかのモードで動作します. 主なモードは, + 以下のとおりです. + +<descrip> + + <tag>シングル転送モード</tag> + シングルバイト(もしくはワード)が転送されます. + DMAは1バイト毎にバスを開放し, + 再び要求しなくてはなくてはなりません. + これは一般に, すぐにはデータのブロック全てを転送できないデバイスに + よって使用されます. + 周辺装置は次の転送の準備ができる毎にDMAを要求します. + + フロッピーディスクコントローラは1バイトのバッファしか持たないので, + このモードを使用します. + + + <tag>ブロック/デマンド転送モード</tag> + 一旦DMACがシステムバスを取得すると, 最大64kまでのデータブロック + 全体が転送されます. + もし周辺装置が余分に時間を必要とするときは, READY信号を有効に + します. + READY信号は過度に使われるべきではなく, 遅い周辺装置の転送の場合は + シングル転送モードを代わりに使うべきです. + + ブロック転送モードとデマンド転送モードの違いは, 一旦ブロック転送が + 始まると,転送カウンタか0になるまでそれが行われるところです. + 1バイト転送するにはDRQが -DACK が有効になるまでの間だけ + 有効であれば充分です. + デマンドモードはDRQが有効な間は転送が続けられます. DRQが無効に + なったことで中断された転送は, DRQがその後 + 有効になったときに, 転送が中断したところから再開されます. + + CPUを使ってデータを読み出した方が効率がよくなるくらい + CPUの速度が向上するより前の + 古いハードディスクコントローラはデマンドモードを使っていました. + + + <tag>カスケード転送モード</tag> + このメカニズムはDMAチャネルがバスを要求することを許可する + ものですが, 接続されたデバイスはバス上のアドレス情報の配置に + ついて責任を持ちます. これはいわゆる「バスマスタ」というものです. + + カスケードモードのDMAチャネルがバスのコントロールを受け取ると, + DMAは通常行われるようなバス上のアドレスとI/Oコントロール信号の + 出力を行いません. 代わりに, DMAはこのチャネルの -DACK信号を + 有効にします. + + そして, アドレスとバスコントロール信号の供給は + DMAチャネルに接続されたデバイスが担当します. + 周辺機器はシステムバスの完全なコントロールを行い, + 16メガ以下の任意のアドレスの読み込みおよび書き込みを行うことが + できます. 周辺機器はバスの使用を終えると, DRQ線を無効にして, + DMAコントローラはCPUもしくは他のDMAチャネルに制御を返します. + + カスケードモードは複数のDMAコントローラを相互接続するのに + 使われます. PC内ではDMAチャネル4がまさにこの用途に使われています. + 周辺機器がDMAチャネル0, 1, 2, 3でバスを要求すると, + スレーブDMAコントローラは HLDREQ を有効にしますが, + この線は実際にはプライマリDMAコントローラのDRQ4に接続されています. + プライマリのDMAコントローラはその後 HLDREQ を使ってCPUにバスを + 要求します. バスが与えられると, -DACK4が有効になり, + この線は実際にはスレーブDMAコントローラの HLDA信号に接続されています. + スレーブDMAコントローラはその後要求したDMAチャネルに対して + データを転送するか, バスマスタリングを要求する周辺機器にバスを + 許可します. + + このような配線がおこなわれているため, PC/ATシステムではDMAチャネルは + 0, 1, 2, 3, 5, 6, 7のみが使用できます. + + <quote><em>注:</em> + 初期のIBM PCコンピュータでは, DMAチャネル0は操作の + リフレッシュのために予約されていますが, + 最近のシステムでは通常, 周辺機器によって使用することができます. + </quote> + + 周辺機器がバスマスタリングを行っている時は, + システムバスを保持している間絶えずメモリにもしくはメモリから + データを転送することが重要です.もし, 周辺機器がこのように + できないときは, システムがメモリのリフレッシュを行なえるように + しばしばバスを開放しなくてはなりません. + + メモリの読み込みと書き込みのサイクルはリフレッシュサイクルとして + カウントされる(リフレッシュサイクルは実際には不完全なメモリ + 読み込みサイクルになります)ので, + 周辺機器のコントローラが連続するメモリ番地からデータの読み込み + または書き込みを行う間は, メモリの全てをリフレッシュされます. + + バスマスタリングはいくつかのSCSIアダプタやその他の + ハイパフォーマンスなカードに見られます. + + + <tag>自動初期化転送モード</tag> + このモードにおいてDMAはバイト, ブロック, デマンド転送を行いますが, + DMA転送カウンタが0になると, カウンタとアドレスはDMAチャネルが + もともとプログラムされた時のものに戻されます. + これは, デバイスが転送を要求している間は転送が続けられることを + 意味します. + 転送領域としてDMACにプログラムされた固定バッファの中で, + 出力操作でDMACがデータを読み出す前もって新しいデータを + 書き込んだり入力操作でDMACが書き込んだあとに, + そこから新しいデータを読み出す作業はCPUが受け持ちます. + このテクニックは, サンプリング用のバッファが小さいもしくは + それを持たないオーディオデバイスによく使われます. + この「環状」バッファの管理は更なるCPUオーバーヘッドになりますが, + DMAカウンタが0になり, 再プログラムされるまでDMAが停止してしまう + ことによって起きる遅延は, この方法でしかなくす事ができない + 場合もあります. + </descrip> + + <sect1><heading>DMAのプログラミング</heading> + + <p>プログラムされるDMAチャネルは, 通常, 設定を行う前に + 「マスクする」べきです. + これはハードウェアがDRQを有効にすると, たとえ全てのパラメータが + 満たされてない場合や更新されていない場合でも, DMACは + それに応答してしまうからです. + + マスクを行ってから,ホストは転送の方向(メモリからI/O, + もしくはI/Oからメモリ)と, 転送に使用するDMA操作のモード + (シングル, ブロック, デマンド, カスケードなど)を設定し, 最後に + アドレスや転送の長さを設定します. + 設定される長さはDMACに転送させたい量よりも1少なくなります. + アドレスや転送長のLSBとMSBは同じ8ビットI/Oポートに書き込まれます. + そのためDMACが最初のバイトをLSBとして, 2番目のバイトをMSBとして + 受け取ることを保証するために, 最初に別のポートに書き込みを行なって + LSBとMSBの判別を行なうフリップフロップをクリアしておく必要があります. + + そして,DMAのページレジスタを更新します. これはDMACの外部にあり + I/Oポートの別のセットを通してアクセスされます. + + すべての設定ができると, DMAチャネルはマスクを解除することができます. + そのDMAチャネルは「準備ができた」とみなされ, DRQが有効になると + 応答します. + + 8237のプログラミングの正確な詳細については, + ハードウェアデータブックを参照してください. + PCシステムにおけるI/Oマップについても参照する必要があるでしょう. + このマップにはDMAおよびページレジスタのポートがどこに位置するのかを + 書いてあります. 以下に完全な表を示します. + + + <sect1><heading>DMAポートのマップ</heading> + + <p>IBM-PCとPC/ATに基づくすべてのシステムでは, 同じI/Oポートに配置された + DMAハードウェアを持っています. その完全なリストを以下に示します. + DMAコントローラ2に割り当てられたポートは, AT以外のデザインでは + 未定義になっています. + +<sect2><heading>0x00 - 0x1f DMA コントローラ #1 (Channels 0, 1, 2 and 3)</heading> + +<p>DMA アドレス および カウントレジスタ + +<verb> +0x00 write Channel 0 starting address +0x00 read Channel 0 current address +0x02 write Channel 0 starting word count +0x02 read Channel 0 remaining word count + +0x04 write Channel 1 starting address +0x04 read Channel 1 current address +0x06 write Channel 1 starting word count +0x06 read Channel 1 remaining word count + +0x08 write Channel 2 starting address +0x08 read Channel 2 current address +0x0a write Channel 2 starting word count +0x0a read Channel 2 remaining word count + +0x0c write Channel 3 starting address +0x0c read Channel 3 current address +0x0e write Channel 3 starting word count +0x0e read Channel 3 remaining word count +</verb> + +DMA コマンドレジスタ + +<verb> +0x10 write Command Register +0x10 read Status Register +0x12 write Request Register +0x12 read - +0x14 write Single Mask Register Bit +0x14 read - +0x16 write Mode Register +0x16 read - +0x18 write Clear LSB/MSB Flip-Flop +0x18 read - +0x1a write Master Clear/Reset +0x1a read Temporary Register +0x1c write Clear Mask Register +0x1c read - +0x1e write Write All Mask Register Bits +0x1e read - +</verb> + +<sect2><heading>0xc0 - 0xdf DMA コントローラ #2 (Channels 4, 5, 6 and 7)</heading> + +<p>DMA アドレス および カウントレジスタ + +<verb> +0xc0 write Channel 4 starting address +0xc0 read Channel 4 current address +0xc2 write Channel 4 starting word count +0xc2 read Channel 4 remaining word count + +0xc4 write Channel 5 starting address +0xc4 read Channel 5 current address +0xc6 write Channel 5 starting word count +0xc6 read Channel 5 remaining word count + +0xc8 write Channel 6 starting address +0xc8 read Channel 6 current address +0xca write Channel 6 starting word count +0xca read Channel 6 remaining word count + +0xcc write Channel 7 starting address +0xcc read Channel 7 current address +0xce write Channel 7 starting word count +0xce read Channel 7 remaining word count +</verb> + +DMA コマンドレジスタ + +<verb> +0xd0 write Command Register +0xd0 read Status Register +0xd2 write Request Register +0xd2 read - +0xd4 write Single Mask Register Bit +0xd4 read - +0xd6 write Mode Register +0xd6 read - +0xd8 write Clear LSB/MSB Flip-Flop +0xd8 read - +0xda write Master Clear/Reset +0xda read Temporary Register +0xdc write Clear Mask Register +0xdc read - +0xde write Write All Mask Register Bits +0xde read - +</verb> + +<sect2><heading>0x80 - 0x9f DMA ページレジスタ</heading> + +<p><verb> +0x87 r/w DMA Channel 0 +0x83 r/w DMA Channel 1 +0x81 r/w DMA Channel 2 +0x82 r/w DMA Channel 3 + +0x8b r/w DMA Channel 5 +0x89 r/w DMA Channel 6 +0x8a r/w DMA Channel 7 + +0x8f Refresh +</verb> + diff --git a/share/doc/ja_JP.EUC/handbook/eresources.sgml b/share/doc/ja_JP.EUC/handbook/eresources.sgml new file mode 100644 index 000000000000..dfb209f2e2fc --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/eresources.sgml @@ -0,0 +1,373 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.28 --> + +<chapt> + <heading>インターネット上のリソース<label id="eresources"></heading> + + <p><em>原作: &a.jkh;.</em> + + <p><em>訳: &a.yuki;.<newline>28 August 1996</em> + + <p>FreeBSDの進歩が急速であるため, 最新の開発をフォローするためには, + 印刷したメディアは実用的でなくなっています. + 大抵の場合, 最新情報を入手する方法としては, 電子的なリソースが + ベストです. FreeBSDはボランティアの努力によって, + ユーザコミュニティ自体が, 一種の「テクニカルサポート部門」としての + 役割も通常果たしており, 電子メールやUsenetのニュースがこれらのコミュ + ニティにたどり着く最も効果的な方法になっています. + + 以下に, FreeBSD ユーザコミュニティに連絡を取る場合の最も重要な点についての + 概略を示します. もしここに書かれていない他のリソースに気がついた場合は, + それらを &a.doc に送って頂ければ, それらをここに含めるかもしれません. + + <sect> + <heading>メーリングリスト<label id="eresources:mail"></heading> +<p>多くのFreeBSDの開発メンバはUSENETを読むことができますが, +もし, comp.unix.bsd.freebsd.*のグループの一つに質問を投稿したとしても +タイムリにその質問を受け取るということは保証できません. +質問を適切なメーリングリストに投稿すれば, 私たちかFreeBSDの関係者から, +よりよい (そして少なくともより早い) 反応がいつでも得られることでしょう. + +<P>さまざまなメーリングリストの憲章をこのドキュメントの最後に記載します. +私たちは, メーリングリストの質, 特に技術面に関する質を高く保つために +努力しているので, +メーリングリストに参加する前にその憲章を読んでください. + +メーリングリストはいずれもアーカイブされており, それらは +<url url="http://www.FreeBSD.ORG/search.html" +name="FreeBSD World Wide Web server"> で検索することができます. +キーワード検索可能なアーカイブの提供は, +良くある質問に対する回答を見つけるすぐれた方法ですから, +質問を投稿する前に調べてみるべきでしょう. + +<sect1><heading>メーリングリストの概説</heading> + +<p><bf>一般的なメーリングリスト:</bf> 以下のものは誰でも自由に参加できる +一般的なものです: +<verb> +リスト 目的 +---------------------------------------------------------------------- +freebsd-announce 重要なイベントやプロジェクトのマイルストン +freebsd-bugs バグレポート +freebsd-chat FreeBSDコミュニティに関連する技術的ではない話題 +freebsd-current FreeBSD-currentの使用に関連する議論 +freebsd-stable FreeBSD-stableの使用に関連する議論 +freebsd-isp FreeBSDを用いているインターネットサービスプロバイダの話題 +freebsd-questions ユーザからの質問 +</verb> + +<bf>技術的なメーリングリスト:</bf> 以下のメーリングリストは, +技術的な議論のためのものです. +これらのメーリングリストに入る前には憲章を注意深く読むべきであり, +メーリングリストに投稿するメッセージがガイドラインの範囲に収まるようにしてください. +<verb> +リスト 目的 +---------------------------------------------------------------------- +freebsd-doc FreeBSDのドキュメンテーションプロジェクト +freebsd-emulation Linux/DOS/Windowsのような他のシステムのエミュレーション +freebsd-fs ファイルシステム +freebsd-hackers 一般的な技術の議論 +freebsd-hardware FreeBSDの走るハードウェアの一般的な議論 +freebsd-mobile モーバイルコンピューティングについての議論 +freebsd-multimedia マルチメディアの議論 +freebsd-platforms Intel以外のアーキテクチャのプラットフォームへの移植 +freebsd-ports portsコレクションに関する議論 +freebsd-security セキュリティに関する話題 +freebsd-scsi SCSIサブシステム +freebsd-smp 対称/非対称のマルチプロセッシングの設計に関する議論 +</verb> + +<bf>制限されているメーリングリスト:</bf> 以下のメーリングリストは参加するには認可が必要ですが, +提案やコメントは誰でも自由に投稿することができます. +これらの制限されているメーリングリストへの参加の伺いの前に, +技術的なメーリングリストで存在を確立するのがよい考えです. +<verb> +メーリングリスト 目的 +---------------------------------------------------------------------- +freebsd-admin 管理に関する話題 +freebsd-arch アーキテクチャや設計の議論 +freebsd-core FreeBSDコアチーム +freebsd-hubs ミラーサイトを運営している人達 (基盤のサポート) +freebsd-install インストール関係の開発 +freebsd-user-groups ユーザグループの調整 +</verb> + +<bf>CVSメーリングリスト:</bf> 以下のメーリングリストはソースツリーの +さまざまな場所の変更のログメッセージを見ることに興味のある人向けです. +<verb> +メーリングリスト ソースの範囲 (ソースの) 範囲の説明 +---------------------------------------------------------------------- +cvs-CVSROOT /usr/src/[A-Z]* /usr/src/ 以下のトップレベルのファイルの変更 +cvs-all /usr/src ツリーのすべての変更 (スーパーセット) +cvs-bin /usr/src/bin システムバイナリ +cvs-etc /usr/src/etc システムファイル +cvs-games /usr/src/games ゲーム +cvs-gnu /usr/src/gnu GPLにしたがったユーティリティ +cvs-include /usr/src/include インクルードファイル +cvs-kerberosIV /usr/src/kerberosIV Kerberos暗号化コード +cvs-lib /usr/src/lib システムライブラリ +cvs-libexec /usr/src/libexec システムバイナリ +cvs-ports /usr/ports 移植済みソフトウェア +cvs-sbin /usr/src/sbin システムバイナリ +cvs-share /usr/src/share システム共有ファイル +cvs-sys /usr/src/sys カーネル +cvs-usrbin /usr/src/usr.bin ユーザバイナリ +cvs-usrsbin /usr/src/usr.sbin システムバイナリ +</verb> + +<sect1><heading>参加方法</heading> + +<p>どのメーリングリストも<tt>FreeBSD.ORG</tt>にあるので, +メーリングリストにメールを送るには, ただ +<em>listname</em><tt>@FreeBSD.ORG</tt> にメールを送るだけです. +すると, メーリングリストに登録されている世界中のメンバに再配布されます. + +メーリングリストに参加するには, +<tscreen><verb> +subscribe <listname> [<optional address>] +</verb></tscreen> +という内容をメッセージの本文に含むメールを &a.majordomo に送ります. +例えば, freebsd-announce に参加したい場合は次のようにします: +<tscreen><verb> +% mail majordomo@FreeBSD.ORG +subscribe freebsd-announce +^D +</verb></tscreen> +もし, あなたが, 自分自身を違う名前 (メールアドレス) で登録したい場合, +あるいは, ローカルなメーリングリスト (注意:もしあなたのサイトに, +興味を持った仲間がいるなら, これはより有効ですし, +私たちにとっても非常に嬉しいことです.) +を登録する申し込みをおこないたいのであれば, 次のようにします: +<tscreen><verb> +% mail majordomo@FreeBSD.ORG +subscribe freebsd-announce local-announce@somesite.com +^D +</verb></tscreen> +最後に, majordomoに対して +他のタイプのコントロールメッセージを送ることで +メーリングリストから脱退したり, メーリングリストの他のメンバのリストを +得たり, 再びメーリングリストのリストを見たりすることも可能です. +利用できるコマンドの完全なリストを入手するには, 次のようにします: +<tscreen><verb> +% mail majordomo@FreeBSD.ORG +help +^D +</verb></tscreen> +再度言いますが, 私たちは技術的なメーリングリストでは技術的な議論を保つよう +要求します. もし, 「高いレベル」にのみ興味があるなら, freebsd-announce +に参加するように勧めます. これは少ないトラフィックの予定です. +<!-- +Again, we would like to request that you keep discussion in the technical mailing +lists on a technical track. If you are only interested in the "high points" +then it is suggested that you join freebsd-announce, which is intended only +for infrequent traffic. +--> +<sect1><heading>メーリングリストの憲章</heading> + +<p> +<descrip> +<tag/FREEBSD-ADMIN/ <em>管理上の話題</em><newline> +<!-- XXX --> + +<tag/FREEBSD-ANNOUNCE/ <em>重要なイベント/マイルストン</em><newline> +これは, 単にたまに発表される重要なfreebsdのイベントに関心がある人のための +メーリングリストです. これは, スナップショットやその他のリリースについての +アナウンスを含みます. そのアナウンスは新しいFreeBSDの機能のアナウンスを含んでいます. +ボランティア等の呼びかけがあるかもしれません. +これは流通量の少ないメーリングリストです. + +<tag/FREEBSD-ARCH/ <em>アーキテクチャと設計の議論</em><newline> +これは, FreeBSDの設計に関する議論をする人向けのメーリングリストです. +これは, クローズドなリストで, 一般的には参加できません. + +<tag/FREEBSD-BUGS/ <em>バグレポート</em><newline> +これは, FreeBSDのバグレポートのためのメーリングリストです. +可能である場合はいつでも, バグは ``send-pr'' を使って送られる必要があります. + +<tag/FREEBSD-CHAT/ <em>コミュニティに関する技術的ではない話題</em><newline> +このメーリングリストは技術的ではなく, 社会的な情報について, +他のメーリングリストでは取り扱わない話題を含みます. +これは, Jordanがシロイタチに似ているかどうか, +大文字で打つかどうか, 誰がたくさんコーヒーを飲むか, +どこのビールが一番うまいか, 誰が地下室でビールを作っているか, +などについての議論を含みます. 時々重要なイベント (将来開催されるパーティーや, +結婚式, 誕生日, 新しい仕事など) のお知らせが, 技術的なメーリングリストから +でてきます. しかし, フォローは直接 -chatメーリングリストにするべきです. + +<tag/FREEBSD-CORE/ <em>FreeBSDコアチーム</em><newline> +これは, コアメンバが使う内部メーリングリストです. + +<tag/FREEBSD-CURRENT/ <em>FreeBSD-currentの使用に関する議論 +</em><newline>これは freebsd-current のユーザのためのメーリングリストです. +メーリングリストでの話題は, -current で登場した新しい機能について, +その新機能によってユーザに影響することについての注意, および -current +のままでいるために必要な手順についての説明を含みます. +"current" を走らせている人はこのメーリングリストに登録しなくてはなりません. + +<tag/FREEBSD-CURRENT-DIGEST/ <em>FreeBSD-currentの使用に関する議論 +</em><newline> freebsd-currentメーリングリストのダイジェスト版です. +このダイジェストはfreebsd-currentに送られたすべてのメッセージをまとめたものを, +1つのメールにして送り出します. 平均のサイズは約40kbyteです. + +<tag/FREEBSD-STABLE/ <em>FreeBSD-stableの使用に関する議論 +</em><newline>これは freebsd-stable のユーザ用のメーリングリストです. +メーリングリストでの話題は, -stable で登場した新しい機能について, そ +の新機能によってユーザに影響することについての注意, および -stable +のままでいるために必要な手順についての説明を含みます. +"stable" を走らせている人はこのメーリングリストに登録すべきです. + +<tag/FREEBSD-DOC/ <em>ドキュメンテーションプロジェクト</em><newline> +このメーリングリストはFreeBSD Doc Projectに属し, +ドキュメンテーションに関連する問題やプロジェクトの議論のためのものです. + +<tag/FREEBSD-FS/ <em>ファイルシステム</em><newline> +FreeBSDのファイルシステムに関する議論 + +<tag/FREEBSD-HACKERS/ <em>技術的な議論</em><newline> +これはFreeBSDに関する技術的な議論のためのフォーラムです. +これは最もテクニカルなメーリングリストです. +このメーリングリストは, FreeBSD 上でアクティブに活動をしている人のためのもので, +問題を持ち出したり, 代わりの解決法を議論します. +技術的な議論をフォローするのに興味がある人も歓迎します. + +<tag/FREEBSD-HACKERS-DIGEST/ <em>技術的な議論</em><newline> +freebsd-hackersメーリングリストのダイジェスト版です. +このダイジェストはfreebsd-hackersに送られたすべてのメッセージをまとめたものを, +1つのメールにして送り出します. 平均のサイズは約40kbyteです. + +<tag/FREEBSD-HARDWARE/ <em>FreeBSDのハードウェアの一般的な議論 +</em><newline> FreeBSDが走っているハードウェアのタイプや, +何を買ったり避けたりするかに関する様々な問題や, 提案に関する議論. + +<tag/FREEBSD-INSTALL/ <em>インストールに関する議論</em><newline> +このメーリングリストは将来のリリースのインストールに関する開発の +議論のためのものです. + +<tag/FREEBSD-ISP/ <em>インターネットサービスプロバイダのについての話題 +</em><newline>このメーリングリストは, FreeBSDを用いたインターネット +サービスプロバイダ (ISP) に関する話題の議論のためのものです. + +<tag/FREEBSD-MULTIMEDIA/ <em>マルチメディアについての議論</em><newline> +このメーリングリストはFreeBSD上を用いたマルチメディアアプリケーションについてのフォーラムです. +マルチメディアアプリケーションをとりまく議論の中心は, それらのインストール, +開発, そしてFreeBSDにおけるサポートについてです. + +<tag/FREEBSD-PLATFORMS/ <em>Intel以外のプラットフォームへの移植 +</em><newline>クロスプラットフォームのFreeBSDの問題. +Intel以外のプラットフォームへのFreeBSDの移植についての一般的な議論や提案. + +<tag/FREEBSD-PORTS/ <em>``ports'' の議論</em><newline> +FreeBSD の ``ports コレクション'' (/usr/ports) や, 移植の提案, +ports コレクションの基盤の変更, 一般的な整合化活動についての議論. + +<tag/FREEBSD-QUESTIONS/ <em>ユーザからの質問</em><newline> +FreeBSDに関する質問のためののメーリングリストです. +その質問がかなり技術的だと思わないのであれば, +「どのようにして」という質問を技術的なメーリングリストに送るべきではありません. + +<tag/FREEBSD-QUESTIONS-DIGEST/ <em>ユーザからの質問</em><newline> +freebsd-questionsメーリングリストのダイジェスト版です. +このダイジェストはfreebsd-questionsに送られたすべてのメッセージをまとめたものを, +1つのメールにして送り出します. 平均のサイズは約40kbyteです. + +<tag/FREEBSD-SCSI/ <em>SCSIサブシステム</em><newline> +これはFreeBSDのためのscsiサブシステムについて作業している人向けです. + +<tag/FREEBSD-SECURITY/ <em>セキュリティの関連の話題</em><newline> +FreeBSDコンピュータのセキュリティの話題 (DES, Kerberos, よく知られている +セキュリティホールや, それらのふさぎ方など) + +<tag/FREEBSD-USER-GROUPS/ <em>ユーザグループの調整のメーリングリスト</em><newline> +これは, ローカルなユーザグループがお互いに, または, +コアチームが指定した個人と問題を議論する, +それぞれのローカルエリアのユーザグループからの調整人向けの +メーリングリストです. +このメーリングリストはユーザグループ間の +ミーティングの概要やプロジェクトの調整に制限されるべきです. + +</descrip> + + <sect> + <heading>Usenet ニュースグループ<label id="eresources:news"></heading> + + <p>2つのFreeBSD用のニュースグループがあります. ここでは + FreeBSDの議論をするたくさんの様々な人がおり, + 他にもFreeBSD関連するユーザがいます. + これらのいくつかのニュースグループは Warren Toomey + <tt><wkt@cs.adfa.oz.au></tt> によって <url + url="http://minnie.cs.adfa.oz.au/BSD-info/bsdnews_search.html" + name="Keyword searchable archives"> で, + 検索できるようになっています. + + <sect1> + <heading>BSD用のニュースグループ</heading> + + <p><itemize> + <item><url url="news:comp.unix.bsd.freebsd.announce" + name="comp.unix.bsd.freebsd.announce"></item> + <item><url url="news:comp.unix.bsd.freebsd.misc" + name="comp.unix.bsd.freebsd.misc"></item> + </itemize> + + <sect1> + <heading>関連する他のUnixのニュースグループ</heading> + + <p><itemize> + <item><url url="news:comp.unix" name="comp.unix"></item> + <item><url url="news:comp.unix.questions" name="comp.unix.questions"></item> + <item><url url="news:comp.unix.admin" name="comp.unix.admin"></item> + <item><url url="news:comp.unix.programmer" name="comp.unix.programmer"></item> + <item><url url="news:comp.unix.shell" name="comp.unix.shell"></item> + <item><url url="news:comp.unix.user-friendly" name="comp.unix.user-friendly"></item> + <item><url url="news:comp.security.unix" name="comp.security.unix"></item> + <item><url url="news:comp.sources.unix" name="comp.sources.unix"></item> + <item><url url="news:comp.unix.advocacy" name="comp.unix.advocacy"></item> + <item><url url="news:comp.unix.misc" name="comp.unix.misc"></item> + <item><url url="news:comp.os.386bsd.announc" name="comp.os.386bsd.announc"></item> + <item><url url="news:comp.os.386bsd.app" name="comp.os.386bsd.app"></item> + <item><url url="news:comp.os.386bsd.bugs" name="comp.os.386bsd.bugs"></item> + <item><url url="news:comp.os.386bsd.development" name="comp.os.386bsd.development"></item> + <item><url url="news:comp.os.386bsd.misc" name="comp.os.386bsd.misc"></item> + <item><url url="news:comp.os.386bsd.questions" name="comp.os.386bsd.questions"></item> + <item><url url="news:comp.bugs.4bsd" name="comp.bugs.4bsd"></item> + <item><url url="news:comp.bugs.4bsd.ucb-fixes" name="comp.bugs.4bsd.ucb-fixes"></item> + <item><url url="news:comp.unix.bsd" name="comp.unix.bsd"></item> + </itemize> + + <sect1> + <heading>X Window システム</heading> + + <p><itemize> + <item><url url="news:comp.windows.x.i386unix" name="comp.windows.x.i386unix"></item> + <item><url url="news:comp.windows.x" name="comp.windows.x"></item> + <item><url url="news:comp.windows.x.apps" name="comp.windows.x.apps"></item> + <item><url url="news:comp.windows.x.announce" name="comp.windows.x.announce"></item> + <item><url url="news:comp.windows.x.intrinsics" name="comp.windows.x.intrinsics"></item> + <item><url url="news:comp.windows.x.motif" name="comp.windows.x.motif"></item> + <item><url url="news:comp.windows.x.pex" name="comp.windows.x.pex"></item> + <item><url url="news:comp.emulators.ms-windows.wine" name="comp.emulators.ms-windows.wine"></item> + </itemize> + + <sect> + <heading>World Wide Web サイト<label id="eresources:web"></heading> + + <p><itemize> + <item><url url="http://www.FreeBSD.ORG/"> <bf>- 本家のサーバ</bf>.</item> + <item><url url="http://www.au.freebsd.org/FreeBSD/"> <bf>- オーストラリア</bf>.</item> + <item><url url="http://www.br.freebsd.org/"> <bf>- ブラジル</bf>.</item> + <item><url url="http://www.ca.freebsd.org/"> <bf>- カナダ</bf>.</item> + <item><url url="http://sunsite.mff.cuni.cz/www.freebsd.org/"><bf>- チェコ</bf>.</item> + <item><url url="http://sunsite.auc.dk/www.freebsd.org/"> <bf>- デンマーク</bf>.</item> + <item><url url="http://www.ee.freebsd.org/"> <bf>- エストニア</bf>.</item> + <item><url url="http://www.fi.freebsd.org/"> <bf>- フィンランド</bf>.</item> + <item><url url="http://www.de.freebsd.org/"> <bf>- ドイツ</bf>.</item> + <item><url url="http://www.ie.freebsd.org/"> <bf>- アイルランド</bf>.</item> + <item><url url="http://www.jp.freebsd.org/"> <bf>- 日本</bf>.</item> + <item><url url="http://www.kr.freebsd.org/"> <bf>- 韓国</bf>.</item> + <item><url url="http://www.nl.freebsd.org/"> <bf>- ニュージーランド</bf>.</item> + <item><url url="http://www.pt.freebsd.org/"> <bf>- ポルトガル</bf>.</item> + <item><url url="http://www.se.freebsd.org/www.freebsd.org/"> <bf>- スウェーデン</bf>.</item> + <item><url url="http://www.tw.freebsd.org/freebsd.html"> <bf>- 台湾</bf>.</item> + </itemize> + </sect> diff --git a/share/doc/ja_JP.EUC/handbook/esdi.sgml b/share/doc/ja_JP.EUC/handbook/esdi.sgml new file mode 100644 index 000000000000..f78e1ec470e3 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/esdi.sgml @@ -0,0 +1,418 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.8 --> + +<!-- + <title>ESDIハードディスクの紹介と FreeBSDでの利用</title> + <author>(c) 1995, Wilko Bulte, <tt/wilko@yedi.iaf.nl/ + <date>Tue Sep 12 20:48:44 MET DST 1995</date> + + Copyright 1995, Wilko C. Bulte, Arnhem, The Netherlands + +<abstract> +この文書で解説するのは, ESDIハードディスクを FreeBSDオペレーティングシ +ステムとの組み合わせで利用することについてです. 一般的に信じられている +こととは違い, ESDIハードディスクを FreeBSDで利用することは可能です. 実 +際, ESDIを利用したシステムをうまく使っている人たちが存在します! この +文書をとおして, ESDIハードディスクをいかに使うのかを紹介していきたいと +思います. + +この文書のなかで, もし欠落しているものや単純な間違い, あるいは文書をよ +りよいものにするための有効なご意見がございましたら, ぜひ +<tt/wilko@yedi.iaf.nl/ までメールにてお知らせください. +</abstract> +--> + +<sect1><heading>ESDIハードディスクの使い方<label id="esdi"></heading> + +<p><em>原作および Copyright © 1995, &a.wilko;.<newline>24 September 1995.</em> + +<p><em>訳: &a.ts;<newline>2 September 1996.</em> + +ESDIとは Enhanced Small Device Interfaceの略語です. この技術は, 馴染み +深い ST506や ST412といったインタフェースに基づくものであり, 世界初の普 +及型 5.25インチのウィンチェスタディスクを造ったSeagate Technology社に +よって最初に作られました. + +ESDIの Eは拡張 (Enhanced) を表しており, 実際そのとおりです. まず, イン +タフェースの速度は速く, 10 ないし 15Mビット/秒であり, ST412インタフェー +スに接続したドライブの 5Mビット/秒よりも高速です. また, 上位レベルのコ +マンドがいくつか追加されて, オペレーティングシステムレベルのドライバ作 +成者にとって, ESDIインタフェースはある程度インテリジェントなものとなり +ました. ただし SCSIほどにインテリジェントではありません. ESDIは ANSIが +標準化をおこなっています. + +トラックごとのセクタ数を増やすことで, ESDIドライブの記憶容量は引き上げ +られました. 通常, トラックあたり 35セクタですが, 今までに筆者がみたド +ライブの中で大容量のものは, トラックあたり 54セクタもありました. + +ESDIは IDEや SCSIといったインタフェースの普及によって消えつつあります +が, 無料あるいは在庫処分の格安なドライブが入手可能であることを考えると, +少ない (もしくは現状の) 予算で縛られたシステムにとって, ESDIドライブは +理想的です. + +<sect2><heading>ESDIのコンセプト</heading> +<p> +<sect3><heading>物理的な接続</heading> +<p> +ESDIインタフェースでは, ドライブごとに2つのケーブルを接続します. 第 1 +のケーブルは34ピンのフラットケーブルエッジコネクタで, コントローラとド +ライブ間のコマンドおよびステータスの両信号のやりとりのためのものです. +コマンド用ケーブルは, すべての ESDIドライブをデイジーチェーンで結び +ますから, すべてのドライブを接続したバスを構成することになります. + +第2のケーブルは20ピンのフラットケーブルエッジコネクタで, ドライブへの +データ入出力に使います. このケーブルは放射状に接続しますから, ドライブ +ごとにコントローラへの専用接続を持つことになるわけです. + +筆者の経験によれば, PC向け ESDIコントローラには, コントローラあたり最 +大 2 台までのデバイス接続が可能という制限がありました. これは, ドライ +ブのアドレス割り当てのために, 単一ビットだけを用意したという WD1003か +ら持ち越された互換 (?) 機能なのだと思われます. + +<sect3><heading>デバイスのアドレス指定</heading> +<p> +1本のコマンドケーブルには最大で 7つのデバイスと 1つのコントローラを接 +続することができます. どのドライブをコントローラがアドレスしているのか +を個別に認識できるようにするために, ESDIデバイスは, デバイスアドレスを +設定するためのジャンパかスイッチを備えています. + +PC向けコントローラでは, 最初のドライブにはアドレス0を設定し, 第2番目の +ディスクへはアドレス1を設定します. <it>いつも留意すべきことは, </it> +ディスクごとに固有のアドレスを必ず設定するということです! つまり, コン +トローラあたり最大2台のドライブというような PC向けのものでは, 第1 ドラ +イブは第0番ドライブで, 第2ドライブは第1番ドライブだということです. + +<sect3><heading>ターミネート処理 (termination)</heading> +<p> +デイジーチェーン接続用コマンドケーブル (34ピンのケーブルであることを覚 +えていますか? ) では, 最後のチェーン接続ドライブでターミネートしなけれ +ばなりません. このために, ESDIドライブにはターミネート用抵抗ネットワー +クが付属しており, ターミネートする必要がないときにはその抵抗をドライブ +から外したり, またはジャンパで無効 (disable) にすることができるようになっ +ています. + +したがって, ひとつのドライブ, すなわちコマンドケーブルの最終端に位置す +るドライブだけが, そのターミネート用抵抗を有効 (installまたは enable) +にすることができます. コントローラは自動的にコマンドケーブルのもう一方 +の端のターミネート用抵抗を有効にします. ご注意いただきたいのは, コント +ローラは必ずコマンドケーブルのいずれかの端に位置しなければならず, けっ +して途中に位置するようにしては <it>いけない</it> ということです. + +<sect2><heading>ESDIディスクの FreeBSDでの使い方</heading> +<p> +ESDIを初めて動かすようにすることが, どうしてこうも大変なことなのでしょ +うか ? + +ESDIディスクを FreeBSDで動かそうと試みた人たちが激烈なイライラを募らせ +たことは知られています. 今までまったく ESDIを知らない場合には, 複数の +要因の組み合わせが悪く働いて, ESDIへの理解を妨げることになるかもしれま +せん. + +このことは, ESDIと FreeBSDの組み合わせは選んではいけないという俗説も生 +み出しました. 以下の節において, 落し穴のすべてとその解決策を +述べてみようと思います. + +<sect3><heading>ESDI速度の違い</heading> +<p> +すでに簡単に紹介したように, ESDIは2種類の速度を持っています. 旧式のド +ライブとコントローラは 10Mビット/秒のデータ転送速度ですが, 新しいもの +では 15Mビット/秒が利用できます. + +仮に 10Mビット/秒のコントローラへ 15Mビット/秒のドライブを接続したよ +うな場合に問題が生じることを予想することは簡単です. したがって必ず, コ +ントローラ <it>および</it> ドライブのマニュアルを参照して, それぞれの +転送速度が一致しているかどうかを調べるようにしてください. + +<sect3><heading>トラックについて</heading> +<p> +主流の ESDIドライブは, トラックあたり34ないし36個のセクタを持ちます. +しかし大部分の (古い) コントローラは36個以上のセクタを扱うことができま +せん. + +新しい大容量のドライブでは, トラックごとにさらに多くの数のセクタを持つ +ことができます. たとえば筆者の 670MBのドライブは, トラックあたり 54セ +クタも持たせることができます. + +筆者のコントローラは54セクタ数をサポートしていませんでしたが, トラック +あたり35セクタという設定で, 問題なく動作しました. しかし, これが意味す +るのは大量のディスク容量を失うということです. + +もう一度, 詳しい情報についてハードウェアのドキュメントを調べてください. +この例のような仕様からはずれた設定をしたときには, うまく動くかもしれま +せんが, 動かないこともあります. そのようなときには, 別のより多くの機能 +をもつコントローラで試してみるようにしてください. + +<sect3><heading>ハードセクタとソフトセクタ</heading> +<p> +多くの ESDIドライブでは, ハードセクタまたはソフトセクタによる処理を, +ジャンパ設定で指定することができます. ハードセクタとは, 新しいセクタの +開始位置において, ESDIドライブにセクタパルス (sector pulse) を発生させ +ることです. コントローラはこのパルスを利用して, 書き込みや読み取りのタ +イミングを指示します. + +ハードセクタではセクタのサイズを選ぶことができます (通常はフォーマット +後セクタあたり256, 512, および1024バイト). FreeBSDは512バイトのセクタ +サイズを使います. トラックあたりのセクタ数は, 同じように選択に幅があり +ますが, フォーマット後のセクタのバイト数はすべて同じです. セクタごとの +<em>未フォーマット</em> のバイト数は, コントローラがどの程度の調整用の +バイト数を必要とするかによって異なります. トラックあたりのセクタ数を多 +くすれば記憶容量は増えますが, もしドライブから与えられるバイト数よりも +多くのものをコントローラが必要とするのであれば, 問題を生じることがあり +ます. + +ソフトセクタでは, コントローラ自身が読み書きの始まりと終りの位置を決め +ます. なお, ESDI (筆者が知り得たものすべて) では, ハードセクタがデフォ +ルトのようです. ソフトセクタを試みる必要性は感じたことがありません. + +通常, FreeBSDをインストールする以前に, まずセクタ処理の設定を試される +ことをおすすめします. というのも, セクタ処理の設定を変えるたびに, 物理 +フォーマット (low-level format) をしなければならないからです. + +<sect3><heading>物理フォーマット処理</heading> +<p> +ESDIドライブは, 使い始める前に, 物理フォーマットをおこなう必要があります. +もしトラックあたりのセクタ数を変えたり, ドライブの物理的な設置方法 (水 +平や垂直方向) を変えたときには, ふたたびフォーマットする必要があります +から, よく検討した後でフォーマットしてください. フォーマット処理の所要 +時間を短く予想してはいけません. 大容量のディスクでは数時間を要します. + +物理フォーマットが終わったならば, サーフィススキャン (surface scan) を +おこない, バッドセクタの検出とフラグの処理をします. ほとんどのディスクには, +メーカが作成したバッドブロックリストを記録した用紙またはステッカーが付 +いています. さらに, ほとんどのディスク内にもバッドブロックリストが記録 +されています. メーカが作成したリストを利用するようにしてください. この +時点で不良部分をマップし直す方が, FreeBSDのインストール後におこなうよりも, +はるかに簡単です. + +物理フォーマットプログラムのなかでも, トラックの中にひとつでもバッドセ +クタがあれば, 同じトラック内の残りのすべてのセクタを不良とするようなプ +ログラムがありますから, そのようなものは利用しないようにしてください. +ディスクスペースの浪費だけでなく, より重大な bad144と関連した悲劇の原 +因にもなるからです (bad144の節を参照のこと). + +<sect3><heading>トランスレーション</heading> +<p> +トランスレーションが, ESDIだけに限定された問題ではないにもかかわらず, +重大な困難になることがあります. トランスレーションにはいくつかの側面が +あります. 多くに共通なものは, IBM PC/ATのオリジナルの設計に起因するディ +スクジオメトリに関する制限を, うまく回避するような調整を試みるものです +(IBM に感謝 ! ). + +まずはじめに, 1024シリンダに関する (悪) 名高い制限があります. すなわ +ち, ブート可能なシステムについて, システム関連ファイルは (オペレーティ +ングシステムがどのようなものであっても) , ディスクの先頭部分の 1024シ +リンダ内になければいけない, という制限です. シリンダ番号を表すためには +10ビットしか与えられていません. セクタの総数については, 上限は 64 (0か +ら 63) です. この1024シリンダの制限を, 16ヘッドの制限 (これも ATの仕様 +による) と組み合わせると, かなり限定されたディスク容量しか利用できませ +ん. + +この難点を解消するために, PC 向け ESDIコントローラのメーカは, 自社のコ +ントローラボードへ BIOS PROM拡張を施しました. この BIOS拡張の内容は, +ブート時のディスクI/Oを (OSによっては <it>すべて</it> のディスクI/Oも) +, トランスレーションを用いておこなうというものです. すなわち, 大容量のディ +スクを, あたかも32ヘッドかつトラックあたり64セクタであるようなデバイス +として OSへ知らせるのです. この結果, 総シリンダー数は 1024よりも少なく +なりますから, 上記の難点などなかったものとして大容量ディスクを使うこと +ができるようになります. なお, 注目いただきたいことは, FreeBSDカーネル +の起動以降, FreeBSDはこの BIOS拡張機能を使わないということです. 詳しく +は後ほどご説明いたします. + +トランスレーションの第2の存在理由は, 多くの旧いシステムBIOSが, トラッ +クあたり17セクタのドライブだけしか扱えない (ST412という古い仕様) から, +というものです. 比較的新しい BIOSは通常, 自由な値を設定できるドライブ +タイプ (多くの場合ドライブタイプ47) を持っています. + +<em>この文書を読み終えられた後で, どのようにトランスレーションを利用す +るにせよ, ぜひご留意いただきたいことがあります. もし複数の OSをひとつ +のディスクにインストールするときには, 必ず同じトランスレーションを使わ +なければなりません. </em> + +トランスレーションに関して, 筆者が使用したコントローラは, ひとつのドラ +イブを複数のパーティションに論理的に分けることができる機能を BIOSのオ +プションとして持っていました (このような製品はいくつかあると思われる). +しかし, ひとつのドライブにはひとつのパーティションに限定しました. なぜ +なら, このコントローラはパーティション情報をディスクへ書き出すからです. +つまり, 電源を入れると, コントローラはこの情報を読み取り, OSに対してディ +スクから読みとった情報に基づくデバイスとして知らせるからです. + +<sect3><heading>代替セクタ処理</heading> +<p> +多くの ESDIコントローラはバッドセクタを取り替える機能を備えています. +ディスクの物理フォーマット処理の途中もしくは終了時に, バッドセクタであ +ることを記録して, 代わりのセクタを壊れたセクタの位置へ (論理的に) 置き +ます. + +通常この置き換え処理は, トラック内のN-1個のセクタを実際のデータ記録に +使い, 第N番目のセクタだけを代替セクタとすることで実現します. ここでNと +いう値はトラック内の物理的セクタの総数です. このアイデアが生まれた背景 +は, オペレーティングシステムが壊れたセクタを持たない「完全」なディスク +を想定している, というものです. しかし FreeBSDではこのアイデアを使うこ +とはできません. + +理由は, <it>使用不可 (bad)</it> から <it>使用可能</it> への変換をおこなう +のが ESDIコントローラ上の BIOSだからなのです. FreeBSDは, 真の 32ビット +のオペレーティングシステムであるために, ブート後には BIOSを使いません. +代わりに FreeBSDが使うのは, ハードウェアと直接「対話」するデバイスドラ +イバというものです. + +<em>結論: 代替セクタ処理やバッドブロックマッピングなど, コントローラ・ +メーカがなんと呼ぶかは判りませんが, それらに似た機能を FreeBSDのディス +クへは使わないでください. </em> + +<sect3><heading>バッドブロックの取り扱い</heading> +<p> +前節から残された問題があります. すなわち, コントローラによるバッドブロッ +ク処理は利用できない状況であるにもかかわらず, FreeBSDのファイルシステ +ムが想定しているのはあくまで完全無欠なディスクである, という問題で +す. これを解消するために, FreeBSDは <it>bad144</it> というツールを採用 +しています. この bad144 (この名前は DEC社の標準となったバッドブロック +処理に由来している) は, FreeBSDのスライスごとにバッドブロックを調べま +す. バッドブロックを見つけ出すと, bad144は傷ついたブロック番号によるテー +ブルを FreeBSDスライスの末尾へ書き込みます. + +ディスクが動作し始めると, ディスクから読みとられたテーブルを基に, ディ +スクアクセスを調べます. この bad144リストに記録されたブロック番号への +要求が起こると, 代わりのブロック (同じく FreeBSDスライスの末尾に位置す +る) を使います. このように, bad144による置換手続きによって「完全」なディ +スクを FreeBSDファイルシステムへ提供しているのです. + +Bad144の使用により陥るかもしれない落し穴があります. まず, ひとつのス +ライスには126個以上のバッドセクタを持てません. もしドライブに126個以上 +のバッドセクタがあったときには, 複数の FreeBSDのスライスに分けて, 各ス +ライスのバッドセクタが126個以下となるようにする必要があります. くれぐ +れも, ひとつのトラック内にたったひとつの欠陥セクタが見つかっただけで, +そのトラック内セクタ <em>すべて</em> を傷ついたものとして記録するよう +な物理フォーマットプログラムを使わないようにしてください. 簡単にお解り +いただけると思いますが, このような物理フォーマットをおこなえば, 126個の制 +限は短時間で達成してしまいます. + +次に, もしスライスが rootファイルシステムを含んでいるときには, 1024シ +リンダ以内という BIOSの制限を守っていなければなりません. ブート処理の +ときですから, bad144リストは BIOSを使って読み取りますので, このリスト +が1024シリンダ限界以内に位置していなければ読みとれません. <em>注意 +</em> いただきたいのは, この制限は root <em>ファイルシステム</em> だけ +が1024シリンダ限界以内にあれば十分ということではなく, rootシステムを含 +んだ <em>スライス</em> 全体が1024シリンダ限界以内におさまっている必要 +があります. + +<sect3><heading>カーネルのコンフィグレーション</heading> +<p> +ESDIディスクを扱うドライバは, IDEや ST412 MFMディスクなどと同じ +<it>wd</it> ドライバです. この <it>wd</it> ドライバは, すべての WD1003 +互換インタフェースにも利用できるはずです. + +大部分のハードウェアは, ジャンパの設定によって, ふたつの I/Oアドレス範 +囲と IRQ値のうちから, それぞれひとつを選ぶことができます. したがって, +wdタイプのふたつのコントローラをひとつのシステムで使うことができます. + +もし設定しようとしているハードウェアが標準以外の割り当てをサポートして +いれば, 適切な設定情報をカーネルのコンフィグレーションファイルに記述す +ることで, この非標準割り当てを利用できます. 次にカーネルのコンフィグレー +ションファイルの例を示します (このファイルがあるディレクトリは +<tt>/sys/i386/conf</tt> である). + +<tscreen><verb> +# First WD compatible controller +controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr +disk wd0 at wdc0 drive 0 +disk wd1 at wdc0 drive 1 + +# Second WD compatible controller +controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr +disk wd2 at wdc1 drive 0 +disk wd3 at wdc1 drive 1 +</verb></tscreen> + +<!-- +<sect3><heading>Tuning your ESDI kernel setup</heading> +<p> +--> + +<sect2><heading>ESDIハードウェアの例</heading> +<p> +<sect3><heading>Adaptec 2320コントローラ</heading> +<p> +筆者は, ACB-2320でコントロールされた ESDIディスクへ, FreeBSDをインストー +ルすることができました. なお, このディスクには他のオペレーティングシス +テムをインストールしていません. + +インストールするために, まず, NEFMT.EXE (<it>www.adaptec.com</it> から +<it>ftp</it>可能) でディスクを物理フォーマットし, かつトラックを代替セ +クタとともにフォーマットするかどうかの設問に NOと答えました. また +ACB-2320の BIOSは使わないように設定しました. そしてシステム BIOSがブー +トできるように, システム BIOSの「自由に設定可能」オプションを使いまし +た. + +実は, NEFMT.EXEを使う以前に, まず ACB-2320 の BIOSに組み込まれているフォー +マットプログラムでディスクをフォーマットしてみましたが, 使えないことが +判りました. なぜなら, 代替セクタの処理をおこなわないようにするオプションが +用意されていないからです. 代替セクタ処理をおこなうようにすると, FreeBSDの +インストール作業は bad144の実行の段階で失敗しました. + +もし ACB-232xyをお持ちであれば, そのバージョン番号に注意してください. +文字 xには0か2が入りまして, ボード上にフロッピーコントローラがあるかど +うかを見分けることができます. + +文字 yはさらに興味深いもので, ブランクか, A-8か, または Dのいずれかで +す. ブランクは, 単純な10Mビット/秒のコントローラであることを表します. +A-8は, 15Mビット/秒のコントローラで, かつ 52セクタ/トラックをサポート +しているものであることを表します. Dは, 15Mビット/秒のコントローラで, +かつ 36セクタ/トラック以上 (52セクタも可能か?) のドライブをサポートし +ているものであることを表します. + +このコントローラのすべてのバージョンはインターリーブ比 1:1に対応してい +るはずです. FreeBSDは充分高速なので, ぜひ 1:1と指定してください. + +<sect3><heading>Western Digital WD1007コントローラ</heading> +<p> +筆者は, WD1007でコントロールされた ESDIディスクへ, FreeBSDをインストー +ルすることができました. 正確には WD1007-WA2というコントローラでした. +これ以外の複数のバージョンも WD1007にあります. + +利用できるようにするために, セクタトランスレーションとWD1007の BIOSと +を使わないように設定しました. この設定の意味は, BIOSに組み込まれた物理 +フォーマットプログラムを使えないようにしたということです. 代わりに, +<it>www.wdc.com</it>から WDFMT.EXEを入手して, ディスクをフォーマットし +ました. 以後, 順調に動いています. + +<sect3><heading>Ultrastor U14Fコントローラ</heading> +<p> +ネットに流れたいくつかの報告によれば, Ultrastorの ESDIボードも FreeBSD +で動作するようです. 実際の設定についての詳しい情報はありません. + + +<!-- + +<sect2><heading>Tracking down problems</heading> +<p> +--> + +<sect2><heading>追加資料<label id="esdi:further-reading"></> +<p> +本格的に ESDIのプログラミングを計画している方は, 次の公式規格仕様書を +入手なさることをおすすめします. + +最新の ANSI X3T10 委員会の文書は次のものです: + +<itemize> +<item>Enhanced Small Device Interface (ESDI) [X3.170-1990/X3.170a-1991] + [X3T10/792D Rev 11] + </itemize> + +USENETのニュースグループ <htmlurl url="news:comp.periphs" +name="comp.periphs"> は, 詳しい情報を得ることができる注目すべきもので +す. + +World Wide Web (WWW) もまた便利な情報源です. Adaptec社の ESDIコントロー +ラについては <htmlurl url="http://www.adaptec.com/">を参照ください. +Western Digital社のコントローラについては <htmlurl +url="http://www.wdc.com/"> を参照ください. + +<sect2>感謝 +<p> +Andrew Gordon氏より, テスト用の Adaptec 2320コントローラと ESDIディス +クを送っていただきました. + + diff --git a/share/doc/ja_JP.EUC/handbook/firewalls.sgml b/share/doc/ja_JP.EUC/handbook/firewalls.sgml new file mode 100644 index 000000000000..a8a1a6bdf8f7 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/firewalls.sgml @@ -0,0 +1,579 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.14 --> + +<sect><heading> ファイアウォール <label id="firewalls"></heading> + +<p><em>原作: &a.gpalmer;, &a.alex;.</em> +<p><em>訳: &a.saeki;.<newline> +11 November 1996.</em> + +ファイアウォールは, インターネットに参加している人はもちろんのこと, +プライベートネットワークのセキュリティ向上のためのアプリケーションを +探している人にとっても, ますます興味深くなりつつある分野です. +このセクションではファイアウォールとは何か, ファイアウォールの使用法, +そしてファイアウォールを構築するために FreeBSD のカーネルで +提供されているファシリティ (機能) の使用法について説明したいと思います. + +<quote><bf> 注: </bf> 社内のネットワークと「巨大かつ信頼のおけない +インターネット」との間にファイアウォールを構築することで +セキュリティ上のすべての問題が解決できると考える人がいます. +ファイアウォールはセキュリティ上の問題を解決する助けになる場合もありますが, +充分な設定がなされていないファイアウォールは, まったくファイアウォールを +持たない場合よりもセキュリティ上の危険を増大させてしまいます. +<!-- (訳注: 増大させてしまう可能性がある程度だと思いますが、十分に理解した +上でファイアウォールを構築することが非常に重要です). --> +ファイアウォールにできることは, あなたのシステムにもう一つのセキュリティ層を +追加することだけで, 本気でアタックをしかけてくるクラッカーが内部ネットワークに +侵入するのを妨げることはできません. +ファイアウォールを侵入不可能と過信して +内部のセキュリティをおろそかにすることは, +単にクラッカーの仕事を少し簡単にするだけでしかありません. </quote> + +<sect1><heading> ファイアウォールとは何か ? </heading> + +<p> 現在インターネットで普通に使用されているファイアウォールには +二つの異なるタイプがあります. +一つは, 厳密には <bf> パケットフィルタリングルータ </bf> と +呼ばれるタイプのものです. これはマルチホームのホストマシン (複数の +ネットワークに接続されているマシン) のカーネルが, ある規則にしたがって +パケットを転送したりブロックしたりするものです. +もう一つは, <bf> proxy (代理) サーバ </bf> として知られているタイプのものです. +これは, おそらくはマルチホームのホストマシン上で, カーネルによるパケット転送を +禁止して, デーモンにより認証の提供とパケットの転送とをおこなうものです. + +<p> 二つのタイプのファイアウォールを組み合わせて使用して, +特定のマシン (<bf> 要塞ホスト </bf> と呼ばれる) だけが +パケットフィルタリングルータを通して内部ネットワークへ +パケットを送ることができるよう設定しているサイトがしばしば存在します. +proxy (代理) サービスは通常の認証メカニズムよりもセキュリティを強化してある +要塞ホストで動作させます. +<!-- (訳注: proxy サービスをおこなうアプリケーションなど, +おそらくはあまり実績のないアプリケーションプログラムを利用したサービスを +要塞ホスト上で提供するのは避けた方がよいでしょう. +proxy サービスを提供する場合には, 要塞ホストとは別の, バリアセグメント上の +ホストで proxy サービスを提供し, パケットフィルタリングを利用して +サービスの利用を制限するようにした方が安全です.) --> + +<p>FreeBSD は (<tt>IPFW</tt> として知られる) カーネルパケットフィルタ込みで +提供されています. このセクションの後の方では, このフィルタについての +説明を集中しておこないます. +サードパーティから提供されるソフトウェアを使用することにより, Proxy サーバを +FreeBSD 上に構築することができます. しかし, 現在入手可能な proxy サーバは +たいへんバラエティに富んでいるので, このドキュメントでそれらすべてを +カバーすることは不可能です. + +<sect2><heading> パケットフィルタリングルータ <label id="firewalls:packet_filters"></heading> + +<p> ルータとは, 二つまたはそれ以上のネットワークの間でパケットの転送をおこなう +マシンのことです. パケットフィルタリングルータは, そのカーネルの内部に, +一つ一つのパケットをルールリストと比較して転送するかしないかを決める +特別なコードを持っています. +最近の IP ルーティングソフトウェアのほとんどは, 内部に +パケットのフィルタリングをおこなうためのコードを持っていて, デフォルトでは +すべてのパケットを転送するようになっています. +このフィルタを有効にするためには, パケットの通過を許すべきかどうかを決める +ルールを自分で定義する必要があります. + +<p> パケットを通すべきか通すべきでないかを決めるために, +パケットヘッダの内容にマッチするものがルールリストから探されます. +マッチするルールが見つかると, ルールアクションが実行されます. +ルールアクションには, パケットを捨てる, パケットを転送する, +またはパケットの発信元に ICMP メッセージを送り返すというものがあります. +ルールの検索は先頭から順番におこなわれ, 通常は最初にマッチしたものだけが +適用されます. +そのため, このルールリストは「ルールチェーン」と呼ばれることもあります. + +<p> パケットマッチングの基準は使用するソフトウェアによって異なりますが, +通常はパケットの発信元 IP アドレス, 宛先 IP アドレス, 発信元ポート番号, +宛先ポート番号 (ポート番号はポートをサポートするプロトコルの場合のみ), +パケットタイプ (UDP, TCP, ICMP など) に基づくルールを指定することができます. + +<sect2><heading>Proxy サーバ <label id="firewalls:proxy_servers"></heading> + +<p>Proxy サーバとは通常のシステムデーモン (telnetd, ftpd など) を +特別なサーバで置き換えたマシンのことです. +これらのサーバは, 通常は中継をおこなって特定方向への接続だけを許すため, +<bf>proxy サーバ </bf> と呼ばれます. + (例えば) proxy telnet サーバをファイアウォールホストで走らせておきます. +外部からユーザがファイアウォールに対して telnet を実行すると, +proxy telnet サーバが応答して, 何らかの認証メカニズムを実行します. +これを通過した後で, 内部ネットワークへのアクセスがおこなえるように +なるのです. (内部ネットワークからの信号は proxy サーバがかわりに受け取り, +外へ向けて送り出します.) + +<p>Proxy サーバは通常, 普通のサーバより堅固に構築されていて, +しばしば「使い捨て」パスワードシステムなどを含む, +多様な認証メカニズムを持っています. +「使い捨て」パスワードシステムとは, どういうものなのでしょうか. +仮に誰かが何らかの方法で, あなたが使用したパスワードを手に入れたとします. +しかし, 一度使用したことで, そのパスワードは既に無効になっているのです. +ですから, そのパスワードをもう一度使用したとしても, あなたのシステムへ +アクセスすることはできないというわけです. +これらのサーバは中継をおこなうだけで, 実際のところサーバホスト自身への +アクセスをユーザに許してはいません. そのため, 何者かがセキュリティシステムに +侵入用の裏口を取り付けることは, より困難になっています. + +<p>proxy サーバはアクセス制限の方法をいくつも持っていて, 特定のホスト +だけがサーバへのアクセス権を得ることができるようになっていることがあり +ます. そして目的のマシンと通信できるユーザを制限するように +設定することもできます. +もう一度言いますが, どんなファシリティ (機能) が使えるかは, +どんな proxy サービスをおこなうソフトウェアを選ぶかに大きく依存します. + +<sect1><heading> IPFW で何ができるか </heading> + +<p>FreeBSD とともに配布されている <tt>IPFW</tt> は, カーネル内部にあって +パケットのフィルタリングとアカウンティングをおこなうシステムであり, +ユーザ側のコントロールユーティリティである <tt>ipfw(8)</tt> を +含んでいます. ルーティングの決定をおこなう際に, これらは互いに協力して, +カーネルで使用されるルールを定義したり, 現在使用されているルールを +問い合わせたりすることができます. + +<p><tt>IPFW</tt> は互いに関連する二つの部分からなっています. +ファイアウォールセクションはパケットフィルタリングをおこないます. +また, IP アカウンティングセクションはファイアウォールセクションのものと +似たルールに基づいてルータの使用を追跡します. +これにより, (例えば) 特定のマシンからルータへのトラフィックがどのくらい +発生しているか調べたり, どれだけの WWW (World Wide Web) トラフィックが +フォワードされているかを知ることができます. + +<p><tt>IPFW</tt> は, ルータではないマシンにおいても入出力コネクションの +パケットフィルタリングのために使用することができるように設計されています. +これは一般的な <tt>IPFW</tt> の使用法とは異なる特別な使い方ですが, +こういった状況でも同じコマンドとテクニックが使用されます. + +<sect1><heading>FreeBSD で IPFW を有効にする </heading> + +<p><tt>IPFW</tt> システムの中心となる部分はカーネル内部にあります. +そのため, どのファシリティ (機能) を必要とするかによって, 一つまたは +それ以上のオプションをカーネルコンフィグレーションファイルに追加し, +カーネルを再コンパイルする必要があるでしょう. +カーネルの再コンパイル方法の詳細については, +<ref id="kernelconfig" name="カーネルコンフィグレーション"> を参照してください. + +<p>現在, IPFW に関係するカーネルコンフィグレーションオプションは +三つあります: + +<descrip> +<tag/options IPFIREWALL/ パケットフィルタリングのためのコードを +カーネルに組み込みます. + +<tag/options IPFIREWALL_VERBOSE/<tt>syslogd(8)</tt> を通じて +パケットのログを取るためのコードを有効にします. +フィルタルールでパケットのログを取るように指定しても, +このオプションが指定されていなければ, ログを取ることはできません. + +<tag/options IPFIREWALL_VERBOSE_LIMIT=10/<tt>syslogd(8)</tt> を通じて +ログを取るパケットの数をエントリ毎に制限します. +敵対的な環境においてファイアウォールの動作のログを取りたいけれど, +syslog の洪水によるサービス拒絶攻撃に対し無防備でありたくないという場合に, +このオプションを使用したいと思うことがあるかもしれません. + +<p> チェーンエントリのログが指定された制限数に達すると, +そのエントリに関するログ取りは停止されます. +ログ取りを再開するには, <tt>ipfw(8)</tt> ユーティリティを使用して +関連するカウンタをリセットする必要があります: + +<tscreen><verb> +ipfw zero 4500 +</verb></tscreen> + +4500 とは, ログ取りを続行したいチェーンエントリの番号です. + +</descrip> + +以前のバージョンの FreeBSD は <tt>IPFIREWALL_ACCT</tt> というオプションを +持っていました. +しかし, ファイアウォールコードがアカウンティングファシリティ (機能) を +自動的に含むようになったため, 現在では使用されることはなくなっています. + +<sect1><heading>IPFW の設定 </heading> + +<p><tt>IPFW</tt> ソフトウェアの設定は <tt>ipfw(8)</tt> ユーティリティを +通じておこないます. このコマンドの構文は非常に複雑に見えますが, +一旦その構造を理解すれば比較的単純です. + +<p> このユーティリティでは今のところ四つの異なるコマンドカテゴリが +使用されています: それは追加 / 削除, 表示, フラッシュ, およびクリアです. +追加 / 削除はパケットの受け入れ, 拒絶, ログ取りをどのようにおこなうか +というルールを構築するのに使用します. +表示はルールリスト (またはチェーン) と (アカウンティング用) パケットカウンタの +内容を調べるのに使用します. +フラッシュはチェーンからすべてのエントリを取り除くのに使用します. +クリアは一つまたはそれ以上のアカウンティングエントリをゼロにするのに +使用します. + +<sect2><heading>IPFW ルールの変更 </heading> + +<p> この形式での使用法は: +<tscreen> +ipfw [-N] <em> コマンド </em> [<em>index</em>] +<em> アクション </em> [log] <em> プロトコル </em><em> アドレス </em> +[<em> オプション </em>] +</tscreen> + +<p> この形式で使用する際に有効なフラグは一つだけです: + +<descrip> +<tag/-N/ アドレスやサービス名を文字列に変換して表示します. +</descrip> + +<em> コマンド </em> は一意である限り短縮可能です. +有効な <em> コマンド </em> は: + +<descrip> + +<tag/add/ ファイアウォール / アカウンティングルールリストに +エントリを追加します. + +<tag/delete/ ファイアウォール / アカウンティングルールリストから +エントリを削除します. + +</descrip> + +以前のバージョンの <tt>IPFW</tt> では, ファイアウォールエントリと +パケットアカウンティングエントリが別々に利用されていました. +現在のバージョンでは, それぞれのファイアウォールエントリ毎に +パケットアカウンティングエントリが備えられています. + +<p><tt>index</tt> が指定されていると, エントリはチェーン中の +<tt>index</tt> で示される位置に置かれます. <tt>index</tt> が指定されて +いなければ, エントリは (65535 番のデフォルトルールである +パケット拒絶を別にして) 最後のチェーンエントリの index に 100 を足した +位置 (チェーンの最後) に置かれます. + +<p> カーネルが <bf>IPFIREWALL_VERBOSE</bf> つきでコンパイルされている場合, +<bf>log</bf> オプションはマッチしたルールをシステムコンソールに出力させます. + +<p>有効な <em> アクション </em> は: + +<descrip> + +<tag/reject/ パケットを捨てます, ICMP ホスト / ポート到達不能パケットを + (適切な方を) 発信元へ送ります. + +<tag/allow/ 通常通りパケットを通過させます. (別名: <bf>pass</bf> および +<bf>accept</bf>) + +<tag/deny/ パケットを捨てます. 発信元は ICMP メッセージによる +通知を受けません (そのためパケットが宛先に到達しなかったように見えます). + +<tag/count/ このルールはパケットカウンタを更新するだけで, パケットを +通過させたり拒絶したりしません. 検索は次のチェーンエントリから続けられます. + +</descrip> + +<p> それぞれの <em> アクション </em> は一意な先頭部分だけでも認識されます. + +指定可能な <em> プロトコル </em> は以下の通り: + +<descrip> + +<tag/all/ 任意の IP パケットにマッチします. + +<tag/icmp/ICMP パケットにマッチします. + +<tag/tcp/TCP パケットにマッチします. + +<tag/udp/UDP パケットにマッチします. + +</descrip> + +<p><em> アドレス </em> の指定は: +<tscreen> +<bf>from</bf> <<em>address/mask</em>>[<em>port</em>] <bf>to</bf> + <<em>address/mask</em>>[<em>port</em>&rsqb [<bf>via</bf> <<em>interface</em>>] +</tscreen> + +<p><em>port</em> はポートをサポートする <em> プロトコル </em> (UDP と TCP) の +場合にだけ指定可能です. + +<p><bf>via</bf> は必須ではなく, 特定のインターフェースを通ってきたパケット +だけにマッチするように, IP アドレスまたはローカル IP インターフェースの +ドメイン名, またはインターフェース名 (例えば <tt>ed0</tt>) を +指定することができます. +インターフェースユニット番号はオプションで, ワイルドカードで指定することが +できます. 例えば, <tt>ppp*</tt> はすべてのカーネル PPP インターフェースに +マッチします. + +<p><tt><address/mask></tt> の指定は: +<tscreen> +<address> +</tscreen> +または +<tscreen> +<address>/mask-bits +</tscreen> +または +<tscreen> +<address>:mask-pattern +</tscreen> + +<p>IP アドレスのかわりに有効なホスト名を指定することも可能です. +<tt>mask-bits</tt> はアドレスマスクで上位何ビットを1にするべきかを +示す十進数値です. 例えば次の指定, +<tscreen> +192.216.222.1/24 +</tscreen> +はクラス C のサブネット (この場合 192.216.222) の任意のアドレスにマッチする +マスクを作成します. <tt>mask-pattern</tt> は与えられたアドレスと +論理 AND される IP アドレスです. +キーワード <tt>any</tt> は「任意の IP アドレス」を指定するために +使用することができます. +<p> ブロックするポート番号は以下のように指定します: +<tscreen> +port[,port[,port[...]]] +</tscreen> +のように単独のポートまたはポートのリストを指定します. または +<tscreen><verb> +port-port +</verb></tscreen> +のようにポートの範囲を指定します. 単独のポートとポートのリストを +組み合わせて指定することも可能ですが, その場合は常に範囲の方を +最初に指定しなければなりません. + +<p> 使用可能な <em> オプション </em> は: + +<descrip> + +<tag/frag/ データグラムの最初のフラグメントでなければマッチします. + +<tag/in/ 入力途中のパケットであればマッチします. + +<tag/out/ 出力途中のパケットであればマッチします. + +<tag/ipoptions <em>spec</em>/IP ヘッダが <em>spec</em> に指定された +カンマで区切られたオプションのリストを含んでいればマッチします. +サポートされている IP オプションのリストは: +<bf>ssrr</bf> (ストリクトソースルート), +<bf>lsrr</bf> (ルーズソースルート), <bf>rr</bf> (レコードパケットルート), +そして <bf>ts</bf> (タイムスタンプ) です. +特定のオプションを含まないことを指定するには '!' を先頭につけます. + +<tag/established/ パケットが既に確立されている TCP コネクションの一部であれば + (つまり RST または ACK ビットがセットされていれば) マッチします. +<em>established</em> ルールをチェーンの最初の方に置くことで, +ファイアウォールのパフォーマンスを向上させることができます. + +<tag/setup/ パケットが TCP コネクションを確立しようとするものであれば + (SYN ビットがセットされ ACK ビットはセットされていなければ) マッチします. + +<tag/tcpflags <em>flags</em>/TCP ヘッダが <em>flags</em> に指定された +カンマで区切られたフラグのリストを含んでいればマッチします. +サポートされているフラグは, <bf>fin</bf>, <bf>syn</bf>, <bf>rst</bf>, +<bf>psh</bf>, <bf>ack</bf> と <bf>urg</bf> です. +特定のフラグを含まないことを指定するには '!' を先頭につけます. + +<tag/icmptypes <em>types</em>/ICMP タイプが <em>types</em> リストに +存在していればマッチします. リストはタイプの範囲または個々のタイプを +カンマで区切った任意の組合せで指定できます. +一般的に使用されている ICMP タイプは: +<bf>0</bf> エコーリプライ (ping リプライ), +<bf>5</bf> リダイレクト, <bf>8</bf> エコーリクエスト (ping リクエスト), +そして <bf>11</bf> 時間超過 (<tt>traceroute(8)</tt> で使用されているように, +TTL 満了を示すのに使用されます) です. + +</descrip> + +<sect2><heading> IPFW ルールリストの表示 </heading> + +<p> この形式での使用法は: +<tscreen> +ipfw [-atN] l +</tscreen> + +<p>この形式で使用する際に有効なフラグは三つあります: + +<descrip> + +<tag/-a/ リスト表示の際にカウンタの値も表示します. このオプションは +アカウンティングカウンタの内容を見る唯一の手段です. + +<tag/-t/ 各チェーンエントリが最後にマッチした時刻を表示します. +この時刻表示は <tt>ipfw(8)</tt> ユーティリティで使用される入力形式と +互換性がありません. + +<tag/-N/ (可能であれば) アドレスやサービス名を文字列に変換して表示します. + +</descrip> + +<sect2><heading>IPFW ルールのフラッシュ </heading> + +<p> チェーンをフラッシュするには: +<tscreen> +ipfw flush +</tscreen> + +<p> カーネルに固定されているデフォルトルール (インデックス 65535 番) +以外の, ファイアウォールチェーンの中のすべてのエントリを削除します. +デフォルトではすべてのパケットが拒絶されるので, 一旦これを実行すると, +パケットを許可するエントリがチェーンに追加されるまで, +あなたのシステムがネットワークから切り放されてしまいます. +そのため, ルールのフラッシュをおこなうときは注意が必要です. + +<sect2><heading> IPFW パケットカウンタのクリア </heading> + +<p> 一つまたはそれ以上のパケットカウンタをクリアするためには: +<tscreen> +ipfw zero [index] +</tscreen> + +<p><em>index</em> が指定されていなければ, すべてのパケットカウンタが +クリアされます. +<em>index</em> が指定されていれば, 特定のチェーンエントリだけが +クリアされます. + +<sect1><heading> ipfw に対するコマンドの例 </heading> + +<p> このコマンドはルータを介して転送される, +ホスト <bf>evil.hacker.org</bf> から +ホスト <bf>nice.people.org</bf> の telnet ポートへの +すべてのパケットを拒絶します: + +<tscreen><verb> +ipfw add deny tcp from evil.hacker.org to nice.people.org 23 +</verb></tscreen> + +<p> 次の例は, ネットワーク <bf>hacker.org</bf> (クラス C) 全体から +マシン <bf>nice.people.org</bf> (の任意のポート) への +任意の TCP トラフィックを拒絶し, ログを取ります. + +<tscreen><verb> +ipfw add deny log tcp from evil.hacker.org/24 to nice.people.org +</verb></tscreen> + +あなたの内部ネットワーク (クラス C のサブネット) に対する X セッションを +張れないようにする場合, 以下のコマンドで必要なフィルタリングがおこなえます: + +<tscreen><verb> +ipfw add deny from any to my.org/28 6000 setup +</verb></tscreen> + +<bf>sup.FreeBSD.ORG</bf> の SUP サーバへのアクセスを許可するためには, +以下のコマンドを使用します: + +<tscreen><verb> +ipfw add accept from any to sup.FreeBSD.ORG 871 +</verb></tscreen> + +アカウンティングレコードを見るには: +<tscreen><verb> +ipfw -a list +</verb></tscreen> +または短縮形式で +<tscreen><verb> +ipfw -a l +</verb></tscreen> +最後にチェーンエントリがマッチした時刻を見ることもできます. +<tscreen><verb> +ipfw -at l +</verb></tscreen> + +<sect1><heading> パケットフィルタリングファイアウォールの構築 </heading> + +<p><quote><bf> 注: </bf> 以下の提案は, ただの提案にすぎません: +必要な処理はそれぞれのファイアウォールで異なるため, +あなた独自の要求にあったファイアウォールを構築する方法を +ここで述べることはできないのです. </quote> + +<p> 最初にファイアウォールをセットアップするとき, +コントロールされた環境でファイアウォールホストの設定がおこなえるような +テストベンチセットアップが用意できない場合には, カーネルのログ取りを +有効にしてログ取り版のコマンドを使用することを強くおすすめします. +そうすることで, 大した混乱や中断なしに問題となる範囲の特定と処置を +素早くおこなうことができます. +初期セットアップフェーズが完了してからであっても, +アタックの可能性のあるアクセスをトレースしたり, +要求の変化に応じてファイアウォールルールを変更したりできるので, +`deny' に対するログ取りをおこなうことをおすすめします. + +<quote><bf> 注: </BF><bf>accept</bf> コマンドのログ取りをおこなっていると, +ファイアウォールをパケットが一つ通過する毎に 1 行のログが生成されるため +<em>大量の</em> ログデータが発生します. +そのため, 大規模な ftp/http 転送などをおこなうと, システムが非常に +遅くなってしまいます. +また, パケットが通過するまでにカーネルにより多くの仕事を要求するため, +パケットのレイテンシ (latency) を増加させてしまいます. +syslogd もログをディスクに記録するなど, より多くの CPU タイムを +使用し始め, 実に容易に <tt>/var/log</tt> が置かれているパーティションを +パンクさせてしまう可能性があります. </quote> + +<p> 現状では, FreeBSD はブート時にファイアウォールルールをロードする +能力を持っていません. +私は <tt>/etc/netstart</tt> スクリプトにロードをおこなうスクリプトを +追加することをおすすめします. IP インターフェースの設定がおこなわれる前に +ファイアウォールの設定がおこなわれるように, netstart ファイル中の +充分に早い位置にルールをロードするスクリプトを配置してください. +こうすることで, ネットワークがオープンな間は常に抜け道が塞がれている +ことになります. + +<p> ルールをロードするために使用するスクリプトは, +あなたが作成しなければなりません. +現在のところ <tt>ipfw</tt> は 1 コマンドで複数のルールを +ロードするユーティリティをサポートしていません. +私が使用しているシステムでは以下のようにしています: + +<tscreen><verb> +# ipfw list +</verb></tscreen> + +ファイルに現在のルールリストを出力し, テキストエディタを使用して +すべての行の前に ``<tt>ipfw </tt>'' と書き足します. +こうすることで, このスクリプトを /bin/sh に与えてルールをカーネルに再読み込み +させることができます. これは最も効率的な方法とはいえないかもしれませんが, +きちんと動作しています. + +<p> 次の問題は, ファイアウォールが実際には何を <bf> する </bf> べきかです ! +これは外部からそのネットワークへのどんなアクセスを許したいか, +また内部から外界へのアクセスをどのくらい許したいかに大きく依存します. +いくつか一般的なルールを挙げると: + +<itemize> + + <item> 1024 番以下のポートへのすべての TCP 入力アクセスをブロックします. +ここは finger, SMTP (mail) そして telnet など, 最もセキュリティに敏感な +サービスが存在する場所だからです. + + <item><bf> すべての </bf> 入力 UDP トラフィックをブロックします. +これは UDP を使用しているサービスで有用なものは極めて少ないうえ, +有用なトラフィック (例えば Sun の RPC と NFS プロトコル) は, +通常セキュリティに対する脅威となるためです. +UDP はコネクションレスプロトコルであるため, +入力 UDP トラフィックを拒絶することは +すなわち出力 UDP トラフィックに対する返答をも +ブロックすることになるので, このことはそれなりの不利益をもたらします. +たとえば外部の archie (prospero) サーバを使用している (内部の) ユーザに +とって問題となる可能性があります. +もし archie へのアクセスを許したければ, 191 番と 1525 番のポートから +任意の UDP ポートへ来るパケットがファイアウォールを通過することを +許可しなければなりません. +123 番のポートから来るパケットは ntp パケットで, +これも通過の許可を考慮する必要があるもう一つのサービスです. + + <item> 外部から 6000 番のポートへのトラフィックをブロックします. +6000 番のポートは X11 サーバへのアクセスに使用されるポートで, +セキュリティに対する脅威となりえます. (特に自分のワークステーションで +<tt>xhost +</tt> をおこなう癖を持っている人がいればなおさらです). +X11 は実際に 6000 番以降のポートを使用する可能性があるため, 通過許可に +上限を定めると, そのマシンで走らせることのできる X ディスプレイの +個数が制限されます. +RFC 1700 (Assigned Numbers) で定義されているように, 上限は 6063 です. + + <item> 内部のサーバ (例えば SQL サーバなど) がどのポートを使用するかを +チェックします. +それらのポートは通常, 上で指定した 1-1024 番の範囲から外れていますので, +これらも同様にブロックしておくことはおそらく良い考えです. + +</itemize> + +<p> これとは別のファイアウォール設定に関するチェックリストが CERT から +入手可能です. +<htmlurl url="ftp://ftp.cert.org/pub/tech_tips/packet_filtering" +name="ftp://ftp.cert.org/pub/tech_tips/packet_filtering"> + +<p> 前にも述べたように, これはただの <em> ガイドライン </em> にすぎません. +ファイアウォールでどのようなフィルタルールを使用するかは, あなた自身が +決めなければなりません. +これまでのアドバイスにしたがったにも関わらず, 誰かがあなたのネットワークに +侵入してきたとしても, 私は「いかなる」責任もとることはできません. diff --git a/share/doc/ja_JP.EUC/handbook/glossary.sgml b/share/doc/ja_JP.EUC/handbook/glossary.sgml new file mode 100644 index 000000000000..c387677a38a0 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/glossary.sgml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<chapt><heading>* Glossary<label id="glossary"></heading> + diff --git a/share/doc/ja_JP.EUC/handbook/goals.sgml b/share/doc/ja_JP.EUC/handbook/goals.sgml new file mode 100644 index 000000000000..061012191137 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/goals.sgml @@ -0,0 +1,33 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.2 --> + +<sect><heading>FreeBSDプロジェクトの目的<label id="goals"></heading> + +<p><em>原作: &a.jkh;</em> +<p><em>訳: &a.kiroh;<newline>24 September 1996.</em> +<p> +FreeBSDプロジェクトの目的は、いかなる用途にも使用でき、何ら制限のない +ソフトウェアを供給することです。私たちの多くは、コード(そしてプロジェ +クト)に対してかなりの投資をしてきており、これからも多少の無駄はあって +も投資を続けて行くつもりです。ただ、他の人達にも同じような負担をするよ +うに主張しているわけではありません。FreeBSD に興味を持っている一人の残 +らず全ての人々に、目的を限定しないでコードを提供すること。これが、私た +ちの最初のそして最大の``任務''であると信じています。そうすれば、コード +は可能な限り広く使われ、最大の恩恵をもたらすことができるでしょう。これ +が、私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であ +ると、私は信じています。 + +<p> +私たちのソースツリーに含まれるソースのうち、GNU一般公有使用許諾(GPL)ま +たはGNUライブラリ一般公有使用許諾(GLPL)に従っているものについては、多 +少制限が科されています。ただし、ソースコードへのアクセスの保証という、 +一般の制限とはいわば逆の制限(訳注1)です。ただしGPLソフトウェアを商用で +利用する場合、さらに複雑になるのは避けられません。そのため、それらのソ +フトウェアを、より制限の少ないBSD著作権に従ったソフトウェアで置き換え +る努力を、可能な限り日々続けています。 + +<p> +(訳注1) GPL では、「ソースコードを実際に受け取るか、あるいは、希望しさ +えすればそれを入手することが可能であること」を求めています。 + diff --git a/share/doc/ja_JP.EUC/handbook/handbook.sgml b/share/doc/ja_JP.EUC/handbook/handbook.sgml new file mode 100644 index 000000000000..ecd94d79d306 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/handbook.sgml @@ -0,0 +1,177 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.58 --> + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!-- Conditional flags for this version of the document --> +<!ENTITY % boothelp.only "IGNORE"> +<!ENTITY % handbook.only "INCLUDE"> + +<!-- Entity shorthand for authors' names and email addresses --> +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +<!-- Entity shorthand for translator's names and email addresses --> +<!ENTITY % jmembers SYSTEM "jmembers.sgml"> +%jmembers; + +<!-- Entity shorthand for mailing list email addresses --> +<!ENTITY % lists SYSTEM "lists.sgml"> +%lists; + +<!-- Entity definitions for all the parts --> +<!ENTITY % sections SYSTEM "sections.sgml"> +%sections; + +<!-- The currently released version of FreeBSD --> +<!ENTITY rel.current CDATA "2.1.5"> + +]> + +<linuxdoc> + <book> + + <title>FreeBSD ハンドブック</title> + <author> + <name>FreeBSD ドキュメンテーションプロジェクト</name> + </author> + <date>1996年7月</date> + +<abstract> FreeBSD へようこそ! このハンドブックは <bf>FreeBSD Release +&rel.current;</bf> のインストールおよび日常での使い方について記述したものです. +本書は<bf>現在進行中の作業</bf> であって, 多くの個人の手からなる仕事です. +多くのセクションはまだ存在しませんし, いま存在するセクションのいくつかは +アップデートされる必要があります. +この FreeBSD ドキュメンテーションプロジェクトを手伝うことに興味があるならば, +&a.doc; まで電子メールを送ってください. +このドキュメントの最新バージョンは +<url url="http://www.FreeBSD.ORG/" name="FreeBSD World Wide Web サーバ"> +からいつでも入手できます. +<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs "name="FreeBSD FTP サーバ"> +か, または数多くある<ref id="mirrors" name="ミラーサイト">のうちの一つ +から ascii, LaTeX, postscript, HTML などのファイル形式の中からダウンロード +してください. </abstract> + <toc> + +<!-- ************************************************************ --> + +<part><heading>基礎</heading> + + <chapt><heading>はじめに</heading> + +<p> FreeBSD は, Intel アーキテクチャ (x86) ベースの PC のための +4.4BSD-Lite をベースとしたオペレーティングシステムです. +FreeBSD の概要については, +<ref id="nutshell" name="FreeBSD とは">をご覧ください. +このプロジェクトの歴史については, <ref id="history" name="FreeBSD 小史"> +を読んでください. 最新のリリースについての記述は, +<ref id="relnotes" name="現在のリリースについて">をご覧ください. +FreeBSD プロジェクトへの何らかの貢献 (ソースコード, 機器, 資金の提供など) +について, 興味があれば, <ref id="submitters" name="FreeBSD への貢献"> +の章をご覧ください. + + &nutshell; + &history; + &goals; + &development; + &relnotes; + + &install; + &basics; + +<chapt><heading>アプリケーションのインストール</heading> + <sect><heading>* パッケージのインストール</heading> + &ports; + + +<!-- ************************************************************ --> + + <part><heading>システム管理</heading> + +&kernelconfig; + <chapt><heading>ユーザ, グループ, セキュリティ</heading> + &crypt; + &skey; + &kerberos; + &firewalls; + + &printing; + + "as; + <chapt><heading>X ウィンドウシステム</heading> +<p> この節の完成は保留されています. + そのかわりに <url url="http://www.xfree86.org/" + name="The XFree86 Project, Inc"> + のドキュメントを参考にしてください. + + &hw; + +<!-- ************************************************************ --> + + <part><heading>ネットワーク通信</heading> + + <chapt><heading>ネットワークの基礎</heading> + <sect><heading>* イーサネットの基礎</heading> + <sect><heading>* シリアル接続の基礎</heading> + &term; + &dialup; + + <chapt><heading> PPPとSLIP </heading> + +<p> もしあなたがモデムを使ってインターネットに接続したり, +FreeBSD を使って, 他の人々にインターネットへのダイヤルアップ接続を +提供しようとしているのでしたら, PPP または SLIP 接続を選ぶことができます. +PPP 接続には, 2 種類の方法が提供されています. +<em>ユーザ</em> PPP (iijpppとも呼ばれます) と <em>カーネル</em> PPP です. +両方の PPP の設定手順と, SLIP の設定方法については以下の章に書かれています. + + &userppp; + &ppp; + &slipc; + &slips; + + <chapt><heading> 高度なネットワーク </heading> + &routing; + &nfs; + &diskless; + <sect><heading>* イエローページ/NIS </heading> + &isdn; + + <chapt><heading>* 電子メール </heading> + + + +<!-- ************************************************************ --> + + <part><heading> さらに進んだ話題 </heading> + ¤t; + &stable; + &synching; + &submitters; + &troubleshooting; + &kerneldebug; + &linuxemu; + <chapt><heading> FreeBSD の内部</heading> + &booting; + &memoryuse; + &dma; + + +<!-- ************************************************************ --> + + <part><heading>付録</heading> + + &mirrors; + &bibliography; + &eresources; + &contrib; + &policies; + &pgpkeys; + &jcontrib; + +<!-- &glossary; --> + + </book> +</linuxdoc> + diff --git a/share/doc/ja_JP.EUC/handbook/history.sgml b/share/doc/ja_JP.EUC/handbook/history.sgml new file mode 100644 index 000000000000..c2036298dc03 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/history.sgml @@ -0,0 +1,167 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- 和訳: masaki@po.iijnet.or.jp + hino@nwk.cl.nec.co.jp 1996/09/24 --> +<!-- Original revision: 1.16 --> + +<sect><heading>FreeBSD 小史<label id="history"></heading> + +<p><em>原作: &a.jkh;</em>. + +<p><em>訳: &a.masaki;, &a.hino;.<newline>24 September 1996.</em> + +FreeBSD プロジェクトは 1993年の始めに ``Unofficial 386BSD Patchkit'' +の最後の 3人のまとめ役によって, 部分的に patchkit から派生する形で開始 +されました. ここでの 3人のまとめ役というのは, Nate Williams と, Rod +Grimes と, 私 (Jordan K. Hubbard) です. David Greenman と Julian +Elischer は当時裏方としては参加していましたが, 全面的に参加したのは, +プロジェクトがもう少し公式に開始され, さらに 1, 2ヶ月後になってからで +した. 私たちのもともとの目標は, patchkit という仕組みではもう十分に解 +決できなくなってしまった 386BSD の数多くの問題を修正するための, 386BSD +の暫定的なスナップショットを作成することでした. こういった経緯を経てい +るので, このプロジェクトの初期の頃の名前が ``386BSD 0.5'' や ``386BSD +暫定版 (Interim)'' であったということを覚えている人もいるでしょう. + +386BSD は, Bill Jolitz が (訳注: バークレイ Net/2 テープを基に) 作成し +たオペレーティングシステムです. 当時の 386BSD は, ほぼ一年にわたって放っ +ておかれていた (訳注: 作者がバグの報告を受けても何もしなかった) という +ひどい状況に苦しんでいました. 作者の代わりに問題を修正し続けていた +patchkit は日を追うごとに不快なまでに膨張してしまっていました. このよ +うな状況に対して, このままではいけない, 何か行動を起こさなければ, とい +うことで異議を唱えるものは私たちのなかにはいませんでした. そして私たち +は挑戦することを決断し, 暫定的な「クリーンアップ」スナップショットを作 +成することで Bill を手助けしようと決めたのです. しかし, この計画は唐突 +に終了してしまいました. Bill Jolitz が, このプロジェクトに対する受け +入れ支持を取り下げることを突然決意し, なおかつこのプロジェクトの代わり +に何をするのかを一切言明しなかったのです. + +たとえ Bill が支持してくれないとしても, われわれの目標には依然としてや +る価値があると決心するのにさしたる時間はかかりませんでした. そこで +David Greenman が考案した名称 ``FreeBSD'' を私たちのプロジェクトの名前 +に採用し, 新たなスタートを切りました. この時点でのプロジェクトの初期目 +標は, すでにこのシステム (訳注: 386BSD + Patchkit) を使っていた利用者 +たちと相談して決められました. プロジェクトが実現に向けて軌道に乗ってき +たことが明確になった時点で, 私は Walnut Creek CDROM 社に連絡してみまし +た. CDROM を使って FreeBSD を配布することによって, インターネットに容 +易に接続できない多くの人々が FreeBSD を簡単に入手できるようになると考 +えたからです. Walnut Creek CDROM 社は FreeBSD を CD で配布するというア +イデアを採用してくれたばかりか, 作業するためのマシンと高速なインターネッ +ト回線を私たちのプロジェクトに提供してくれました. 当時は海のものとも山 +のものともわからなかった私たちのプロジェクトに対して, Walnut Creek +CDROM 社が信じられないほどの信頼を寄せてくれたおかげで, FreeBSD は短期 +間のうちにここまで大きく成長したのです. + +CDROM による最初の配布 (そしてネットでの, ベータ版ではない最初の一般向 +け配布) は FreeBSD 1.0 で, 1993年 12月に公開されました. これは カリフォ +ルニア大学バークレイ校の 4.3BSD-Lite (``Net/2'') を基とし, 386BSD や +Free Software Foundation からも多くの部分を取り入れたものです. これは +初めて公開したものとしては十分に成功しました. 続けて 1994年 5月に +FreeBSD 1.1 を公開し, 非常に大きな成功を収めました. + +この時期, あまり予想していなかった嵐が遠くから接近してきていました. バー +クレイ Net/2 テープの法的な位置づけについて, Novell 社と カリフォルニ +ア大学バークレイ校との間の長期にわたる法廷論争において和解が成立したの +です. 和解の内容は, Net/2 のかなりの部分が「権利つき (encumbered)」コー +ドであり, それは Novell 社の所有物である, というバークレイ校側が譲歩し +たものでした. なお, Novell 社はこれらの権利を裁判が始まる少し前に +AT&T 社から買収していました. 和解における譲歩の見返りにバークレイ +校が得たのは, 4.4BSD-Lite が最終的に発表された時点で, 4.4BSD-Lite は権 +利つきではないと公式に宣言されること, そしてすべての既存の Net/2 の利 +用者が 4.4BSD-Lite の利用へと移行することが強く奨励されること, という +Novell 社からの「ありがたき天からの恵み」でした. (訳注: 4.4BSD-Lite は +その後 Novell 社のチェックを受けてから公開された.) 私たちも Net/2 を利 +用していましたから, 1994年の 7月の終わりまでに私たちが持っている Net/2 +ベースの製品の出荷を停止するように言われました. ただし, このときの合意 +によって, 私たちは締め切りまでに一回だけ最後の公開をすることを許されま +した. これが FreeBSD 1.1.5.1 で, Net/2 を対象に私たちが一年以上にわたっ +て努力してきた作業を反映した最高傑作となりました. そしてその完成度は, +さまざまなプロジェクトにおける安定性と全般的な性能に関して, 到達段階の +重要な目安の一つであると, 多くの人々から広く認められてるほどです. (訳 +注: あるプロジェクトが FreeBSD 1.1.5.1 と同程度に安定して速ければ, そ +のプロジェクトが一定のレベルに到達したということ.) + +それから私たちは, まっさらでかなり不完全な 4.4BSD-Lite と共に FreeBSD +を文字どおり再度作り直すという, 難しくて大変な作業の準備を始めまし +た. ``Lite'' バージョンは, 部分的には本当に軽くて, 中身がなかったので +す. 起動し, 動作できるシステムを実際に作り上げるために必要となるプログ +ラムコードのかなりの部分がバークレイ校 の CSRG (訳注: BSDを作っている +グループ) によって (いろいろな法的要求のせいで) 削除されてしまっていた +ということと, 4.4BSD の Intel アーキテクチャ対応が元々かなり不完全であっ +たということがその理由です. この移行作業は結局 1994年の 12月までかかり +ました. そして 1995年の 1月に FreeBSD 2.0 をネットと CDROM を通じて公 +開しました. これは, かなり粗削りなところが残っていたにもかかわらず, か +なりの成功を収めました. そしてその後に, より信頼性が高く, そしてインス +トールが簡単になった FreeBSD 2.0.5 が 1995年の 6月に公開されました. + + +<em>これからのことについて</em> + +<!-- +私たちは 1995年の 11月 19日に FreeBSD 2.1.0 を公開し, それを多くの +人たちが喜んで受け入れてくれました. それからも私たちは 2.1-STABLE とい +う FreeBSD の開発分流 (本当は 2.0.5 から分岐して始まったのですが) の作 +業を続け, 1996年の第一四半期までに少なくとも一回の公開を予定していま +す. FreeBSD 2.1.1 です. (訳注: 結局 2.1.1 は公開されず, 2.1.5 が 1996 +年 8 月に公開された.) + +2.1.2 が 2.1.1 に続いて公開される可能性もありますが, これは FreeBSD +2.2 の 1996 年第二四半期における進捗状況次第です. 2.2 は私たちの新規開 +発専用の開発分流であり, そこでは NFS v3 から PCCARD のサポートまでのす +べての長期的なプロジェクトが現在進行しているところです. 現在の開発予定 +スケジュールでは, 1996 年の第一四半期から 2.2 における開発速度を緩め始 +めるとともに, 予備的な公開の練習 (何回かの 2.2 SNAPshot の公開) を開始 +することになっています. 2.2 の具合をよりよくするために, 2.2 への移行は +少し間を空けて 1996 年第二四半期の初頭に始まり, そして次世代の開発をお +こなうための 2.3 開発分流が開始されるでしょう. 2.2 の公開がおこなわれる +(1996 年の第二四半期の終わりを予定) 頃には, 2.1.x 分流の開発は終了する +でしょう. (訳注: 2.1.5 のリリースノートには, 重大な欠陥が発見されない +かぎり今後 2.1.x が公開されることはない, と書かれています.) + +私たちは, 現時点であまり充実していない残りの分野, 例えばドキュメント化 +や足りないドライバに関しても注力していくつもりです. またシステムの全体 +的な品質の向上と機能の向上を 1996年, そしてその後も着実に続けていく予 +定です. + +最後に皆さんによく知っておいてもらいたいことがあります. FreeBSD は, 閉 +鎖的なグループに所属する人たちだけで開発しているのでは<em>ない</em>と +いうことです. ときどき反対方向に誤解してしまう人がいて困るのですが, プ +ログラムコードやアイデアをプロジェクトに対して自由に提案し, そして寄 +贈してもらうのはいつでも大歓迎です. いろいろと手伝ってくれる人が, その +作業を続けた結果として多くの人から十分信頼を得る頃には, 特別な事情が +ない限りはその人に, 関係しているプロジェクトの CVS リポジトリに対する +書き込み権限をさし上げています. このような新規メンバの追加は実際におこなわ +れています. CVS リポジトリに対して変更をおこなうと, その変更点を他の +FreeBSD のユーザに対して自動的に伝播させることが可能です. (訳注: 開発 +をするようにユーザが設定をした場合のみです. 一般のユーザの FreeBSD が +勝手に書き換わるわけではありません.) 私たちの集中的開発モデルは, +FreeBSD の<em>ユーザの便利さのために</em>設計されているのです. このモ +デルのおかげで, ユーザは一つの集中管理されたプログラムコードのみに注目 +して作業に取り組むことが, 簡単にできるようになっています. このモデルは, +(訳注: 集中管理されているからといって) これから手伝ってくれるかもしれ +ない人たちを排除するためのものでは絶対にありません! 私たちのプロジェク +トに対し, 継続的で, かつ多大な貢献をおこなってくれた人には, FreeBSD のコア +チームに参加し, プロジェクトの全体的な方向性や目標を一緒に検討してもら +えないかと問い合わせることさえ頻繁におこなわれています. つまり私たちのプ +ロジェクトにおいて, 新たなメンバに対して門を閉ざしている部門というのは +まったく存在していないのです. このプロジェクトに対してより深く関わりあ +いたいと希望する人に対して, 私たちが要求するたった一つの事柄は, 現在の +メンバたちが今までにやってきたのと同様に, このプロジェクトがずっと成功 +し続けるように, このプロジェクトへ専念してもらうことだけなのです! + +(訳注: 以下は最新の history.sgml 1.16 1996/09/09 において変更された +「これからのことについて」の章です) +--> +私たちは 1996年の 8月に FreeBSD 2.1.5 を公開しました. この出来が非常に +良かったので, 私たちの考えでは (訳注: より完成度を高めるために) +2.1-STABLE 開発分流からの最後の公開として 2.1.6 を出すことにメリットが +あると思っています. 2.1.6 の公開は11月頃になる予定です. + +2.2 は私たちの新規開発専用の開発分流であり, そこでは NFS v3 から +PCCARD のサポートまでのすべての長期的なプロジェクトが現在進行している +ところです. 1997年の 1月に予定されている, 2.2 のコード凍結作業 (訳注: +新しい機能を追加するのをやめ, バグフィックスのみを行なう作業) を開始す +る直前までに, 2.2 のスナップショットをいくつか公開する予定です. + +私たちは, 現時点であまり充実していない残りの分野, 例えばドキュメント化 +や足りないドライバに関しても注力していくつもりです. またシステムの全体 +的な品質の向上と機能の向上を 1997年, そしてその後も着実に続けていく予 +定です. diff --git a/share/doc/ja_JP.EUC/handbook/hw.sgml b/share/doc/ja_JP.EUC/handbook/hw.sgml new file mode 100644 index 000000000000..5204c94c5982 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/hw.sgml @@ -0,0 +1,1445 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> + +<!-- +<!DOCTYPE chapt PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> --> + +<!-- +<p><em>原作: The FreeBSD Documentation Project .</em> +--> +<!-- Original revision: 1.47 --> + +<chapt><heading>PC ハードウェアコンパチビリティ<label id="hw"></heading> +<p><em>訳: &a.yoshiaki; . <newline> 4 November 1996. </em> + + <p>ハードウェアコンパチビリティの問題は現在のコンピュータ業界でもっ + とも多く起きる種類の問題であり, FreeBSDもこれに無縁ではありません. + 市場にある驚くほど多様な種類の製品をサポートしたことで,安価に普及し + ている PCハードウェアで動かすことができるという FreeBSDの利点はこの + 点では不利でもあります. + FreeBSDのサポートするハードウェアを徹底的に調べて提供することは不 + 可能ですが, このセクションでは FreeBSDに含まれるデバイスドライバとそ + のドライバがサポートするハードウェアのカタログを示します. 可能で適切 + なものについては特定の製品についての注釈を含めました. + + FreeBSD はボランティアプロジェクトでテスト部門には資金がありません + から, より多くの情報をこのカタログに載せるにはあなたがたユーザに + 頼らなければなりません. あなた自身の経験により, あるハードウェアが + FreeBSDで動くか動かないかがわかったとしたら<tt>doc@freebsd.org</tt> + へ e-mailして知らせてください. サポートされているハードウェアについて + の質問は, <tt>questions@freebsd.org</tt>(詳しいことは + <ref id="eresources:mail" name="メーリングリスト">を参照してください) へ + 宛ててください. 情報を提供したり質問をする時は FreeBSDのバージョンと使っ + ているハードウェアのできるだけ詳しい情報を含めることを忘れないでくだ + さい. + +<sect><heading>インターネット上のリソース</heading> +<p> 以下のリンクはハードウェアを選ぶのに役に立ちます. FreeBSDに対して +は必要のない (あるいは適用できない) ように見えるかもしれませんが, ここ +からのハードウェアの情報のほとんどは OSに依存しないものです. +購入をする前にはあなたの選んだものがサポートされているか FreeBSDハード +ウェアガイドを注意して読んでください. </p> + + <p> + <itemize> + <item><htmlurl url="http://sysdoc.pair.com" + name="Toms's Hardware & Performance Guide"></item> + </itemize> + + + <p>訳注: 日本国内でFreeBSDの動くハードウェアの情報を提供してい +るWWWサーバがあります. + +<itemize> +<htmlurl url="http://freebsd.chem.nagoya-u.ac.jp/~ugoita/" +name="FreeBSD POWERED hardwares"> +</itemize> + +これ以外にも情報を提供しているサーバはあります. いくつかの URLについて +は<htmlurl url="http://www.jp.freebsd.org" name="FreeBSD Japan."> +からたどることができます. + +<sect><heading>組合せの見本<label id="hw:configs"></heading> +<p>以下のハードウェアの組合せのサンプルリストはハードウェアベンダや +<em>FreeBSD プロジェクト</em>が保証するものではありません. この情 +報は公共の利益のために公開しているものであり, 極めて数多くあるであろう +異なったハードウェアの組合せの中からのある経験のカタログに過ぎません. +やり方はいろいろあります. +場合によってはうまく行かないこともあります. 十分気をつけてください. + + <sect1><heading>Jordan氏の選んだ組合せ</heading> + <p>私の作ったワークステーションとサーバの構成はまずまずうまく行っ + ています. 私はこれを保証できるわけでもありませんし, ここにあげた組 + 合せがずっと "best buys"であるわけではありません. 私はできればリス + トを更新して行きますがそれがいつになるかはわかりません. + +訳注: &a.jkh; 氏は FreeBSDプロジェクト<ref id="contrib:core" + name="FreeBSDコアチーム">のメンバです. + + <sect2><heading>マザーボード</heading> + <p> <htmlurl url="http://asustek.asus.com.tw/" name="ASUS"> + <htmlurl url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pi-p55tp4xe.txt" + name="P55TP4XE"> + はミッドレンジからハイエンドの Pentiumサーバやワークステーションシステムに + はよい選択のようですが, より新しい Triton-II のボード (以下を参照 + してください) にほとんど置き換えられました. これらのボードを買うな + らば <htmlurl + url="http://asustek.asus.com.tw/Products/TB/mem-0002.html" + name="パイプラインバースト キャッシュモジュール">を使うといいでしょ + う. 486クラスのマザーボードを探しているなら ASUSの <htmlurl + url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pvi-486sp3.txt" + name="486SP3G"> を調べてみることをおすすめします (注: ASUSはこれら + を既に製造していないのは明らかなのでこれらのものはだんだん手に入 + りにくくなっています). + + 訳注: 96年10月現在 上で述べられているボードは日本でも手に入りにくい部類 + になっているようです. + + 注: Intel <htmlurl + url="http://asustek.asus.com.tw/Products/TB/trito n-intro.html" + name="Triton"> チップセットベースのマザーボードではメモリパリティチェッ + ク機能が提供されませんので, メモリエラーが起きても検出が不可能です. + フォルトトレラントなシステムを構築したい場合には, + より新しい Triton II ベースのマザーボードを買うことをおすすめしま + す. こちらはよりよい性能, パリティチェックと ECC機能を提供してくれます. + ECCを使うのであれば 82439HX Triton-II チップセットの A2以降のリビジョ + ンを使ったマザーボードが必要です. 82371SBのリビジョンと混乱しないでくださ + い - リビジョンがA2であれば 82439HXチップに "SU102"とマークされています. + リビジョンがA1であれば Sで始まる番号はマークされていない, あるいは + "SU087"とマークされています. + + <p>ハイエンドにおいては FreeBSDでは 200MHzの P6 (Pentium Pro) CPUを + 使ったIntel/Venus Pro (<ref id="hw:mb:pci" name="VS440FX">) マザーボー + ドが非常によいようです. 最近の価格の下落 (急落と言った方がいいでしょ + うか) で最近の米国内では P6システムは十分購入の候補になる程度に価格 + が下がっています. また, 本格的なサーバ用途には Pentium Pro を考えて + いいでしょう. + + 注: Intel のマザーボードは従来とは異る形状で, "ATX" ケースデザイン + と呼ばれる<em>従来とはまったく異る PCケース</em>が必要になっています. + 今あるシステムをアップグレードしようと考えているならこのことを十分 + 考えましょう - 私のこれまでに知る限りでは, 現在入手可能な ATXケース + はすべて 「ミドルタワー (midi-tower)」で, ドライブなどの内蔵周辺機器 + を格納するスペースに制限があります. 利点としては, ほとんどの ATXケー + スは一般的な PCケースに比較して非常に品質の高いもののようであるとい + うことがあります. + + <sect2><heading>ディスクコントローラ</heading> + <p>これはいくらかトリッキーです. 私は ISAから PCIまですべてコンパチブ + ルな <htmlurl url="http://www.buslogic.com" name="Buslogic"> コント + ローラを使うようにすすめていましたが, 現在では ISAでは + <htmlurl url="http://www.adaptec.com" name="Adaptec"> 1542CF, EISA + では Bt747c, PCIでは Adaptec 2940 をすすめるよう変わってきています. + + <p>PCIマシンで2つ以上の SCSIコントローラが必要となるのであれば, + PCIバスの不足を防ぐために Adaptec 3940 カードを考えてもいいでしょ + う. これは1つのスロットで2台の SCSIコントローラ(と内部バス)を持ち + ます. + + <sect2><heading>ディスクドライブ</heading> + <p>私は,極々特殊な状況を除いて 「それだけのお金をかけることができる + なら SCSIは IDEよりもよい」 と言っています. 小規模なデスクトップ構成 + のシステムでも, SCSIであればディスクが安くなっていった時にサーバの + (古い入れ換えた) ディスクを比較的簡単に移し替えることができます. あ + なたが複数のマシンの管理をしているのであれば単純に容量について考え + るのではなく, 食物連鎖のように考えましょう. + + <p>私は今のところは NFSサーバや NEWSサーバのようにマルチユーザに + よる激しいディスク disk I/Oがおこなわれる用途以外ではお金をかけてま + で SCSI WIDEドライブにする必要はないと考えています. + +<sect2><heading>CDROM ドライブ</heading> + <p>私は SCSIの方が好みであるのでもちろん SCSI CDROMを選びました. + <htmlurl url="http://www.toshiba.com" name="東芝"> XM-3501B (現 + 在はキャディレスモデルの XM-5401Bがリリースされています)ドライブは + どんな時もうまく動いてくれています. 一般的には, 大部分の SCSI CDROM + ドライブは私の見た限りではほとんどしっかりした構造ですので (おそらく, 価 + 格の問題もあってローエンド市場を占有する気がないからでしょう) 多分 + HPや NECの SCSI CDROMでも問題が起きることはないでしょう. + + 注: SCSI CDROM の価格はここ数ヶ月でかなり下落したようで, 技術的に + 優れた方法でありながら 現在では IDE CDROMと同じ程度の価格になって + います. + + <sect2><heading>CD-R (CD Recordable: WORM) ドライブ</heading> + <p>この原稿を書いている時点で, FreeBSDは 3種類の CDRドライブ + (私は これらすべては結局は Phillips社のドライブであるのではない + かと考えているのですが) をサポートしています : Phillips CDD 522 + (Plasmon のドライブと同様の動作をします), PLASMON RF4100, HP 4020i + です. 私は HP 4020i を CDROMを焼くのに使っています(2.2-current で + 使っています - 2.1.5以前のリリースの SCSIコードでは動きません). + 非常に調子よく動いています. 2.2 システムの <htmlurl + url="file:/usr/share/examples/worm" name="/usr/share/examples/worm"> + を見てください. ISO9660ファイルシステムイメージ (RockRidge拡張) を作 + るスクリプトと それをHP4020i CDR で焼くためのスクリプトの例があり + ます. + + <sect2><heading>テープドライブ</heading> + <p>私はたまたま <htmlurl url="http://www.exabyte.com" + name="Exabyte"> の + <htmlurl url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html" + name="8mm drives"> と <htmlurl url="http://www.hp.com" name="HP">の + <htmlurl url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm" + name="4mm (DAT)"> を持っています. + + <p>バックアップのためであれば, より本質的に丈夫な (また, より容量が大きい) + Exabyteの 8mmテープの方がおすすめできます. + + <sect2><heading>ビデオカード</heading> + <p>もし (米国では) 99USドルをかけて商品の Xサーバを<htmlurl + url="http://www.xinside.com/" name="X Inside">から買うことができる + なら間違いなく <htmlurl url="http://www.matrox.com/" name="Matrox"> + <htmlurl url="http://www.matrox.com/mgaweb/brochure.htm" + name="Millenium">カードをおすすめします. フリーの Xサーバを使いたいの + であれば <htmlurl url="http://www.nine.com/" name="Number 9">の + S3 Vision 868と 968 ベースのカード (the 9FX series) はわりあいと速く, + <htmlurl url="http://www.xfree86.org" name="XFree86">の S3サーバで + サポートされており, きっと問題も起きないでしょう. + + <sect2><heading>モニタ</heading> + <p>私の持っている <htmlurl + url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html" + name="Sony Multiscan 17SE monitors">非常に調子がいいので, 同じ (トリ + ニトロン) ブラウン管を使っている Viewsonicをおすすめします. 17"よりも + 大きなモニタ, 例えば 21"のモニタが実際に必要だとしたらこの文章の執 + 筆時点では 2,500USドル以下のものはまったくすすめられません. 20"以上のク + ラスでよいモニタは(いくつも)ありますし, 20"クラスで安いモニタもあり + ます. うまくいかないことに安くてよいモニタはありません!! + + <sect2><heading>ネットワーキング</heading> + <p>私は ISAカードでは <htmlurl url="http://www.smc.com/" + name="SMC"> Ultra 16 コントローラを, PCIベースのカードでは SMC + EtherPower と Compex ENET32カードをおすすめできます. この2種類の PCI + カードは DECの DC21041イーサネットコントローラチップを使っています. + また, このチップを使っている Zynx ZX342 や DEC DE435 などのカードも + 一般的にはうまく動くでしょう. 100Mbit/sec のネットワークカードで + は SMC SMC9332DST 10/100MB や Intel EtherExpress Pro/100B カードは + 利用できるでしょう. + + もう一方, できるだけ低コストでそこその性能で動くものを探しているな + ら, ほとんどの NE2000のクローンはよい選択です. + + <sect2><heading>(特殊な) シリアル</heading> + <p>高速のシリアル ネットワーク インタフェース (同期シリアルカード) + を探しているのであれば <htmlurl url="http://www.dgii.com/" + name="Digi International">製の <htmlurl + url="http://www.dgii.com/prodprofiles/profiles-prices/di + giprofiles/digispecs/sync570.html" name="SYNC/570"> シリーズのド + ライバが今の FreeBSD-currentにあります. <htmlurl + url="http://www.etinc.com" name="Emerging Technologies"> も 提供 + するソフトウェアによりT1/E1の性能が得られるボードを製造しています. + + 訳注:Emerging TechnologiesのWebページを見るとカードのスペックに + Operating Systems: MS-DOS, MS-WINDOWS, System V UNIX, BSD/OS, + FreeBSD, NetBSD and Linux と書いてあります. また + "BSD/OS, FreeBSD and LINUX Router Card Solutions" というページ + もあってサポートは良さそうです. + + <p>マルチポートカードの選択の幅はかなり広いですが, FreeBSDがサポー + トするいう点では <htmlurl url="http://www.cyclades.com/" + name="Cyclades">の製品が最も信頼できるでしょう. この最大の理由はこ + の会社が私たちに十分な評価用ボードとスペックを供給することを約束し + てくれているからです. 私は Cyclom-16Y が最高の性能価格比であると聞 + いていましたが最近は価格のチェックはしていません. + + 訳注: cycladesの WWWサーバでも Supported Operating Systemsに + Linuxや BSDi, FreeBSD が明記されています. + + 他のマルチポートカードで評判がよいのは BOCAおよび ASTのカードと + <htmlurl url="http://www.stallion.com/" name="Stallion + Technologies">で, このカードには <htmlurl + url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/s + talbsd-0.0.4.tar.gz" name="ここ">で非公式なドライバが提供されてい + るようです. + + <sect2><heading>オーディオ</heading> + <p>私は現在,高音質で全二重のオーディオ機能 (2DMAチャネル) を持つという + 点から <htmlurl url="http://www.gravis.com/" name="Gravis"> + Ultrasound MAX を使っています. Windows NTや OS/2でのサポートはあま + りよくありませんので, FreeBSD, NT, OS/2のすべてで使うには推薦できま + せん. そのような場合には <htmlurl url="http://www.creaf.com/" + name="クリエィティブ ラボ">の AWE32 がいいでしょう. + + <sect2><heading>ビデオキャプチャー</heading> + <p>ビデオキャプチャーについては事実上一つしか選択の余地がありません. + <htmlurl url="http://www.matrox.com/" name="Matrox"> + <htmlurl url="http://www.matrox.com/imgweb/meteor.htm" name="Meteor"> + カードです. FreeBSDはクリエィティブ ラボの古い video spigotカードの + サポートはしていますがこれは手に入りにくくなっていますし, Meteor は + 高速のPCIインタフェースを持った新しい世代の画像取り込みボードです. + 私はこれを MBONEのビデオ放送に使っていますが, 非常にうまく動いていま + す!! + +<sect><heading>中心部/プロセッサ<label id="hw:core"></heading> + +<sect1><heading>マザーボード, バス, チップセット</heading> + <sect2><heading>* ISA</heading> + <sect2><heading>* EISA</heading> + <sect2><heading>* VLB</heading> + <sect2><heading>PCI<label id="hw:mb:pci"></heading> + + <p><em>原作: &a.rgrimes;.<newline>25 April 1995.</em></p> + <p><em>更新: &a.jkh;.</em><newline>最終更新 + <em>26 August 1996.</em></p> + <p><em>訳: &a.yoshiaki;.<newline>12 October 1996.</em></p> + + <p>Intelの PCIチップセットについて, 以下にさまざまな種類 + の既知の不具合と問題の程度のリストを示します. + </p> + + <p><descrip> + + <tag>Mercury:</tag> ISAバスマスタがISAとPCIブリッジの向 + こう側にある場合は,キャッシュコヒーレンシ(一貫性)の + 問題があります. このハードウェア欠陥に対処してうま + く動かす方法はキャッシュを offにする以外にはありません. + + <tag>Saturn-I <em> (82424ZX の rev 0, 1 ,2)</em>:</tag> + ライトバックキャッシュのコヒーレンシに問題があります. + このハードウェア欠陥に対処してうまく動かす方法は外部キャッ + シュをライトスルーにすること以外にはありませ + ん. Saturn-IIにアップデートしましょう. + + <tag>Saturn-II <em>(82424ZX の rev 3 or 4)</em>:</tag> + 問題なく動きます. ただし多くのマザーボードではライトバッ + ク動作に必要な 外部ダーティビット SRAMが実装されていま + せん. 対策としてはライトスルーモードで動かすか, ダーティ + ビット SRAMをインストールするかがあります. + (これは ASUS PCI/I-486SP3G の rev 1.6 以降で使われています) + + <tag>Neptune:</tag> 2つより多くの(3台以上の)バスマスタデ + バイスを動かすことができません. Intelは設計の欠陥を + 認めています. 2つを越えるバスマスタを許さない, 特別な + 設計のハードウェアで PCIバスアービタを置き換えることに + より解決されています. (Intelの Altair boardや他にはい + くつかの Intelサーバグループマザーボードに見られます). そして, + もちろん Intelの公式の回答は Triton チップセットへの + 移行で, 「こちらでは修整した」ということです. + + <tag>Triton:</tag> 知られているキャッシュコヒーレンシ + やバスマスタの問題はありませんがパリティチェック機能が + ありません. パリティを使いたいような場合は, 可能であ + れば Triton-IIベースのマザーボードを選びましょう. + + <tag>Triton-II:</tag> このチップセットを使っているマザー + ボードについてのすべての報告によれば今のところ好評です. + 知られている問題はありません. + + 訳注: <ref id="hw:configs" name="組合せの見本">で言及さ + れているように 430HXの初期の製品には ECCが動作しないとい + う問題があります. + + <tag>Orion:</tag> このチップセットの初期のバージョンでは + PCI write-posting にバグがあり, 大量の PCIバストラフィッ + クのあるアプリケーションでは性能の著しい低下があるとい + う障害がありました. B0以降のリビジョンのチップセットで + はこの問題は解決されています. + + <tag><htmlurl + url="http://www-cs.intel.com/oem_developer/motherbd/vs_index.htm" + name="VS440FX">:</tag>これは <htmlurl + url="http://www.intel.com/procs/ppro/intro/index.htm" + name="Pentium Pro"> に対応したチップセットで, 初期の + Orionチップセットにあったような問題は見られず, 問題なく動 + いているようです. また, これは ECCやパリティを含んだ広い + 種類のメモリに対応しています. + </descrip> + </p> + +<sect1><heading>* CPU/FPU</heading> +<sect1><heading>* メモリ</heading> +<sect1><heading>* BIOS</heading> + +<sect><heading>入力/出力デバイス<label id="hw:io"></heading> + +<sect1><heading>* ビデオカード</heading> +<sect1><heading>* サウンドカード</heading> +<sect1><heading>シリアルポートとマルチポートカード</heading> + + &uart; + &sio; + &cy; + +<sect1><heading>* パラレルカード</heading> +<sect1><heading>* モデム</heading> +<sect1><heading>* ネットワークカード</heading> +<sect1><heading>* キーボード</heading> +<sect1><heading>* マウス</heading> +<sect1><heading>* その他</heading> + +<sect><heading>記憶装置<label id="hw:storage"></heading> +&esdi; +&scsi; + +<sect1><heading>* ディスク/テープ コントローラ + <label id="hw:storage:controllers"></heading> + <sect2><heading>* SCSI</heading> + <sect2><heading>* IDE</heading> + <sect2><heading>* フロッピー</heading> + +<sect1><heading>* ハードディスクドライブ</heading> +<sect1><heading> テープドライブ</heading> + <p><em>原作: &a.jmb;.<newline>2 July 1996.</em></p> + <p><em>訳: &a.yoshiaki;.<newline>13 October 1996.</em></p> + + <sect2><heading> 一般的なテープアクセスコマンド</heading> + <p><tt>mt(1)</tt> はテープドライブへの一般的なアクセス方法を提 + 供します. <tt>rewind</tt>, <tt>erase</tt>, <tt>status</tt>など + の共通コマンドがあります. マニュアルページの <tt>mt(1)</tt>を見 + てください. より詳しい解説があります. + + <sect2><heading> コントローラインタフェース</heading> + <p>テープドライブにはいくつかの異なったインタフェースがあり + ます. SCSI, IDE, フロッピー, パラレルポートのインタフェース + です. 非常に多くの種類のテープドライブがこれらのインタフェー + スで使えます. コントローラについての議論は<ref + id="hw:storage:controllers" name="ディスク/テープ のコントロー + ラ ">にあります(訳注:現在未完成です). + + <sect2><heading> SCSI ドライブ</heading> + <p><tt>st(4)</tt> ドライバは 8mm (Exabyte), 4mm (DAT: Digital + Audio Tape), QIC (1/4インチカートリッジ), DLT (デジタルリニアテー + プ), QIC ミニカートリッジ, 9トラック (大きなリールがハリウッドの + コンピュータルームで回っているのを見たことがあるでしょう)をサポー + トします. + <tt>st(4)</tt> マニュアルページにより詳しい解説があります. + + <p>以下のドライブリストは現在 FreeBSDコミュニティのメンバが + 使っているものです. これらだけが FreeBSDで動くドライブという + わけではありません. これらは単にたまたま私たちのうちの誰かが使っ + ているというだけです. + + <sect3><heading> 4mm (DAT: Digital Audio Tape )</heading> + <p><ref id="hw:storage:python" name="Archive Python" + <p><ref id="hw:storage:hp1533a" name="HP C1533A"> + <p><ref id="hw:storage:hp1534a" name="HP C1534A"> + <p><ref id="hw:storage:hp35450a" name="HP 35450A"> + <p><ref id="hw:storage:hp35470a" name="HP 35470A"> + <p><ref id="hw:storage:hp35480a" name="HP 35480A"> + <p><ref id="hw:storage:sdt5000" name="SDT-5000"> + <p><ref id="hw:storage:wangtek6200" name="Wangtek 6200" + + <sect3><heading> 8mm (Exabyte)</heading> + <p><ref id="hw:storage:exb8200" name="EXB-8200"> + <p><ref id="hw:storage:exb8500" name="EXB-8500"> + <p><ref id="hw:storage:exb8505" name="EXB-8505"> + + <sect3><heading> QIC (1/4 インチカートリッジ)</heading> + <p><ref id="hw:storage:anaconda" name="Archive Ananconda 2750" + <p><ref id="hw:storage:viper60" name="Archive Viper 60" + <p><ref id="hw:storage:viper150" name="Archive Viper 150" + <p><ref id="hw:storage:viper2525" name="Archive Viper 2525" + <p><ref id="hw:storage:tandberg3600" name="Tandberg TDC 3600" + <p><ref id="hw:storage:tandberg3620" name="Tandberg TDC 3620" + <p><ref id="hw:storage:tandberg4222" name="Tandberg TDC 4222" + <p><ref id="hw:storage:wangtek5525es" name="Wangtek 5525ES" + <sect3><heading> DLT (Digital Linear Tape)</heading> + <p><ref id="hw:storage:dectz87" name="Digital TZ87" + <sect3><heading> Mini-Cartridge</heading> + <p><ref id="hw:storage:ctms3200" name="Conner CTMS 3200" + <p><ref id="hw:storage:exb2501" name="Exabyte 2501" + <sect3><heading> Autoloaders/Changers</heading> + <p><ref id="hw:storage:hp1553a" name="Hewlett-Packard HP +C1553A Autoloading DDS2"> + + <sect2><heading>* IDE ドライブ</heading> + <sect2><heading> フロッピードライブ</heading> + <p><ref id="hw:storage:conner420r" name="Conner 420R" + <sect2><heading>* パラレルポートドライブ</heading> + <sect2><heading> 詳細な情報 </heading> + + <sect3><heading><label id="hw:storage:anaconda"> +Archive Ananconda 2750</heading> + <p>このドライブのブートメッセージの識別子は "ARCHIVE +ANCDA 2750 28077 -003 type 1 removable SCSI 2"です. + <p>これは QIC テープドライブです. + <p>QIC-1350テープを利用した場合の標準の容量は 1.35GBです. +このドライブは QIC-150 (DC6150), QIC-250 (DC6250), QIC-525 (DC6525) の +テープを問題なく読み書きすることができます. + <p><tt>dump(8)</tt>を使った時のデータ転送レートは 350kB/sです. + <ref id="hw:storage:amanda" name="Amanda">における転送レートは +530kB/sと報告されています. + <p>このドライブは既に生産中止になっています. + <p>このテープドライブの SCSIバスコントローラは他のほとんどの + SCSIドライブとピン配置が逆です. Anaconda テープドライブの前後でSCSIケー +ブルを1/2ひねることができるくらいSCSIケーブルが長いことを確認しておく +か, 他の SCSIデバイスのピン配置を入れ換えておく必要 +があります. + <p>そして, このドライブではカーネルコードの変更が 2箇所必要です. そ +のままではうまく動かないでしょう. + <p>SCSI-2コントローラを持っているなら, ジャンパの 6番をショート +してください. そうしないとこのドライブは SCSI-1として働きます. SCSI-1の +デバイスとして動作する時, このドライブはテープのfsf (早送り), rewind (巻 +戻し),rewoffl (巻戻してオフラインにする) 等を含む操作を行っている間, +SCSIバスをロックします. + <p>NCR SCSIコントローラを使う場合, /usr/src/sys/pci/ncr.c (以 +下を参照してください)にパッチを行って, カーネルを作り直し, 新しいカーネ +ルをインストールしてください. + +<tscreen><verb> +*** 4831,4835 **** + }; + +! if (np->latetime>4) { + /* + ** Although we tried to wake it up, +--- 4831,4836 ---- + }; + +! if (np->latetime>1200) { + /* + ** Although we tried to wake it up, + +</verb></tscreen> + <p>報告者: &a.jmb; + + + <sect3><heading><label id="hw:storage:python"> +Archive Python</heading> + <p>このドライブのブートメッセージの識別子は "ARCHIVE +Python 28454-XXX4ASB" "type 1 removable SCSI 2" "density code +0x8c, 512-byte blocks" です. + <p>これは DDS-1 テープドライブです. + <p>90m テープを使った場合の標準容量は 2.5GBです. + <p>データ転送速度は不明です. + <p>このドライブは Sun マイクロシステムが再パッケージして model + 411として出しています. + <p>報告者: Bob Bishop rb@gid.co.uk + + <sect3><heading><label id="hw:storage:viper60"> +Archive Viper 60</heading> + <p>このドライブのブートメッセージ識別子は "ARCHIVE +VIPER 60 21116 -007" "type 1 removable SCSI 1"です. + <p>これは QICテープドライブです. + <p>標準の容量は 60MB です. + <p>データ転送レートは不明です. + <p>このドライブは生産中止になっています. + <p>報告者: Philippe Regnauld regnauld@hsc.fr + + <sect3><heading><label id="hw:storage:viper150"> +Archive Viper 150</heading> + <p>このドライブのブートメッセージの識別子は "ARCHIVE +VIPER 150 21531 -004" "Archive Viper 150 is a known rogue" "type +1 removable SCSI 1"です. このドライブのファームウェアには多くのリビジョ +ンがあります. あなたのドライブではことなった数字が表示されるかもしれま +せん(例えば "21247 -005"). + <p>これは QICテープドライブです. + <p>標準容量は 150/250MBです. 150MB (DC6150) テープと + 250MB (DC6250)テープの記録フォーマットがあります. 250MBテープは +およそ67% 150MBテープより長いです. このドライブは 120MBのテープを問題 +なく読むことができます. 120MBテープに書き込むことはできません. + <p>データ転送レートは100kB/sです. + <p>このドライブは DC6150 (150MB) と DC6250 (250MB) テープの読み +書きができます. + <p>このドライブの奇妙な癖は SCSIテープデバイスドライバはあら +かじめ (<tt>st(4)</tt>) にあらかじめ組み込まれています. + <p>FreeBSD 2.2-currentでは, ブロックサイズの設定を設定するため<tt>mt +blocksize 512</tt>としてください. (ファームウェアリビジョンが +21247 -005 である場合の問題です. 他のリビジョンのファームウェアでは異 +なる場合があります.) これ以前の FreeBSDバージョンにはこの問題はありません. + <p>このドライブは生産中止になっています. + <p>報告者: Pedro A M Vazquez vazquez@IQM.Unicamp.BR + <p> Mike Smith msmith@atrad.adelaide.edu.au + + <sect3><heading><label id="hw:storage:viper2525"> +Archive Viper 2525</heading> + <p>このドライブのブートメッセージの識別子は "ARCHIVE +VIPER 2525 25462 -011" "type 1 removable SCSI 1"です. + <p>これは QICテープドライブです. + <p>標準容量は 525MBです. + <p>データ転送レートは 90inch/secの場合で 180kB/sです. + <p>QIC-525, QIC-150, QIC-120, QIC-24のテープを読むことができま +す. QIC-525, QIC-150, QIC-120 に書き込むことができます. + <p>ファームウェアのリビジョンが "25462 -011" 以前の物はバグが +多く, 正しく機能しません. + <p>このドライブは生産中止になっています. + <p>報告者: &a.hm; + + <sect3><heading><label id="hw:storage:conner420r"> +Conner 420R</heading> + <p>このドライブのブートメッセージの識別子は "Conner tape" です. + <p>これはフロッピーコントローラを使うミニカートリッジテープド +ライブです. + <p>標準容量は不明です. + <p>データ転送レートは不明です. + <p>このドライブは QIC-80テープドライブを使います. + <p>報告者: Mark Hannon mark@seeware.DIALix.oz.au + + <sect3><heading><label id="hw:storage:ctms3200"> +Conner CTMS 3200</heading> + <p>このドライブのブートメッセージの識別子は "CONNER +CTMS 3200 7.00" "type 1 removable SCSI 2" です. + <p>これはミニカートリッジテープドライブです. + <p>標準容量は不明です. + <p>データ転送レートは不明です. + <p>このドライブは QIC-3080テープカートリッジを使います. + <p>報告者: Thomas S. Traylor tst@titan.cs.mci.com + + <sect3><heading><label id="hw:storage:dectz87"> + <htmlurl +url="http://www.digital.com/info/Customer-Update/931206004.txt.html" +name="DEC TZ87"></heading> + <p>このドライブのブートメッセージの識別子は "DEC +TZ87 (C) DEC 9206" "type 1 removable SCSI 2" "density code 0x19" です. + <p>これは DLTテープドライブです. + <p>標準容量は 10GBです. + <p>このドライブはハードウェアデータ圧縮の機能があります. + <p>データ転送レートは 1.2MB/sです. + <p>このドライブは Quantum DLT2000と同一の物です. このドライブ +のファームウェアは Exabyteの 8mmドライブ等のよく知られたいくつかのドラ +イブのエミュレートをおこなうよう設定ができます. + <p>報告者: &a.wilko; + + <sect3><heading><label id="hw:storage:exb2501"> + <htmlurl +url="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html" +name="Exabyte EXB-2501"></heading> + <p>このドライブのブートメッセージ識別子は "EXABYTE +EXB-2501"です. + <p>これはミニカートリッジテープドライブです. + <p>MC3000XLミニカートリッジを使った時の標準容量は 1GBです. + <p>データ転送レートは不明です. + <p>このドライブは DC2300 (550MB), DC2750 (750MB), MC3000 +(750MB), MC3000XL (1GB) ミニカートリッジの読み書きができます. + <p>注意: このドライブは SCSI-2の仕様に適合していません. +このドライブは, フォーマット済みのテープ以外を入れた場合, SCSI +MODE_SELCTコマンドで完全にロックアップしてしまいます. このドライブを使 +う前に, テープブロックサイズを次のように設定します. + + <verb>mt -f /dev/st0ctl.0 blocksize 1024</verb> + +ミニカートリッジは最初に使う前にフォーマットしなければなりません. +FreeBSD 2.1.0-RELEASE およびそれ以前の場合は + + <verb>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</verb> + +(あるいは, FreeBSD 2.1.5/2.2から <tt>scsiformat</tt>シェルスクリプトを +コピーして持ってきた場合と) FreeBSD 2.1.5およびそれ以降の場合は + + <verb>/sbin/scsiformat -q -w /dev/rst0.ctl</verb> + +とします. + <p>今のところ, FreeBSDではこのドライブはあまりおすすめできません. + <p>報告者: Bob Beaulieu ez@eztravel.com + + <sect3><heading><label id="hw:storage:exb8200"> Exabyte +EXB-8200</heading> + <p>このドライブのブートメッセージの識別子は "EXABYTE +EXB-8200 252X" "type 1 removable SCSI 1"です. + <p>これは8mmテープドライブです. + <p>標準容量は 2.3GBです. + <p>データ転送レートは 270kB/sです. + <p>このドライブはブート時の SCSIバスへの応答はわりあい遅いです. +カスタムカーネルが必要かもしれません (SCSI_DELAYを 10秒に設定しましょう). +訳注: GENERICカーネルの設定では 15秒になっています. + <p>このドライブには非常に多くのファームウェアの構成があります. +あるドライブでは特定のベンダのハードウェアにカスタマイズしてあります. +ファームウェアは EPROMを置き換えることで変更できます. + <p>このドライブは生産中止になっています. + <p>報告者: Mike Smith msmith@atrad.adelaide.edu.au + + <sect3><heading><label id="hw:storage:exb8500"> +Exabyte EXB-8500</heading> + <p>このドライブのブートメッセージの識別子は "EXABYTE +EXB-8500-85Qanx0 0415" "type 1 removable SCSI 2" です. + <p>これは 8mmテープドライブです. + <p>標準容量は 5GBです. + <p>データ転送レートは 300kB/sです. + <p>報告者: Greg Lehey grog@lemis.de + + <sect3><heading><label id="hw:storage:exb8505"> + <htmlurl +url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html" +name="Exabyte EXB-8505"></Heading> + <p>このドライブのブートメッセージ識別子は "EXABYTE +EXB-85058SQANXR1 05B0" "type 1 removable SCSI 2"です. + <p>これは 圧縮機能を持った 8mmテープドライブで, EXB-5200 と + EXB-8500に対する上位互換品です. + <p>標準容量は 5GBです. + <p>このドライブはハードウェアデータ圧縮機能があります. + <p>データ転送レートは 300kB/sです. + <p>報告者: Glen Foster gfoster@gfoster.com + + <sect3><heading><label id="hw:storage:hp1533a"> +Hewlett-Packard HP C1533A</heading> + <p>このドライブのブートメッセージの識別子は "HP +C1533A 9503" "type 1 removable SCSI 2"です. + <p>これはDDS-2テープドライブです. DDS-2 とはデータ容量を増や +すためにハードウェア圧縮と狭いトラックを採用したものです. + <p>120mテープを使った場合の標準容量は4GBです. このドライブは +ハードウェアデータ圧縮機能があります. + <p>データ転送レートは510kB/sです. + <p>このドライブはヒューレットパッカード社の6000eUおよび6000iテー +プドライブ, C1533A DDS-2 DAT ドライブに使われています. + <p>このドライブは 8接点のディップスイッチがあります. FreeBSDで +の適切な設定は 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8 ON です. +<tscreen><verb> +スイッチ 1 2 結果 + ON ON 電源投入時に圧縮ON, ホストによるコントロール可能 + ON OFF 電源投入時に圧縮ON, ホストによるコントロール不可 + OFF ON 電源投入時に圧縮OFF, ホストによるコントロール可能 + OFF OFF 電源投入時に圧縮OFF, ホストによるコントロール不可 +</verb></tscreen> + <p>スイッチ3は MRS (Media Recognition System :メディア認識システ +ム) をコントロールします. MRS テープは透明なテープリーダ部分にしま模 +様があります. これはテープが DDS (Digital Data Storage) グレードである +ことを示します. しま模様のないテープはライトプロテクトされたものとして +扱います. スイッチ3をOFFにすると MRSが有効になります. スイッチ3をONに +すると MRSは無効になります. + +訳注: 安価な音楽用のDATテープを使うには MRSをOFFにしておきます + + <p><em>注意:</em> これらのドライブの品質管理は非常に幅がありま +す. ある FreeBSDコアチームのメンバは このドライブを2つ返品しました. + <p>報告者: &a.se; + + <sect3><heading><label id="hw:storage:hp1534a"> +Hewlett-Packard HP 1534A</heading> + <p>このドライブのブートメッセージの識別子は "HP +HP35470A T503" type 1 removable SCSI 2" "Sequential-Access +density code 0x13, variable blocks"です. + <p>これは DDS-1テープドライブです. DDS-1 は最初の DAT +テープフォーマットです. + <p>90m テープを使った場合の標準容量は 2GBです. + <p>データ転送レートは 183kB/sです. + <p>ヒューレットパッカード社の +SureStore <htmlurl url="http://www.dmo.hp.com/tape/sst2000.htm" +name="2000i"> テープドライブ, C35470A DDS フォーマット DATドライブ, C1534A DDS +フォーマット DATドライブ, HP C1536A DDS フォーマット DATドライブと +同じ機構を使用しています. + <p>HP C1534A DDSフォーマット DATドライブはグリーンと黄色(アンバー) +の2つの表示ランプがあります. グリーンのランプは動作状 +態を示し, ローディング中はゆっくり点滅, ローディングが終了すると点灯, +read/write動作中は速く点滅します. 黄色のランプは警告灯で, クリーニング +が必要であるかまたはテープが寿命に近くなるとゆっくり点滅, 致命的なエラー +の場合は点灯します(工場での修理が必要かもしれません). + <p>報告者:Gary Crutcher gcrutchr@nightflight.com + + <sect3><heading><label id="hw:storage:hp1553a"> +Hewlett-Packard HP C1553A Autoloading DDS2</heading> + <p>このドライブのブートメッセージの識別子は未確認です. + <p>これは DDS-2テープドライブです. DDS-2 とはデータ容量を増や +すためにハードウェア圧縮と狭いトラックを採用したものです. + <p>120mテープを使用した場合の標準容量は 24GB です. +このドライブはハードウェアデータ圧縮機能があります. + <p>データ転送レートは510kB/s (標準) です. + <p>このドライブはヒューレットパッカード社の SureStore +<htmlurl url="http://www.dmo.hp.com/tape/sst12000.htm" +name="12000e">テープドライブに使われています. + <p>このドライブはリアパネルに2つの選択スイッチがあります. +ファンに近いスイッチは SCSI IDです. もうひとつは 7に設定しておきます. + <p>内部に 4個のスイッチがあります. これらは 1 ON; 2 ON; 3 ON; +4 OFF に設定しておきましょう. + <p>現在のカーネルドライバはボリュームの終りで自動的にテープを +交換しません. ここに示す shellスクリプトでテープを交換できます. + +<tscreen><verb> +#!/bin/sh +PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH + +usage() +{ + echo "Usage: dds_changer [123456ne] raw-device-name + echo "1..6 = Select cartridge" + echo "next cartridge" + echo "eject magazine" + exit 2 +} + +if [ $# -ne 2 ] ; then + usage +fi + +cdb3=0 +cdb4=0 +cdb5=0 + +case $1 in + [123456]) + cdb3=$1 + cdb4=1 + ;; + n) + ;; + e) + cdb5=0x80 + ;; + ?) + usage + ;; +esac + +scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5" +</verb></tscreen> + + <sect3><heading><label id="hw:storage:hp35450a"> +Hewlett-Packard HP 35450A</heading> + <p>このドライブのブートメッセージの識別子は"HP +HP35450A -A C620" "type 1 removable SCSI 2" "Sequential-Access +density code 0x13" です. + <p>これは DDS-1テープドライブです. DDS-1 は最初の DAT +テープフォーマットです. + <p>標準容量は 1.2GBです. + <p>データ転送レートは 160kB/sです. + <p>報告者: mark thompson mark.a.thompson@pobox.com + + <sect3><heading><label id="hw:storage:hp35470a"> +Hewlett-Packard HP 35470A</heading> + <p>このドライブのブートメッセージの識別子は "HP +HP35470A 9 09" type 1 removable SCSI 2"です. + <p>これは DDS-1テープドライブです. DDS-1は最初の DAT +テープフォーマットです. + <p>90mテープを使用した時の標準容量は 2GBです. + <p>データ転送レートは 183kB/sです. + <p>これはヒューレットパッカード社の +SureStore <htmlurl url="http://www.dmo.hp.com/tape/sst2000.htm" +name="2000i"> テープドライブ, C35470A DDSフォーマットDATドライブ, C1534A +DDSフォーマットDATドライブ, HP C1536A DDS フォーマットDATドライブと同 +じ機構が使われています. + <p><em>注意:</em> これらのドライブの品質管理には非常に大き +な幅があります. ある FreeBSDコアチームのメンバは 5台のドライブを返品し +ました. 9ヶ月以上もったものはありません. + <p>報告者: David Dawes dawes@rf900.physics.usyd.edu.au (9 09) + + <Sect3><heading><label id="hw:storage:hp35480a"> +Hewlett-Packard HP 35480A</heading> + <p>このドライブのブートメッセージの識別子は +"HP HP35480A 1009" "type 1 removable SCSI 2" "Sequential-Access +density code 0x13" です. + <p>これは DDS-DCテープドライブです. DDS-DCはハードウェアデータ +圧縮のついたDDS-1です. DDS-1は最初のDATテープフォーマットです. + <p>90mテープを使った場合の標準容量は 2GBです. このドライブはハー +ドウェア圧縮機能があります. + <p>データ転送レートは 183kB/sです. + <p>このドライブはヒューレットパッカード社の SureStore +<htmlurl url="http://www.dmo.hp.com/tape/sst5000.htm" name= +"5000eU"> , <htmlurl +url="http://www.dmo.hp.com/tape/sst5000.htm" name="5000i"> テープドラ +イブ, C35480A DDS フォーマット DAT ドライブと同じ機構を使っています. + <p>このドライブは時々, テープの eject操作 (<tt>mt offline</tt>) +を行っている時にハングアップすることがあります. テープをejectさせたり, +ドライブを回復させるにはフロントパネルのボタンを押してください. + <p>注意: HP 35480-03110 では特有の問題がありました. +少なくとも2回, FreeBSD 2.1.0 で IBM Server 320に 2940W SCSIコントローラ +をつけてこのドライブを使っている時にすべての SCSIディスクのパーティショ +ンが失われたことがあります. この問題は解析も解決もできていません. + + <sect3><heading><label id="hw:storage:sdt5000"> + <htmlurl +url="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html" +name="Sony SDT-5000"</heading> + <p>これらには少なくとも DDS-1のものと DDS-2のものの2つのモデルが +あります. DDS-1のものは "SDT-5000 3.02"です. DDS-2のものは "SONY +SDT-5000 327M" です. DDS-2バージョンには 1MBのキャッシュがあります. この +キャッシュによりあらゆる状況でテープのデータの流れを途切れさせません. + <p>このドライブのブートメッセージの識別子は "SONY +SDT-5000 3.02" "type 1 removable SCSI 2" "Sequential-Access +density code 0x13"です. + <p>120mテープを使用した場合の標準容量は 4GBです. このドライブ +はハードウェアデータ圧縮機能があります. + <p>データ転送レートはドライブのモデルによります. + "SONY SDT-5000 327M" でデータ圧縮を行った場合のレートは 630kB/s +です. "SONY SDT-5000 3.02"では 225kB/sです. + <p>Kenneth Merry ken@ulc199.residence.gatech.eduの報告によれば +このドライブからデータを読むためには, ブロックサイズを 512バイトにしま +す (<tt>mt blocksize 512</tt>). + <p>"SONY SDT-5000 327M" の情報は Charles Henrich + henrich@msu.edu による報告です. + <p>報告者: &a.jmz; + + <sect3><heading><label id="hw:storage:tandberg3600"> +Tandberg TDC 3600</heading> + <p>このドライブのブートメッセージの識別子は +"TANDBERG TDC 3600 =08:" "type 1 removable SCSI 2"です. + <p>このドライブはQIC テープドライブです. + <p>標準容量は150/250MBです. + <p>このドライブには奇妙な癖があることが知られていますが, + SCSIテープドライバ (<tt>st(4)</tt>) には問題なく動くコードが含まれてい +ます. 問題の修整とSCSI 2へのコンパチビリティを得るためにファームウェ +アをある (具体的には不明の) バージョンより上にしてください. + <p>データ転送レートは80kB/sです. + <p>IBMと Emerald製品のユニットは動かないでしょう. +問題を解決するためにファームウェア EPROMを交換してください. + <p>報告者: Michael Smith msmith@atrad.adelaide.edu.au + + <sect3><heading><label id="hw:storage:tandberg3620"> +Tandberg TDC 3620</heading> + <p>これは<ref + id="hw:storage:tandberg3600" name="Tandberg TDC 3600">ドライ +ブに非常によく似ています. + <p>報告者: &a.joerg; + + <sect3><heading><label id="hw:storage:tandberg4222"> +Tandberg TDC 4222</heading> + <p>このドライブのブートメッセージの識別子は +"TANDBERG TDC 4222 =07" "type 1 removable SCSI 2"です. + <p>これは QICテープドライブです. + <p>標準容量は2.5GBです. このドライブは 60M (DC600A) 以上のすべての +カートリッジを読むことができ, 150MB (DC6150) 以上のすべてのカートリッジを +読み書きできます. ハードウェア圧縮は 2.5GBカートリッジを使用した時のオプションとしてサポートされています. + <p>このドライブには奇妙な癖がありますが, FreeBSDの2.2-current以降の +SCSIテープデバイスドライバ (<tt>st(4)</tt>) には対応が組み込まれています. +それ以前のバージョンの FreeBSDでは<tt>mt</tt>を用いてテープから1ブロッ +ク読み, テープを巻戻してからバックアッププログラムを実行してください. +(<tt>mt fsr 1; mt rewind; dump ...</tt>). + <p>データ転送レートは 600kB/s (データ圧縮時のベンダによる公称) + で, start/stop モードでも 350kB/s にはなります. 容量の小さいカー + トリッジを使った場合にはレートは下がります. + <p>報告者: &a.joerg; + + <sect3><heading><label id="hw:storage:wangtek5525es"> +Wangtek 5525ES</heading> + <p>このドライブのブートメッセージの識別子は "WANGTEK +5525ES SCSI REV7 3R1" "type 1 removable SCSI 1" "density code 0x11, 1024-byte +blocks"です. + <p>これは QICテープドライブです. + <p>標準容量は 525MBです. + <p>データ転送レートは 180kB/sです. + <p>60, 120, 150, 525MB のテープを読むことができます. +60MB (DC600カートリッジ) には書き込むことはできません. 120および150テー +プに確実に上書きするには, 先にテープを消去 (<tt>mt erase</tt>) します. +120および 150のテープは 525MBのテープより幅の広いトラックを使用してい +ます(テープ当たりのトラック数は少なくなります). +トラックの幅の「外側」には上書きされませんので, テープが消去されない限り +両側に古いデータが残ったまま新しいデータが置かれることになります. + <p>このドライブの奇妙な癖は知られていて, SCSIテープドライバ + (<tt>st(4)</tt>) に組み込まれています. + <p>他のファームウェアのリビジョンで動くことが確認されているも + のは M75Dです. + + <p>報告者: Marc van Kempen marc@bowtie.nl "REV73R1" + Andrew Gordon Andrew.Gordon@net-tel.co.uk "M75D" + + <sect3><heading><label id="hw:storage:wangtek6200"> +Wangtek 6200</heading> + <p>このドライブのブートメッセージの識別子は "WANGTEK +6200-HS 4B18" "type 1 removable SCSI 2" "Sequential-Access density +code 0x13"です. + <p>これは DDS-1テープドライブです. + <p>90mテープを使用した場合の標準容量は 2GBです. + <p>データ転送レートは 150kB/sです. + <p>報告者: Tony Kimball alk@Think.COM + + <sect2><heading>* 問題のあるドライブ </heading> + +<sect1><heading>* CD-ROM ドライブ</heading> +<sect1><heading>* その他</heading> + +<sect1><heading>* ディスクの追加と再設定</heading> +<sect1><heading> テープとバックアップ<label id="hw:storage:tapebackups"></heading> + <sect2><heading>* フロッピーへのバックアップはいかが?</heading> + <sect2><heading> テープメディア</heading> + <sect3><heading><label id="hw:storage:tapebackups:4mm"> + 4mm (DDS: Digital Data Storage)</heading> +<!--gen--> + <p>4mm テープはワークステーションのバックアップメディアとして +QICから置き換えられつつあります. この流れは QICドライブの製造のリーダ +であった Archiveを Connerが買収し QICドライブの製造を中止したことで加 +速しました. 4mmドライブは小型で静かですが +8mmドライブの持っているような信頼性の評判はありません. +カートリッジは 8mmカートリッジよりも安価で小型 (3 x 2 x 0.5 インチ +; 76 x 51 x 12 mm) です. 4mmドライブ は 8mm同様にヘリカルスキャン (訳 +注: VTRと同様の回転ヘッドを使う方式) を使用しているという理由でヘッド +の寿命は短いです. + +<!--spec--> + <p>これらのドライブのデータスループットは 150kB/s程度から +500kB/s程度の範囲です. データ容量は 1.3GBから 2.0GBです. ハードウェア +圧縮が多くのドライブで可能で, およそ 2倍の容量になります. マルチドライ +ブテープライブラリユニットは1つの筐体に 6ドライブを持つことができ自動的 +にテープを交換します. ライブラリの容量は 240GBに達します. + +<!--tech--> + <p> 4mmドライブは 8mmドライブ同様にヘリカルスキャンを使います. +ヘリカルスキャンの利点と欠点は 4mmドライブ と 8mmドライブ共通です. + + <p>テープの寿命は 2000回のパスあるいは 100回のフルパックアップ +です. + + <sect3><heading><label id="hw:storage:tapebackups:8mm"> +8mm (Exabyte)</heading> + +<!--gen--> + <p>8mmテープは SCSIテープドライブとして最もよく使われているもの +で, データ交換用として最良の選択です. ほとんどのサイトには Exabyteの +2GB 8mmテープドライブがあるでしょう (訳注: Unixワークステーションを何 +台も置いているようなサイトには1台くらいはあるというような意味です). +8mmドライブは信頼性が高く, 使いやすく, 静かです. カートリッジは安価で +小型です (4.8 x3.3 x 0.6 インチ; 122 x 84 x 15 mm). ひとつの欠点は +, テープとヘッドの相対的な速度が高速なために比較的ヘッドとテープの寿命 +が短いことです. + +<!--spec--> + <p>データスループットは 250kB/s程度から 500kB/s程度の範囲です. +データ容量は 300MBから 7GBです. ハードウェア圧縮が多くのドライブで可 +能で,およそ 2倍の容量になります. 単一のユニットおよび,1つの筐体に6台の +ドライブと 120巻のテープを持ったマルチドライブテープライブラリが利用可 +能です. テープはユニットにより自動的に交換されます. ライブラリの容量は +840GB以上に達します. + +<!--tech--> + <p>データはヘッドがメディアに対してある傾き (約6度) を持って配置 +されているヘッドによるヘリカルスキャンを使ってテープに記録されます. テープは +ヘッドのある円筒の周の 270度にわたって接触します. テープが円筒面を走行 +する間, 円筒は回転しています. この結果, トラックはテープの上端と下端の間に +角度を持って横切り, データは高密度に詰められることになります. + + <sect3><heading><label id="hw:storage:tapebackups:qic"> +QIC</heading> +<!--gen--> + <p>QIC-150テープとドライブはたぶん最も一般的に使われているドライブとメ +ディアでしょう。QICテープドライブは現実的なバックアップドライブとして +少なくとも高価なものではありません. 欠点はメディアのコストです. QICテー +プは 8mmや 4mmテープに比較して GBのデータの保存には5倍ほど高価です. +しかしあなたの必要とする量が半ダース程のテープで十分であれば, QICは正 +しい選択となるかもしれません. QICは <em>最も</em>一般的なテープドライ +ブです. すべてのサイトに QICドライブのどれかの容量のものがあります. +問題は, QICは同じようなテープ (まったく同じ場合もある) に多様な記録密度 +があることです. QICドライブは静かではありません. これらのドライブはデー +タ記録を開始する前に音をたててシークしますし, リード, ライト, シークの +時にはっきりと聞こえる音を出します. + QICテープの大きさは (6 x 4 x 0.7 インチ; +152 x 102 x 17 mm). <ref id="hw:storage:tapebackups:mini" +name="ミニカートリッジ"> で使われている 1/4インチ幅のテープについては別に +議論します. テープライブラリやチェンジャはありません. + +<!--spec--> + <p>データスループットは 150kB/sから 500kB/sの範囲です. データ容量 +の範囲は 40MBから 15GBです. ハードウェア圧縮が最近の多くのドライブで使 +えるようになっています. QICドライブは DATドライブに置き換えられつつあ +り,あまり多くインストールされなくなっています. + +<!--tech--> + <p>データは複数のトラックにわかれてテープに記録されます. +トラックはテープメディアの長さ方向に沿っていて, 一端からもう一方の端ま +でです. トラックの +数とそれにしたがうトラックの幅はテープの容量によって変わります. すべてではあ +りませんがほとんどの最近のドライブは少なくとも読み出しについては (場合 +によっては書き込みも) 下位互換性があります. QICはデータの安全性につ +いてはよいといわれています (ヘリカルスキャンドライブに比べて機構は単純 +でより丈夫です). + + <p>テープは 5000回のバックアップで寿命となるでしょう. + + <sect3><heading><label id="hw:storage:tapebackups:mini"> +* ミニカートリッジ</heading> + + <sect3><heading><label id="hw:storage:tapebackups:dlt"> +DLT</heading> +<!--gen--> + <p>DLTはここに示したドライブのタイプの中で最高速のデータ転送レー +トです. 1/2インチ (12.5mm) テープが単リールのカートリッジ (4 x 4 x 1 イン +チ; 100 x 100 x 25 mm) に入っています. カートリッジのひとつの側面全体が +スイングゲートになっています. ドライブの機構がこのゲートを開け, テープ +リーダを引き出します. テープリーダには楕円形の穴があり, ドライブ +がテープを引っ掛けるのに使います. 巻き取りのためのリールはドライブの中 +にあります. ここに挙げた他のカートリッジはすべて (9トラックテープはただ +1つの例外です) 送りだしリールと巻き取りリールの両方がカートリッジの中 +にあります. + +<!--spec--> + データスループットは約1.5MB/sで, 4mm, 8mm, QIC テープドライブ +の3倍です. データ容量は単一のドライブで 10GBから 20GBの範囲です. +マルチテープチェンジャ,マルチテープドライブ,5から 900巻のテープを1から +20ドライブで扱うマルチドライブテープライブラリがあり, 50GBから 9TBの容量が得 +られます. + +<!--tech--> + データは (QICテープのように) テープの走行方向に並列なトラックに +記録されます. 2つのトラックが同時に書かれます. Read/Writeヘッドの寿命 +は比較的長いと言えます. テープの走行が止まればヘッドとテープの間の相対 +運動はありません. + + <sect2><heading> 新品のテープを最初に使う場合</heading> + <p>新品の完全な空テープを読もうとしたり書き込もうとすると処理 +は失敗するでしょう. 次のようなコンソールメッセージが出るでしょう. +<tscreen><verb> + st0(ncr1:4:0): NOT READY asc:4,1 + st0(ncr1:4:0): Logical unit is in process of becoming ready +</verb></tscreen> + +テープに識別ブロック (Identifire Block:block number 0) がありません. +QIC-525標準の採用されている QICテープドライブのすべてで識別ブロックをテー +プに書きます. 2つの解決方法があります. + + <p>(訳注: 方法1)<tt>mt fsf 1</tt> によってテープドライブは識別 + ブロックをテープに書きます. + + <p>(訳注: 方法2)フロントパネルのボタンを押してテープをとりだします. + <p>再びテープを入れ,データをテープに <tt>dump(8)</tt>します. + <p><tt>dump(8)</tt> はそのうちに <tt>DUMP: End of tape +detected</tt> と表示し, コンソールには <tt>HARDWARE FAILURE +info:280 asc:80,96</tt>と表示されるでしょう. + <p> <tt>mt rewind</tt>を使ってテープを巻戻します. + <p>この次からはテープの操作は成功するでしょう. + + <sect2><heading>バックアッププログラム</heading> + <p>よく使われる3つのプログラムは<tt>dump(8)</tt>, +<tt>tar(1)</tt>, <tt>cpio(1)</tt>です. + + <sect3><heading> ダンプとリストア</heading> +<!--gen--> + <p><tt>dump(8)</tt> と <tt>restore(8)</tt> は伝統的な Unixのバッ +クアッププログラムです. これらはドライブのファイルシステムによって作ら +れたファイル,リンク,ディレクトリをディスクブロックの集まりとして処理し +ます. <tt>dump(8)</tt>はデバイスやファイルシステム全体をバックアップし, +一部分のバックアップや, <tt>ln(1)</tt>によるソフトリンクや他のファイル +システムをマウントを行った, 1つ以上のファイルシステムにまたがるディレ +クトリツリーのバックアップはできません. +<tt>dump(8)</tt>はファイルやディレクトリを構成するデータブロックをテー +プに書くだけで, ファイルやディレクトリをテープに書くことはありません. +<tt>dump(8)</tt>には初期の ATT UNIXのバージョン 6 (1975年ごろ) に由来する +癖が残っています. デフォルトのパラメタは 9トラックテープ (6250 bpi) に +適したものになっていて現在の高密度メディア (最大 62,182 ftpi) に適してい +ません. 現在のテープドライブの容量を有効に利用するため, デフォルト値を +コマンドラインで置き換えなければなりません. + + <p><tt>rdump(8)</tt> と <tt>rrestore(8)</tt> は他のコンピュー +タに接続されているテープドライブにネットワーク経由でバックアップをしま +す.どちらのプログラムもリモートテープドライブにアクセスするために +<tt>rcmd(3)</tt>と <tt>ruserok(3)</tt>に依存しています. このためユーザ +がバックアップを実行するためには <tt>rhosts</tt>によるリモートアクセス +が必要です. <p><tt>rdump(8)</tt> と <tt>rrestore(8)</tt>の引数はリモー +トコンピュータに適切なものを用います. + +<tt>rrestore(8)</tt>はリモートコンピュータから使うのに適しています. +(例えば FreeBSDコンピュータより komodoという名前の Sunに接続されている +Exabyteテープドライブへ +<tt>/sbin/rdump +0dsbfu 54000 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&1</tt> +として <tt>rdump</tt>したような場合の restoreに使います) +警告: セキュリティは <tt>rhosts</tt>の管理にかかっています. +あなたの状況を注意深く調べてください. + + <sect3><heading> Tar</heading> +<!--gen--> + <p><tt>tar(1)</tt> ATT Unix のバージョン 6 (1975ごろ) にさかのぼ +る事ができます. <tt>tar(1)</tt>はファイルシステムと協調して機能し, ファ +イルやディレクトリをテープに書きます. <tt>tar(1)</tt>は +<tt>cpio(1)</tt>で使えるようなフルレンジのオプションは持ちませんが +<tt>cpio(1)</tt>で使うような奇妙なコマンドパイプラインは必要ありません. + + <p><tt>tar(1)</tt> はネットワーク経由のバックアップの機能はあ +りません. リモートテープドライブにはパイプラインと <tt>rsh(1)</tt>を使っ +て送る事ができます. (コマンド使用例はまだです) + + <sect3><heading> Cpio</heading> +<!--gen--> + <p><tt>cpio(1)</tt> は本来の Unixファイルを磁気メディアへ移すた +めのプログラムです. <tt>cpio(1)</tt>はバイトスワッピング, 多くの異な +るアーカイブフォーマットの書き込みのオプション(それ以外にも多数のオプ +ションがあります)がありパイプで他のプログラムにデータを渡す事もできま +す. この最後に挙げた特徴により, <tt>cpio(1)</tt>はインストールメディア +にとっては優れた選択です. <tt>cpio(1)</tt>は<tt>STDIN</tt>からの入力で +なければならず,ディレクトリツリーの探索やファイルリストについての機能 +はありません. + <p><tt>cpio(1)</tt>はネットワーク経由のバックアップの機能はあ +りません. リモートテープドライブにはパイプラインと <tt>rsh(1)</tt>を使っ +て送る事ができます. (コマンド使用例はまだです) + + <sect3><heading><label id="hw:storage:amanda"><htmlurl +url="http://www.freebsd.org/ports/misc.html#amanda-2.2.6.5" +name="Amanda"></heading> + <p>Amanda (Advanced Maryland Network Disk Archiver) は単一のプ +ログラムではなくクライアント/サーバ型のバックアップシステムです. Amanda サー +バは, Amandaクライアントであるネットワークでサーバに接続された複数のコン +ピュータから一つのテープドライブへバックアップをおこないます. +このような場合の一般的な問題はいくつもの大容量のディスクからデータディ +レクトリをテープにバックアップするには時間がかかりすぎてしまうという事 +です. Amanda はこの問題を解決します. Amandaは同時に複数のファイルシス +テムのバックアップをおこなう時に 「ホールディングディスク」を使う事ができます. +Amandaの設定ファイルに書いたすべてのファイルシステムのフルバックアップを +ある間隔でとるためのテープグループである 「アーカイブセット」を作ります. +これは Amandaの設定ファイルに書かれているすべてのファイルシステムが, ある +期間で作られるフルバックアップのテープのグループです. 「アーカイブセッ +ト」には夜間に作られるすべてのファイルシステムの増分 (あるいは差分として +) のバックアップも含みます. 障害の起きたファイルシステムの回復に +は最も新しいフルバックアップと増分のバックアップが必要です. + + <p>設定ファイルでバックアップのコントロールと Amandaによるネッ +トワークトラフィック量を設定します. Amandaはデータをテープに書くのに +バックアッププログラムのどれかを使うでしょう. Amandaはその一部分でも +パッケージでも利用可能ですが, デフォルトではインストールされません. + + <sect3><heading>何もしない</heading> + <p>「何もしない」というのはコンピュータのプログラムではありませ +んが, バックアップの戦略として最も広く採用されている物です. これには初 +期投資が必要ありません. したがわなければならないバックアップスケジュールも +ありません. ただ何もしないだけです. もしデータに何かが起きたら, 苦笑い +して耐えてください. + + <p>あなたにとって時間やデータの価値が少ないかあるいはまったくない +のであれば「何もしない」のはあなたのコンピュータに最も適したバックアッ +ププログラムでしょう. しかし注意してください. Unixは便利なツールです. +6ヶ月も使っていれば価値のあるファイルの山ができ上がっているでしょう. + + <p>「何もしない」は <tt>/usr/obj</tt> やその他の, コンピュータに +よってつくり出されたディレクトリツリーについては適切な方法です. 一つの +例はこのハンドブックのファイルで, これらは <tt>SGML</tt>のファイルより +生成された物です. <tt>HTML</tt>ファイルのバックアップを作る必要はあ +りません. <tt>SGML</tt>のソースファイルは定期的にバックアップされます. + + <sect3><heading>どのバックアッププログラムが最適でしょう?</heading> + <p><em>定期的に </em><tt>dump(8)</tt>しましょう. Elizabeth +D. Zwicky はここで検討したプログラムすべてについて拷問的なテストをおこないま +した. すべてのデータと Unixファイルシステムの状態すべてを保存するには明ら +かに <tt>dump(8)</tt>でしょう. Elizabethは大きく変化に富んだ異常な状態 +(いくつかはあまり異常でもない状態のものもあります) になっているファイ +ルシステムで, それぞれのプログラムでファイルシステムのバックアップとリ +ストアを行ってテストしました. 特色のある状態には, ホールを持つファイル, +ホールとヌルブロックを持つファイル, 奇妙な文字をファイル名に持つファイ +ル, 読み出し不可, 書き込み不可のファイル, デバイスファイル, バックアッ +プ中にファイルのサイズを変更する, バックアップ中にファイルの作成/削除 +をおこなうなどがあります. 彼女は1991年10月の LISA Vで結果の発表をしていま +す. + + <sect2><heading>緊急時のリストア手順</heading> + <sect3><heading> 災難の起きる前に</heading> + <p>起き得るどのような災難に対しても以下の4ステップだけが必要な +準備です. + + <p>ステップ 1では, ファイルシステムテーブル(<tt>/etc/fstab</tt>) +やブートメッセージで示されるすべてのディスクの disklabelをそれぞれ2コピー +づつプリント (<tt>例えば disklabel sd0 | lpr とする</tt>) します. + + <p>ステップ 2では, boot と fixitフロッピーにそのシステムのすべ +てのデバイスドライバが含まれているか確認します. 最も簡単な確認の方法は, フロッ +ピーをドライブに入れてリブートし, ブートメッセージを確認することです. あなた +のシステムのデバイスがすべて含まれ, 機能していれば, step 3へ飛んでください. + + <p>そうでないなら, そのシステムのすべてのディスクをマウントでき, +テープドライブにもアクセスできる 2種類のカスタムブートフロッピーディスクを作る必要 +があります. これらのフロッピーには <tt>fdisk(8)</tt>, +<tt>disklabel(8)</tt>, <tt>newfs(8)</tt>, <tt>mount(8)</tt>, と利用したい +バックアッププログラムが入っていなければなりません. これらのプログラム +はスタティックリンクされたプログラムである必要があります. +<tt>dump(8)</tt>を使うのであればフロッピーに <tt>restore(8)</tt>を入れ +る必要があります. + + <p>ステップ 3では, 通常の方法でバックアップを作ります. +最新のバックアップの後でおこなわれた変更は回復することはできません. +バックアップテープにライトプロテクトをしてください. + + <p>ステップ 4では, フロッピー (boot.flp と fixit.flp あるいは +ステップ 2で作った2枚のカスタムブートフロッピーディスクです) とバックアップテー +プのテストをします. + 手順のノートを作りましょう. このノートはブートフロッピーディスク,バックアッ +プテープに入れておきプリントアウトしておきます. あなたがリストアをおこなう +ような時はおそらく錯乱状態でしょうからこのノートはバックアップを破壊し +てしまうようなことを防ぐのに役立つでしょう (どのようにして破壊するって? +<tt>tar xvf /dev/rst0</tt>とする替りに偶然 <tt>tar cvf /dev/rst0</tt> +とタイプしてバックアップテープに上書きしてしまうかもしれません). + +訳注: 上書きはライトプロテクトをしておけば防げますが, なんらかの原因で +プロテクトがはずれているかもしれません. +ちなみに訳者の経験から言えば上のようなミスタイプは結構起きます. + + <p>安全性を増すために, 毎回ブートフロッピーディスクを作り,2巻のバック +アップテープを取ります. 一方を離れた場所に保管します. 離れた場所は同じ +建物の地下室ではいけません. 世界貿易センタービルにあった数多くの会社は +苦い経験よりこの教訓を得ました. 離れた場所とはコンピュータやディスク +ドライブからかなり離れていて物理的に分離されていなければなりません. + + <p>ブートフロッピーディスクを作るスクリプトの一例 +<tscreen><verb> + #!/bin/sh + # + # create a restore floppy リストアフロッピーの作成 + # + # format the floppy フロッピーのフォーマット + # + PATH=/bin:/sbin:/usr/sbin:/usr/bin + + fdformat -q fd0 + if [ $? -ne 0 ] + then + echo "Bad floppy, please use a new one" + exit 1 + fi + + # place boot blocks on the floppy フロッピーにブートブロックを書く + # + disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440 + + # + # newfs the one and only partition ただ1つのパーティションを newfs + # + newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a + + # + # mount the new floppy 新しいフロッピーをマウント + # + mount /dev/fd0a /mnt + + # + # create required directories 必要なディレクトリの作成 + # + mkdir /mnt/dev + mkdir /mnt/bin + mkdir /mnt/sbin + mkdir /mnt/etc + mkdir /mnt/root + mkdir /mnt/mnt # for the root partition + mkdir /mnt/tmp + mkdir /mnt/var + + # + # populate the directories + # + # MINIカーネルがない場合は作ります + if [ ! -x /sys/compile/MINI/kernel ] + then + cat << EOM + The MINI kernel does not exist, please create one. + Here is an example config file: + # MINIカーネルの config fileの例 + # MINI -- A kernel to get FreeBSD on onto a disk. + # + machine "i386" + cpu "I486_CPU" + ident MINI + maxusers 5 + + options INET # needed for _tcp _icmpstat _ip +stat + # _udpstat _tcpstat _udb + options FFS #Berkeley Fast File System + options FAT_CURSOR #block cursor in syscons or pcc +ons + options SCSI_DELAY=15 #Be pessimistic about Joe SCSI +device + options NCONS=2 #1 virtual consoles + options USERCONFIG #Allow user configuration with +-c XXX + + config kernel root on sd0 swap on sd0 and sd1 dumps on sd0 + + controller isa0 + controller pci0 + + controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr + disk fd0 at fdc0 drive 0 + + controller ncr0 + + controller scbus0 + + device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr + device npx0 at isa? port "IO_NPX" irq 13 vector npxintr + + device sd0 + device sd1 + device sd2 + + device st0 + + pseudo-device loop # required by INET + pseudo-device gzip # Exec gzipped a.out's + EOM + exit 1 + fi + + cp -f /sys/compile/MINI/kernel /mnt + + gzip -c -best /sbin/init > /mnt/sbin/init + gzip -c -best /sbin/fsck > /mnt/sbin/fsck + gzip -c -best /sbin/mount > /mnt/sbin/mount + gzip -c -best /sbin/halt > /mnt/sbin/halt + gzip -c -best /sbin/restore > /mnt/sbin/restore + + gzip -c -best /bin/sh > /mnt/bin/sh + gzip -c -best /bin/sync > /mnt/bin/sync + + cp /root/.profile /mnt/root + + cp -f /dev/MAKEDEV /mnt/dev + chmod 755 /mnt/dev/MAKEDEV + + chmod 500 /mnt/sbin/init + chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt + chmod 555 /mnt/bin/sh /mnt/bin/sync + chmod 6555 /mnt/sbin/restore + + # + # create the devices nodes デバイスノードを作る + # + cd /mnt/dev + ./MAKEDEV std + ./MAKEDEV sd0 + ./MAKEDEV sd1 + ./MAKEDEV sd2 + ./MAKEDEV st0 + ./MAKEDEV pty0 + cd / + + # + # create minimum filesystem table 最小限のファイルシステムテーブル + # + cat > /mnt/etc/fstab <<EOM + /dev/fd0a / ufs rw 1 1 + EOM + + # + # create minimum passwd file 最小限のパスワードファイル + # + cat > /mnt/etc/passwd <<EOM + root:*:0:0:Charlie &:/root:/bin/sh + EOM + + cat > /mnt/etc/master.passwd <<EOM + root::0:0::0:0:Charlie &:/root:/bin/sh + EOM + + chmod 600 /mnt/etc/master.passwd + chmod 644 /mnt/etc/passwd + /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd + + # + # umount the floppy and inform the user フロッピーを unmount + # + /sbin/umount /mnt +</verb></tscreen> + + <sect3><heading>災難の後に</heading> + <p>重要な問題は, ハードウェアが生き残ったかどうかです. +定期的なバックアップを取っていればソフトウェアについて心配する必要はあ +りません. + + <p>ハードウェアがダメージを受けていたら, 最初にそのダメージを +受けた部品を交換してください. + + <p>ハードウェアに問題がなければ, フロッピーをチェックしてくださ +い.カスタムブートフロッピーディスクを使っているのであればシングルユーザ +("boot:"プロンプトの出た時に "-s" とタイプしてください) でブートしてくださ +い. それから次の「ファイルシステムを1つずつ回復する」を読んでください。 + + <p>boot.flp と fixit.flp を使っているのであればこのまま読み続けてくださ +い. boot.flp を入れてブートしてください. 本来のインストールメニューが表 +示されるはずです. (ここで) "fixit XXX"オプションを選びます. 指示の通り +fixit.flp を入れてください. <tt>restore</tt>とその他の必要なプログラムは +<tt>/mnt2/stand</tt>に置かれています. + + <p>ファイルシステムを一つずつ回復する + + <p>最初のディスクのrootパーティションを<tt>mount(8) (例えば mount +/dev/sd0a /mntのように) </tt>マウントして見てください. ディスクラベルが +破壊されている場合は <tt>disklabel(8)</tt>を使ってあらかじめプリントし +ておいた通りにパーティションを作り直しラベルをつけてセーブしてください. +<tt>newfs(8)</tt>を使いファイルシステムを作り直します. ルー +トパーティションを読み書き可能にマウント ("<tt>mount -u -o rw +/mnt</tt>") しなおします. バックアッププログラムとバックアップテープを +使ってこのファイルシステムのデータを回復します (例えば <tt>restore vrf +/dev/st0</tt>とします). ファイルシステムをアンマウント (<tt>umount +/mnt</tt>など) して, 障害を受けたファイルシステムそれぞれについて繰り返 +してください. + + <p>システムが動き出したら, 新しいテープにデータをバックアップ +してください. どのような理由で再び事故が起きたりデータが失われるかはわか +りません. これに時間を費す事で, 後々の災難から救われる事になります. + + <sect3><heading>* 災難対策をしていませんでした. どうしたらいいでしょ +う?</heading> +<sect1><heading>* シリアルポート</heading> +<sect1><heading>* サウンドカード</heading> +<sect1><heading>* PCMCIA</heading> +<sect1><heading>* その他<label id="hw:other"></heading> diff --git a/share/doc/ja_JP.EUC/handbook/install.sgml b/share/doc/ja_JP.EUC/handbook/install.sgml new file mode 100644 index 000000000000..c9975b512b82 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/install.sgml @@ -0,0 +1,848 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.39 --> + +<!-- +<!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> +--> +<chapt><heading>FreeBSDのインストール<label id="install"></heading> + +<p><em>原作: 不明</em> + +<p><em>訳: &a.mita;, <newline>&a.hanai;, +<newline>&a.iwasaki;. <newline>11 November 1996.</em> + + <p>それでは, FreeBSD のインストールに挑戦してみましょう. + この章には, あなたが何をする必要があるかの簡単なガイドが + 書いてあります. FreeBSD は, CD-ROM, フロッピーディスク, 磁気テープ, + MS-DOSのパーティション, ネットワーク接続しているところでは + anonymous FTP や NFS を通じてインストールすることができます. + + どのインストールメディアを利用する場合も, まず<bf>インストールディスク</bf> + をダウンロードするところから始まります. このディスクであなたの + コンピュータを立ち上げることで, FreeBSD とあなたのハードウェアとの + 相性に関する重要な情報を手に入れることができ, このハードウェアでは + どんなインストールオプションが使えるかを指定することができます. + もしもあなたが anonymous FTP を使用してインストールする予定なら, + インストールディスクだけをダウンロードすればOKです. + + FreeBSDの配布に関する情報は, 付録の <ref id="mirrors" name="FreeBSD の入手方法"> + をご覧ください. + + 仕事にとりかかるには, 以下のような手順を踏みます. + <enum> + + <item>このインストールガイドの <ref id="install:hw" + name="サポートされている設定一覧"> の節を読んで, あなたのハードウェアが + FreeBSD でサポートされていることを確認します. SCSI コントローラだとか, + イーサネットアダプタだとか, サウンドカードだとかの, あなたのマシンが + 装備している特別なカードのリストを作っておくと便利です. この + リストには, 割り込み番号 (IRQ) とか, IO ポートのアドレスとかの, カードに + 関係する設定も書いておきましょう. + <item><url + url="ftp://ftp.freebsd.org/pub/FreeBSD/&rel.current;-RELEASE/floppies/boot.flp" + name="ブートディスクのイメージ"> ファイルをあなたの + ハードディスクにダウンロードしてきます. ブラウザのコマンドでは, + <em>display</em> ではなくて <em>save</em> を選ぶことに注意してください. + + <bf>注意:</bf> このディスクイメージは, 1.44 メガバイトの + 3.5 インチフロッピーディスクと, 1.2 メガバイトの 5.25 インチフロッピーディスク + のどちらでも使用可能です. + </item> + + <item>このイメージファイルからブートディスクを作成します, + <itemize> + <item>MS-DOSを使っている場合: + <url +url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/tools/dos-tools/rawrite.exe" + name="rawrite.exe"> をダウンロードして, これを実行します. +<tscreen><verb> +C:\> rawrite +</verb></tscreen> +このプログラムを実行すると, 書き込むフロッピードライブ +(A: か B: か) を聞いてきて, その後に書き込むファイルの名前 +(boot.flp) を聞いてきます. + </item> + + <item>UNIX システムを使っている場合: +<tscreen> +% dd if=boot.flp of=<em>disk_device</em> +</tscreen> +を実行します. ここで, <em>disk_device</em> はフロッピードライブに +対応する <tt>/dev</tt>の中のエントリです. FreeBSD では, +<tt>/dev/fd0</tt> が A:ドライブに, <tt>/dev/fd1</tt> が B:ドライブに +対応しています. + </item> + </itemize> + </item> + + <item>インストールディスクを A:ドライブに入れて, コンピュータを +立ち上げ直します. そうすると次のようなプロンプトが出てくるはずです. + <tscreen> +>> FreeBSD BOOT ...<newline> +Usage: [[[0:][wd](0,a)]/kernel][-abcCdhrsv]<newline> +Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1<newline> +Use ? for file list or press Enter for defaults<newline> +Boot: + </tscreen> + ここで何もタイプしない場合, 5秒間の待ち時間の後に FreeBSD は + 自動的にデフォルトの設定で立ち上がります. 立ち上げの際, どんな + ハードウェアが装備されているかを検出 (プローブ) します. この結果は + スクリーン上に表示されます. + </item> + + <item>立ち上げプロセスが終了したら, FreeBSD インストールメニューが + 表示されます. + </item> + </enum> + + <p><bf>もしも問題が起こった場合</bf> + + <p>PC アーキテクチャの制限のため, 100パーセントの信頼をもって検出する + ことは不可能です. もしもあなたのハードウェアが間違って認識されたり, + 検出途中でコンピュータが固まってしまうようなことが起こった場合, + まずこのガイドの <ref id="install:hw" name="サポートされている設定一覧"> + の節を読んで, あなたのハードウェアが本当に + FreeBSD でサポートされているかどうかを確かめてください. + + <p>ハードウェアがサポートされていた場合, リセットして + <tt>Boot:</tt> プロンプトが出てきたところで, <bf>-c</bf> と打ち込んで + ください. こうすると, FreeBSD はコンフィグレーションモードになり, + ハードウェアに関する情報を FreeBSD に与えることができるようになります. + インストールディスクの FreeBSD カーネルは, 多くのデバイスの IRQ, + IO アドレスが工場出荷時の値に設定されているものと仮定して作られています. + もしもあなたのハードウェアの設定を変更したなら, <bf> -c</bf> + オプションで立ち上げて, 設定がどうなっているかを指定してあげること + が必要になるでしょう. + + <p>存在しないデバイスを検出すると, 実際に存在している他のデバイスの + 検出に失敗することが考えられます. そのような場合は, 衝突している + デバイスを無効にしなくてはなりません. + + <p>コンフィグレーションモードでは, + <itemize> + <item>カーネルに組み込まれているデバイスドライバの一覧を表示する</item> + <item>あなたのシステムにないハードウェアのデバイスドライバを無効にする</item> + <item>デバイスドライバの IRQ, DRQ, IO ポートアドレスなどの変更する</item> + </itemize> + などができます. + <p> <tt>config></tt> プロンプトが出ているところで, <tt>help</tt> + と打ち込むと, 使用可能なコマンドについての詳しい説明が出てきます. + あなたのマシンのハードウェア設定に合うようにカーネルを変更したら, + <tt>config></tt> プロンプトが出たところで <tt>quit</tt> と打ち込んで, + 新しい設定でマシンを立ち上げます. + + FreeBSD のインストールがひとたび終了した後は, コンフィグレーションモード + での変更はずっと保持されますので, 立ち上げのたびに設定変更をする必要は + なくなりますが, あなたのシステムの性能を高めるために, + カスタムカーネルを作るのが好ましいでしょう. カスタムカーネルの作成に関しては, + <ref id="kernelconfig" name="FreeBSD カーネルのコンフィクレーション"> + の章をご覧ください. + + <sect><heading>サポートされている設定一覧<label id="install:hw"></heading> + + <p>現在 FreeBSD は, ISA, VL, EISA, PCI バスや, 386SX から Pentium クラス + までのさまざまな種類の PC で動作します (386SXはおすすめではありません). + IDE, ESDIドライブや, さまざまな SCSI コントローラ, ネットワークカードや + シリアルカードにも対応しています. + + FreeBSD を走らせるには, 最低 4メガバイトの RAM が必要です. X Window System を + 走らせるには最低でも 8メガバイトの RAM が推奨されます. + + 以下のリストでは, FreeBSD で動作が確認されているディスクコントローラ + やイーサネットカードです. 他の設定でもうまく動いてくれると + 思いますが, 私たちのところには情報は入ってきていません. + + <sect1><heading>ディスクコントローラ</heading> + + <p> + <itemize> + <item>WD1003 (あらゆる MFM/RLL) + <item>WD1007 (あらゆる IDE/ESDI) + <item>IDE + <item>ATA + + <item>Adaptec 152x シリーズ ISA SCSI コントローラ + <item>Adaptec 154x シリーズ ISA SCSI コントローラ + <item>Adaptec 174x シリーズ EISA SCSI コントローラ + (スタンダード, エンハンスドモード) + <item>Adaptec 274x/284x/2940/3940 + (Narrow/Wide/Twin) + シリーズ EISA/VLB/PCI SCSI コントローラ + <item>Adaptec AIC7850 オンボード SCSI コントローラ + <item>Adaptec + <!-- AIC-6260 and - 実際のところ動いていません, joerg --> + AIC-6360系のボード + AHA-152x や SoundBlaster SCSI などがこれにあたります. + + <bf>注意:</bf> Soundblaster カードには, オンボード BIOS + が載っていないので, このカードからは FreeBSD を起動できません. + オンボード BIOS とは, システム BIOS の I/O ベクタにブートデバイスを + 登録するときに必要なものです. このカードは外部テープであるとか, + CD-ROM であるとかその他の場合には十分利用可能です. + 同じことは, ブート ROM の載っていない AIC-6x60 系のカードにもいえます. + いくつかのシステムでは実際にブート ROM を持っています. + それは電源を入れるかリセットしたとき, 最初に表示されます. + 詳しくはあなたのシステムやボードの解説書をご覧ください. + + + <item>Buslogic 545S & 545c + <bf>注意:</bf> Buslogic社は古くは Bustek社といっていました. + <item>Buslogic 445S/445c VLバス SCSI コントローラ + <item>Buslogic 742A, 747S, 747c EISA SCSI コントローラ. + <item>Buslogic 946c PCI SCSI コントローラ + <item>Buslogic 956c PCI SCSI コントローラ + + <item>NCR 53C810 , 53C825 PCI SCSI コントローラ. + <item>NCR5380/NCR53400 (``ProAudio Spectrum'') SCSI コントローラ. + + <item>DTC 3290 EISA SCSI コントローラ (1542 エミュレーション) + + <item>UltraStor 14F, 24F, 34F SCSI コントローラ. + + <item>Seagate ST01/02 SCSI コントローラ. + + <item>Future Domain 8xx/950 シリーズ SCSI コントローラ. + + <item>WD7000 SCSI コントローラ. + + </itemize> + + サポートされている SCSI コントローラのすべてで, ディスク, テープドライブ + (含む DAT), CD-ROM ドライブなどの周辺機器との通信に SCSI-I, + SCSI-II が利用可能です. + + 現在, 次にあげるタイプの CD-ROM ドライブがサポートされてます. + <itemize> + <item>Soundblaster SCSI , ProAudio Spectrum SCSI (<tt>cd</tt>) + <item>ミツミ (全モデル) 独自のインタフェース (<tt>mcd</tt>) + <item>松下 / Panasonic (Creative) + CR-562/CR-563 インタフェース (<tt>matcd</tt>) + <item>ソニー インタフェース (<tt>scd</tt>) + <item>ATAPI IDE インタフェース + (まだまだお試し段階で, クオリティは低いです) + (<tt>wcd</tt>) + </itemize> + + <sect1><heading>イーサネットカード</heading> + + <p> + <itemize> + + <item>Allied-Telesis AT1700, RE2000 カード + + <item>SMC Elite 16 WD8013 Ethernet インタフェース, + その他多くの WD8003E, WD8003EBT, WD8003W, WD8013W, + WD8003S, WD8003SBT や WD8013EBTなどの互換品. + SMC Elite Ultra もサポートされています. + + <item>DEC EtherWORKS III ネットワークインタフェースカード (DE203, DE204, DE205) + <item>DEC EtherWORKS II ネットワークインタフェースカード (DE200, DE201, DE202, DE422) + <item>DEC DC21140/DC21141/DC21140 ベースのネットワークインタフェースカード: + <itemize> + <item>ASUS PCI-L101-TB + <item>Accton ENI1203 + <item>Cogent EM960PCI + <item>Compex CPXPCI/32C + <item>D-Link DE-530 + <item>DEC DE435 + <item>Danpex EN-9400P3 + <item>JCIS Condor JC1260 + <item>Linksys EtherPCI + <item>Mylex LNP101 + <item>SMC EtherPower 10/100 (Model 9332) + <item>SMC EtherPower (Model 8432) + <item>SMC EtherPower (2) + <item>Zynx ZX342 + </itemize> + <item>DEC FDDI (DEFPA/DEFEA) ネットワークインタフェースカード + + <item>富士通 FMV-181, FMV-182 + + <item>富士通 MB86960A/MB86965A + + <item>Intel EtherExpress + + <item>Intel EtherExpress Pro/100B 100Mbit. + + <item>Isolan AT 4141-0 (16 bit) + <item>Isolink 4110 (8 bit) + + <item>Novell NE1000, NE2000, NE2100 イーサネットインタフェース + + <item>3Com 3C501 カード + + <item>3Com 3C503 Etherlink II + + <item>3Com 3c505 Etherlink/+ + + <item>3Com 3C507 Etherlink 16/TP + + <item>3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III + + <item>3Com 3C590, 3C595 Etherlink III + + <item>HP PC Lan Plus (27247B と 27252A) + + <item>東芝 イーサネットカード + + <item>IBM , National Semiconductor社 PCMCIA + イーサネットカードもサポートされています. + </itemize> + + <p><em>注意:</em> FreeBSD は今のところ, いくつかのイーサネットカードの + PnP (プラグ&プレイ) 機能には対応していません. もし PnP で問題が起こる + ようでしたら, PnP 機能を無効にしてください. + + <sect1><heading>その他のデバイス</heading> + +<p> + <itemize> + <item> AST 4 ポート シリアルカード (シェアード IRQ 使用) + + <item> ARNET 8 ポート シリアルカード (シェアード IRQ 使用) + + <item> BOCA IOAT66 6 ポート シリアルカード (シェアード IRQ 使用) + + <item> BOCA 2016 16 ポート シリアルカード (シェアード IRQ 使用) + + <item> Cyclades Cyclom-y シリアルボード + + <item> STB 4 ポート カード (シェアード IRQ 使用) + + <item> SDL Communications Riscom/8 シリアルボード + + <item> SDL Communications RISCom/N2 と N2pci 同期シリアルカード + + <item> Digiboard Sync/570i high-speed 同期シリアルカード + + <item> Adlib, SoundBlaster, SoundBlaster Pro, + ProAudioSpectrum, Gravis UltraSound, Gravis UltraSound MAX + Roland MPU-401 などのサウンドカード + </itemize> + + FreeBSD は今のところ, IBM社のマイクロチャネルアーキテクチャ (MCA) バスには + 対応していません. + + <sect><heading>インストールの下準備</heading> + + <p>FreeBSD のインストール方法はさまざまあります. それぞれの + インストール方法に対して, どのような下準備が必要かをこれから説明します. + + <sect1><heading>CD-ROM からインストールする前に</heading> + + <p>あなたの CD-ROM ドライブがサポートされていないタイプの場合は, + <ref id="install:msdos" + name="ハードディスクの MS-DOS パーティションからインストールする前に"> + に飛んでください. + Walnut Creek の FreeBSD CD-ROM からインストールする場合は, 大した下準備 + をしないでもうまくインストールできることでしょう (その他の CD-ROM + でもうまくいくでしょうが, その CD-ROM がどうやって作られているか, 私たち + はわかりませんので確実なことは言えません). + Walnut Creek の CD-ROM に収録されている, ``install.bat'' で直接 FreeBSD + を立ち上げることもできますし, ``makeflp.bat'' でブートフロッピーディスクを + つくることもできます. [注意: もし FreeBSD 2.1-RELEASE を使っていて + IDE CD-ROM ドライブを持っている場合, install.bat のかわりに + inst_ide.bat もしくは atapiflp.bat を使ってください. ] + + DOS から最も楽なインタフェースを使いたい場合は ``view'' と打ち込みます. + そうすると DOS でのメニューが立ち上がって, 可能なオプション + すべてを選択できます. + + あなたが UNIX マシンでブートフロッピーディスクを作成している場合は, + <ref id="install" name="FreeBSD のインストール"> を参考にしてください. + + DOS から, もしくはフロッピーディスクから起動をおこなうと, + メニュー ``Media'' から, インストールメディアとして CDROM を + 選択することで, 配布ファイルをロードすることができるようになります. + 他の種類のインストールメディアは不要なはずです. + + システムインストールがすべて終了して, ハードディスクから起動 + しなおしてからは, <tt>mount /cdrom</tt> とタイプする + ことでいつでも CD-ROM のマウントをすることができるようになります. + + CD-ROM を取り出す前には <tt>umount /cdrom</tt> と打ち込まなくてはならない + ことを覚えておいてください. 単純にドライブから取り出さないように! + + <quote><bf>特別な注意:</bf> インストールに入る前に, + CD-ROM をドライブに入れておいて, インストールフロッピーディスクが立ち上がる + ときに CD-ROM を見つけられるようにしておくようにしましょう. CD-ROM を + デフォルトでシステムにつけ加えたい場合も CD-ROM を入れておきます + (インストールメディアとして実際に CDROM を選択しない場合も同様). + </quote> + + おわりに, あなたのマシンの CD-ROM を直接使って, FTP 経由で別のマシンに + FreeBSD をインストールさせたいとします. やり方は簡単です. + あなたのマシンのインストールが終了した後に, vipw コマンドを使って, + passwd ファイルに以下の行を追加します. + +<tscreen><verb> +ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent +</verb></tscreen> + + こうするとあなたのマシンにネットワーク接続できる人 (そして, + login 許可を持っている人) は, メディアタイプとして FTP を選択できるように + なります. 具体的には, FTP サイトの選択メニューから ``Other'' を選択して, + <tt>ftp://<em>あなたのマシンのアドレス</em></tt> + を入力します. + + <sect1><heading>フロッピーディスクからのインストールの前に</heading> + + <p>あなたがフロッピーディスクからのインストールをしなくては + ならない場合, その理由はハードウェアがサポートされてなかったためか, + 単にいばらの道を通ることを楽しんでいるからでしょうが, インストール用の + フロッピーディスクを用意する必要があります. + + boot.flp のディスクイメージに加えて必要なフロッピーディスクはまず, + ``floppies/root.flp'' です. これは DOS のファイルシステムではなくて, + 特別なフロッピーディスク「イメージ」です + (実際は gzip で圧縮された cpio ファイルです). + <ref id="install" name="FreeBSD のインストール"> でブートディスクを + 作ったのと同じ手順で root.flp を作ることができます. + このディスクを作成した後は, 通常の DOS か UFS (他の FreeBSD マシンで + 準備している場合) フォーマットされたフロッピーディスクで配布セットの + フロッピーディスクを作成します. + + 最低でも bin (基本配布ファイル) ディレクトリ内のすべてのファイル + を入れられるだけの 1.4 メガバイトか 1.2 メガバイトのフロッピーディスク + が必要です. これらのフロッピーディスクを DOS で作成している場合は, + フロッピーディスクは「MS-DOS の FORMAT コマンドでフォーマット」 + されなくてはなりません. Windows をお使いの場合は, Windowsの + ファイルマネージャの初期化コマンドを使用してください. + + 工場での初期化済みディスクを「信用しないでください」. 念のためにあなた + 自身でフォーマットし直してください. ユーザからのトラブル報告の多くは + ちゃんと初期化されていないディスクを使用していたことが原因となっています. + 私が特にフォーマットし直してくださいと述べているのも, この理由からです. + + 他の FreeBSD マシンでフロッピーディスクを作成している場合, + フォーマットすることは悪いことではありません. いちいち DOS + ファイルシステムのフロッピーディスクを作成する必要はありませんので, + `disklabel' コマンドと `newfs' コマンドを使って, 次のような手順で + (3.5 インチ 1.44 メガバイトディスク用の) UFS ファイルシステムを + 作成することもできます. + +<tscreen><verb> + fdformat -f 1440 fd0.1440 + disklabel -w -r fd0.1440 floppy3 + newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0 + +(5.25 インチの 1.2 メガバイトディスクの場合は "fd0.1200" と "floppy5" にしてください) +</verb></tscreen> + + これで他のファイルシステムと同様に mount して書き込むことができます. + + フォーマットされたフロッピーディスクを用意したら, それらにファイル + をコピーしなくてはなりません. 配布ファイルはいくつかのかたまり + にわかれていて, これらのかたまり五つで一般的な 1.44 メガバイトの + フロッピーディスクに収まるようになっています. フロッピーディスクに + 入るだけファイルを入れていって, 配布ファイルをすべてコピーしてください. + それぞれの配布ファイルはサブディレクトリにコピーする必要があります. 例えば, + <bf>a:\bin\bin.aa</bf>とか, + <bf>a:\bin\bin.ab</bf>といった感じです. + + インストールメディアの選択場面になったら, ``Floppy'' を選択して, + 残りの指定をやってください. + + <sect1><heading>ハードディスクの MS-DOS パーティションからインストールする前に +<label id="install:msdos"></heading> + + <p> + + ハードディスクの MS-DOS パーティションからインストールするときは, + まずファイルを <tt>C:\FREEBSD</tt> にコピーします. + CD-ROM にあるディレクトリ構造を反映してコピーしなくてはなりません. + DOS の <tt>xcopy</tt> コマンドの使用をおすすめします. + + 例えば, FreeBSD の最低限のインストールをするには, このような手順で + コピーします. +<tscreen><verb> +C> MD C:\FREEBSD +C> XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN\ +C> XCOPY /S E:\FLOPPIES C:\FREEBSD\FLOPPIES\ +</verb></tscreen> + + ここで, <tt>C:</tt>ドライブには十分なディスクスペースが残っており, + CD-ROM は <tt> E:</tt>ドライブに接続されているものとします. ちなみに + MS-DOS からのインストールには, <tt>root.flp</tt> のイメージが必要ですので, + <tt>FLOPPIES</tt> ディレクトリが必要です. + + MS-DOS からたくさんの `配布ファイル (DISTS)' をインストールしたい + (そしてディスクの余裕がある) 場合は, それぞれ <tt>C:\FREEBSD</tt> + ディレクトリにコピーします - <tt>BIN</tt> 配布ファイルは, + 最低限必要なものです. 配布されているすべてのファイルをコピーするのに + 十分な容量が MS-DOS パーティションにある場合は, 最後の行をこのようにします. + +<tscreen><verb> +C> XCOPY /S E:\DISTS C:\FREEBSD\ +</verb></tscreen> + こうすることで, <tt>E:\DISTS</tt> の下のディレクトリ構造が + まるごと <tt>C:\FREEBSD</tt> にコピーされます. + + + <sect1><heading>QIC/SCSI テープからのインストールの前に</heading> + + <p>テープからのインストールは, おそらく FTP を利用したオンライン + インストールか, CD-ROM を利用したインストールができない場合の, + もっとも簡単な方法でしょう. インストールプログラムは, 以下のような + コマンドを使用して, 単純に配布ファイルがテープ上に tar されていることを + 期待しています. + +<tscreen> +cd /freebsd/distdir<newline> +tar cvf /dev/rwt0 (または /dev/rst0) dist1 .. dist2 +</tscreen> + `floppies/' がここでの ``dist..'' に含まれていることを確認してください. + インストールの際にはテープ上の `floppies/root.flp' を探しにいきます. + + インストールに入る前に, テンポラリ (一時使用) ディレクトリに + 十分なディスクスペースを確保して, 作成したテープの<bf>すべての</bf> + ファイルを格納できることを確認してください (テンポラリディレクトリは + 自分で選ぶことができます). テープの特性上, ランダムにアクセスするこ + とができませんので, 一時的に極めて大量の容量を必要とします. + テープに準備しただけの量のディスクスペースを一時的に使用することに + 留意してください. + + + <quote><bf>注意:</bf> インストールに入るときは, ブートフロッピーディスク + から立ち上げる<bf>前</bf>にテープをドライブに入れておかなくてはなりません. + さもないとインストール時のデバイス検出のときにテープを見つけられません. </quote> + + +<sect1><heading>ネットワーク経由のインストールの前に</heading> + + <p>三つの物理的な接続形態で, ネットワーク経由のインストールを + おこなうことができます. + <descrip> + <tag>シリアルポート</tag> SLIP もしくは PPP 方式. + <tag>パラレルポート</tag> PLIP (laplink ケーブル使用) + <tag>イーサネット</tag> 標準的なイーサネットコントローラ + (いくつかの PCMCIA カードにも対応) + </descrip> + + SLIP のサポートはまだまだ原始的とも呼べる方法なので, ラップトップと + 他のコンピュータをシリアルケーブルで接続するといった具合いに, + 直接接続してなくてはいけません. SLIP インストールは, ダイヤル機能を + 持っていませんので, インストールするためには直接接続しなくてはなりません. + PPP インストールではダイヤルアップ接続が可能ですので, できれば PPP 接続の + 方を選択しましょう. + + もしもあなたがモデムを使用しているなら, あなたに残された選択肢は + ほぼ間違いなく PPP インストールでしょう. インストール時に必要になりますので, + サービスプロバイダ (ISP) に関する情報を用意しておきましょう. + 少なくともプロバイダと, 可能ならあなたの IP アドレスを知っておかなくては + なりません (IP アドレスの欄を空白にしておいて, PPP に IP アドレスの + 割り当て処理をさせてもかまいません). PPP ダイヤルの際は, とても + シンプルな端末エミュレータで作業することになりますので, お手持ちのモデムで + ISP にダイヤルするために, ``ATコマンド'' の使い方を知っておく必要があります. + + FreeBSD (2.0R 以降) の動いている別のマシンと直接接続が可能でしたら, + ``laplink'' パラレルポートケーブルで接続することを考えてみましょう. + パラレルポート経由のデータ転送スピードは, シリアルラインでの + 一般的なスピード (最高 50kbit/sec) よりもずっと高速ですので, + 高速にインストールすることができます. + + 最後になりますが, ネットワークインストールのうちでもっとも高速なものとしては + イーサネットアダプタを使用するのがあげられます. FreeBSD ではきわめて多くの + PC イーサネットカードをサポートしています. サポートされている + カードの表 (と, 必要な設定) は, + <ref id="install:hw" name="サポートされている設定一覧"> に書いてあります. + サポートされている PCMCIA カードを使っている場合には, ラップトップの電源を + 入れる「前」に差し込んでおくことにも注意してください. 残念ながら今の + FreeBSD は, インストール時の活線挿抜には対応していません. + + ネットワークでの IP アドレス, あなたのアドレスクラスに対応した + ネットマスク, マシン名を知っておくことも必要です. ネットワーク管理者の方に + たずねればどんな値を使ったらよいかを教えてくれるでしょう. もしも他のホストを + IP アドレスではなくて名前で引きたい場合, ネームサーバとゲートウェイ + のアドレスも知らなくてはなりません (PPP をご使用の場合は, プロバイダの + IP アドレスになります). これらのうちのすべて, またはいくつかを + 知らない場合は, イーサネット経由でのインストールを始める前に「まず」 + ネットワーク管理者に相談してください. + + 何らかのネットワーク接続ができたら, 続けてインストールを NFS か + FTP 経由でおこないます. + + <sect2><heading>NFS インストールのための下準備</heading> + + <p>NFS インストールはまったく単純明解です. FreeBSD の配布ファイルを + サーバの好きな場所にコピーしておいて, メディア選択で NFS を選択します. + + もしサーバが ``privileged (特権) ポート'' へのアクセスのみをサポート + している場合, (Sun ワークステーションの標準ではこうなっています) + インストールを進める前に Options メニューを選択して, ``privileged + port'' オプションを選択してください. + + イーサネットカードの性能が悪くて, 転送速度が遅くて困っている場合も, + 適当な Options を選択するとよいでしょう. + + NFS 経由でインストールするためには, サブディレクトリも + 含めたマウントにサーバが対応している必要があります. 例えば, + FreeBSD &rel.current; の配布ファイルが + <bf>ziggy:/usr/archive/stuff/FreeBSD</bf> + にあるとすると, マシン ziggy では <bf>/usr</bf> や + <bf>/usr/archive/stuff</bf> だけではなく, + <bf>/usr/archive/stuff/FreeBSD</bf> の直接マウントが可能に + なっていなければなりません. + + FreeBSD の <bf>/etc/exports</bf> ファイルでは, このことは + ``<tt>-alldirs</tt>'' オプションによって制御されています. + 他の NFS サーバの場合だとまた話が違ってくるかもしれません. + もしもサーバから `Permission Denied' というメッセージが + 返ってくるようでしたら, サブディレクトリマウントをちゃんと + 有効にできていないことが考えられます. + + <sect2><heading>FTP インストールのための下準備</heading> + + <p>FTP 経由のインストールは, FreeBSD &rel.current; の最新バージョンを + ミラーしているどのサイトからでも可能です. 世界中の妥当な FTP サイトの + 選択肢をメニューに並べておきました. + + このメニューに出ていない他の FTP サイトからインストール + する場合や, ネームサーバの設定に問題が生じた場合は, + メニューでサイト ``Other'' を選ぶところで, お好みの + URL でサイトを指定することができます. URL として直接 IP + アドレスで指定してもよく, 直接指定した場合はネームサーバ + がなくても FTP インストールが可能になります. 例えば, +<tscreen><verb> +ftp://192.216.222.4/pub/FreeBSD/&rel.current;-RELEASE +</verb></tscreen> + のような感じですね. + + FTP 経由のインストールモードとして, このようなものが + 使用可能です: + + <descrip> + <tag>FTP Active</tag> + + すべての FTP 転送の際に ``Active'' モードを使用します. + ファイアウォール内部のマシンではうまく動きませんが, + passive モードをサポートしていない古い FTP サーバでも + 動作します. passive モードでの FTP 転送 (こちらが + デフォルトです) が失敗した場合は, active を使ってください. + + <tag>FTP Passive</tag> + + すべての FTP 転送の際に ``Passive'' モードを使用します. + このモードを使用することで, ランダムポートアクセスインを + 許さないファイアウォールを越えることができるようになります. + + </descrip> + + <quote><bf>注意:</bf> Active, passive モードは `proxy' + 接続のような, FTP の proxy サーバがことなるポートを監視している + ような接続とはまた違います. </quote> + + このような場合は, URL に例えば +<tscreen><verb> +ftp://foo.bar.com:1234/pub/FreeBSD +</verb></tscreen> + のような表記を使うことができます. ここで, ``1234'' は + proxy FTP サーバのポート番号です. + + <sect><heading>FreeBSD のインストール</heading> + + <p>インストールの下準備を適切に書き留めておけば, なんの + 問題もなく FreeBSD のインストールができることと思います. + + 何かうまくいかなかった場合は, あなたが使おうとしている + インストールメディアのことが書いてある箇所まで戻って + もう一度読むとよいでしょう. おそらく最初読んだときに + 見落していた, 有効なヒントがあるものと思います. + ハードウェアの問題が出てきたとか, FreeBSD がまったく + 立ち上がらない場合は, boot フロッピーディスクに提供されている + Hardware Guide を読んで, 何か解決方法はないか探してください. + + FreeBSD のブートフロッピーディスクには, インストールをおこなうために + 必要と思われるすべてのオンラインドキュメントを用意してあります. + もしもそのドキュメントがお望みのものでないようでしたら, + 私たちはあなたが何にもっとも困っているのかを知りたいと思います. + コメントを &a.doc; にお送りください. FreeBSD のインストールプログラム + (sysinstall) を, うっとうしい ``step-by-step'' ガイドなしに, + プログラム自身で使用方法がわかるようにするのが最終目標です. + 目標達成までには時間がかかりそうですが, ともかくそれが + 目標なのであります. + + + 閑話休題. ここに, 「典型的なインストールの手順」を + まとめてみましたので, お役にたてるものと思います. + <enum> + <item>ブートフロッピーディスクから起動します. ハードウェアの性能に + よりますが, 起動には 30秒から 3分かかります. 起動したら + 初期選択画面が出てくるでしょう, もしもフロッピーディスクから + まったく起動しなかったり, どこかの段階で起動が止まってしまった + 場合は, ハードウェアガイドの Q&A を読んで, 理由を + 探ってみます. + + <item>F1 キーを叩きます. メニューシステムとインストールプログラム + 全般に対しての使い方が表示されます. このメニューシステムを + 使ったことがない場合は, 「徹底的に」読んでください. + + <item>Options を選択し, 他に必要な特別な選択を + おこないます. + + <item>典型的なインストールでおまかせしたい方は Novice を, + インストールのそれぞれの段階をいちいちコントロールしたい方は Custom を, + (可能であれば適切なデフォルトを使用して) 簡単にさっさと済ませたい方は + Express を, それぞれ好みに応じて選んでください. + FreeBSD を初めて使う方には, Novice を一番におすすめします. + + <item>final configuration メニューからは, メニュー形式のさらに + 進んだ設定をおこなうことができます. ネットワーク周りの + 設定は, 特に CD-ROM / テープ / フロッピーディスクから + インストールして, まだネットワーク設定をおこなっていない + 人にとっては特に重要でしょう. インストールの時点できちんと + 設定しておけば, ハードディスクからシステムを立ち上げ直した + 時点でネットワーク接続ができるようになっていることでしょう. + </enum> + +<!-- なぜか最近の install.sgml では, 削除されてます. もったいない... --> +<!-- + <sect1><heading>Express インストール</heading> + + <p>Express インストールは Custom インストールとそんなに変わる + ところはないのですが, 必要な作業を流れに沿って順番に提示 + してくれて, それぞれの段階で便利なガイドが表示されるところが + ことなっています. + + <enum> + <item>インストールは `Partition Editor' から始まります. + ここでどのドライブを FreeBSD で使うかを指定します. + もしもドライブ全体を使いたい場合は, `A' コマンド + だけを打ち込めばよいはずです. + + <item>次に `Label Editor' に進みます. 確保した FreeBSD の + パーティションをどのように使うか, または DOS のような + FreeBSD 以外のパーティションをどこにマウントするかなどを + 指定します. 標準のままの使い方でよければ単に `A' と + 打ち込みます. + + <item>次は `Distributions' メニューに進みます. + ここでは何をインストールしたいかを選択します. + 小規模システムにしたい場合は ``User'' を選択しますし, + FreeBSD からの何らかの拡張をしようと思っている場合は + ``Developer'' を選択します. + どの選択肢も気に入らない場合は Custom を選んでください. + + <item>次に, `Media' メニューで, どのメディアから + インストールしたいかを指定します. もしも望みのメディアが + 選ばれており, 自動的に設定されていた場合は, ただメニュー + から戻ってくるだけで OK です. そうでない場合はメディアタイプ + の細かい指定をおこないます. + + <item>おわりに, これまでのすべての指定で GO サインを出すか + どうか求められてきます (これまでの段階ではまだ + ディスクに書き込まれていませんし, GO サインを + 出すまで書き込まれません). GO サインを出すと + いよいよインストールが始まります. 新しく + 作ったパーティションや, 変更したパーティションの + 情報が書き出され, 新しいファイルシステムが + 作られたり, ファイルシステムはそのままでラベル + されたりします (新しいファイルシステムを作るか, + 既存のものにラベルするかは, Label Editor の + newfs オプションをどう設定したかで決まります). + ファイルシステムができると選択した配布ファイルが + すべて展開されます. + </enum> + + ここまでくれば, sysinstall プログラムでの作業は大体おしまいです. + `Quit' を選択できます. sysinstall プログラムを + インストーラとして使用している場合 (システムのインストール + が完了する直前) は, 最後の行でリターンキーを打って + `Quit' を選択すると, システムは再起動します (訳注:再起動した + ときにはブートフロッピーディスクを抜きとります). インストールの + 際にブートマネージャオプションを選択していたなら, `F?' + プロンプトのついたブートメニューが現れるでしょう. 表示され + ているとおりにファンクションキーを押して FreeBSD を選択する + と, ハードディスクから FreeBSD が立ち上がることでしょう. + + 何らかの理由でうまくいかなかった場合は, ハードウェアガイドの + Q&Aを読んで, 問題解決の手がかりを探してください. + + <sect1><heading>Custom インストール</heading> + + <p>このメニューを使えば, ``Commit'' しない限り, あなたの + システムを変更することなくすべての設定ができます. ``Commit'' + することですでに指定しておいた, システム変更の要求を実際に + おこないます. メニューのなかの, いくつかのオプションでは, + 変更点をその場で書き込めるように `Write' コマンドが用意 + されていますが, 本当に必要があると確信を持っている場合のみ + 使用するべきでしょう. 変更点を最後まで実際に書き込まないで + おいて, 最後の瞬間まで気が変わったときにオプションを変更 + できるようにしておくべきでしょう. + + もしも混乱したときは大抵, F1 キーを押すと表示される + スクリーンに関する正しい情報が得られると思います. + +--> +<!-- ここまでコメントアウトしてます --> + + <sect><heading>MS-DOS ユーザのためのQ&A</heading> + + <p>多くのFreeBSD ユーザは, MS-DOS が入っている PC に FreeBSD を + インストールしたいと考えます. そのようなシステムに + FreeBSD をインストールする際によく聞かれる質問を集めて + あります. + + <p><bf>助けて! ディスクスペースが余ってないのです. + 最初に MS-DOS のファイルを全部削除しないといけませんか? </bf> + + もしあなたのマシンですでに MS-DOS が走っていて, FreeBSD の + インストール用の空きスペースが少ないか, まったくない場合でも + 大丈夫です. FreeBSD の CD-ROM や, FTP サイトの <tt>tools</tt> + ディレクトリに FIPS プログラムというのがありますが, + これが非常に役立ちます. + + FIPS を使えば, すでに存在している MS-DOS のパーティションを + 二つに分けることができ, さらにもともとのパーティションは + 残してくれて, 二つめのパーティションを FreeBSD の + インストールに使用することができるようになります. + まず DOS6.xx についてくる DEFRAG か, Norton Disk ツールを使って, + MS-DOS パーティションからフラグメント情報を取り去って, その後に + FIPS を走らせます. FIPS ユーティリティから必要な情報が + 手に入ります. その後マシンを立ち上げ直して, 空いた場所に + FreeBSD をインストールします. どのくらいの空きスペースが + インストールに必要かは, <em>Distributions</em> メニューを + 参考にしてください. + + <bf>FreeBSD で MS-DOS の圧縮ファイルシステムにアクセス + できますか? </bf> + + いいえ. もし Stacker(tm) や DoubleSpace(tm) のような + ユーティリティをお使いの場合, FreeBSD は非圧縮の部分にしか + アクセスできません. 残りの場所は一つの大きなファイルとして + (stack された, もしくは doublespace されたファイルとして) + 見えます. <bf>そのファイルを削除しないでください!!</bf> + 削除してしまうと後できっと後悔します. + + 非圧縮の MS-DOS の基本区画を作って, そちらを MS-DOS と + FreeBSD とのやり取りに使うのがよろしいでしょう. + + <bf>MS-DOS 拡張フォーマットをマウントできますか?</bf> + + はい. DOS 拡張パーティションは FreeBSD の他の「スライス」の最後に + マップされます. 例えば D:ドライブ が /dev/sd0s5, E:ドライブが + /dev/sd0s6, といった具合いです. もちろん, この例では拡張 + パーティションが SCSI ドライブ 0 にあることを仮定しています. + IDE ドライブでは当然, ``sd'' が ``wd'' となります. 他の DOS ドライブを + マウントするのと同様に, 次のようにして拡張パーティションもちゃんと + マウントできます: + +<tscreen><verb> +mount -t msdos /dev/sd0s5 /dos_d +</verb></tscreen> + + <bf>MS-DOS のバイナリを FreeBSD で実行できますか?</bf> + + まだです. この機能を実現するためのサポートを期待しているのですが, + いまのところ実際にこの作業をしている人間はいません. BSDI には + 寄贈された BSD 用の DOS エミュレータがあり, 徐々に FreeBSD-current + に移植されつつあります. + + もしあなたがこの作業に加わりたいと思いましたら &a.emulation + にご連絡ください. + + それまでの間, <ref id="ports" name="ports コレクション"> には, pcemu + という素晴らしいアプリケーションがあり, これをつかうことで多くの + MS-DOS のテキストモードで動くプログラムを完全な 8088CPU の + エミュレーション環境で走らせることができます. diff --git a/share/doc/ja_JP.EUC/handbook/isdn.sgml b/share/doc/ja_JP.EUC/handbook/isdn.sgml new file mode 100644 index 000000000000..6915db635da9 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/isdn.sgml @@ -0,0 +1,226 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.6 --> + +<sect><heading>ISDN<label id="isdn"></heading> + +<p><em>最終更新: &a.wlloyd;</em>. +<p><em>訳: &a.kiroh;.<newline>11 November 1996.</em> + +<p>FreeBSD での ISDN は, まだ開発途上です. 特に PC ISDN カードのドライ +バの開発が遅れています. + +<p>ISDN 技術とハードウェアに関しては, +<url url="http://alumni.caltech.edu/~dank/isdn/" name="Dan Kegel's +ISDN Page"> がよい参考になるでしょう. + +ISDN の導入手順は, 簡単にいって以下のようになります. +<itemize> +<item>ヨーロッパ在住の方は, ISDN カードの節に進んでください. + +<item>ISDN を使って, インターネットプロバイダに(専用線は使用せず), ダ +イアルアップ接続しようとしている場合は, ターミナルアダプタの使用を考え +てみてください. この方法はもっとも柔軟性があり, プロバイダを変更した場 +合の問題も少ないでしょう. + +<item>2つの LAN の間を接続しようする場合や, ISDN 専用線を使用する場合 +には, スタンドアローンルータ/ブリッジの使用を勧めます. + +</itemize> + +<p>どの方法を用いるかを決定するには, 費用が重要な要素になってきます. +以下に, 最も安価な方法から, 高価な方法まで順に説明していきます. + +<sect1><heading>ISDN カード</heading> + +<p><em>原著者:&a.hm;.</em> + +<p>このセクションの記述は, ヨーロッパの ISDN ユーザにのみ有効です. +サポートされているカードは, まだ北米の ISDN 標準には適合していないかもしれ +ません(?). + +<p>PC ISDN カードは, ISDN の最大のバンド幅 128Kbs をサポートします. こ +れらのカードは, ISDN 機器のうちもっとも安価な部類に入ります. + +<p> +bisdn という ISDN パッケージが以下のURLから入手できます. +<htmlurl url="ftp://ftp.muc.ditec.de/isdn" name="ftp.muc.ditec.de"> +FreeBSD 2.1R, FreeBSD-current, NetBSDがサポートされています. + +最新のソースは, 上記のftpサーバの isdn ディレクトリから, +bisdn-097.tar.gz という名前で入手できます. + +以下のカードのドライバが存在します: +<itemize> +<item>EuroISDN (DSS1)および1TR6プロトコル用には, 現在すべての(passive) Teles +カードおよびそのクローンがサポートされています. +<item>Dr. Nauhaus - Niccy 1016 +</itemize> + +bisdn には, いくつかの制限があります. +特に ISDN に関連する機能のうち, 以下の機能はサポートされません. +<itemize> +<item>PPP はサポートされません. raw hdlc のみです. すなわち, Cisco 製 +のスタンドアロンーンルータ等とは接続できません. +<item>ブリッジングコントロールプロトコルはサポートされません. +<item>複数のカードは同時に使用できません. +<item>動的なバンド幅の変更はできません. +<item>チャンネルのバンドリングはできません. +</itemize> + +majordomoによるメーリングリストが利用できます. 参加するには, 通常の +majordomo リクエストを以下のメールアドレスまで送ってください. +<htmlurl url="mailto:isdn-request@muc.ditec.de" +name="isdn-request@muc.ditec.de">. + +<sect1><heading>ISDN ターミナルアダプタ</heading> + +<p>ターミナルアダプタ (TA) はISDN に対して, 通常の電話線に対するモデ +ムに対応するものです. + +<p>ほとんどの TA は, 標準のヘイズ AT コマンドセットを使用している ので, +単にモデムと置き換えて使うことができます. + +TA は, 基本的にはモデムと同じように動作しますが, 接続方法は異なり, 通 +信速度も古いモデムよりはるかに速くなります. <ref id="ppp" name="PPP"> +の設定を, モデムの場合と同じように行ってください. とくにシリアル速度を +使用できる最高速度に設定するのを忘れないでください. + +プロバイダへの接続に TA を使用する最大のメリットは, 動的 PPP を行える +ことです. 最近 IP アドレスが不足してきているため, ほとんどのプロバイダ +は, 専用の IP アドレスを割り当てないようになっています. ほとんどのスタ +ンドアローンルータは, 動的 IP アドレスに対応していません. + +訳注: 最近の ISDN ルータでは, IP アドレスの動的割り当てに対応している +ものも多いようです. ただし制限がある場合もありますので, 詳しくはメーカ +に問い合わせてください. + +TA を使用した場合の機能や接続の安定性は, 使用している PPP デーモンに完 +全に依存します. そのため, FreeBSD で PPP の設定が完了していれば, 使用 +している既存のモデムを ISDN の TA に簡単にアップグレードすることができ +ます. ただし, それまでの PPP のプログラムに問題があった場合, その問題 +は TA に置き換えてもそのまま残ります. + +最高の安定性を求めるのであれば, ユーザープロセス<ref id="userppp" +name="iijPPP"> ではなく, カーネル<ref id="ppp" name="PPP">を使用してく +ださい. + +<p>以下の TA は, FreeBSD で動作確認ずみです. + +<itemize> +<item>Motorola BitSurfer および Bitsurfer Pro +<item>Adtran +</itemize> + +他の TA もほとんどの場合うまく動作するでしょう. TA のメーカーでは, TA +がほとんどの標準モデム AT コマンドセットを受け付けるようにするよう, 努 +力しているようです. + +外部 TA を使う際の最大の問題点は, モデムの場合と同じく良いシリアルカー +ドが必要であるということです. + +シリアルデバイスの詳細, そして非同期シリアルポートと同期シリアルポート +の差については, ハンドブックの<ref id="uart" name="シリアルポート"> の +節を参照してください. + +標準の PC シリアルポート(非同期)に接続された TA は, 128Kbs の接続を行っ +ていても, 最大通信速度が 115.2Kbs に制限されてしまいます. 128Kbs の +ISDN の性能を最大限に生かすためには, TA を同期シリアルカードに接続しな +ければなりません. + +内蔵 TA を購入して, 同期/非同期問題を片付けてしまおうとは思わないでく +ださい. 内蔵 TA には, 単に標準 PC シリアルポートのチップが内蔵されてい +るだけです. 内蔵 TA の利点といえば, シリアルケーブルを買わなくていいと +いうことと, 電源コンセントが一つ少なくて済むくらいでしょう. + +同期カードと TA の組合せは 386 の FreeBSD マシンの場合でも, スタンドア +ローンのルータと同程度の速度は確保できます. またこの組合せでは, ルータ +より柔軟な設定が可能です. + +同期カード/TA を選ぶか, スタンドアローンルータを選ぶかは, 多分に宗教的 +な問題です. メーリングリストでもいくつか議論がありました. 議論の内容に +ついては, <url url="http://www.freebsd.org/search.html" name="archives"> +を参照してください. + +<sect1><heading>スタンドアローン ISDN ブリッジ/ルータ</heading> + +<p>ISDN ブリッジやルータは, OS 特有のものではありません. もちろん +FreeBSD 特有のものでもありません. ルーティングやブリッジング技術に関す +る詳細は, ネットワークの参考書をご覧ください. + +このページでは, ルータとブリッジにどちらでもあてはまるように記述します. + +<p>ISDN ルータ/ブリッジは, ローエンドの製品のコストが下がってきている +こともあり, より一般的に使用されるようになるでしょう. ISDN ルータは, +外見は小さな箱で, ローカルのイーサネットネットワーク(もしくはカード)と +直接, 接続します. また, 自身で他のブリッジ/ルータとの接続を制御します. +PPP や他のプロトコルを使用するためのソフトウェアは, すべて組み込まれて +います. + +ルータは, 完全な同期 ISDN 接続を使用するため, 通常の TA と比較してスルー +プットが大幅に向上します. + +ISDN ルータ/ブリッジを使用する場合の最大の問題点は, 各メーカーの製品間 +に相性の問題がまだ存在することです. インターネットプロバイダとの接続を +考えている場合には, プロバイダと相談することをお勧めします. + +<p>事務所の LAN と家庭の LAN の間など, 二つの LAN セグメントの間を接続 +しようとしている場合は, ブリッジ/ルータの使用がもっともメンテナンスが +簡単で, 努力が少なくてすむ方法です. 両側の機材を購入するのであれば, メー +カー間の接続性の問題もないでしょう. + +たとえば家庭の LAN や出張所の LAN を本社のネットワークに接続するために +は, 以下のような設定が使用できます. + +<em>出張所 LAN または 家庭 LAN</em> + +ネットワークは, 10 Base T イーサネットです. ルータとネットワークの間は, +必要に応じて AUI/10bT トランシーバを使って接続します. + +<verb> +---Sun ワークステーション +| +---FreeBSD マシン +| +---Windows 95 (別に勧めているわけじゃありません) +| +スタンドアローンルータ + | +ISDN BRI ライン +</verb> +家庭/出張所 LAN で, 一台しかコンピュータを接続しないのであれば, クロス +のツイストペアケーブルを使用して, スタンドアローンルータと直結も可能で +す. + +<em>本社 LAN や他の LAN</em> + +ネットワークは, ツイストペアイーサネットです. +<verb> + -------Novell サーバ + | | + |ハ ---Sun + | | + | ---FreeBSD + | | + |ブ ---Windows 95 + | | + |___---スタンドアローンルータ + | + ISDN BRI ライン +</verb> + +ほとんどのルータ/ブリッジでは, 別々の二つのサイトに対して, 同時にそれ +ぞれ独立した二つの PPP 接続が可能です. これは, 通常の TA ではサポート +されない機能で, ルータ/ブリッジ接続の大きな利点です (シリアルポートを +二つもつ特殊(そして高価な) TA では可能です). チャンネル割り当てと混同 +しないでください. + +これは, 大変便利な機能です. たとえば事務所で専用線インターネット ISDN +接続を使用していて, 別の ISDN ラインを購入したくないとします. この場合, +事務所のルータは, 一つの専用線 B チャンネル接続(64Kbs)を維持しつつ, 別 +の B チャンネルを他の用途に使用することができます. たとえば, 他の場所 +とのダイアルイン, ダイアルアウトに使用したり, バンド幅を増やすために, +インターネットとの接続に動的に割り当てたりすることが可能です. + +さらに, 別々の二つの出張所と本社の間を, 同じ ISDN ラインを使用して同時 +に接続することもできます. diff --git a/share/doc/ja_JP.EUC/handbook/jcontrib.sgml b/share/doc/ja_JP.EUC/handbook/jcontrib.sgml new file mode 100644 index 000000000000..33b0a0e548a3 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/jcontrib.sgml @@ -0,0 +1,72 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> + +<chapt><heading>FreeBSD Handbook 日本語化について<label id="jcontrib"></heading> + + <p>FreeBSD 日本語ドキュメンテーションプロジェクトは, FreeBSD 関係の日本語 + ドキュメントが少ないことを嘆いた数人の FreeBSD ユーザの提唱によって + 1996年2月26日にスタートし, その最初の作業として, FreeBSD Handbook + の日本語への翻訳を始めました. + 当初の予定から大幅に遅れながらもなんとか完成することができましたが, + これで終りではありません. + オリジナルの FreeBSD Handbook は日毎に更新されており, 私たちもまた + これに追い付くために作業を続けていきます. もちろん, 新しいメンバも大歓迎 + です. + 日本語翻訳版について, 何かお気づきの点がありましたら, + FreeBSD 日本語ドキュメントメーリングリスト <tt><htmlurl url="mailto:doc-jp@jp.freebsd.org" name="<doc-jp@jp.freebsd.org>"></tt> + までご連絡ください. + また, もし私たちの作業を手伝ってくれるなら, + <url url="http://www.astec.co.jp/~hanai/FreeBSD/" name="FreeBSD 日本語ドキュメンテーションプロジェクトのページ">をご覧の上, 是非参加してください. + + <sect><heading>翻訳者 (五十音順)</heading> + + <p> + <itemize> + <item>&a.asami + <item>&a.arimura + <item>&a.graphite + <item>&a.iwasaki + <item>&a.yoshiaki + <item>&a.kimura + <item>&a.masaki + <item>&a.saeki + <item>&a.simokawa + <item>&a.yasu + <item>&a.mihoko + <item>&a.ts + <item>&a.nakai + <item>&a.ikuo + <item>&a.max + <item>&a.hanai + <item>&a.kiroh + <item>&a.hino + <item>&a.yuki + <item>&a.mita + <item>&a.kmiyakoda + <item>&a.tomo + </itemize> + + <sect><heading>査読者 (五十音順)</heading> + + <p> + <itemize> + <item>&a.asami + <item>&a.iwasaki + <item>&a.yoshiaki + <item>&a.kanou + <item>&a.koga + <item>&a.saeki + <item>&a.hanai + <item>&a.nao + <item>&a.kiroh + <item>&a.hino + <item>&a.yuki + </itemize> + + <sect><heading>ツール作成者</heading> + + <p> + <itemize> + <item>&a.katsu + <item>&a.iwasaki + </itemize> diff --git a/share/doc/ja_JP.EUC/handbook/jmembers.sgml b/share/doc/ja_JP.EUC/handbook/jmembers.sgml new file mode 100644 index 000000000000..d725dc23b1fe --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/jmembers.sgml @@ -0,0 +1,116 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> + +<!-- +翻訳者及び査読者の名前及び電子メールアドレス +--> + +<!-- +<!ENTITY a.asami "浅見 賢 + <tt><htmlurl url='mailto:asami@FreeBSD.ORG' + name='<asami@FreeBSD.ORG>'></tt>"> +浅見さんは既に authors.sgml に入っているのでコメントアウト ;-) +--> + +<!ENTITY a.nakai "中井 幸博 + <tt><htmlurl url='mailto:nakai@mlab.t.u-tokyo.ac.jp' + name='<nakai@mlab.t.u-tokyo.ac.jp>'></tt>"> + +<!ENTITY a.koga "こがよういちろう + <tt><htmlurl url='mailto:y-koga@ccs.mt.nec.co.jp' + name='<y-koga@ccs.mt.nec.co.jp>'></tt>"> + +<!ENTITY a.iwasaki "岩崎 満 + <tt><htmlurl url='mailto:iwasaki@pc.jaring.my' + name='<iwasaki@pc.jaring.my>'></tt>"> + +<!ENTITY a.yuki "前田 幸範 + <tt><htmlurl url='mailto:yuki@jp.FreeBSD.org' + name='<yuki@jp.FreeBSD.org>'></tt>"> + +<!-- +<!ENTITY a.max "中根 雅文 + <tt><htmlurl url='mailto:max@FreeBSD.ORG' + name='<max@FreeBSD.ORG>'></tt>"> +中根さんは既に authors.sgml に入っているのでコメントアウト ;-) +--> + +<!ENTITY a.yasu "鈴木 康修 + <tt><htmlurl url='mailto:yasu@hike.te.chiba-u.ac.jp' + name='<yasu@hike.te.chiba-u.ac.jp>'></tt>"> + +<!ENTITY a.katsu "勝間田 淳 + <tt><htmlurl url='mailto:katsu@baum.kiyose.tokyo.jp' + name='<katsu@baum.kiyose.tokyo.jp>'></tt>"> + +<!ENTITY a.ts "冨田 重成 + <tt><htmlurl url='mailto:ts@icu.ac.jp' + name='<ts@icu.ac.jp>'></tt>"> + +<!ENTITY a.saeki "佐伯 隆司 + <tt><htmlurl url='mailto:saeki@jp.FreeBSD.org' + name='<saeki@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.kiroh "はらだ きろう + <tt><htmlurl url='mailto:kiroh@kh.rim.or.jp' + name='<kiroh@kh.rim.or.jp>'></tt>"> + +<!ENTITY a.masaki "櫛田 昌希 + <tt><htmlurl url='mailto:masaki@po.iijnet.or.jp' + name='<masaki@po.iijnet.or.jp>'></tt>"> + +<!ENTITY a.hino "日野 浩志 + <tt><htmlurl url='mailto:hino@nwk.cl.nec.co.jp' + name='<hino@nwk.cl.nec.co.jp>'></tt>"> + +<!ENTITY a.mita "三田 吉郎 + <tt><htmlurl url='mailto:mita@jp.FreeBSD.org' + name='<mita@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.yoshiaki "内川 喜章 + <tt><htmlurl url='mailto:yoshiaki@kt.rim.or.jp' + name='<yoshiaki@kt.rim.or.jp>'></tt>"> + +<!ENTITY a.arimura "有村 光晴 + <tt><htmlurl url='mailto:arimura@jp.FreeBSD.org' + name='<arimura@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.hanai "花井 浩之 + <tt><htmlurl url='mailto:hanai@jp.FreeBSD.org' + name='<hanai@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.tomo "渡辺 智雄 + <tt><htmlurl url='mailto:tomo@jp.FreeBSD.org' + name='<tomo@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.mihoko "田中 美穂子 + <tt><htmlurl url='mailto:mihoko@pa.yokogawa.co.jp' + name='<mihoko@pa.yokogawa.co.jp>'></tt>"> + +<!ENTITY a.simokawa "下川 英敏 + <tt><htmlurl url='mailto:simokawa@jp.FreeBSD.org' + name='<simokawa@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.graphite "石墨 紀孝 + <tt><htmlurl url='mailto:graphite@jp.FreeBSD.org' + name='<graphite@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.kimura "木村 成伴 + <tt><htmlurl url='mailto:kimura@netlab.is.tsukuba.ac.jp' + name='<kimura@netlab.is.tsukuba.ac.jp>'></tt>"> + +<!ENTITY a.ikuo "中川 郁夫 + <tt><htmlurl url='mailto:ikuo@jp.FreeBSD.org' + name='<ikuo@jp.FreeBSD.org>'></tt>"> + +<!ENTITY a.kmiyakoda "都田 克郎 + <tt><htmlurl url='mailto:kmiyakoda@ctn.co.jp' + name='<kmiyakoda@ctn.co.jp>'></tt>"> + +<!ENTITY a.kanou "狩野 宏樹 + <tt><htmlurl url='mailto:g92k0323@cfi.waseda.ac.jp' + name='<g92k0323@cfi.waseda.ac.jp>'></tt>"> + +<!ENTITY a.nao "浜田 直樹 + <tt><htmlurl url='mailto:nao@sbl.cl.nec.co.jp' + name='<nao@sbl.cl.nec.co.jp>'></tt>"> diff --git a/share/doc/ja_JP.EUC/handbook/kerberos.sgml b/share/doc/ja_JP.EUC/handbook/kerberos.sgml new file mode 100644 index 000000000000..ccb5bb21d0da --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/kerberos.sgml @@ -0,0 +1,492 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.8 --> + +<sect><heading>Kerberos<label id="kerberos"></heading> + +<p><em>原作: &a.markm; (&a.md; からの寄稿に基づいています).</em> + + <em>訳: &a.arimura;.</em> + + Kerberosは, サーバのサービスによってユーザが安全に認証を受けられる + ようにするための, ネットワークの付加システム及びプロトコルです. + リモートログイン, リモートコピー, システム間での安全なファイルのコピ + ーやその他のリスクの高い仕事がかなり安全に, そしてこれまでより制御 + できるようになります. + + 以下の文章は, FreeBSD用として配布されているKerberosをセットアップ + する際のガイドとして読むことができます. + しかし, 完全な説明が必要な場合には, マニュアルページを読んだ方がよい + でしょう. + + FreeBSDのKerberosは, オリジナルの4.4BSD-Liteの配布に含まれている + ものではなく, FreeBSD 1.1.5.1のときに移植されたeBonesです. + これはアメリカ/カナダの外で作成されており, これら以外の国の人々にも + 手に入れられるものです. + + このソフトウェアを合法的な配布物として得るために, アメリカも + しくはカナダのサイトから<em>持ってこないでください</em>. + でないと, そのサイトが<em>大変な</em>問題に巻き込まれます. + 合法的な配布は, 南アフリカの<tt>skeleton.mikom.csir.co.za</tt>から + 入手することができます. + + <sect1> + <heading>初期データベースの作成</heading> + + <p>この作業はKerberosサーバだけでおこないます. まず, 古いKerberosの + データベースが存在しないことを確認してください. + ディレクトリ<tt>/etc/kerberosIV</tt>に移って, 次のファイルだけが + 存在することをチェックします: + +<tscreen><verb> +grunt# cd /etc/kerberosIV +grunt# ls +README krb.conf krb.realms +</verb></tscreen> + + <p>もし他のファイル (<tt>principal.*</tt>や<tt>master_key</tt>) が + 存在する場合には, <tt>kdb_destroy</tt>というコマンドで古い + Kerberosデータベースを消してください. + Kerberosが走っていなければ, 単に<tt>rm</tt>で余計なファイルを消せ + ばよいです. + + まず, <tt>krb.conf</tt>と<tt>krb.realms</tt>を編集してKerberosの + 管理領域 (realm) を定義してください. ここでは管理領域が<it>GRONDAR.ZA</it> + で, サーバ名が<it>grunt.grondar.za</it>であるとします. + <tt>krb.conf</tt>というファイルを次のように編集してください: + +<tscreen><verb> +grunt# cat krb.conf +GRONDAR.ZA +GRONDAR.ZA grunt.grondar.za admin server +CS.BERKELEY.EDU okeeffe.berkeley.edu +ATHENA.MIT.EDU kerberos.mit.edu +ATHENA.MIT.EDU kerberos-1.mit.edu +ATHENA.MIT.EDU kerberos-2.mit.edu +ATHENA.MIT.EDU kerberos-3.mit.edu +LCS.MIT.EDU kerberos.lcs.mit.edu +TELECOM.MIT.EDU bitsy.mit.edu +ARC.NASA.GOV trident.arc.nasa.gov +</verb></tscreen> + + <p>この例にあるような他の管理領域は, 実際には必要ありません. + この例は複数の管理領域を認識する方法を示したものですので, + これらの行は含めなくても結構です. + + 1行目はこのシステムが動いている管理領域の名前です. + 他の行は管理領域とホスト名のエントリです. + 行の1つめの単語が管理領域で, 2つめがその管理領域の中で + ``鍵配布センター''(Key Distribution Center) として働くホスト名です. + ホスト名の次に ``admin server'' と書いてある場合には, そのホストが + ``管理データベースサーバ''(Administrative Database Server) も提供 + することを意味します. + これらの単語について詳しく知りたい場合にはKerberosのマニュアル + ページをご覧ください. + + ここで, <it>GRONDAR.ZA</it>という管理領域に<it>grunt.grondar.za</it> + およびその他の<it>.grondar.za</it>ドメインのすべてのホストを追加し + なければなりません. <tt>krb.realms</tt>は次のようになります: + +<tscreen><verb> + grunt# cat krb.realms + grunt.grondar.za GRONDAR.ZA + .grondar.za GRONDAR.ZA + .berkeley.edu CS.BERKELEY.EDU + .MIT.EDU ATHENA.MIT.EDU + .mit.edu ATHENA.MIT.EDU +</verb></tscreen> + + <p>もう一度注意しますが, 他の管理領域を書く必要はありません. + これらは複数の管理領域を認識できるようにマシンを設定する方法を + 示した例ですので, これらの行は消して構いません. + + 1行目は名前をつけた管理領域に<it>特定の</it>システムを含めるための + ものです. 残りの行は名前をつけた管理領域にサブドメインのデフォルトの + システムを含めるためのものです. + + これでデータベースを作成する準備ができました. この操作はKerberos + サーバ (鍵配布センター) を起動するだけです. <tt>kdb_init</tt>コ + マンドを次のように実行してください: + +<tscreen><verb> +grunt# kdb_init +Realm name [default ATHENA.MIT.EDU ]: GRONDAR.ZA +You will be prompted for the database Master Password. +It is important that you NOT FORGET this password. + +Enter Kerberos master key: +</verb></tscreen> + + <p>ここで鍵を保存して, ローカルのマシンにあるサーバが取り出せるように + します. それには<tt>kstash</tt>コマンドを使用します. + +<tscreen><verb> +grunt# kstash + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +</verb></tscreen> + + <p>これで暗号化されたマスタパスワードが + <tt>/etc/kerberosIV/master_key</tt>に保存されました. + + <sect1> + <heading>すべてが動くようにするための設定</heading> + + <p>Kerberosを導入する<it>それぞれの</it>システムのデータベースに, 2つ + のprincipal (主体名) を追加する必要があります. その名前は + <tt>kpasswd</tt>と<tt>rcmd</tt>です. これら2つのprincipalは, 個々 + のシステムにおいて, システム名と同じ名前のインスタンスと組にして作成 + されます. + + これらの<tt>kpasswd</tt>と<tt>rcmd</tt>というデーモンによって, 他の + システムからKerberosのパスワードを変更したり, <tt>rcp</tt>や + <tt>rlogin</tt>, <tt>rsh</tt>といったコマンドを実行したりできるよ + うになります. + + それでは実際にこれらのエントリを追加しましょう: + +<tscreen><verb> +grunt# kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: passwd +Instance: grunt + +<Not found>, Create [y] ? y + +Principal: passwd, Instance: grunt, kdc_key_ver: 1 +New Password: <---- ここは「RANDOM」と入力してください +Verifying password + +New Password: <---- ここは「RANDOM」と入力してください + +Random password [y] ? y + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: rcmd +Instance: grunt + +<Not found>, Create [y] ? + +Principal: rcmd, Instance: grunt, kdc_key_ver: 1 +New Password: <---- ここは「RANDOM」と入力してください +Verifying password + +New Password: <---- ここは「RANDOM」と入力してください + +Random password [y] ? + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- 何も入力しないと終了します +</verb></tscreen> + + <sect1> + <heading>サーバファイルの作成</heading> + + <p>次に, 各マシンにおけるサービスを定義している, すべてのインスタンス + を展開します. これには<tt>ext_srvtab</tt>というコマンドを使用しま + す. このコマンドで作成されるファイルは, Kerberosの各クライアン + トの/etc/kerberosIVディレクトリに<it>安全な方法で</it>コピーまたは + 移動する必要があります. このファイルはそれぞれのサーバとクラ + イアントに存在しなければならず, またKerberosの運用において重要なも + のです. + +<tscreen><verb> +grunt# ext_srvtab grunt + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Generating 'grunt-new-srvtab'.... +</verb></tscreen> + + <p>このコマンドは一時的なファイルを作成するだけです. ファイル名をすべ + てのサーバが読めるような<tt>srvtab</tt>という名前に変更しな + ければなりません. <tt>mv</tt>コマンドを用いてシステムの場所に移動 + してください. + +<tscreen><verb> +grunt# mv grunt-new-srvtab srvtab +</verb></tscreen> + + <p>そのファイルがクライアントに配るためのもので, ネットワークが安全で + はないと思われる場合には, <tt><client>-new-srvtab</tt>を移動 + 可能なメディアにコピーして物理的に安全な方法で運んでください. クラ + イアントの<tt>/etc/kerberosIV</tt>ディレクトリで, 名前を + <tt>srvtab</tt>に変更し, modeを600にするのを忘れないでください: + +<tscreen><verb> +grumble# mv grumble-new-srvtab srvtab +grumble# chmod 600 srvtab +</verb></tscreen> + + <sect1> + <heading>データベースへのユーザの追加</heading> + + <p>ここで, ユーザのエントリをデータベースに追加する必要があります. + 始めに, ユーザ<it>jane</it>のエントリを作成してみましょう. + <tt>kdb_edit</tt>を用いて次のように作成してください: + +<tscreen><verb> +grunt# kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: jane +Instance: + +<Not found>, Create [y] ? y + +Principal: jane, Instance: , kdc_key_ver: 1 +New Password: <---- 安全なパスワードを入れてください +Verifying password + +New Password: <---- もう一度パスワードを入れてください + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- 何も入力しないと終了します +</verb></tscreen> + + <sect1> + <heading>すべてのテスト</heading> + + <p>まず始めにKerberosデーモンを起動する必要があります. + <tt>/etc/sysconfig</tt>ファイルを正しく編集してあれば, マシンを再 + 起動することでに自動的にデーモンが起動します. これはKerberosサー + バでのみ必要です. Kerberosクライアントは<tt>/etc/kerberosIV</tt>か + ら必要なものを自動的に入手します. + +<tscreen><verb> +grunt# kerberos & +grunt# Kerberos server starting + Sleep forever on error + Log file is /var/log/kerberos.log +Current Kerberos master key version is 1. + +Master key entered. BEWARE! + +Current Kerberos master key version is 1 +Local realm: GRONDAR.ZA +grunt# kadmind -n & +grunt# KADM Server KADM0.0A initializing +Please do not use 'kill -9' to kill this job, use a +regular kill instead + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +</verb></tscreen> + + <p>さあ, これで上で作成した<it>jane</it>というIDのチケットを + <tt>kinit</tt>コマンドで得ることができます: + +<tscreen><verb> +grunt$ kinit jane +MIT Project Athena (grunt.grondar.za) +Kerberos Initialization for "jane" +Password: +</verb></tscreen> + + <p><tt>klist</tt>コマンドを用いてトークンを見て, きちんとチケットを持って + いるかどうか確認してください: + +<tscreen><verb> +grunt$ klist +Ticket file: /tmp/tkt245 +Principal: jane@GRONDAR.ZA + + Issued Expires Principal +Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA +</verb></tscreen> + + <p><tt>passwd</tt>コマンドを用いてパスワードを変更して, kpasswdデーモ + ンがKerberosデータベースに対して認証されるかどうかチェックして + ください: + + +<tscreen><verb> +grunt$ passwd +realm GRONDAR.ZA +Old password for jane: +New Password for jane: +Verifying password +New Password for jane: +Password changed. +</verb></tscreen> + + <sect1> + <heading><tt>su</tt>特権の追加</heading> + + <p>root権限が必要なユーザは<it>誰でも</it>, <tt>su</tt>コマンドのパス + ワードをユーザ毎に<it>別のもの</it>として持つことができます. + <it>root</it>に<tt>su</tt>できる権利を与えられたidを追加します. + これは, principalに付いている<it>root</it>というインスタンスに + よって制御されています. <tt>kdb_edit</tt>を用いて + <it>jane.root</it>というエントリをKerberosデータベースに作成します: + +<tscreen><verb> +grunt# kdb_edit +Opening database... + +Enter Kerberos master key: + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +Principal name: jane +Instance: root + +<Not found>, Create [y] ? y + +Principal: jane, Instance: root, kdc_key_ver: 1 +New Password: <---- 安全なパスワードを入れます +Verifying password + +New Password: <---- もう一回パスワードを入れます + +Principal's new key version = 1 +Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? +Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- ここは短くしてください +Attributes [ 0 ] ? +Edit O.K. +Principal name: <---- 何も入力しないと終了します +</verb></tscreen> + + <p>実際にトークンをもらって, ちゃんと働いているかどうか確認しましょう: + +<tscreen><verb> +grunt# kinit jane.root +MIT Project Athena (grunt.grondar.za) +Kerberos Initialization for "jane.root" +Password: + </verb></tscreen> + + <p>ここでrootユーザの<tt>.klogin</tt>ファイルにユーザを追加する必要が + あります. + +<tscreen><verb> +grunt# cat /root/.klogin +jane.root@GRONDAR.ZA +</verb></tscreen> + + <p><tt>su</tt>してみましょう: + +<tscreen><verb> +[jane@grunt 10407] su +Password: +grunt# +</verb></tscreen> + + どのトークンを持っているか見てみましょう: + +<tscreen><verb> +grunt# klist +Ticket file: /tmp/tkt_root_245 +Principal: jane.root@GRONDAR.ZA + + Issued Expires Principal +May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA +</verb></tscreen> + + <sect1> + <heading>他のコマンドの使用</heading> + + <p>ここまでの例では, <tt>jane</tt>というprincipalを<tt>root</tt>とい + うインスタンス付きで作成しました. これはユーザと同じ名前をprincipalと + しており, Kerberosのデフォルトの値です; + <em><username>.</em><tt>root</tt>という形式の + <em><principal>.<instance></em>で, 必要なエント + リが<tt>root</tt>のホームディレクトリの<tt>.klogin</tt>ファイルに + あれば, <em><username></em>がrootに<tt>su</tt>することができま + す. + +<tscreen><verb> +grunt# cat /root/.klogin +jane.root@GRONDAR.ZA +</verb></tscreen> + + <p>同様に, ユーザのホームディレクトリの<tt>.klogin</tt>ファイルに次の + ような行がある場合には: + +<tscreen><verb> +[jane@grunt 10543] cat ~/.klogin +jane@GRONDAR.ZA +jack@GRONDAR.ZA +</verb></tscreen> + + <p><em>jane</em>または<em>jack</em>という名前で (前述の<tt>kinit</tt> + によって) 認証されている<em>GRONDAR.ZA</em>という管理領域のユーザ + なら誰でも<tt>rlogin</tt>や<tt>rsh</tt>, <tt>rcp</tt>等によってこ + のシステム (<em>grunt</em>) の<em>jane</em>のアカウントまたはファ + イルにアクセスできます. + + 例えば, Janeが他のシステムにKerberosを用いてloginします: + +<tscreen><verb> +[jane@grumble 573] kinit +MIT Project Athena (grunt.grondar.za) +Password: +[jane@grumble 574] rlogin grunt +Last login: Mon May 1 21:14:47 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 + +[jane@grunt 10567] +</verb></tscreen> + + <p>次の例では, Jackが同じマシンのJaneのアカウントにloginします. Janeは + <tt>.klogin</tt>ファイルを前述のように設定しており, + Kerberosでは<em>jack</em>というprincipalをインスタンスなしで設定してあ + ります. + +<tscreen><verb> +[jack@grumble 573] kinit +[jack@grumble 574] rlogin grunt -l jane +MIT Project Athena (grunt.grondar.za) +Password: +Last login: Mon May 1 21:16:55 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 + +[jane@grunt 10578] +</verb></tscreen> diff --git a/share/doc/ja_JP.EUC/handbook/kernelconfig.sgml b/share/doc/ja_JP.EUC/handbook/kernelconfig.sgml new file mode 100644 index 000000000000..cabec76a7e12 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/kernelconfig.sgml @@ -0,0 +1,1244 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> + +<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> --> + <chapt><heading>FreeBSDカーネルのコンフィグレーション <label id="kernelconfig"></heading> + + <p><em>原作: &a.jehamby;. <newline>6 October 1995.</em> + + <p><em>訳: + &a.tomo;, + &a.yoshiaki;. <newline> + 2 November 1996. </em> + <!-- Original revision: 1.21 --> + + この章はシステムに合わせたカーネルの再構築の基礎について + 述べたものです. この章は, システム管理の初心者から + Unixシステム管理に十分な経験を積んだ人までを対象としています. + + <sect><heading>なぜカスタムカーネルを作るか?</heading> + + <p>システムに合わせたカーネルはすべての Unixシステム管理者が + 避けて通ることのできない最も重要な通過儀礼の1つです. + この作業は, 多くの時間を必要としますが, あなたの FreeBSD + システムに多くの利益をもたらします. GENERICカーネルは, + めったに使われることのないハードウェアをサポートするとともに, + 考えられるすべての SCSIカードやネットワークカードをサポート + しなければなりませんが, システムに合わせたカーネルは + <em>あなたの</em> PC のハードウェアのみをサポートします. + これは, 次にあげるような利益をもたらします. + + <itemize> + + <item>あなたが持っていないハードウェアについては検出をおこなわな + いので, ブートにかかる時間が短くなります. + + <item>システムに合わせたカーネルは多くの場合メモリ使用量が + 減ります. カーネルはいつもメモリ上に存在するので, + 不必要なコードがあると本来プログラムが利用できるはずの + RAM (実メモリ) を占めてしまいますのでこれは重要なことだ + といえます. + したがって, メモリが少ないシステムでは, + カーネルの再構築は大変重要です. + + <item>必要に応じていくつかのカーネルオプションは調整すること + ができ, またサウンドカードのような GENERICカーネルには + <em>ない</em>デバイスドライバをカーネルに含めることが + できます. + + </itemize></p> + + <sect><heading>カスタムカーネルの構築とインストール<label id="kernelconfig:building"></heading> + + <p>まず, カーネル再構築に必要なディレクトリをざっと見てみましょう. + ここではディレクトリはすべて <tt>/usr/src/sys</tt>以下の相対位 + 置で示します. また, <tt>/sys</tt>からもアクセス可能です. + ここには, カーネルの各部分を構成するサブディレクトリが + いくつもあります. しかし, 私たちの目的では + 最も重要なのは <tt>i386/conf</tt>です. ここで, あなたの + システムに合わせてカーネル コンフィグレーションを編集します. + それから <tt>compile</tt>ディレクトリ, ここはカーネルが作られる + 場所です. サポートされているデバイスやファイルシステムのディレ + クトリツリーがオプション毎にサブディレクトリに分かれている論理 + 的構成に注意してください. また, <tt>i386</tt>のディレクトリは + PCのハードウェアのみを扱い, <tt>i386</tt>以外のディレクトリは + FreeBSDが他のプラットフォームに移植される際には共有されるコー + ドです. + + <quote><em/注:/ もし, あなたのシステムに<tt>/usr/src/sys</tt> + 以下のディレクトリが<em>なければ</em>, カーネルのソースが + インストールされていません. パッケージのインストール手順にしたがっ + て, システムにインストールしてください. </quote> + + つぎに, <tt>i386/conf</tt>に移動して, GENERIC + コンフィグレーションファイルをカーネルに与えたい名前に + コピーしてください. たとえば: +<tscreen><verb> +# cd /usr/src/sys/i386/conf +# cp GENERIC MYKERNEL +</verb></tscreen> + 慣習として, この名前はすべて大文字でつづられます. もし, + いくつかの異なるハードウェアの FreeBSDマシンを扱うなら, + この名前にホスト名を含めるとよいでしょう. + ここでは, 例として MYKERNEL と呼ぶことにします. + + <quote><em/注:/ この作業は root権限でおこなう必要があります. + そうでなければ, ``permission denied''というエラーが出ます. + </quote> + + では, MYKERNELをあなたの好きなエディタで編集してください. + もし, システムをインストールしたばかりならば, 利用できる + エディタは <tt>vi</tt>だけかもしれません. ここでは使い方 + の説明はしませんが, <ref id="bibliography" + name="参考図書">にあるような多くの本で詳しく説明 + されていますので, そちらを参照してください. + まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ + レーションに合せて変更した点などを記述して GENERICと区別がつく + ようにしておきましょう. + + もし SunOSや他の BSDオペレーティングシステムでカーネルの + 再構築をしたことがあれば, このファイルはとても親しみ + やすいでしょう. しかし, DOSのようなその他の + オペレーティングシステムしか知らない人から見れば, + GENERICコンフィグレーションファイルはとても + なじみにくいものかもしれません. そのような場合は, <ref + id="kernelconfig:config" name="コンフィグレーションファイル"> + の節をゆっくりと注意深く読んでください. + + <quote><em/注:/ 古いバージョンの FreeBSDからアップグレードを + おこなう場合, 新しいカーネルソースを得た場所より新しいバージョンの + <tt>config(8)</tt>を取ってくる必要があるかもしれません. これは + <tt>/usr/src/usr. sbin</tt>にあります. したがってこれらのソースをダ + ウンロードする必要があります. 次のコマンドを実行する前に + (configを)作りインストールをしておいてください. </quote> + + 編集し終ったら, 次のコマンドによってコンパイル, インストール + を行ってください. +<tscreen><verb> +# /usr/sbin/config MYKERNEL +# cd ../../compile/MYKERNEL +# make depend +# make +# make install +</verb></tscreen> + 新しいカーネルはルートディレクトリに <tt>/kernel</tt>という + 名前でコピーされ, 今までのカーネルは <tt>/kernel.old</tt> + という名前へ変更されます. では, システムをシャットダウン, リブー + トして新しいカーネルを使ってください. うまく行かない場合は, + この章の終りの + <ref id="kernelconfig:trouble" name= "問題が起きた場合には"> + を参照してください. この章の新しい + <ref id="kernelconfig:noboot" name="カーネルがブートしない"> + 場合のリカバリの方法を注意深く読んでおいてください. + + <quote><em/注:/ (サウンドカードのような)新しいデバイスを + 追加した場合は, 使う前に <tt>/dev</tt>ディレクトリで + デバイスノードを追加しなければならないかもしれません. + 詳しくは, <ref id="kernelconfig:nodes" + name="デバイスノード">を読んでください. </quote> + + <sect><heading>コンフィグレーション ファイル<label id="kernelconfig:config"></heading> + <p>コンフィグレーション ファイルの一般的なフォーマット + はとてもシンプルです. 各行は1つのキーワードと1つ以上の + 引数を含んでいます. 見やすくするために, ほとんどのキーワードは + 引数を1つしか書いてありません. + <tt>#</tt>に続くものはすべてコメントとして扱われ, + 無視されます. ここでは, それぞれのキーワードについて + だいたい GENERICに出てくる順番で説明します. しかし, + お互いに関係のあるキーワードは, 実際には GENERICファイル上に + バラバラに現れていても, (ネットワーキングのように)1つにまとめ + てあります. おびただしい数のオプションの一覧が GENERICと同じディ + レクトリの LINTコンフィグレーションファイルにあります. + もし, ある行の目的や必要性に疑問を持ったら最初に LINTをチェック + してください. + + <p>カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ + うとしています. 従来は, 各々のオプションは単純にカーネルの + Makefile中の <tt>CFLAGS</tt>行の <tt>-D</tt>スイッチに変換されて + いました. 自然とオプションは際限なく増えて行きます. だれも実際に + はどのオプションがどのファイルで参照されているかは知りません. + + <p>新しい方法では、すべてのオプション依存の <tt> #ifdef</tt>は当該オプショ + ンを <tt>opt_<em>foo</em>.h</tt> (これらのファイルはconfigによって compileディレ + クトリに作られます) から読み込むように変わりました. + <tt>config</tt> の有効なオプションのリストは2つのファイルにお + かれます. アーキテクチャに依存しないオプションは + <tt>/sys/conf/options</tt>に置かれ, アーキテクチャ依存のオプショ + ンは<tt>/sys/<em>arch</em>/conf/options</tt>に置かれま + す. <em>arch</em>の部分は例えば <tt>i386</tt>となります. + + + <sect1><heading>必須キーワード</heading> + + <p>ここにあるキーワードはカーネルの構築に必要不可欠です. + + <descrip> + + <tag>machine ``i386''</tag> + + <p>最初のキーワードは <tt>machine</tt>です. + FreeBSDは Intelの 386とその互換チップ上でしか + 動かないので, i386を指定します. + + <quote><em>注:</em> 数字を含むキーワードはすべて + クォーテーションマークで囲む必要があります. + そうしないと, <tt>config</tt>は混乱し, + 386を実際の数値として扱ってしまいます. </quote> + + <tag>cpu ``<em>cpu_type</em>''</tag> + + <p>次のキーワードは <tt>cpu</tt>です. + FreeBSDでサポートしている CPUの中から記述します. + <tt><em>cpu_type</em></tt>として指定可能な値は + 次の通りです. + <itemize> + <item>I386_CPU + <item>I486_CPU + <item>I586_CPU + <item>I686_CPU + </itemize> + GENERICカーネルのように <tt>cpu</tt>の行の + <tt><em>cpu_type</em></tt>が異なった値を持つものが + 複数あってもかまいません. カスタムカーネルでは, + あなたが持っている cpuを1つだけ指定するのが + 一番です. 例えば, もし Intelの Pentiumを持っていれば, + <tt><em>cpu_type</em></tt>には, <tt>I586_CPU</tt> + を使ってください. + + <tag>ident <em>machine_name</em></tag> + + <p>次は, カーネルの識別名となる<tt>ident</tt>です. + GENERICからあなたがカーネルに与えたい名前に + 変えてください. ここでは, MYKERNELとします. + <tt>ident</tt>に与えた名前はカーネルの + ブート時に表示されるので, 普段のカーネルとは別に + カーネルに違う名前を与えたいとき(例えば, + 実験用のカーネルを作りたい時など), 便利でしょう. + 数字を含む名前にしたい場合は <tt>machine</tt>や + <tt>cpu</tt>の時と同じようにクォーテーションマークで + 囲む必要があります. + + Cコンパイラに <tt>-D</tt>スイッチで渡されるので, + <tt>DEBUG</tt>のような名前にしたり, <tt>vax</tt> + といった他のCPUの名前など紛らわしい名前にしないで + ください. + + <tag>maxusers <em>number</em></tag> + + <p>これは, 重要なシステムテーブルのサイズを決めます. ここ + で与えられる数字はマシンに同時にログインすると考えられ + るおよそのユーザ数です. しかし, 通常の使用環境であれば, + 特に X Window System を立ち上げたり, ソフトウェアを + コンパイルするような使用であれば <tt>maxusers</tt>には少 + なくとも4以上を指定したほうがいいでしょう. その理由は, + <tt>maxusers</tt>で決るテーブルで最も重要なものはプロセス + の最大数であるからです. プロセス最大数は <bf><tt>20 + + 16 * maxusers</tt></bf>で与えられ, <tt>maxusers</tt>を1 + にすると36プロセスしか同時には持てません. この中にはブー + ト時にシステムによって起動する18個ぐらいのプロセス, Xを + 起動する時の15程度のプロセスも含みます. + <tt>man</tt>ページを読むという1つのタスクでさえ, フィ + ルタやファイル伸長や表示のために9つのプロセスを起動し + ます. <tt>maxusers</tt>を4にすれば, 同時に84個のプロセ + スを持つことができるのでどんな人でも十分な数だといえる + でしょう. + それでも他のプログラムを起動した場合に, あるいは, + (Walnut Creek CDROMのFTPサイトのように) 同時に多くの + ユーザを抱えるサーバを走らせた場合に ``proc table + full''というおぞましいエラーが起きる場合はこの値を増や + し, カーネルを再構築してください. + + <quote><em/注:/ <tt>maxuser</tt>はあなたのマシン + にログインできるユーザの数を制限するものでは + <em>ありません</em>. 単に, あなたのシステムに + ログインするユーザ数の最大値と各々のユーザが + いくつのプロセスを走らせるかを考慮することに + よってさまざまなテーブルの値を適切な値に設定 + するだけです. これに対し, <ref + id="kernelconfig:ptys" name="pseudo-device pty + 16">の <em>remote logins</em>というキーワードは + 同時にリモートログインできるユーザ数を制限 + <em>します</em>. </quote> + + <tag>config <em>kernel_name</em> root on <em>root_device</em></tag> + + <p>これはカーネルの位置と名前を特定します. + 伝統的にカーネルは <tt>vmunix</tt>と呼ばれますが, + FreeBSDでは <tt>kernel</tt>とふさわしい名前になりました. + <em>kernel_name</em>にはいつも <tt>kernel</tt>を + 使ってください. 名前を変えると多くのシステム + ユーティリティが使えなくなります. 2番目の部分は + ルートファイルシステムとカーネルのあるディスクと + パーティションを指定してください. + SCSIドライブでなければ, <tt>wd0</tt>を, + SCSIドライブならば <tt>sd0</tt>です. + </descrip> + + <sect1><heading>一般的なオプション</heading> + + <p>以下はカーネルのサポートするさまざまなファイルシステムおよ + びその他のオプションです. + + <descrip> + + <label id="kernelconfig:mathemu"> + + <tag>options MATH_EMULATE</tag> + + <p>これは, 数値演算コプロセッサがない + コンピュータ (386や486SX) で数値演算コプロセッサ + のエミュレーションを可能にします. もし, Pentiumや + 486DX, あるいは387や487があれば, コメントアウト + できます. + + <quote><em>注:</em> FreeBSD付属の数値演算 + コプロセッサエミュレータはあまり正確では + <em>ありません</em>. 非常に正確な計算をおこないたい + ならば, より優れた GNUのエミュレータである + <tt>GPL_MATH_EMULATE</tt>に変えることを + おすすめします. これはライセンスの関係でデフォルトでは + 含まれていません. </quote> + + <tag>options ``COMPAT_43''</tag> + + <p>4.3BSDとの互換性のためのオプションです. + そのままにしておいてください. コメントアウトすると, + いくつかのプログラムで動作がおかしくなります. + + <tag>options BOUNCE_BUFFERS</tag> + + <p>ISAデバイスやISA互換モードで動作する EISAデバイス + では DMA (Direct Memory Access) は16MB以下のメモリに対し + てのみ動作します. このオプションによりメモリが16MB以上 + のシステムでDMAを使うデバイスを動作させることができます. + + <tag>options UCONSOLE</tag> + + <p>ユーザがコンソールを横取り (grab) できるようにします. + これは X Window System 上で便利です. 例えば, コ + ンソール xtermを <tt>xterm -C</tt>とタイプして作ると, + そこに `write', `talk'などのメッセージがカーネルからコ + ンソールへ送られるメッセージと同じように表示されます. + + <tag>options SYSVSHM</tag> + + <p>このオプションは System V の共有メモリを提供します. + 最もよく利用されるのは X Window System の XSHM拡張 + です. これは多くのグラフィックを多用したプログラム + (movie player の Xanimや Linux DOOMなど) では自動的に高速 + になるという利点があります. + X Window System を利用するのであればこれは間違いな + く含めたくなるでしょう. + + <tag>options SYSVSEM</tag> + + <p>System V のセマフォをサポートします. 一般的に利用される + ことは少ないですがカーネルサイズの増加は数百バイトだ + けです. + <tag>options SYSVMSG</tag> + + <p>System V のメッセージをサポートします. これを指定した場 + 合もカーネルサイズの増加は数百バイトだけです. + + <quote><em/注:/ <tt>ipcs(1)</tt> コマンドは + これらの System V の機構を利用しているプロセスを表示し + ます. + </quote> + <quote><em>訳注: </em>共有メモリ, セマフォ, メッセージ(メッ + セージキュー) は System V系 で一般的なプロセス間通信の機 + 構です. くわしくは System Vのプロセス間通信に関する文 + 献, 「詳解 UNIXプログラミング」 (ソフトバンク) , 「UNIXネッ + トワークプログラミング」 (トッパン) などを参照してくださ + い. + </quote> + + </descrip> + + <sect1><heading>ファイルシステムオプション</heading> + + <p>これらのオプションはさまざまなファイルシステムへのサポート + を追加します. 少なくともブートするためのデバイスのサポートを含 + める必要があります. 標準的にはハードディスクからブートするので + あれば <tt>FFS</tt> , ディスクレスワークステーションとしてイー + サネットからブートするのであれば <tt>NFS</tt>です. + 一般的に利用される他のファイルシステムをカーネルに含め, あまり + 利用しないファイルシステム (多分 MS-DOSファイルシステム?) のサポー + トをコメントアウトすることができます. これは Loadable Kernel + Module ディレクトリ <tt>/lkm</tt> から, 最初にそのタイプのファイ + ルシステムがマウントされる時に動的にドライバがロードされるからです. + + <descrip> + + <tag>options FFS</tag> + + <p>基本的なハードドライブ ファイルシステムです. ハードディ + スクからブートする場合は残しておいてください. + + <tag>options NFS</tag> + + <p>ネットワーク ファイルシステムです. Ethernet経由で Unixファ + イルサーバからパーティションをマウントする予定がない場 + 合はコメントアウトすることができます. + + <tag>options MSDOSFS</tag> + + <p>MS-DOS ファイルシステムです. ブート時に DOSフォーマット + のハード ドライブをマウントする予定のない場合はコメン + トアウトしても安全です. 先に示したように, DOSパーティ + ションをマウントする時に自動的にロードされます. また + (ports コレクションにある) <tt>mtools</tt> という素晴 + らしいソフトウェアにより mount , unmountなしで DOSフロッ + ピーにアクセスすることができます (これは MSDOSFSも必要 + ありません). + + <tag>options ``CD9660''</tag> + + <p> CD-ROMのための ISO 9660 ファイルシステムです. CD-ROMを + 持っていないか, 時々 データ CDをマウントするだけならコ + メントアウトしましょう (データ CDを最初にマウントする + 時に動的にロードされます). オーディオ CDはこのファイル + システムは必要ありません. + + <tag>options PROCFS</tag> + + <p>プロセス ファイルシステムです. これは疑似的なファイルシ + ステムで /procにマウントされ, <tt>ps(1)</tt>などのプロ + グラムがプロセスに関してより詳しい情報を与えてくれるよ + うになります. + + <tag>options MFS</tag> + + <p>メモリマップド ファイルシステムです. これは基本的に一時 + ファイルを記憶するための高速な RAMディスクで, 大きな + swap領域がある場合に有効です. MFSパーティションをマウ + ントするに適した場所は多くのプログラムが一時ファイルを + 置く <tt>/tmp</tt>です. MFS RAMディスクを <tt>/tmp</tt> + にマウントするには以下の内容を <tt>/etc/fstab</tt>に追 + 加してリブートするか <tt>mount /tmp</tt>とタイプします. + +<tscreen><verb> +/dev/wd1s2b /tmp mfs rw 0 0 +</verb></tscreen> + + <quote><em/注:/ <tt>/dev/wd1s2b</tt>をあなたが使用して + いるswap パーティションに置き換えてください. これは以 + 下のように <tt>/etc/fstab</tt>に書かれているでしょう. +<tscreen><verb> +/dev/wd1s2b none swap sw 0 0 +</verb></tscreen> + </quote> + + <quote><em/注:/ <!-- MFS は現在のところ少しの制限があ + ります (例えば, 2つのプログラムが同時に <tt>/tmp</tt>デ + バイスにアクセスすることはできません). そのためいまの + ところは使わない方が無難です. --> また, <tt>MFS</tt>ファ + イルシステムは動的にロードすることは<em>できません + </em>. したがって使いたい場合はコンパイル時に + カーネルに<em>含める必要があります</em>. + </quote> + + <tag>options QUOTA</tag> + + <p>ディスククォータを有効にします. アクセスが公開されてい + るシステムで (一人のユーザが) <tt>/home</tt>パーティショ + ン (全体) をあふれさせることができないようにそれぞれのユーザ + にディスククォータを発行することができます. + このコードはいくらかバグがありますので必要のない場合は + 使わないでください. ディスククォータについての詳しい内 + 容はマニュアルページの <tt>quota(1)</tt>を見てください. + </descrip> + + <sect1><heading>基本的なコントローラとデバイス</heading> + + <p>この節では FreeBSDでサポートされているディスク, テー + プ, CD-ROMコントローラについて示します. + <ref id="kernelconfig:scsi" name="SCSI"> コントローラと <ref + id="kernelconfig:network" name="ネットワーク"> カードについ + ては別の節になっています. + + <descrip> + + <tag>controller isa0</tag> + <p> FreeBSDのサポートするすべての PCで必要です. IBM PS/2 (マイ + クロチャネルアーキテクチャ) では現時点では FreeBSDは動 + きません. + + <tag>controller pci0</tag> + + <p>PCIバスを持つマザーボードの場合は含めます. これにより + PCIカードの自動認識と PCIから ISAバスへのゲートウェイが + 可能になります. + + <tag>controller fdc0</tag> + + <p>フロッピードライブコントローラです. + <tt>fd0</tt> は ``A:'' ドライブで + <tt>fd1</tt> は ``B:'' ドライブです. <tt>ft0</tt> は + フロッピーコントローラに接続する QIC-80 テープドライブで + す. 対応するデバイスがない場合はそれぞれの行をコメント + アウトしてください. + + <quote><em/注:/QIC-80テープのサポートは別に + <tt>ft(8)</tt>というフィルタプログラムが必要です. 詳し + くはマニュアルページを見てください. </quote> + + <tag>controller wdc0</tag> + + <p>プライマリIDEコントローラです. <tt>wd0</tt> と + <tt>wd1</tt>はそれぞれマスタ, スレーブドライブで + す. <tt>wdc1</tt> は セカンダリの IDEコントローラで3台 + 目, 4台目のハードディスクまたは IDE CD-ROMのある場合に + 使います. 利用しない行はコメントアウトしてください (例え + ば, SCSIハードディスクのみを使う場合は6行全部をコメント + アウトしてもよいかもしれません). + + <tag>device wcd0<label id="kernelconfig:atapi"></tag> + + <p>このデバイスは IDE CD-ROMのサポートをします. + <tt>wdc0</tt>を有効にしておく必要があり, もし 2つ以上の IDE + コントローラがあり, そのうちの 2つ目のカードに CD-ROMを接 + 続する場合 <tt/wdc1/ も必要です. + また <tt>options ATAPI</tt>を書いておく必要もあります. + + <tag>device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr</tag> + + <p><tt>npx0</tt>はFreeBSDハードウェアコプロセッサとソフト + ウェアエミュレータ両方の浮動小数点演算ユニットへのインタ + フェースです. これは <em/不可欠/ です. + + <tag>device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr</tag> + + <p>Wangtek と Archive の + QIC-02/QIC-36 テープドライブのサポートです. + + <tag>Proprietary CD-ROM support</tag> + + <p>以下のようなドライブを <em>proprietary</em>(独自の) + CD-ROMドライブと呼ぶことにします. これらのドライブは専 + 用のコントローラを持つか, サウンドブラスタ16などのサウ + ンドカードに接続します. これらは IDEでも SCSIでも<em>あ + りません</em>. 多くの標準速や2倍速の古い CD-ROMはこれら + のインタフェースを持っていますが, より新しい四倍速の + ものは <ref id="kernelconfig:atapi" name="IDE"> か <ref + id="kernelconfig:scsi" name="SCSI">でしょう. + + + <descrip> + + <tag>device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr</tag> + + <p>ミツミ製 CD-ROM (LU002, + LU005, FX001D)です. + + <tag>device scd0 at isa? port 0x230 bio</tag> + + <p>ソニー製 CD-ROM (CDU31,CDU33A)です. + + <tag>controller matcd0 at isa? port ? bio</tag> + + <p>松下/パナソニック製 CD-ROM (サウンドブラスタ用 + クリエィティブ ラボ製として販売されていました) です. + + </descrip> + + </descrip> + + <sect1><heading>SCSI デバイスのサポート<label id="kernelconfig:scsi"></heading> + + <p>この節では FreeBSDのサポートするいろいろな SCSIコント + ローラとデバイスのサポートについて書きます. + + <descrip> + + <tag>SCSI コントローラ</tag> + + <p>以下の十数行は異る種類の SCSIコントローラのサポートです. + 使用しているもの以外の部分はコメントアウトしてください. + + <descrip> + + <tag>controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr</tag> + + <p>ほとんどの Buslogic社のコントローラです. + + <tag>controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector uhaintr</tag> + + <p>UltraStor 14F と 34F です. + + <tag>controller ahc0</tag> + + <p>Adaptec 274x/284x/294x です. + + <tag>controller ahb0 at isa? bio irq ? vector ahbintr</tag> + + <p>Adaptec 174x です. + + <tag>controller aha0 at isa? port ``IO_AHA0'' bio irq ? drq 5 vector ahaintr</tag> + + <p>Adaptec 154x です. + + <tag>controller aic0 at isa? port 0x340 bio irq 11 vector aicintr +</tag> + + <p>Adaptec 152x や サウンドカードなどに使われている Adaptec + AIC-6360 チップです. (slow!) + + <tag>controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr +</tag> + + <p>NCR 5380を使っている ProAudioSpectrum や Trantor T130 で + す. + + <tag>controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr</tag> + + <p>Seagate ST01/02 8 ビットコントローラです. (slow!) + + <tag>controller wds0 at isa? port 0x350 bio irq 15 drq 6 vector wdsintr</tag> + + <p>Western Digital WD7000コントローラです. + + <tag>controller ncr0</tag> + + <p>NCR 53C810, 53C815, 53C825, 53C860, 53C875 チップを使った + PCI SCSI コントローラです. + + </descrip> + + <tag>options ``SCSI_DELAY=15''</tag> + + <p> このオプションによりカーネルはそれぞれの SCSIデバイスを + プローブする前に 15秒間待ちます. IDEドライブのみを使用 + している場合は無視して構いません. ブートを速くするため + にこの数値を 5秒ぐらいまで小さくしたいでしょう. そうし + た場合, FreeBSDが SCSIデバイスを認識しにくくなるかもし + れません. その時は、もちろんこのオプションの値は元に戻 + さないといけません. + + + <tag>controller scbus0</tag> + + <p>SCSIコントローラがある場合, この行で SCSI全般のサポー + トを与えます. SCSIのない場合, この行と以下の3つの行をコメ + ントにすることができます. + + <tag>device sd0</tag> + + <p>SCSIハードディスクのサポートです. + + <tag>device st0</tag> + + <p>SCSIテープドライブのサポートです. + + <tag>device cd0</tag> + + <p>SCSI CD-ROM のサポートです. + + <p> 上のエントリについている <bf>0</bf>はいくらか誤解を招き + やすいかもしれません. これらのデバイスはすべてカーネルが + 見つけた時に割り当てがおこなわれ, SCSIバスに何台つながってい + るか, ターゲット IDが何番であるかはここの記述とは関係あ + りません. + + 明示的に「固定的な」ターゲット IDの特定のデバイスへの + 割り当てをおこないたい場合は LINT カーネルコンフィグレーションファイルの + 該当する部分の説明を参照してください. + + </descrip> + + <sect1><heading>コンソール, バスマウス, Xサーバのサポート</heading> + + <p>2つのタイプのコンソールのから1つを選ぶ必要があります. また + X Window System を利用する場合, XSERVERオプションを有効にし + ます. またバスマウスとPS/2マウスのオプションもあります. + + <descrip> + + <tag>device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr</tag> + + <p><tt>sc0</tt> はデフォルトのコンソールドライバで SCOコン + ソールに似ています. このデバイス, あるいは VT220コンパ + チブルドライバの <tt>vt0</tt>いずれを使う場合もほとんど + のフルスクリーンプログラムは <em>termcap</em>などのターミ + ナルデータベースライブラリを通してアクセスしますので, + あまり違いはないでしょう. + このコンソールを使う場合でフルスクリーンプログラムでト + ラブルが起きる場合にはログインした時に TERM変数の値を + ``scoansi''にしてください. + + <tag>device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint</tag> + + <p>これはVT-220コンパチブルコンソールドライバで VT100/102の + 上位互換です. これは <tt>sc0</tt>の使えない種類のラッ + プトップ機でもうまく動きます. ログイン時に TERM変数の値 + を``vt100'' か ``vt220''にしてください. また, このドラ + イバはネットワークを介して多くの異るマシンから接続する + 場合も便利です. <tt>sc0</tt>デバイスのための + <em>termcap</em>や <em>terminfo</em>エントリは必ずしも + 利用できるわけではありませんが -- ``vt100''はいずれの + プラットフォームでも利用可能でしょう. + + <descrip> + + <tag>options ``PCVT_FREEBSD=210''</tag> + + <p><tt>vt0</tt> コンソールドライバを使う場合に必要で + す. + + <tag>options XSERVER</tag> + + <p> これは <tt>XFree86</tt> X サーバを動かすのに必要な + コードを含めます. + + </descrip> + + <tag>device mse0 at isa? port 0x23c tty irq 5 vector ms</tag> + + <p> Logitech や ATIのバスマウス入力カードを利用する場合のデ + バイスです. + + <quote><em/注:/ シリアルマウスを使う場合にはこれら2つ + の行(バスマウスとPS/2マウスに関する行) + は無視して, 代わりに <ref id="kernelconfig:serial" + name="シリアル"> ポート(おそらくはCOM1)を有効にしてくだ + さい. </quote> + + <tag>device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector psmintr</tag> + + <p>このデバイスは PS/2マウスポートにマウスを接続する場合に + 使います. + + </descrip> + + <sect1><heading>シリアル, パラレルポート</heading> + + <p>ほとんどすべてのシステムにこれらはあります. プリンタを接続す + る場合は <ref id="printing" name="プリンタの利用">の章が非常 + に役に立つでしょう. モデムを使う場合は <ref id="dialup" + name="ダイヤルアップ アクセス"> に非常に詳しいシリアルポートの設定とデ + バイスの使い方があります. + + <descrip> + + <tag>device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr<label id="kernelconfig:serial"></tag> + + <p><tt>sio0</tt>から<tt>sio3</tt>は MS-DOSにおける COM1から + COM4に相当する4本のシリアルポートです. + COM4に内蔵モデムがあり COM2を使う場合, FreeBSDからアク + セスするためにはモデムのIRQを2へ変更する必要があるとい + うことを注意しておきます (技術的な理由より IRQ 2 = IRQ + 9となります). + マルチポートシリアルカードを使う場合にマニュアルページ + の<tt>sio(4)</tt>にはこのオプションで使う値などのよ + り多くの情報があります. ビデオカードの中には (特に S3 + チップベースのものには) IOアドレスの <tt>0x*2e8</tt>から + を利用するものがあり, また多くの安価なシリアルカードは + IOアドレス空間を16-bitフルデコードしていませんので, こ + れらのカードは衝突します. この場合 COM4ポートは実質上 + 利用できません. + + それぞれのシリアルポートは (割込みの共有をサポートした + マルチポートカードを利用していないのであれば) 別々の IRQ + を割り当てる必要がありますので COM3と COM4のデフォルトの + IRQは利用できません. + + <tag>device lpt0 at isa? port? tty irq 7 vector lptintr</tag> + + <p><tt>lpt0</tt> から <tt>lpt2</tt>は利用可能な3本のプリン + タポートです. 多くの場合は1本のみですので他の2本はない + のであればコメントアウトして構いません. + + </descrip> + + <sect1><heading>ネットワーク<label id="kernelconfig:network"></heading> + + <p> FreeBSDでは他の一般的な Unixと同様にネットワークが<em> + 非常に</em> 重視されています. イーサネットカードが + なくても必須のオプションとダイヤルアップ ネットワークのサポー + トに注意してください. + + <descrip> + + <tag>options INET</tag> + ネットワーキングのサポートです. ネットワークに接続する予定がな + くても残しておいてください. 多くのプログラムは少なくともループ + バックネットワーキングが必要です(つまり, PCの中でネットワーク + コネクションをおこないます). したがってこのオプションは本質的 + に不可欠です. + + <tag>Ethernet cards</tag> + + <p>以下にさまざまなイーサネットカードを有効にするオプショ + ンを示します. ネットワークカードがなければこれらすべてを + コメントアウトすることができます. そうでなければ利用す + る特定のイーサネットカードをサポートするオプションを残 + しておきます. + + <descrip> + + <tag>device de0</tag> + + <p>DECの DC21040, DC21041, DC21140チップを使った PCIイー + サネットアダプタです. + + + <tag>device fxp0 + + <p>Intel EtherExpress Pro/100B 高速イーサネットカード + です. + + <tag>device vx0 + + <p>3Com の 3C590, 3C595です (いくらか bugがあります). + + <tag>device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr</tag> + + <p>Cronyx/Sigma の マルチポート同期/非同期カードです. + (with Cisco or PPP framing) + + <tag>device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr</tag> + + <p>Western Digital と SMC の 80xx, 8216 Elite Ultra ; + ノベル NE1000, NE2000; 3Com の 3C503; HPの PC Lan Plus + (HP27247B とHP27252A) です. + + <tag>device el0 at isa? port 0x300 net irq 9 vector elintr</tag> + + <p>3Com の 3C501 です. (slow!) + + <tag>device eg0 at isa? port 0x310 net irq 5 vector egintr</tag> + + <p>3Com の 3C505です. + + <tag>device ep0 at isa? port 0x300 net irq 10 vector epintr</tag> + + <p>3Com の 3C509 です(バグがあります). + + <tag>device fe0 at isa? port 0x240 net irq ? vector feintr</tag> + + <p>富士通 MB86960A/MB86965A ベースのイーサネットカード + です. + + <tag>device fea0 at isa? net irq ? vector feaintr</tag> + + <p>DEC DEFEA EISA FDDI アダプタです. + + <tag>device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr</tag> + + <p>AT&T StarLAN 10 と EN100; 3Com の 3C507; + NI5210 です. + + <tag>device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr</tag> + + <p>Intel の EtherExpress 16です. + + <tag>device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr</tag> + + <p>DEC の EtherWorks 2 and EtherWorks + 3 (DEPCA, DE100, DE101, DE200, DE201, DE202, + DE203, DE204, DE205, DE422)です. + + <tag>device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr</tag> + + <p>Lance/PCnet カード (Isolan, Novell NE2100, + NE32-VL)です. + + <tag>device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr</tag> + + <p>IBM/ナショナルセミコンダクタの PCMCIA イーサネット + コントローラです. + + <tag>device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr</tag> + + <p>3Com の PCMCIA Etherlink III です. + + </descrip> + + <quote><em/注:/ いくつかのカードでは (特に NE2000では) + 「標準値」がありませんので IOポートやIRQの値を変更す + る必要がある場合があります. </quote> + + <tag>pseudo-device loop</tag> + + <p><tt>loop</tt> は TCP/IPの一般的なループバックデバイスで + す. telnet や FTPを <em>localhost</em> (<tt>127.0.0.1</tt>) + に対してかけるとこの疑似デバイスを通して帰ってきます. + 不可欠です. + + <tag>pseudo-device ether</tag> + + <p><tt>ether</tt>はイーサネットカードがある場合のみ必要で + 一般的なイーサネットプロトコルを含めます. + + <tag>pseudo-device sl <em>number</em></tag> + + <p><tt>sl</tt> は SLIP (Serial Line Internet Protocol) をサポー + トします. これはほとんど完全に, より簡単に設定ができ, モ + デム to モデム接続に適した, よりパワフルな PPPに取って代 + わられています. <tt>sl</tt>の後の <em>number</em> は同 + 時にいくつの SLIPセッションをサポートするかを示します. + SLIPの設定のより詳しい情報はこのハンドブックの + 「PPPとSLIP」の章の + <ref id="slipc" name="SLIPクライアントのセットアップ"> + と <ref id="slips" name="SLIPサーバのセットアップ方法 + ">について書かれた節にあります。 + + <tag>pseudo-device ppp <em>number</em></tag> + + <p><tt>ppp</tt>はダイヤルアップ インターネット接続のための + カーネルモード PPP (Point-to-Point Protocol) をサポート + します. ユーザアプリケーションとして <tt>tun</tt> を + 利用する PPPの実装もあり, こちらはより柔軟性がありデマ + ンドダイアリング(プログラムが接続要求を出した時に自動 + 的にダイヤルをおこなう)などの機能もあります. それでもこ + の PPPドライバを利用したい場合は <ref id="ppp" + name="カーネル PPPの設定"> の節を読んでください. + <tt>sl</tt>デバイスと同じように <em>number</em>は同時 + に PPP接続できる数を示します. + + <tag>pseudo-device tun <em>number</em></tag> + + <p><tt>tun</tt> はユーザモード PPPソフトウェアが利用しま + す. このプログラムは設定が簡単で非常に高速です. + また自動ダイヤル オン デマンドなどの機能を持ちます. + <tt>tun</tt>の後のnumber は同時におこなうことのできる + PPPセッションの数を示します. <ref id="userppp" + name="ユーザ PPP のセットアップ"> の節により多くの情報があ + ります. + + <tag>pseudo-device bpfilter <em>number</em></tag> + + <p>バークレイ パケットフィルタです. この疑似デバイスはネッ + トワークインタフェースを無差別 (promiscuous) モードにし + てネットワーク (例えば単一のイーサネット) にブロードキャス + トされるすべてのパケットを取り入れることを可能にします. こ + れらのパケットはディスクに取り入れられたり + <tt>tcpdump(1)</tt> によって検査されます. この機能の実現 + はネットワーク全体のセキュリティとの微妙な妥協点であるこ + とに注意してください. + bpffilter の後の <em>number</em>は同時に検査することの + できるインタフェースの数を示します. + 危険の可能性について十分解っている場合を除いてこのオプ + ションは奨めません. すべてのネットワークカードでこの機能 + をサポートをしてはいません. + + </descrip> + + <sect1><heading>サウンドカード</heading> + + <p>ここは GENERICカーネルに含まれていない最初のセクションです. + サウンドカードのサポートをするためには LINTコンフィグレーショ + ンファイル(これには<em>すべての</em>デバイスが含まれています)か + ら以下のような適切な行をコピーする必要があります. + + <descrip> + + <tag>controller snd0</tag> + + <p>サウンドドライバ一般のコードです. + <tt>pca</tt>を除く以下のすべてのサウンドカードで必要で + す. + + <tag>device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr</tag> + + <p>ProAudioSpectrum のオーディオ と MIDI です. + + <tag>device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr</tag> + + <p>SoundBlaster です. + + <quote><em/注:/ SoundBlaster の IRQが標準と異る値, + 例えば 5になっている場合, <tt>irq 7</tt>を<tt>irq + 5</tt>に書き換え, キーワード <tt>conflicts</tt>を削除し + てください. さらに <tt>options ``SBC_IRQ=5''</tt>の行を + 加える必要があります. </quote> + + <tag>device sbxvi0 at isa? drq 5</tag> + + <p>SoundBlaster 16 の 16-bit オーディオです. + + <quote><em/注:/ SB16の DMAチャネルが標準と異っている( + 例えば 6か7)キーワード <tt>drq 5</tt>を適切な値に書き直 + して, (DMA 6の場合) <tt>options "SB16_DMA=6"</tt>を付け + 加えてください. </quote> + + <tag>device sbmidi0 at isa? port 0x330</tag> + + <p>SoundBlaster 16 の MIDI インタフェースです. + SoundBlaster 16を使う場合必ずこの行を含めてコンパイル + してください. + + <tag>device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr</tag> + + <p>Gravis Ultrasound です. + + <tag>device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr</tag> + + <p>Microsoft Sound System です. + + <tag>device opl0 at isa? port 0x388 conflicts</tag> + + <p>AdLib FMシンセサイザオーディオです. + AdLib, SoundBlaster, ProAudioSpectrum を使い + <tt>playmidi</tt> (ports にあります) などのプログラムで + MIDIの演奏をしたい場合にこの行を含めます. + + <tag>device mpu0 at isa? port 0x330 irq 6 drq 0</tag> + + <p>Roland MPU-401 カードです. + + <tag>device uart0 at isa? port 0x330 irq 5 vector ``m6850intr''</tag> + + <p>MIDIインタフェースの 6850 UART です. + + <tag>device pca0 at isa? port ``IO_TIMER1'' tty<label id="kernelconfig:pcaudio"></tag> + + <p>PC のスピーカーを使ったオーディオです. これは非常に品質 + が悪く, CPUの性能, 負荷に強く依存します, と言っておき + ます (サウンドカードは必要ありませんが). + + </descrip> + + <quote><em/注:/ 追加のドキュメントが + <tt>/usr/src/sys/i386/isa/sound/sound.doc</tt>にあります. + また, これらのデバイスを追加する場合は, サウンド<ref + id="kernelconfig:nodes" name="デバイスノード">を作る必要があり + ます. </quote> + + <sect1><heading>疑似デバイス</heading> + + <p>疑似デバイスドライバはデバイスドライバと同様に働きますがマ + シン上に対応する実際のハードウェアがないカーネルの部分です. + <ref id="kernelconfig:network" name="ネットワーク">関連の + 疑似デバイスはそちらのセクションに示しました. ここでは残りにつ + いて示します. + + <descrip> + + <tag>pseudo-device gzip</tag> + + <p><tt>gzip</tt>は <tt>gzip</tt>によって圧縮された FreeBSDの + プログラムを実行できるようにします. /standにあるプログ + ラムは圧縮されているのでカーネルにこのオプションをつけ + ておくのはいい考えでしょう. + + <tag>pseudo-device log</tag> + + <p><tt>log</tt> はカーネルエラーのログを取るのに使います. + 不可欠です. + + <tag>pseudo-device pty <em>number</em><label id="kernelconfig:ptys"></tag> + + <p><tt>pty</tt> は「仮想ターミナル」や仮想ログインポート + です. 外部からの <bf>telnet</bf>や <bf>rlogin</bf>セッ + ション, xterm, emacsなどのアプリケーションが使います. + <em>number</em>は作ることのできる <tt>pty</tt>の数を示 + します. + GENERICのデフォルトは16で, 同時の xtermウィンドウやリモー + トログインのために増やす場合は最大で 64までです. + + <tag>pseudo-device snp <em>number</em></tag> + + <p>スヌープデバイスです. この疑似デバイスはあるターミナル + セッションが <tt>watch(8)</tt> commandによって他のター + ミナルを監視することを可能にします. この機能の実現はセ + キュリティとプライバシに対して極めて微妙な関係があり + ます. snpの後の <em>number</em>は同時におこなうことのでき + るスヌープセッションの総数です. 選択可能です. + + <tag>pseudo-device vn</tag> + + <p>Vノードドライバです. ファイルを <tt>vnconfig(8)</tt>コマ + ンドによってデバイスとして取り扱うことを可能にします. + このドライバによりフロッピーディスクイメージを操作したりファ + イルをスワップデバイスとして (MS Windowsのスワッ + プファイルなどを)用いることができます. 選択可能です. + + + <tag>pseudo-device ccd <em>number</em></tag> + + <p>ccd (concatenated disk)デバイスはいくつかのディスクパーティ + ションを融合して大きなディスクのように見せることができます. + ccdの後の <em>number</em>は同時に作ることのできる疑似ディスクの数です. + (詳しいことは <tt>ccd(4)</tt>と <tt>ccdconfig(8)</tt>のマニュ + アルを参照してください.) 選択可能です. + + </descrip> + + <sect1><heading>ジョイスティック, スピーカー, その他</heading> + + <p>この節は FreeBSDのここまでに示した以外のハードウェア + デバイスへのサポートについて示します. これらは GENERICカーネル + には含まれませんのでこのハンドブックや LINT (このファイルには + <em>すべての</em>デバイスのサポートが含まれます) からコピーする必 + 要があります. + + <descrip> + + <tag>device joy0 at isa? port ``IO_GAME''</tag> + + <p>PC のジョイスティックです. + + <tag>pseudo-device speaker</tag> + + <p> IBM BASIC スタイルの PC内蔵スピーカーのサポートです. + シェルスクリプトで簡単な演奏をする + <tt>/usr/sbin/spkrtest</tt> やキーボードを使って単純なピ + アノのように演奏することができる + <tt>/usr/games/piano</tt> (<em>games</em>パッケージをイ + ンストールした場合にはあります) のようないくつかのプロ + グラムで使われます. また素晴らしいテキストロールプレイ + ングゲームである NetHack (ports コレクションにあります) + はゲーム中の楽器の演奏でこのデバイスを使うように設定を + することができます (訳注:日本語化されたJNetHackもportsに + あります). + + <p><ref id="kernelconfig:pcaudio" name="pca0"> デバイスの + 項も参照してください. + + </descrip> + + <sect><heading>デバイスノードを作る<label id="kernelconfig:nodes"></heading> + + <p>カーネル内のほとんどすべてのデバイスは対応する ``node'' エント + リが <tt>/dev</tt> ディレクトリにあります. これらのノードは普 + 通のファイルのように見えますが, 実際にはプログラムがデバイスに + アクセスするのに用いるカーネル内への特別なエントリです. + シェルスクリプトである <tt>/dev/MAKEDEV</tt>はオペレーティング + システムを最初にインストールする時に実行され, サポートされてい + る大部分のデバイスのノードを作ります. + しかし, <em>すべての</em>ノードが作られるわけではありませんので + 新しいデバイスのサポートを加える時は対応するエントリがこのディ + レクトリにあるかどうか確認してもしなければ, 作ってください. + 以下に例を示します. + + IDE CD-ROMのサポートをカーネルに加えるとします. 次の行 + を加えます. + +<tscreen><verb> +controller wcd0 +</verb></tscreen> + + これにしたがって, <tt>/dev</tt>ディレクトリに <tt>wcd0</tt>で始ま + るエントリを捜してください. 1文字が後ろにつくかもしれません. 後 + ろについた文字が `c'であるか先に `r'のつくエントリは `raw'デバ + イスを示します. + それらのファイルがないことが明らかになったとします. そこで + <tt>/dev</tt> ディレクトリに移動して次のようにタイプします. + + +<tscreen><verb> +# sh MAKEDEV wcd0 +</verb></tscreen> + + スクリプトの実行が終ったら <tt>/dev</tt>に <tt>wcd0c</tt> と + <tt>rwcd0c</tt> エントリがあることを確認してください. これによ + り正しく実行されたことがわかります. + + + サウンドカードの場合のコマンドは次の通りです. +<tscreen><verb> +# sh MAKEDEV snd0 +</verb></tscreen> + + これにより対応するエントリが作られます. 以上の簡単な手順を + エントリのない GENERICに含まれないデバイスではおこなうことになり + ます. + + <quote><em/注:/ すべての SCSIコントローラは同じ <tt>/dev</tt>の + エントリを使用しますのでノードを作る必要はありません. またネッ + トワークカードと SLIP/PPP疑似デバイスは <tt>/dev</tt>にはエント + リがありませんのでこれらについても作る必要がありません. + </quote> + +<sect><heading>問題が起きた場合には<label id="kernelconfig:trouble"></heading> + + <p>カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま + す. + + <descrip> + + <tag>Config コマンドの失敗</tag> + + <p> カーネルにあなたの設定をおこなった場合で <tt>config</tt>コ + マンドが失敗したのであれば, 多分どこかで単純な間違いを + やっているのでしょう. さいわい, <tt>config</tt>はトラ + ブルの起きた行番号を出力しますので <tt>vi</tt>で素早く + 見つけることができます. 例えばもし次のように出力されれ + ば, + + +<tscreen><verb> +config: line 17: syntax error +</verb></tscreen> + + <tt>vi</tt>のコマンドモードで ``17G''とタイプすればあな + たは問題のところへ飛ぶことができます. GENERIC カーネル + のファイルや他のリファレンスと比較して注意深く修正して + ください. + + + <tag>Make コマンドの失敗</tag> + + <p> <tt>make</tt> コマンドが失敗した場合には, カーネル設定で + <tt>config</tt>がとらえられなかったような間違いをして + いることが多いようです. ふたたびコン + フィグレーションを見直してください. それでも問題を解決 + することができなければ &a.questions + へあなたのカーネルのコンフィグレーションをつけてメー + ルしてください. 誰かが素早く間違いを見つけてくれるで + しょう. + + <tag>カーネルがブートしない<label id="kernelconfig:noboot"></tag> + + <p>新しいカーネルがブートしなかったり, デバイスの認識をしな + い場合でもあわてないでください! さいわい, BSDは利用で + きないカーネルから復帰する優れたメカニズムがあります. + FreeBSDの bootプロンプトでリターンキーを押すかわりに + 単にブートさせたいカーネルの名前 (例えば + ``kernel.old'') をタイプするだけです. カーネルの再設定 + をおこなう場合に現在のカーネルを利用できるように取ってお + くのはよい考えです. + + 問題のないカーネルでブートした後にあなたのコンフィグレー + ションファイルを調べ, 再び構築を試みてください. + <tt>/var/log/messages</tt> ファイルにはすべての成功した + ブートのカーネルのメッセージやその他の記録があり, これ + は助けになる情報の一つでしょう. また, + <tt>dmesg(8)</tt>コマンドは現在のブート時のカーネルメッ + セージを出力します. + + <quote><em/注:/ カーネルの構築中にトラブルが起きた時に使 + うために GENERICや他のカーネルを次の構築で消されない + ように異る名前で保存するようにしてください. + <tt>kernel. old</tt>は新しいカーネルをインストールする + 時に, その一つ前にインストールしたうまく動かないかもしれ + ないカーネルで上書きされてしまいますので当てにできませ + ん. またできる限り早く動作しているカーネルを本来の + ``kernel''の位置に移動させてください. そうしないと + <tt>ps(1)</tt>のようなコマンドが正しく動きません. + <tt>make</tt> でインストールされたカーネルのファイルを + (別のカーネルに戻すために) 「アンロック」するための特別 + のコマンドは +<tscreen><verb> +# chflags noschg /kernel +</verb></tscreen> + です. また, 新しい置き換えたカーネルあるいは重要ファイ + ルを動かしたり変更されないように「ロック」するには + 次のようにします. +<tscreen><verb> +# chflags schg /kernel +</verb></tscreen> + </quote> + + <tag>カーネルは動くが <tt>ps</tt> は動かない!</tag> + + <p>システムユーティリティと異るバージョンのカーネルをインス + トールした場合, 例えば 実験的に ``2.2.0''のカーネルを + 2.1.0-RELEASEシステム上にインストールするような場合, + <tt>ps(1)</tt>や <tt>vmstat(8)</tt>のような多くのシ + ステムステータスコマンドは動かなくなります. <tt>libkvm</tt> を + 再コンパイルしてこれらのユーティリティを作りなおす必要がありま + す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ + ンのカーネルを使うことが普通はあまりよくない理由の一つです. + + </descrip> diff --git a/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml b/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml new file mode 100644 index 000000000000..7b3ab35c314d --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/kerneldebug.sgml @@ -0,0 +1,419 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.10 --> + +<chapt><heading>カーネルデバッグ<label id="kerneldebug"></heading> + +<p><em>原作 &a.paul; and &a.joerg;</em> +<p><em>訳: &a.yoshiaki;. <newline> + 2 November 1996. </em> + +<sect><heading>kgdbによるカーネルのクラッシュダンプのデバッグ</heading> + + <p>ここではクラッシュダンプ (crash dump : 訳注 この文脈では kernel 自身 + の異常によって停止した場合に出力されるイメージを指します) によるカー + ネルデバッグの方法を示します. + + ここではダンプするための十分なスワップ (swap) の容量があるものとし + ます. + もし複数のスワップパーティションを持ち, 最初のパーティションがダンプ + を保持するのに十分な大きさを持たない場合は別のダンプデバイスを使うよ + うに (<tt>config kernel</tt> 行で) カーネルのコンフィグをおこなうか, + dumpon(8)コマンドを使って別のデバイスを示すことができます. スワップ + をおこなわないデバイスへのダンプ, 例えばテープへのダンプは現在サポートさ + れていません. カーネルのコンフィグは <tt>config -g</tt> によって行っ + てください. + <ref id="kernelconfig" name="FreeBSDカーネルのコンフィグレーション"> + には FreeBSDのカーネルの設定の詳細がありますので参照してください. + + <tt>dumpon(8)</tt>コマンドを使ってどこへダンプするかカーネルに伝えて + ください(swapon(8)によってそのパーティションがスワップとして設定された + 後でなければならないことに注意してください). これは普通は + <tt>/etc/sysconfig</tt> や <tt>/etc/rc</tt>で設定されます. あるいは + 別の方法としてカーネルコンフィグレーションファイルの `config'行の `dump'節 で + ダンプデバイスをハードコードすることができます. この方法はあまりよくは + ありません. カーネルがブート時に crash する場合のクラッシュダンプを取り + たい時だけ使うべきです. + + <em><bf>Note:</bf> 以下では `<tt>kgdb</tt>'という用語は <tt>gdb</tt>を + カーネルデバッグモードで動かしていることを意味します. <tt>gdb</tt>を + <tt>-k</tt>オプションをつけて起動するか <tt>kgdb</tt>という名前でリン + クして起動することでこのモードになります. デフォルトでは このリンク + は作られていません.</em> + + カーネルを作った時にそのコピーを <tt>kernel.debug</tt>という名前で作 + りましょう. また, オリジナルに対して <tt>strip -d</tt>を実行します. + オリジナルを普通にインストールします. また strip していないカーネル + も同様にインストールすることができますが, シンボルテーブルの参照時間 + がいくつかのプログラムでは劇的に増加するでしょう. また, カーネル全体 + はブート時に読み込まれスワップアウトされないため数メガバイトの物理メ + モリが無駄になります. + + 例えばブートプロンプトで新しいカーネルの名前をタイプすることによって, + 新しいカーネルをテストした場合で, 再びシステムを動かすのに別のカーネ + ルで立ち上げることが必要な場合はブートプロンプトで <tt>-s</tt>フラグ + を使いシングルユーザの状態にしてください. そして以下のような操作をおこな + います. +<tscreen><verb> + fsck -p + mount -a -t ufs # /var/crash 用のファイルシステムを書き込み可能にする + savecore -N /kernel.panicked /var/crash + exit # ...マルチユーザモードへ移行 +</verb></tscreen> + ここに示した <tt>savecore(8)</tt>は (現在動いているものとは別の) カー + ネルのシンボル名の抽出をおこなうために使っています. 抽出はデフォルトで + は現在動いているカーネルに対しておこなわれ, クラッシュダンプとカーネルシンボ + ルのくい違いのためにまったく何もしません (訳注:そのためにオプション + で実際にダンプをおこしたカーネルを指定します). + + クラッシュダンプの起きた後に <tt>/sys/compile/WHATEVER</tt>へ行き +<tt>kgdb</tt>を動かします. <tt>kgdb</tt> より次のようにします. +<tscreen><verb> + symbol-file kernel.debug + exec-file /var/crash/kernel.0 + core-file /var/crash/vmcore.0 +</verb></tscreen> + こうすると, クラッシュダンプを使ってカーネルソースを他のプログラムと同様に +デバッグすることができます. + + 次に <tt>kgdb</tt> での手順のセッションのログを示します. 長い行は読 + みやすくするために改行しました. また, 参照のために行番号を入れてあり + ます. ただし, これは実際の pcvtコンソールドライバの開発中の実際のエ + ラーのトレースです. +<tscreen><verb> + 1:Script started on Fri Dec 30 23:15:22 1994 + 2:uriah # cd /sys/compile/URIAH + 3:uriah # kgdb kernel /var/crash/vmcore.1 + 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel...done. + 5:IdlePTD 1f3000 + 6:panic: because you said to! + 7:current pcb at 1e3f70 + 8:Reading in symbols for ../../i386/i386/machdep.c...done. + 9:(kgdb) where + 10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767) + 11:#1 0xf0115159 in panic () + 12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698) + 13:#3 0xf010185e in db_fncall () + 14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073) + 15:#5 0xf0101711 in db_command_loop () + 16:#6 0xf01040a0 in db_trap () + 17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723) + 18:#8 0xf019d2eb in trap_fatal (...) + 19:#9 0xf019ce60 in trap_pfault (...) + 20:#10 0xf019cb2f in trap (...) + 21:#11 0xf01932a1 in exception:calltrap () + 22:#12 0xf0191503 in cnopen (...) + 23:#13 0xf0132c34 in spec_open () + 24:#14 0xf012d014 in vn_open () + 25:#15 0xf012a183 in open () + 26:#16 0xf019d4eb in syscall (...) + 27:(kgdb) up 10 + 28:Reading in symbols for ../../i386/i386/trap.c...done. + 29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\ + 30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\ + 31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\ + 32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ + 33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\ + 34:ss = -266427884}) (../../i386/i386/trap.c line 283) + 35:283 (void) trap_pfault(&frame, FALSE); + 36:(kgdb) frame frame->tf_ebp frame->tf_eip + 37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done. + 38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\ + 39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403) + 40:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); + 41:(kgdb) list + 42:398 + 43:399 tp->t_state |= TS_CARR_ON; + 44:400 tp->t_cflag |= CLOCAL; /* cannot be a modem (:-) */ + 45:401 + 46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) + 47:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); + 48:404 #else + 49:405 return ((*linesw[tp->t_line].l_open)(dev, tp, flag)); + 50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ + 51:407 } + 52:(kgdb) print tp + 53:Reading in symbols for ../../i386/i386/cons.c...done. + 54:$1 = (struct tty *) 0x1bae + 55:(kgdb) print tp->t_line + 56:$2 = 1767990816 + 57:(kgdb) up + 58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\ + 59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126) + 60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); + 61:(kgdb) up + 62:#2 0xf0132c34 in spec_open () + 63:(kgdb) up + 64:#3 0xf012d014 in vn_open () + 65:(kgdb) up + 66:#4 0xf012a183 in open () + 67:(kgdb) up + 68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\ + 69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\ + 70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \ + 71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \ + 72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673) + 73:673 error = (*callp->sy_call)(p, args, rval); + 74:(kgdb) up + 75:Initial frame selected; you cannot go up. + 76:(kgdb) quit + 77:uriah # exit + 78:exit + 79: + 80:Script done on Fri Dec 30 23:18:04 1994 +</verb></tscreen> + 上の出力についてのコメントをします. + +<descrip> +<tag/line 6:/ これは DDB (後述) からのダンプです. このため ``because you + said to!'' という panicコメントがつき, ページフォルトのト + ラップによって DDBに入ったことが原因の, やや長いスタックトレー + スがあります. +<tag/line 20:/ スタックトレースでのこれは <tt>trap()</tt>関数の位置で + す. +<tag/line 36:/ 新しいスタックフレームの使用を指定しています. これは現 + 在は必要ありません. trapの場合ではスタックフレームは正 + しい場所を指していると考えられます. (私は新しいコアダンプ + を持っていません. 私のカーネルは長い間 panicを起こしていま + せん.) ソースコードの 403行を見ると,``tp''ポインタのアク + セスが失敗しているか配列のアクセスが範囲外である可能性が高 + いことがわかります. +<tag/line 52:/ 怪しいポインタですが, アクセスは正常におこなえました. +<tag/line 56:/ ところが, 明らかにポインタはゴミを指しています. これで + エラーを見つけました! (ここのコードの部分からはよくわかり + ませんが, <tt>tp->t_line</tt>はコンソールデバイスの規定 + する行を参照しているので, もっと小さな整数でなければなりませ + ん. ) +</descrip> + +<sect><heading>突然ダンプした場合の解析</heading> + +<p>カーネルが予想もしない時にコアダンプして <tt>config -g</tt> + を行ってコンパイルされていなかった場合にはどうしたらよいでしょう. + すべてが失われるわけではありません. パニックを起こさないでください. + + もちろん, クラッシュダンプを使えるようにする必要があります. + 使い方は前述の部分を見てください. + + カーネルのコンパイルディレクトリで, (Makefileの) + <tt>COPTFLAGS?=-O</tt>とある行を編集します. <tt>-g</tt>オプショ + ンをここに加えます(オプティマイズオプションのレベルは <em>変更しな + いでください</em> ). もし大まかにコードのどこで問題が起きているか (例 + えば, 上の例では <tt>pcvt</tt>ドライバ) わかっているのでしたら, その部 + 分のコードについてのすべてのオブジェクトファイルを消してください. カーネ + ルを再構築しましょう. Makefileのタイムスタンプの変更により, 例えば + <tt> trap.o </tt>などのいくつかの他のオブジェクトファイルも作り直さ + れます. 少しの幸運があれば, <tt>-g</tt>オプションが追加されても作ら + れるコードは変更されず, いくらかのデバッグシンボル以外には問題を + 起こしたコードとそっくりな新しいカーネルを手に入れることができます. + 少なくとも <tt>size</tt>コマンドで古い方と新しい方のサイズを比較すべ + きです. これが食い違っていれば, 多分あきらめなければならないでしょう. + + ダンプを使って前述のように動かして調べます. デバッグシンボルは + 必ずしも十分ではありません. 上の例ではスタックトレースでいくつかの関 + 数の行番号や引数リストが表示されないかもしれません. もしより多くのデ + バッグシンボルが必要であれば,十分になるまで適切なオブジェクトファイ + ルを消して (makeして) <tt>kgdb</tt>セッションを繰り返してください. + + これは必ずしもうまく動くと保証はできません. しかしほとんどの場合でう + まくいくでしょう. + +<sect><heading>DDBを使ったオンラインカーネルデバッグ</heading> + +<p> <tt>kgdb</tt> は非常に高レベルのユーザインタフェースを提 + 供するオフラインデバッガですが, いくつかのことはできません. + (できないことの中で)極めて重要なことはカーネルコードへのブレークポイ + ントの設定とシングルステップ実行です. + + カーネルの低レベルデバッグが必要であれば, DDBと呼ばれる on-lineデバッ + ガが使えます. ブレークポイントの設定, シングルステップのカーネルの実 + 行, 変数の検査と変更などができます. ただし,これはカーネルのソースファ + イルにアクセスすることはできません. <tt>kgdb</tt>のようにすべてのデ + バッグ情報にはアクセスできず, globalと staticのシンボルにアクセス + することができるだけです. + + カーネルに DDBを含めるためにはコンフィグファイルに次のようなオプショ + ンを加えて, + +<tscreen><verb> + options DDB +</verb></tscreen> + + 再構築をおこないます. ( FreeBSDのカーネルの設定の詳細については<ref + id="kernelconfig" name="FreeBSDカーネルのコンフィグレーション">を参照してくださ + い. もしブートブロックが古いバージョンですと, デバッガのシンボルが完 + 全にはロードされないかもしれませんので注意してください. DDBシンボル + がロードされるようにブートブロックを最新の物にアップデートしてくださ + い) + + DDB カーネルの実行において, DDBに入るいくつかの方法があります. 最初 + の, 最も早い方法はブートプロンプトが出ている時に<tt>-d</tt>のブート + フラグをタイプすることです. カーネルはデバッグモードで起動し, デバ + イスのプローブ以前に DDBに入ります. したがって, デバイスのプローブ/初期 + 設定ファンクションのデバッグができます. + + 2つ目のシナリオはキーボードのホットキーで, 通常は Ctrl-Alt-ESCです. + syscons ではホットキーは再設定することができ, 配付されているいくつかの + キーマッピングでは別のキーに再設定されていますので確認しておいてください. + シリアルラインの BREAKを使って シリアルコンソールから DDBへ入ることを可 + 能にするオプションもあります (カーネルコンフィグレーションファイルの + ``<tt>options BREAK_TO_DEBUGGER</tt>''). これは 多くのつまらないシリ + アルアダプタが, 例えばケーブルを引き抜いた時に BREAK状態を意味もなく + 作り出してしまうのでデフォルトでは無効になっています. + + 3つ目は, DDBを使うようになっているカーネルがパニック状態になると DDB + へ入るというものです. このため, 無人運転するマシンのカーネルにDDBを + 入れるのは賢明ではありません. + + DDBのコマンドはおおまかには <tt>gdb</tt> のいくつかのコマンドと似て + います。おそらく最初にブレークポイントを設定する必要があるでしょう。 +<tscreen><verb> + b function-name + b address +</verb></tscreen> + + 数値はデフォルトでは16進数で, シンボル名とはまったく異ります. 16進数で + <tt>a</tt>-<tt>f</tt> の文字で始まる場合は, 先頭に + <tt>0x</tt>をつける必要があります(それ以外の数字の場合はどちらでもか + まいません). <tt>function-name + 0x103</tt>のような単純な式を使うこ + とができます. + + 割り込みされたカーネルから処理を続行するためには, +<tscreen><verb> + c +</verb></tscreen> + とタイプするだけです. + スタックのトレースには +<tscreen><verb> + trace +</verb></tscreen> + とします. + + DDB にホットキーで入った場合は, カーネルはその (ホットキーの) 割り込み + の処理を行っていますのでスタックトレースはあまり役にたたないことに注 + 意してください. + + ブレークポイントを削除したい場合は, +<tscreen><verb> + del + del address-expression +</verb></tscreen> + とします. 最初の形式はブレークポイントにヒットしたすぐ後で使うことが + でき, 現在のブレークポイントを削除します. 2番目の形式では任意のブレー + クポイントを削除することができますが, 次の形式で得られるような正確な + アドレスを与えることが必要です. +<tscreen><verb> + show b +</verb></tscreen> + カーネルをシングルステップ実行させるには +<tscreen><verb> + s +</verb></tscreen> + としてみてください. これは関数呼出し先までステップ実行 (step into + function) するでしょう. 次のステートメントが終了するまでのDDBトレースは +<tscreen><verb> + n +</verb></tscreen> + によっておこなうことができます. + + <bf>Note:</bf> これは <tt>gdb</tt> の `next' 命令とは異ります. + <tt>gdb</tt>の `finish'命令と似ています. + + メモリ上のデータを調べるには (例として) 次のようにします. +<tscreen><verb> + x/wx 0xf0133fe0,40 + x/hd db_symtab_space + x/bc termbuf,10 + x/s stringbuf +</verb></tscreen> + word/halfword/byte 単位でアクセスをおこない, hex (16進) /dec (10進) / +char (文字) /string (文字列) で表示します. カンマの後ろの数字はオブジェク +トカウントです. 次の 0x10個の要素を表示するには, 単純に +<tscreen><verb> + x ,10 +</verb></tscreen> + とします. 同様に次のように使うことができます. +<tscreen><verb> + x/ia foofunc,10 +</verb></tscreen> + <tt>foofunc</tt>の最初の 0x10個の命令語をディスアセンブルし, + <tt>foofunc</tt>の先頭からのオフセットとともに表示します. + + メモリの内容を変更するには writeコマンドを使います. +<tscreen><verb> + w/b termbuf 0xa 0xb 0 + w/w 0xf0010030 0 0 +</verb></tscreen> + コマンドモディファイアの (<tt>b</tt>/<tt>h</tt>/<tt>w</tt>) はデータを + 書くサイズを定義し, これに続く最初の式は書き込むアドレス, 残りがこれ + に続く連続するメモリアドレスに書き込まれるデータになります. + + 現在のレジスタ群の内容を知りたい場合は +<tscreen><verb> + show reg +</verb></tscreen> + とします. また, 単一のレジスタの値を表示するには, 例えば +<tscreen><verb> + p $eax +</verb></tscreen> + とします. また値の変更は +<tscreen><verb> + set $eax new-value +</verb></tscreen> + とします. + + DDBからカーネルの関数を呼び出す必要がある場合は, 単に +<tscreen><verb> + call func(arg1, arg2, ...) +</verb></tscreen> + とします. return 値が出力されます. + + 動いているプロセスの <tt>ps(1)</tt>スタイルの概要は +<tscreen><verb> + ps +</verb></tscreen> + です. + + カーネルの失敗の原因の調査が終わったらリブートすべきです. それまでの + 不具合によりカーネルのすべての部分が期待するような動作をしているわけ + ではないということを忘れないでください. 以下のうちいずれかの方法でシ + ステムのシャットダウンおよびリブートを行ってください. +<tscreen><verb> + call diediedie() +</verb></tscreen> + + カーネルをコアダンプしてリブートしますので, 後で kgdbによってコアの高 + レベル解析をすることができます. このコマンドは通常 + `<tt>continue</tt>'命令にエイリアスされています. + `<tt>panic</tt>'にエイリアスされている +<tscreen><verb> + call boot(0) +</verb></tscreen> + は動いているシステムを `clean' に shut downするよい方法です. すべて + のディスクを <tt>sync()</tt>して最後にリブートします. ディスクとカー + ネルのファイルシステムインタフェースが破損していない限り, ほぼ完全 + に `clean'にシャットダウンするよい方法でしょう. + +<tscreen><verb> + call cpu_reset() +</verb></tscreen> + は大惨事を防ぐための最後の手段で「赤い大きなボタン」を押すのとほとんど + 同じです.(訳注: リセットボタンを押すのとほぼ同じであるという意味です) + + 短いコマンドの要約は +<tscreen><verb> + help +</verb></tscreen> + をタイプします. ただし, デバッグセッションのために <tt>ddb(4)</tt> の + マニュアルページのプリントアウトを用意しておくことを強くお奨めします. + カーネルのシングルステップ中にオンラインマニュアルを読むことは難しい + ということを覚えておいてください. + +<sect><heading>コンソールドライバのデバッグ</heading> + +<p>DDBを動かすためにはコンソールドライバが必要ですから, コンソールドラ + イバ自身に不具合のある場合は複雑になります. シリアルコンソールを利 + 用する方法 (ブートブロックを変更するか <tt>Boot:</tt>プロンプトで + <tt><bf>-h</bf></tt>と入力する) を思い出してください. そして標準ター + ミナルを最初のシリアルポートに設定します. DDBは, もちろんシリアルコ + ンソールを含むいずれのコンソールドライバの設定でも動作します. diff --git a/share/doc/ja_JP.EUC/handbook/linuxemu.sgml b/share/doc/ja_JP.EUC/handbook/linuxemu.sgml new file mode 100644 index 000000000000..c3ef98fdd965 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/linuxemu.sgml @@ -0,0 +1,714 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.13 --> + +<chapt><heading>Linux エミュレーション<label id="linuxemu"></heading> + +<p><em>原作: &a.brian and &a.rich;</em> +<p><em>訳: &a.kiroh;.<newline>24 September 1996.</em> + +<sect><heading>Linux エミュレータのインストール</heading> + +<p> +FreeBSD での Linux エミュレーションは, 大部分の Linux バイナリ(a.out +および ELF フォーマット)を実行できる状態になっています. -STABLE ブラン +チでのエミュレーションでは, Linux DOOM や Mathematica が実行できます. +FreeBSD-current でのエミュレーションは, さらに強化されており, Linux 用 +の Quake, Abuse, IDL, netrek など, 多数のソフトウェアが実行できます. + +Linux オペレーティングシステムには、特有の機能がいくつかあり, FreeBSD +でサポートされていないものもあります. Linux の /proc ファイルシステム +を使ったバイナリは, FreeBSD では実行できません (FreeBSD で使用可能な +/proc ファイルシステムとは仕様が異なっているためです). また仮想8086モー +ドを有効にするなど, i386 に特有なシステムコールを使っている場合も実行 +できません. + +<p> +カーネルが Linux エミュレーションを使用するように構築されているかを調 +べるには, Linux のバイナリを実行してみるのが簡単です. +<tscreen> +<verb> +linux-executable: Exec format error. Wrong Architecture. +</verb> +</tscreen> +このようなエラーメッセージが表示されるようであれば, Linux との互換性は +サポートされていません. カーネルを再構築してインストールする必要があり +ます. + +Linux エミュレーションの設定方法は, 使用している FreeBSD のバージョン +によって多少異なっています. + +<sect1><heading>2.1-STABLE への Linux エミュレーションのインストール</heading> + +<p>2.1-STABLE の GENERIC カーネルは, Linux との互換性を保つように構築 +されていません. カーネルの再構築が必要です. 再構築をおこなうには, 2つの方 +法があります. 1つは, エミュレータをカーネル自体にスタティックリンクす +る方法. もう1つは, 動的に Linux ローダブルカーネルモジュール(LKM)をロー +ドするようにする方法です. + +<p>エミュレータを有効にするには, 以下をコンフィグレーションファイル + (/sys/i386/conf/LINT など) に追加します. +<tscreen> +<verb> +options COMPAT_LINUX +</verb> +</tscreen> +Linux DOOM などのアプリケーションを実行したい場合は, 共有メモリも有効 +にしておかなければなりません. 以下を追加します. +<tscreen> +<verb> +options SYSVSHM +</verb> +</tscreen> +Linux のシステムコールを使用するには, 4.3BSD のシステムコールとの互換 +性が保たれていることが必要です. 以下の行が含まれていることを確認してく +ださい. +<tscreen> +<verb> +options "COMPAT_43" +</verb> +</tscreen> + +LKM を使用せずエミュレータをカーネルにスタティックにリンクしたい場合は, +以下の行を追加します. +<tscreen> +<verb> +options LINUX +</verb> +</tscreen> +<ref id="kernelconfig" name="FreeBSDカーネルのコンフィグレーション">の節の記述に +したがって config と, 新しいカーネルのインストールをおこなってください. + +LKM を使用する場合は, ローダブルモジュールをインストールしなければなり +ません. カーネルとローダブルモジュールのバージョンが異なると, カーネル +がクラッシュする場合がありますので, 安全を期すためには, カーネルをイン +ストールするごとに, LKM も再インストールしてください. +<tscreen> +<verb> +% cd /usr/src/lkm/linux +% make all install +</verb> +</tscreen> +カーネルと LKM のインストールが終了したら, root で `linux' コマンドを +実行することで LKM をロードできます. +<tscreen> +<verb> +% linux +Linux emulator installed +Module loaded as ID 0 +% +</verb> +</tscreen> +LKM がロードされたかどうかを確認するには, `modstat' を実行します. +<tscreen> +<verb> +% modstat +Type Id Off Loadaddr Size Info Rev Module Name +EXEC 0 3 f0baf000 0018 f0bb4000 1 linux_emulator +% +</verb> +</tscreen> +システムブート時に, LKM をロードするようにするには, 2つの方法がありま +す. FreeBSD-current または FreeBSD-STABLE では, /etc/sysconfig を, +<tscreen> +<verb> +linux=YES +</verb> +</tscreen> +のように, NO を YES に変更してください. FreeBSD 2.1 RELEASE およびそれ以 +前のバージョンでは, そのような行はありませんので, /etc/rc.local に以下 +の行を追加する必要があります. +<tscreen> +<verb> +linux +</verb> +</tscreen> + +<sect1><heading>2.2-current への Linux エミュレーションのインストール +</heading> + +<p>-current では, ``options LINUX'' や ``options COMPAT_LINUX'' を指定する必要 +はなくなりました. Linux エミュレーションは LKM(「ローダブルカーネルモジュール」) +を使用して, リブートせず簡単にインストールできます. スタートアッ +プファイルで以下のように指定します. +<enum> +<item>/etc/sysconfig に以下の行が必要です. +<tscreen> +<verb> +linux=YES +</verb> +</tscreen> +<item> これは結果的に, /etc/rc.i386 の以下の指定を有効にします. +<tscreen> +<verb> +# Start the Linux binary emulation if requested. +if [ "X${linux}" = X"YES" ]; then + echo -n ' '; linux + # XXX BOGUS - Linux script shouldn't make any output on success +fi +</verb> +</tscreen> +</enum> + +<p>実行されたかどうかを確認するには, modstat を使用します. +<tscreen> +<verb> +% modstat +Type Id Off Loadaddr Size Info Rev Module Name +EXEC 0 4 f09e6000 001c f09ec010 1 linux_mod +% +</verb> +</tscreen> +FreeBSD-current システムの中には, modstat の実行がうまくいかないものがあ +るという報告もあります. 何らかの理由で, Linux LKM がロードできな +い場合は, +<tscreen> +<verb> +options LINUX +</verb> +</tscreen> +をカーネルの設定ファイルに指定して, エミュレータをスタティックにリンク +してください. <ref id="kernelconfig" name="FreeBSDカーネルのコンフィグレーション"> +の節の記述にしたがって config と, 新しいカーネルのインストールをおこ +なってください. + +<sect1><heading>Linux ランタイムライブラリのインストール</heading> + +<sect2><heading>linux_lib port を使用してのインストール</heading> + +<p>多くの Linux アプリケーションはシェアードライブラリを使用しますので, +シェアードライブラリのインストールが終了しなければ, エミュレータのイン +ストールは終わったことになりません. 手動でもインストールできますが, +linux_lib port を使用するのが簡単です. +<tscreen> +<verb> +% cd /usr/ports-current/emulators/linux_lib +% make all install +</verb> +</tscreen> + +これで, Linux エミュレータが動作するようになったはずです. 伝説(とメー +ルのアーカイブ :-) によれば, Linux エミュレーションは, ZMAGIC ライブラ +リとリンクされている Linux バイナリに対して, 最もうまく動作するようで +す. Slackware V2.0 などに使われている QMAGIC ライブラリだと, エミュレー +タが胸やけするかもしれません. これを書いている時点(1996年5月)で, ELF +エミュレーションは依然実験段階ですが, かなりうまく動作しているようです. +マイナーバージョンの不一致などを報告するプログラムもありますが, 普通は +問題にならないようです. + +<sect2><heading>手動でのライブラリのインストール</heading> + +<p>``ports'' ディストリビューションが手元にない場合は, 手動でライブラ +リをインストールする必要があります. プログラムが必要とする Linux のシェ +アードライブラリとラインタイムリンカが必要です. また Linux ライブラリ +の用の``shadow root'' ディレクトリ, /compat/linux, を作成する必要があ +ります. FreeBSD で動作する Linux のプログラムが使用するシェアードライ +ブラリは,まずこのファイルツリーから検索されます. 例えば, Linux のプロ +グラムが/lib/libc.so をロードしようとした場合には, FreeBSD は, まず +/compat/linux/lib/libc.so を開こうとします. 存在にしなかった場合には, +次に /lib/libc.so を試します. シェアードライブラリは, Linux の ld.so +が参照するライブラリではなく, /compat/linux/lib 以下にインストールする +必要があります. + +FreeBSD-current では, /compat/linux にかかわる動作が多少異なりま +す. -current では, ライブラリだけでなくすべてのファイルが, ``shadow +root'' /compat/linux から検索されます. + +Linux のプログラムが必要とするシェアードライブラリを探す必要があるのは, +FreeBSD のシステムに Linux のプログラムをインストールする最初の数回だ +けでしょう. それが過ぎれば, 十分な Linux のシェアードライブラリがシス +テムにインストールされ, 新しくインストールした Linux のバイナリも, 余 +計な作業をせずに動作させることができるようになります. + +<sect2><heading>シェアードライブラリの追加</heading> + +<p> +linux_port をインストールした後に, アプリケーションが必要なライブラリ +が存在しないというエラーを出したらどうしたらよいでしょうか? Linux のバ +イナリがどのシェアードライブラリを必要とし, そしてどこで入手できるか, +どのように探したらよいでしょうか? 基本的には, 以下の2種類の方法があり +ます(以下の手順にしたがう場合には, 必要なインストール作業をおこなう FreeBSD シ +ステム上で root として作業をおこなう必要があります). + +<p>Linux システムを使用でき, 必要なシェアードライブラリが調べられる場 +合には, 単に FreeBSD のシステムにそのライブラリをコピーするだけで +す. 例えば, DOOM の Linux バイナリを ftp で持ってきたとします. 使用で +きる Linux システムの上に転送して, `ldd linuxxdoom' とやれば, 必要とす +るシェアードライブラリがチェックできます. + +<tscreen> +<verb> +% ldd linuxxdoom +libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 +libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 +libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 +</verb> +</tscreen> + +<p> +最後のカラムに表示されているすべてのファイルを持って来て, /compat/linux の下 +に置き, 最初のカラムに示されるファイル名からシンボリックリンクを張る必 +要があります. すなわち, FreeBSD のシステムで, 以下のようなファイルが必 +要となります. +<tscreen> +<verb> +/compat/linux/usr/X11/lib/libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 +</verb> +</tscreen> + +<p> +最初のカラムに表示されているファイルと, メジャーバージョンの同じ Linux +シェアードライブラリを既にインストールしている場合は, 新たにコピーする +必要はありません. 既にあるライブラリで動作するはずです. ただ, 新しいバー +ジョンのシェアードライブラリがある場合は, 新しいものをコピーすることを +お奨めします. 新しいライブラリにシンボリックリンクを変更したら, 古いラ +イブラリは削除してかまいません. +<tscreen> +<verb> +/compat/linux/lib/libc.so.4.6.27 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.27 +</verb> +</tscreen> +以上のようなライブラリがインストールされており, 新しいバイナリに対する +ldd の出力が以下のようになる場合を考えます。 +<tscreen> +<verb> +libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 +</verb> +</tscreen> + +このように最後の番号が1つか2つ古いだけならば, 普通は +/lib/libc.so.4.6.29 をコピーする必要はありません. わずかに古いライブラ +リでも, プログラムは動作するはずだからです. もちろん, 新しいライブラリ +と置き換えて, 以下のようにしても構いません. +<tscreen> +<verb> +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29 +</verb> +</tscreen> + +<p>シンボリックリンクのメカニズムは, Linux バイナリに<em>のみ</em>必要 +なことに注意してください. FreeBSD のランタイムリンカは, メジャーリビジョ +ン番号の一致したライブラリを検索しますから, ユーザが気にする必要はあり +ません. + +<sect2><heading>ld.so の設定 -- FreeBSD-current のみ</heading> + +<p>このセクションは, FreeBSD-current にのみ当てはまります. +FreeBSD-STABLE を使用している方は, 飛ばしてください. + +<p> +最後に, FreeBSD-current を使われている場合は, Linux のランタイムリンカと +その設定ファイルがシステムに導入されていることを確認してください. +これらのファイルは, FreeBSD システムの適切な位置(/compat/linux ツリー以 +下)にコピーされている必要があります. + +<tscreen> +<verb> +/compat/linux/lib/ld.so +/compat/linux/etc/ld.so.config +</verb> +</tscreen> + +<p>使用できる Linux システムがない場合は, 必要なファイルは近くの FTP サイ +トから入手してください. 各種ファイルの入手先についての情報を, 後に付 +けておきます. ここでは, 必要なファイルの入手先がわかっているものとしま +す. + +<p> +以下のファイルを取得します(バージョンの不一致を避けるために, すべて同一 +の FTP サイトから入手してください). 取得したファイルを /compat/linux +以下にインストールしてください(例えば, /foo/bar は, +/compat/linux/foo/bar にインストールされます). + +<tscreen> +<verb> +/sbin/ldconfig +/usr/bin/ldd +/lib/libc.so.x.y.z +/lib/ld.so +</verb> +</tscreen> + +<p>ldconfig と ldd は, /compat/linux の下にある必要はありません. システム +のどこにあっても構いません. ただ, FreeBSD の同名のコマンドと間違えないように +注意してください. /usr/local/bin の中に, ldconfig-linux, ldd-linux とし +てインストールするのもよいアイディアでしょう. +<p> +/compat/linux/etc/ld.so.conf ファイルを作成し, Linux ラインタイムリンカ +がシェアードライブラリを検索するディレクトリを記述してください. このファ +イルはプレインテキストファイルで, それぞれの行にディレクトリ名を含みま +す. /lib と /usr/lib は標準ですから, 以下のようなディレクトリが追加できま +す. +<tscreen> +<verb> +/usr/X11/lib +/usr/local/lib +</verb> +</tscreen> + +<p> +Linux バイナリが, /lib/libc.so というライブラリを開いた場合, エミュレー +タは内部で, ファイル名を /compat/linux/lib/libc.so にマップします. エ +ミュレータがライブラリを検索するために, すべての Linux のライブラリ +(/compat/linux/lib/libc.so, /compat/linux/usr/X11/lib/libX11.so など) +は, /compat/linux 以下にインストールされていなければなりません. + +<p>FreeBSD-current を使用している場合は, Linux の ldconfig プログラム +を実行する必要があります. +<tscreen> +<verb> +% cd /compat/linux/lib +% /compat/linux/sbin/ldconfig +</verb> +</tscreen> + +<p> +ldconfig はスタティックリンクされていますから, 実行するのにシェアードラ +イブラリを必要としません. ldconfig は, /compat/linux/etc/ld.so.cache +ファイルを作成し, すべてのシェアードライブラリの名前を格納します. ライ +ブラリの追加をおこなった場合には, ldconfig を再実行して, このファイルを作り +直さなければなりません. + +FreeBSD-STABLE では, /compat/linux/etc/ld.so.cache をインストールしたり, +ldconfig を実行したりしないでください. FreeBSD-stable では, システムコー +ルの実装方法が異なるため, ldconfig は使用されません. + +<p> +これで, libc シェアードライブラリを必要とする Linux バイナリを実行する設 +定が終了しました. ldd を ldd 自身に実行してテストしてください. +ldd-linux としてインストールしている場合は, 以下のような結果になるはず +です. + +<tscreen> +<verb> +% ldd-linux `which ldd-linux` +libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 +</verb> +</tscreen> + +<p>ここまで終了すれば, 新しい Linux のバイナリをインストールできます. +新しい Linux バイナリをインストールするときは, それがシェアードライブ +ラリを必要とするかどうか確認してください. 必要とする場合は, +/compat/linux 以下にインストールされているかどうか確認してください. こ +れは, Linux の ldd を新しいプログラムに対して実行し, 出力を確認するこ +とによりおこなえます. ldd(ldd(1)マニュアルページも参照してください)は, プ +ログラムが必要とするシェアードライブラリのリストを, majorname +(jumpversion) => fullname という形式で出力します. + +<p> +fullname のかわりに ``not found'' と出力される場合は, ライブラリの追加をす +る必要があります. 必要なライブラリの名前は, majorname に +libXXXX.so.N.mm という形式で示されています. Linux の FTP サイトで +libXXXX.so.N.mm を探し, インストールしてください. XXXX(名前)とN(メジャー +リビジョン番号)は一致している必要があります. マイナー番号 mm は, それほ +ど重要ではありませんが, なるべく最新のものをインストールするようにして +ください. + +<sect1><heading>ホストネームリゾルバの設定</heading> + +<p>DNS がうまく動作しなかったり, 以下のようなエラーメッセージが表示され +る場合は, /compat/linux/etc/host.conf ファイルを設定する必要があります. +<tscreen> +<verb> +resolv+: "bind" is an invalid keyword +resolv+: "hosts" is an invalid keyword +</verb> +</tscreen> +ファイルの内容を以下のように設定してください. +<tscreen> +<verb> +order hosts, bind +multi on +</verb> +</tscreen> +ここで, order は /etc/hosts を最初に検索し, 次にDNSを検索するように指定 +します. /compat/linux/etc/host.conf がインストールされていない場合は, +Linux のアプリケーションは, FreeBSD の /etc/host.conf を使用しようとして, +文法の違いによる警告を表示します. /etc/resolv.conf を使用してネームサー +バを設定していない場合には, `bind' を削除してください. + +<p>最後になりますが, FreeBSD-STABLE を使用している場合は, +RESOLV_HOST_CONF 環境変数を指定して, アプリケーションにホストテーブル +の検索方法を指定する必要があります. FreeBSD-current を使用している場合 +は, スキップしてください. /bin/csh を使っている場合は, 以下のようにし +ます. +<tscreen> +<verb> +setenv RESOLV_HOST_CONF /compat/linux/etc/host.conf +</verb> +</tscreen> + +/bin/shの場合は, 以下のようにします. +<tscreen> +<verb> +RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF +</verb> +</tscreen> + +<sect1><heading>必要なファイルを探すには</heading> + +<p> +注意: 以下の情報は, この文書が書かれた時点では有効ですが, FTP サイトの +名前, ディレクトリ, 配布ファイル名などは, 変更されている可能性がありま +す. +<p> +訳注: ここに取り上げられている FTP サイトは, 日本国内にもミラーサイト +が多数存在します。なるべく近くの FTP サイトからファイルを入手してくだ +さい. + +<p> +Linux は, いくつかのグループが, それぞれ独自のバイナリ配布セットを作成 +して配布しています. 配布セットは, ``Slackware'' や ``Yggdrasil'' など +の名前がつけられています. これらの配布セットは, 多くの FTP サイトから +入手できます. ファイルが展開されており, 必要なファイルのみを取得できる +場合もありますが, 通常は圧縮された配布セットの形で入手できます. 配布 +セットは, いくつかのサブディレクトリに, gzip で圧縮された tar ファイル +として格納されています. それぞれの配布セットの一次配布先は, 以下の通り +です. +<verb> +sunsite.unc.edu:/pub/Linux/distributions +tsx-11.mit.edu:/pub/linux/distributions +</verb> + +<p> +ヨーロッパのミラーサイトの例: +<verb> +ftp.luth.se:/pub/linux/distributions +ftp.demon.co.uk:/pub/linux/distributions +src.doc.ic.ac.uk:/packages/linux/distributions +</verb> + +<p> +混乱を避けるために, ここでは Slackware だけを取り上げます. この配布セッ +トは, 多くのサブディレクトリ内にある別々のパッケージから構成されていま +す. 通常, パッケージはインストールプログラムにより自動的に制御されま +すが, ``手動で''おこなうことも可能です. まず配布セットの中の, +``contents'' サブディレクトリの内容を書くにしてください. ここには多く +の小さなテキストファイルが含まれおり, それぞれのパッケージの内容が記述 +されています. 必要なファイルを探している場合は, まず contents 内のテキ +ストファイルを取得し, そのファイルの中から grep を使用して検索するのが, +最も速い方法でしょう. 以下に必要となるであろうファイルを, grep を使用 +して検索した例を示します. +<tabular ca=ll> +Library <colsep>Package <rowsep> +ld.so <colsep>ldso <rowsep> +ldconfig <colsep>ldso <rowsep> +ldd <colsep>ldso <rowsep> +libc.so.4 <colsep>shlibs <rowsep> +libX11.so.6.0 <colsep>xf_lib <rowsep> +libXt.so.6.0 <colsep>xf_lib <rowsep> +libX11.so.3 <colsep>oldlibs <rowsep> +libXt.so.3 <colsep>oldlibs <rowsep> +</tabular> + +<p> +この場合は, ldso, shlibs, xf_lib, oldlibs というパッケージが必要なこと +がわかります. それぞれのcontentsファイルの中で, ``PACKAGE LOCATION'' +と書いてある行を探してください. その行に, パッケージが含まれているディ +スク, 今回の場合はサブディレクトリ名が書かれています. たとえば, 以下の +ようになります. +<tabular ca=ll> +Package <colsep>Location <rowsep> +ldso <colsep>diska2 <rowsep> +shlibs <colsep>diska2 <rowsep> +oldlibs <colsep>diskx6 <rowsep> +xf_lib <colsep>diskx9 <rowsep> +</tabular> + +<p>``diskXX'' というのは, 配布セットの ``slackware/XX'' サブディレクトリ +を示します. それ以外の場合は, ``contrib'' サブディレクトリに格納されて +います. 今回の場合は, 以下のファイルを取得すればいいことがわかります +(ファイル名は, 配布セットのルートディレクトリからの相対パスで示してあ +ります). +<tscreen> +<verb> +slakware/a2/ldso.tgz +slakware/a2/shlibs.tgz +slakware/x6/oldlibs/tgz +slakware/x9/xf_lib.tgz +</verb> +</tscreen> + +<p> +gzip で圧縮された tar ファイルから必要なファイルを /compat/linux ディ +レクトリに格納してください(必要なファイルのみを展開するか, あるいは必 +要でないファイルを後で削除してください). これで作業は終了です. + +<p><bf>参照:</bf> +<verb> +ftp.freebsd.org:pub/FreeBSD/2.0.5-RELEASE/xperimnt/linux-emu/README + +/usr/src/sys/i386/ibcs2/README.iBCS2 +</verb> + +<sect><heading>FreeBSD への Mathematica のインストール<label id="mathematica"></heading> + +<p><em>原作: &a.rich and &a.chuck</em> +<p><em>訳: &a.kiroh;.</em> + +この文書は, Mathematica 2.2 の Linux バイナリディストリビューションを, +FreeBSD 2.1 にインストールする方法について説明します. + +<p> +Mathematica は, そのままでは FreeBSD をサポートしていませんが, Linux は +サポートしています. ですから, Linux エミュレータの設定が終わってしまえ +ば, Mathematica を動作させる環境はほとんど整ったことになります. + +<p> +DOS 用のスチューデント版 Mathematica から Linux バージョンへのアップグレー +ド価格は, 執筆時点 (1996年5月) では, $45.00 です. +直接 Wolfram(電話番号(217) 398-6500)に注文して, 支払いはクレジットカー +ドでおこなえます。 + +<sect1><heading>Mathematica ディストリビューションの展開</heading> +<p> +バイナリは, Wolfram から CDROM で配布されています. CDROM には, 1ダー +スほどの tar ファイルが含まれており, それぞれサポートされているアーキテ +クチャに対応しています. Linux 用のファイルは, LINUX.TAR です. 例えば +/usr/local/Mathematica 以下にインストールする場合は, 以下のようにしま +す. +<tscreen> +<verb> +% cd /usr/local +% mkdir Mathematica +% cd Mathematica +% tar -xvf /cdrom/LINUX.TAR +</verb> +</tscreen> + +<sect1><heading>Mathematica パスワードの取得</heading> +<p> +Mathematica を実行する前に, 使用するマシンに対応した `machine ID' を +Wolfram から取得する必要があります. + +<p> +Linux 互換ランタイムライブラリがインストールされており, mathematica の展 +開が終了したら, Install ディレクトリで `mathinfo' プログラムを使用す +ることで `machine ID' を得ることができます. +<tscreen> +<verb> +% cd /usr/local/Mathematica/Install +% mathinfo +LINUX: 'ioctl' fd=5, typ=0x89(), num=0x27 not implemented +richc.isdn.bcm.tmc.edu 9845-03452-90255 +% +</verb> +</tscreen> +ここで, `richc' の `machine ID' は, `9845-03452-90255' となります. +ioctl のメッセージは無視してください. まだ FreeBSD では実装されていません. +Mathematica を実行するたびに同様のメッセージが表示されますが, 実際の使 +用に問題はありませんので, 無視してかまいません. + +<p>電子メールや電話, ファックスなどで Wolfram に `machine ID' を知らせ +て登録すると, いくつかの番号のグループからなるパスワードが送り返されて +きます. パスワードを, マシン名, ライセンス番号とともに, mathpass ファ +イルに追加します. + +追加は, 以下のようにおこないます. +<tscreen> +<verb> +% cd /usr/local/Mathematica/Install +% math.install +</verb> +</tscreen> +ライセンス番号と, Wolfram から送られてきたパスワードを入力を求めます. +入力を間違えたりして, math.install の実行が失敗しても大丈夫です. +`mathpass' ファイルを手動で編集して, 情報を訂正してください. + +<p> +パスワードの入力後, math.install では, インストール方法を, デフォルト +設定でのインストールか、自分で方法を指定するインストールから選ぶことが +できます. 筆者のようにインストールプログラムを信用していない場合は, 自 +分でディレクトリを指定する方を選択するでしょう. 自分で指定するインストー +ルを選んだ場合, math.install 自身ではディレクトリの作成はおこないません. +注意してください. 別のウィンドウでシェルを開いて, 指定するディレクトリ +を作成してください. 存在しないディレクトリを指定して, math.install が +インストールに失敗した場合には, ディレクトリを作成し, math.install を +再び実行してください. 筆者らがインストール先に選んだディレクトリは, 以 +下の通りです. くれぐれもあらかじめ作成してから, math.install で指定す +るようにしてください. +<tscreen> +<verb> +/usr/local/Mathematica/bin バイナリファイル +/usr/local/Mathematica/man/man1 マニュアルページ +/usr/local/Mathematica/lib/X11 XKeysymbファイル +</verb> +</tscreen> +また, システムレコードファイルとして, /tmp/math.record を使用するように +設定することもできます. このファイルには, セッションのログが記録されま +す. この設定が終了すると, math.install は残りのファイルを展開して, 必 +要な場所に格納します. + +<p> +Mathematica ノートブックの機能は, X フロントエンドとして本体とは別に含 +まれています. X フロントエンドを正しくインストールするには, +/usr/local/Mathematica/FrontEnd ディレクトリに移動し, ./xfe.install シェ +ルスクリプトを実行します. インストール先を指定しなければなりませんが, +あらかじめ作成する必要はありません. 必要なディレクトリは, すべて +math.install によって作成されているからです. インストールが終了したら, +/usr/local/Mathematica/bin ディレクトリに, ``mathematica'' という名前の +シェルスクリプトが新たに作成されているはずです. + +<p>最後に, Mathematica がインストールしたシェルスクリプトを修正する必要 +があります. /usr/local/Mathematica/bin に含まれるすべてのシェルスクリプ +トの先頭部分に以下の行を追加します. +<tscreen> +<verb> +XKEYSYMDB=/usr/local/Mathematica/lib/X11/XKeysymDB; export XKEYSYMDB +</verb> +</tscreen> +これは, Mathematica が使用する Mathematica バージョンのキーマップファイル +XKeysymDB の場所を指定するものです. + +FreeBSD-STABLE を使用している場合は, 以下の行も追加してください. +<tscreen> +<verb> +RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF +</verb> +</tscreen> +これは, Mathematica に Linux バージョンの host.conf を使用するように指定し +ます. FreeBSD の host.conf の文法は, Linux のものと異なっているため, この +指定をおこなわないと, /etc/host.conf に関わるエラーが発生します. + +<p> +新しいマニュアルページを利用したい場合は, さらに /etc/manpath.config ファイ +ルを修正する必要があります. また自分の~/.cshrcを変更して, +/usr/local/Mathematica/bin をパスに追加してください. + +<p> +これでインストール作業はすべて終了です. ``mathematica'' とタイプすれば, +見栄えのする Mathematica ノートブックが表示されるはずです. Mathematica +には, Motif ユーザインタフェースが含まれますが, スタティックにリンクさ +れているため, Motif のライブラリは必要ありあません. 頑張って +Mathematica をインストールしてください. + +<sect1><heading>バグ</heading> + +<p> +ノートブックフロントエンドは, 以下のようなエラーメッセージを表示して, +ハングすることがあることが知られています. +<tscreen> +<verb> +File .../Untitled-1.mb appears to be broken for OMPR.257.0 +</verb> +</tscreen> + +今のところ原因はわかっていませんが, このバグが影響を及ぼすのは, ノートブッ +クの X window フロントエンドのみです. Mathematica エンジン本体に影響は +ありません. そのため, ``math'' によって起動されるコマンドラインのインタ +フェースを使用している場合は, このバグは関係ありません. + +<sect1><heading>謝辞</heading> + +<p>&a.sosと&a.peterに深く感謝します. Linuxエミュレーションが現在の形に +あるのは, 彼らのおかげです. そして, 彼ら二人にハッパをかけて, 犬のよう +に働かせた Michael Smithに. 今やLinuxエミュレーションは, linuxよりうま +くlinuxバイナリを実行できます! :-) + diff --git a/share/doc/ja_JP.EUC/handbook/lists.sgml b/share/doc/ja_JP.EUC/handbook/lists.sgml new file mode 100644 index 000000000000..097f806eef51 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/lists.sgml @@ -0,0 +1,66 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.6 --> + +<!-- +Names and email address of contributing authors and CVS committers +and some of the common FreeBSD mailing lists. Use these +entities when referencing people or mailing lists. Please +note the use of single +and double quotes. +--> + +<!ENTITY a.announce "FreeBSD アナウンスメーリングリスト + <tt><htmlurl url='mailto:freebsd-announce@FreeBSD.ORG' + name='<freebsd-announce@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.cvsall "FreeBSD CVS commit メッセージメーリングリスト + <tt><htmlurl url='mailto:cvs-all@FreeBSD.ORG' + name='<cvs-all@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.doc "FreeBSD ドキュメンテーションプロジェクトメーリングリスト + <tt><htmlurl url='mailto:freebsd-doc@FreeBSD.ORG' + name='<freebsd-doc@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.bugs "FreeBSD 障害報告のメーリングリスト + <tt><htmlurl url='mailto:freebsd-bugs@FreeBSD.ORG' + name='<freebsd-bugs@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.current "FreeBSD-current メーリングリスト + <tt><htmlurl url='mailto:freebsd-current@FreeBSD.ORG' + name='<freebsd-current@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.emulation "FreeBSD-emulation メーリングリスト + <tt><htmlurl url='mailto:freebsd-emulation@FreeBSD.ORG' + name='<freebsd-emulation@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.fs "FreeBSD ファイルシステムプロジェクトメーリングリスト + <tt><htmlurl url='mailto:freebsd-fs@FreeBSD.ORG' + name='<freebsd-fs@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.hackers "FreeBSD の技術的な議論のメーリングリスト + <tt><htmlurl url='mailto:freebsd-hackers@FreeBSD.ORG' + name='<freebsd-hackers@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.ports "FreeBSD 移植ソフトウエアメーリングリスト + <tt><htmlurl url='mailto:freebsd-ports@FreeBSD.ORG' + name='<freebsd-ports@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.questions "FreeBSD 一般的な質問メーリングリスト + <tt><htmlurl url='mailto:freebsd-questions@FreeBSD.ORG' + name='<freebsd-questions@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.scsi "FreeBSD SCSI サブシステムメーリングリスト + <tt><htmlurl url='mailto:freebsd-scsi@FreeBSD.ORG' + name='<freebsd-scsi@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.stable "FreeBSD-stable メーリングリスト + <tt><htmlurl url='mailto:freebsd-stable@FreeBSD.ORG' + name='<freebsd-stable@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.majordomo "<tt><htmlurl url='mailto:majordomo@FreeBSD.ORG' + name='<majordomo@FreeBSD.ORG>'></tt>"> + +<!ENTITY a.core "FreeBSD コアチーム + <tt><htmlurl url='mailto:freebsd-core@FreeBSD.ORG' + name='<freebsd-core@FreeBSD.ORG>'></tt>"> diff --git a/share/doc/ja_JP.EUC/handbook/memoryuse.sgml b/share/doc/ja_JP.EUC/handbook/memoryuse.sgml new file mode 100644 index 000000000000..c8e859f46be4 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/memoryuse.sgml @@ -0,0 +1,61 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.7 --> + +<sect><heading>PC におけるメモリの利用<label id="memoryuse"></heading> + +<p><em>原作: &a.joerg;.<newline> + 16 Apr 1995.</em> +<p><em>訳: &a.tomo;. <newline> + 29 Oct 1996.</em> + +<em>FreeBSDがi386プラットフォーム上でどのようにメモリを使うかに +ついての説明です. </em> + +ブート部分は<tt>0:0x7c00</tt>にロードされ, すぐに自分自身を +<tt>0x7c0:0</tt>に移します. (これは手品ではなく, 単なる<tt>%cs</tt> +セレクタのための調節であり, <tt>ljmp</tt>により行われます. ) + +それから最初の15セクタを<tt>0x10000</tt>(biosbootのMakefileのなかの +BOOTSEG部分)にロードし, 作業領域のスタックを<tt>0x1fff0</tt>以下に +セットします. このあと, boot2 に飛びます. つまり, boot1 自身と +(ダミーの) DOS パーティションテーブルを飛び越えて, %csセレクタを +調節します---この時点ではまだ16ビットモードです. + +boot2はブートファイルを要求し, <tt>a.out</tt>ヘッダを調べます. +<tt>0x00ffffff</tt>によってファイルエントリポイントを +(通常は<tt>0xf0100000</tt>に)マスクし, ロードします. +このため, 通常のロードポイントは1MB(<tt>0x00100000</tt>)になります. +ロードしている間, リアルモードでBIOSを使うため, ブートコードは, +リアルモードとプロテクトモードの間を行ったり来たりします +(訳注: これは, BIOSがリアルモード用に書かれていて, +ロードすべき領域がリアルモードではアクセスできない1MBより上位の +アドレスであることから, ブートコードがリアルモードと +プロテクトモードを切り替えながら動作するためです). + +ブートコード自身はプロテクトモードで<tt>%cs</tt>と<tt>%ds/%es</tt>用に +セグメントセレクタ<tt>0x18</tt>と<tt>0x20</tt>を使い, +リアルモードに戻るのに<tt>0x28</tt>を使います. +最終的にカーネルはアドレス空間全体をカバーできるようなダミーの +ディスクリプタを参照して<tt>%cs</tt> <tt>0x08</tt>と +<tt>%ds/%es/%ss</tt> <tt>0x10</tt>でスタートします. + +カーネルはそのロードポイントで起動されます. +別の(高位)アドレスにリンクされるので, +ページテーブルやページディレクトリなどが適切に設定され, +ページングが有効になり, カーネルがリンクされたアドレスで +動作するようになるまでは, カーネルはロードアドレスからの +相対アドレス (PIC: position independent code) を用いて +実行されなければなりません. + +<em>寄贈: &a.davidg;.<newline> + 16 Apr 1995.</em> + +カーネルの BSS セグメントの直後の物理ページ (実メモリ) に +proc0 (訳注: プロセス番号 0, swapper) のページディレクトリや +ページテーブル, Uページが配置されます. +仮想記憶機構が初期化された少しあと, +<tt>0x1000-0x9ffff</tt>の実メモリとカーネル +(text + data + bss + 上記の proc0 に関わるもの + その他) +の後ろの実メモリは, 通常の仮想記憶ページの形で利用可能となり, +グローバルな空きページリストに追加されます. diff --git a/share/doc/ja_JP.EUC/handbook/mirrors.sgml b/share/doc/ja_JP.EUC/handbook/mirrors.sgml new file mode 100644 index 000000000000..81b506b3639c --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/mirrors.sgml @@ -0,0 +1,569 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.41 --> + +<!-- +<!doctype linuxdoc public "-//FreeBSD//DTD linuxdoc//EN"> +--> + +<chapt><heading>FreeBSD の入手方法<label id="mirrors"></heading> + +<p>FreeBSD の公式な情報は anonymous FTP によって以下の場所から +入手できます: +<quote> +<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD" +name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD"> +</quote> +また Walnut Creek CDROM から出ている CD-ROM からも入手できます: +<quote> + Walnut Creek CDROM<newline> + 1547 Palos Verdes Mall, Suite 260<newline> + Walnut Creek CA 94596 USA<newline> + Phone: +1 510 674-0783<newline> + Fax: +1 510 674-0821<newline> + Email: <url url="mailto:info@cdrom.com" name="info@cdrom.com"><newline> + WWW: <url url="http://www.cdrom.com/" name="http://www.cdrom.com/"> +</quote> + +<p>さらに, FreeBSD は以下のミラーサイトから anonymous FTP によって + 入手できます. もし FreeBSD を anonymous FTP によって手にいれる場合は, + 近くのサイトを利用するようにしてください. + +<ref id="mirrors-au" name="Australia">, +<ref id="mirrors-br" name="Brazil">, +<ref id="mirrors-ca" name="Canada">, +<ref id="mirrors-cz" name="Czech Republic">, +<ref id="mirrors-ee" name="Estonia">, +<ref id="mirrors-fi" name="Finland">, +<ref id="mirrors-fr" name="France">, +<ref id="mirrors-de" name="Germany">, +<ref id="mirrors-hk" name="Hong Kong">, +<ref id="mirrors-ie" name="Ireland">, +<ref id="mirrors-il" name="Israel">, +<ref id="mirrors-jp" name="Japan">, +<ref id="mirrors-kr" name="Korea">, +<ref id="mirrors-nl" name="Netherlands">, +<ref id="mirrors-pl" name="Poland">, +<ref id="mirrors-pt" name="Portugal">, +<ref id="mirrors-ru" name="Russia">, +<ref id="mirrors-za" name="South Africa">, +<ref id="mirrors-se" name="Sweden">, +<ref id="mirrors-tw" name="Taiwan">, +<ref id="mirrors-th" name="Thailand">, +<ref id="mirrors-us" name="USA">, +<ref id="mirrors-uk" name="UK">. + + +<descrip> +<tag><label id="mirrors-au">オーストラリア</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@au.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-br">ブラジル</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@br.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> +<item> +<url url="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD"><newline> +</itemize> + +<tag><label id="mirrors-ca">カナダ</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@ca.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-cz">チェコ</tag> + +<itemize> + +<item> +<url url="ftp://sunsite.mff.cuni.cz/OS/FreeBSD" + name="ftp://sunsite.mff.cuni.cz/OS/FreeBSD"><newline> + 連絡先: <url url="jj@sunsite.mff.cuni.cz" + name="jj@sunsite.mff.cuni.cz">. + +</itemize> + +<tag><label id="mirrors-ee">エストニア</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@ee.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.ee.freebsd.ORG/pub/FreeBSD" + name="ftp://ftp.ee.freebsd.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-fi">フィンランド</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@fi.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.fi.freebsd.ORG/pub/FreeBSD" + name="ftp://ftp.fi.freebsd.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-fr">フランス</tag> + +<itemize> + +<item> +<url url="ftp://ftp.ibp.fr/pub/FreeBSD" + name="ftp://ftp.ibp.fr/pub/FreeBSD"><newline> + 連絡先: <url url="mailto:Remy.Card@ibp.fr" + name="Remy.Card@ibp.fr">. + +</itemize> + +<tag><label id="mirrors-de">ドイツ</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@de.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-hk">香港</tag> + +<itemize> + +<item> +<url url="ftp://ftp.hk.super.net/pub/FreeBSD" + name="ftp://ftp.hk.super.net/pub/FreeBSD"><newline> + 連絡先: <url url="mailto:ftp-admin@HK.Super.NET" + name="ftp-admin@HK.Super.NET">. + +</itemize> + +<tag><label id="mirrors-ie">アイルランド</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@ie.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-il">イスラエル</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@il.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-jp">日本</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@jp.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-kr">韓国</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@kr.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-nl">オランダ</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@nl.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.nl.freebsd.ORG/pub/FreeBSD" + name="ftp://ftp.nl.freebsd.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-pl">ポーランド</tag> + +<itemize> + +<item> +<url url="ftp://SunSITE.icm.edu.pl/pub/FreeBSD" + name="ftp://SunSITE.icm.edu.pl/pub/FreeBSD"><newline> + 連絡先: <url url="mailto:ftp@SunSITE.icm.edu.pl" + name="ftp@SunSITE.icm.edu.pl">. + +</itemize> + +<tag><label id="mirrors-pt">ポルトガル</tag> + +<itemize> + +<item> +<url url="ftp://ftp.ua.pt/pub/misc/FreeBSD" + name="ftp://ftp.ua.pt/pub/misc/FreeBSD"><newline> + 連絡先: <url url="mailto:archie@ua.pt" + name="archie@ua.pt">. + +</itemize> + +<tag><label id="mirrors-ru">ロシア</tag> + +<itemize> + +<item> +<url url="ftp://ftp.kiae.su/FreeBSD" + name="ftp://ftp.kiae.su/FreeBSD"><newline> + 連絡先: <url url="mailto:ftp@ftp.kiae.su" + name="ftp@ftp.kiae.su">. + +</itemize> + +<tag><label id="mirrors-za">南アフリカ</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@za.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.za.FreeBSD.ORG/FreeBSD" + name="ftp://ftp3.za.FreeBSD.ORG/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-se">スウェーデン</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@se.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.se.freebsd.ORG/pub/FreeBSD" + name="ftp://ftp.se.freebsd.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-tw">台湾</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@tw.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-th">タイ</tag> + +<itemize> + +<item> +<url url="ftp://ftp.nectec.or.th/pub/FreeBSD" + name="ftp://ftp.nectec.or.th/pub/FreeBSD"><newline> + 連絡先: <url url="mailto:ftpadmin@ftp.nectec.or.th" + name="ftpadmin@ftp.nectec.or.th">. + +</itemize> + +<tag><label id="mirrors-us">アメリカ</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp3.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp4.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp4.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp5.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp5.FreeBSD.ORG/pub/FreeBSD"><newline> +<item> +<url url="ftp://ftp6.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp6.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag><label id="mirrors-uk">イギリス</tag> + +何か問題がある場合は, このドメインの +<url url="mailto:hostmaster@uk.FreeBSD.ORG" name="hostmaster"> +に連絡してください. + +<itemize> + +<item> +<url url="ftp://ftp.uk.FreeBSD.ORG/packages/unix/FreeBSD" + name="ftp://ftp.uk.FreeBSD.ORG/packages/unix/FreeBSD"><newline> +<item> +<url url="ftp://ftp2.uk.FreeBSD.ORG/pub/walnut.creek/FreeBSD" + name="ftp://ftp2.uk.FreeBSD.ORG/pub/walnut.creek/FreeBSD"><newline> +<item> +<url url="ftp://ftp3.uk.FreeBSD.ORG/pub/BSD/FreeBSD" + name="ftp://ftp3.uk.FreeBSD.ORG/pub/BSD/FreeBSD"><newline> + +</itemize> + +</descrip> + +FreeBSD (2.0C またはそれ以降) の輸出規制コード (eBones と secure) の +最新のバージョンは以下の場所から入手できます. +もしあなたがアメリカやカナダ以外にいるのであれば, +secure (DES) と eBones (Kerberos) を +以下の外国向けの配布サイトから手にいれてください: + +<descrip> + +<tag>南アフリカ</tag> + +このドメインの +<url url="mailto:hostmaster@internat.FreeBSD.ORG" name="Hostmaster"> +. + +<itemize> + +<item> +<url url="ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD"><newline> + +<item> +<url url="ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag>ブラジル</tag> + +このドメインの +<url url="mailto:hostmaster@br.FreeBSD.ORG" name="Hostmaster"> +. + +<itemize> + +<item> +<url url="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD" + name="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD"><newline> + +</itemize> + +<tag>フィンランド</tag> + +<itemize> + +<item> +<url url="ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt" + name="ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt"><newline> + 連絡先: <url url="mailto:count@nic.funet.fi" + name="count@nic.funet.fi">. + +</itemize> + +</descrip> + +<label id="mirrors-ctm"> +<p>CTM/FreeBSD は以下のミラーサイトから anonymous FTP によって + 入手できます. もし CTM を anonymous FTP によって手にいれる場合は, + 近くのサイトを利用するようにしてください. + +何か問題がある場合は, &a.phk;に連絡してください. + +<descrip> +<tag>カリフォルニア</tag> + +<itemize> +<item> +<url url="ftp://freefall.freebsd.org/pub/CTM" + name="ftp://freefall.freebsd.org/pub/CTM"><newline> +</itemize> + + +<tag>デンマーク</tag> + +<itemize> +<item> +<url url="ftp://sunsite.auc.dk/mirrors/freefall.freebsd.org/pub/CTM" + name="ftp://sunsite.auc.dk/mirrors/freefall.freebsd.org/pub/CTM"><newline> +</itemize> + + +<tag>ドイツ</tag> + +<itemize> +<item> +<url url="ftp://ftp6.de.freebsd.org/pub/bsd/CTM/FreeBSD" + name="ftp://ftp6.de.freebsd.org/pub/bsd/CTM/FreeBSD"><newline> +</itemize> + + +<tag>台湾</tag> + +<itemize> +<item> +<url url="ftp://ftp.iii.org.tw/OS/FreeBSD/00MIRROR/freefall.freebsd.org/CTM" + name="ftp://ftp.iii.org.tw/OS/FreeBSD/00MIRROR/freefall.freebsd.org/CTM"><newline> +</itemize> + +</descrip> + + +近くにミラーサイトがない場合やミラーが不完全な場合は, +<url url="http://ftpsearch.ntnu.no/ftpsearch/" + name="http://ftpsearch.ntnu.no/ftpsearch"> の +<url url="http://ftpsearch.ntnu.no/" name="FTP search"> を試してください. +FTP search はノルウェーの Trondheim にある, フリーの素晴らしい アーカイブサーバです. diff --git a/share/doc/ja_JP.EUC/handbook/nfs.sgml b/share/doc/ja_JP.EUC/handbook/nfs.sgml new file mode 100644 index 000000000000..b64aaee2a68e --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/nfs.sgml @@ -0,0 +1,88 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.6 --> + +<sect><heading>NFS<label id="nfs"></heading> + +<p><em>原作: &a.john;.</em> +<p><em>訳: &a.tomo;.<newline>6 September 1996.</em> + +ISA用のイーサネットアダプタの中には性能が悪いため, ネットワーク, +特に NFS で深刻な問題がおきるものがあります. これは FreeBSD に限ったことでは +ありませんが, FreeBSD でも起こり得ます. + +この問題は, (FreeBSDを使用した)PCがシリコン・グラフィックス社やサン・マイクロ +システムズ社などの高性能なWSにネットワーク接続されている場合に頻繁に +起こります. NFSマウントはうまく行きます. また, いくつかの操作もうまく +働きますが, 他のシステム(WS)に対する要求や応答は続いていても, 突然サーバ +がクライアントの要求に対して反応しなくなります. +これは, クライアントがFreeBSDか上記のWSであるとき, にクライアント側に起きる +現象です. 多くのシステムでは, いったんこの問題が起きたら解決できないので, +行儀よくシャットダウンするしかありません. +唯一の解決策は, この状況に陥る前にクライアントをリセットすることです. +なぜなら, 一旦この状況に陥ると NFS を解除することさえできないからです. + +"正しい"解決法は, より高性能のイーサネットアダプタをFreeBSDシステムに +インストールすることですが, 満足な操作ができるような簡単な方法があります. +もし, FreeBSDシステムがサーバになるのなら, クライアントからのマウント時に +"-w=1024"オプションをつけて下さい. もしFreeBSDシステムがクライアントになる +のなら, NFSファイルシステムを"-r=1024"オプションつきでマウントして下さい. +これらのオプションは自動的にマウントをおこなう場合には +クライアントのfstabエントリの4番目のフィールドに指定してもよいですし, +手動マウントの場合はmountコマンドの"-o"パラメータで指定してもよいでしょう. + +NFSサーバとクライアントが別々のネットワーク上にあるような場合, +これと間違えやすい他の問題が起きることに注意して下さい. そのような場合は, +ルータが必要なUDP情報をきちんとルーティングしているかを確かめて下さい. +そうでなければ, たとえあなたが何をしようと解決できないでしょう. + +次の例では, "fastws"は高性能のWSのホスト +(インタフェース)名で, "freebox"は低性能のイーサネットアダプタを備えた +FreeBSDシステムのホスト(インタフェース)名です. + +また, "/sharedfs"はエクスポートされるNFSファイルシステムであり +("man exports"を見て下さい), "/project"はエクスポートされたファイル +システムのクライアント上のマウントポイントとなります. +全ての場合において, "hard"や"soft", "bg"といった追加オプションが +アプリケーションにより要求されるかもしれないことに注意して下さい. + +クライアント側FreeBSDシステム("freebox")の例は: +freeboxの<tt>/etc/fstab</tt>に次のように書いて下さい: +fastws:/sharedfs /project nfs rw,-r=1024 0 0 +freebox上で手動でmountコマンドを実行する場合は次のようにして下さい: +mount -t nfs -o -r=1024 fastws:/sharedfs /project + + +サーバ側FreeBSDシステムの例は: +fastwsの<tt>/etc/fstab</tt>に次のように書いて下さい: +freebox:/sharedfs /project nfs rw,-w=1024 0 0 +fastws上で手動でmountコマンドで実行する場合は次のようにして下さい: +mount -t nfs -o -w=1024 freebox:/sharedfs /project + +近いうちにどのような16ビットのイーサネットアダプタでも上記の読み出し, +書き込みサイズの制限なしの操作ができるようになるでしょう. + +失敗が発生したとき何が起きているか関心のある人に, なぜ回復不可能なのか +も含めて説明します. +NFSは通常 (より小さいサイズへ分割されるかもしれませんが) 8Kの"ブロック" +サイズで働きます. イーサネットのパケットサイズは最大1500バイト程度なので, +上位階層のコードにとっては1つのユニットのままなのですが, NFS"ブロック"は +複数のイーサネットパケットに分割されます. そして受信され, 組み立て直されてから +肯定応答されなければなりません. 高性能のWSは次々に +NFSユニットを構成するパケットを, 基準の範囲内で間隔を詰めて +次々に送り出すことができます. 小さく, 容量の低いカードでは, 同じユニットの +前のパケットがホストに転送される前に, 後のパケットがそれを +「踏みつぶし」てしまいます. このため全体としてのユニットは再構成もされないし, +肯定応答もされません. その結果, WSはタイムアウトして再送を試みますが, +8Kのユニット全体を再送しようとするので, このプロセスは +際限無く繰り返されてしまいます. + +ユニットサイズをイーサネットのパケットサイズの制限以下に抑えることにより, +受信された完全なイーサネットパケットは個々に肯定応答を受けられることが +保証されるので, デッドロック状態を避けることができるようになります. + +高性能のカードを使っている場合でも, 高性能なWSが力任せに次々と +PCシステムにデータを送ったときには「踏みつぶし」が起きるかもしれません. +そのような「踏みつぶし」はNFS"ユニット"では保証されていません. +「踏みつぶし」が起こったとき, 影響を受けたユニットは再送されます. +そして受信され, 組み立てられ, 肯定応答される公平な機会が与えられるでしょう. diff --git a/share/doc/ja_JP.EUC/handbook/nutshell.sgml b/share/doc/ja_JP.EUC/handbook/nutshell.sgml new file mode 100644 index 000000000000..961149652644 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/nutshell.sgml @@ -0,0 +1,153 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.10 --> + +<sect><heading>FreeBSD とは<label id="nutshell"></heading> + + <p><em>原作: 不明.</em> + + <p><em>訳: &a.tomo;.</em> + + <p>FreeBSDはIntel社の (SXやDXも含めた) 386や486, Pentiumプロセッサ + といったCPUアーキテクチャに基づくパーソナルコンピュータ用としては + 現在求めうる最高水準のオペレーティングシステムです. + AMD社やCyrix社のIntel互換CPUもサポートされています. + FreeBSDは, 以前は高価なコンピュータでしか利用できなかった多くの + 高度な機能を提供します. FreeBSDには次のような機能があります: + + <itemize> + <item>アプリケーションとユーザとの間で円滑かつ公平にコンピュータを + 共有することを保証する, 優先度を動的に調節する機能を備えた + <bf>プリエンプティブマルチタスキング</bf>. </item> + <item>多くの人々が1つのFreeBSDシステムをさまざまな目的で同時に + 使うことを可能にする<bf>マルチユーザ</bf>アクセス. また, + プリンタやテープドライブのようなシステムの周辺機器も + すべてのユーザ間で適切に共有されます. </item> + <item>SLIPやPPP, NFS, NISのサポートを含んだ完全な + <bf>TCP/IPネットワーキング</bf>. これによって, + FreeBSDマシンが商用サーバと同じように相互に運用でき, + NFS (リモートファイルアクセス) や電子メールサービスのような極めて + 重要な機能を提供します. また, WWWやftp, ルーティング, + ファイアウォール (セキュリティ) サービスを用いてインターネットと + 接続できます. </item> + <item>アプリケーション (あるいはユーザ) がお互いに干渉できない + ようにする<bf>メモリ保護</bf>機能. + アプリケーションがクラッシュしても, どのような場合でも + 他のアプリケーションには影響を与えません. </item> + <item>FreeBSDは<bf>32ビット</bf>のオペレーティングシステムであり, + 最初からそのようにこつこつと設計されました. </item> + <item>業界標準である<bf>X Windowシステム</bf> (X11R6) は, + 普通のVGAカードやモニタでグラフィカルユーザ + インタフェース (GUI) を提供し, + すべてのソースコードも一緒に提供されます. + </item> + <item>SCOやBSDI, NetBSD, Linux, 386BSD用に作られた多くの + プログラムにおける<bf>バイナリ互換性</bf>. </item> + <item>何百もの<bf>すぐに実行可能な</bf>アプリケーションが + FreeBSDの<bf>ports</bf>や<bf>packages</bf>コレクション + で利用可能です. ここに用意されているものは + ネットを探し回る必要がありません</item> + <item>インターネット上で入手可能な, <bf>移植が容易な</bf> + 何千ものアプリケーションを追加できます. + FreeBSDは最も評判の + よい商用のUnixシステムとソースコードレベルで互換性があります. + このため, ほとんどのアプリケーションは, もしあったとしてもほんの + 少しの変更でコンパイルすることができます. </item> + <item>デマンドページング<bf>仮想メモリ</bf>とそれに`付随の + VM/buffer キャッシュ'の設計は, 多くのメモリを要求する + アプリケーションに対して効率よくメモリを与えるようにする一方で, + 他のユーザに対しても対話的な応答を維持します. </item> + <item><bf>共有ライブラリ</bf> (MS-WindowsのDLLと同等のUnixの + 機能) によって, ディスクスペースとメモリを効果的に使用する + ことができます. </item> + <item>完全な<bf>C</bf>や<bf>C++</bf>, <bf>Fortran</bf>の + 開発ツール. 進んだ研究や開発のための多くの他の言語も + portsやpackagesコレクションで提供されています. </item> + <item>システム全体の<bf>ソースコード</bf>が提供されているので, + 要求に合わせて環境を最大限に適合させることができます. + 真のオープンシステムが利用できるのですから, 所有権のある解決方法に + 締めつけられ, ベンダのなすがままになる必要はありません. </item> + <item>膨大な量の<bf>オンラインドキュメント</bf>. </item> + <item><bf>もう書ききれません!</bf></item> + </itemize> + FreeBSDはカリフォルニア大学バークレイ校のComputer Systems + Research Group (CSRG) による4.4BSD-Liteリリースを基にしており, + BSDシステムの開発の優れた伝統を守り続けています. + CSRGによる素晴らしい活動に加えて, + FreeBSDプロジェクトは何千時間もの時間を注ぎ込んで, + 実際の使用の場において最大の性能と信頼性を + 発揮するためにシステムのチューニングをおこなっています. + 多くの大企業がPCオペレーティングシステムの分野で + 実現しようと奮闘しているそのような機能や性能, 信頼性を + FreeBSDは<bf>今すぐ</bf>提供できます! + + あなたの思いつく限りのアプリケーションは, + 何でもFreeBSDで 実行できます. ソフトウェア開発から + ファクトリオートメーション, 在庫制御から遠く離れた人工衛星の + アンテナの方向調整まで; 商用UNIX製品でできることは, + FreeBSDでも十分にできるのです! + また, FreeBSDは世界中の研究センターや大学によって開発される + 文字通り何千もの高品質で, たいていはほとんど無料で利用できる + アプリケーションによる恩恵を得ることができます. + 商用のアプリケーションも提供されており, 日々増え続けています. + + FreeBSDのソースコードは広く提供されているので, + システムも特別なアプリケーションやプロジェクトに合わせて, + いくらでもカスタマイズすることができます. これは + 有名な商業ベンダから出ているほとんどのオペレーティング + システムでは不可能なことです. 以下に現在FreeBSDを + 使っている人々のアプリケーションの例をいくつか上げます: + + <itemize> + <item><bf>インターネットサービス:</bf> FreeBSDに組み込まれている + 頑強なTCP/IPネットワーキング機能は次のようなさまざまなインターネット + サービスの理想的なプラットフォームになります: + <itemize> + <item>FTP サーバ</item> + <item>World Wide Web サーバ</item> + <item>Gopher サーバ</item> + <item>電子メールサーバ</item> + <item>USENET ニュース</item> + <item>電子掲示板システム</item> + <item>さらにいろいろ...</item> + </itemize> + まずは高価ではない386クラスのPCで始めておいて, + 仕事の成長に合わせてアップグレードできます. </item> + <item><bf>教育:</bf> あなたは計算機科学または工学の学生ですか? + オペレーティングシステムやコンピュータアーキテクチャ, + ネットワーキングを学習するなら, FreeBSDを手に + 経験するのが一番よい方法です. 自由に利用できるCADや数学, + グラフィックデザインのパッケージもいくつもあり, + コンピュータに関心を持った人が<em>他の人</em>の成果を + 手に入れて利用するのにとても役に立ちます. </item> + <item><bf>研究:</bf>システム全体のソースコードが利用できるため, + FreeBSDはオペレーティングシステムの研究だけでなく, + 計算機科学の他の部門においても優れたプラットフォームです. + 自由に利用できるFreeBSDの特長は, オープンフォーラムで + 議論される特別なライセンスの同意や制限について + 心配することなく, 離れたグループでもアイディアや開発の共有に + よる共同研究を可能にします. + </item> + <item><bf>ネットワーキング:</bf>新しいルータが必要? + ネームサーバ (DNS) は? 内部のネットワークを人々から守る + ファイアウォールは? + FreeBSDはすみに眠っている使われていない386や486のPCを簡単に + 洗練されたパケットフィルタリング機能を持つ高級なルータに + 変えることができます. </item> + <item><bf>X Windowワークステーション:</bf> + 自由に利用できるXFree86サーバやX Inside社から提供される + 優れた商業サーバを使うことによって, 安価なX端末 + としてFreeBSDを使うこともできます. X端末とは違ってFreeBSDは + 多くのアプリケーションをローカルに走らせることもでき, + 中心のサーバの負荷を軽減することも可能です. + FreeBSDは"ディスクレス"でもブート可能であり, + 個々のワークステーションを安価で, 容易に管理することさえ + 可能にします. </item> + <item><bf>ソフトウェア開発:</bf> 基本的なFreeBSDシステムには + 有名なGNUのC/C++コンパイラやデバッガ含んだ完全な開発ツールが + ついてきます. </item> + </itemize> + +FreeBSDはCDROMまたはanonymous ftpによってソース, バイナリとも +利用可能です. 詳しくは, <ref id="mirrors" name="FreeBSD の入手方法"> +を見てください. diff --git a/share/doc/ja_JP.EUC/handbook/pgpkeys.sgml b/share/doc/ja_JP.EUC/handbook/pgpkeys.sgml new file mode 100644 index 000000000000..fc601a6a0613 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/pgpkeys.sgml @@ -0,0 +1,250 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.9 --> + +<chapt><heading>PGP 公開鍵<label id="pgpkeys"></heading> + + <p><em>原作: 不明.</em> + + <p><em>訳: &a.kiroh;.</em> + + <p> 署名を検証したり, コアチームメンバやオフィサに暗号メー +ルを送りたい場合のために, PGPの公開鍵を添付します. + + <sect><heading>オフィサ</heading> + <sect1><heading> +FreeBSD Security Officer <security-officer@freebsd.org> + </heading> <p> +<tscreen><verb> +FreeBSD Security Officer <security-officer@freebsd.org> +Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3i + +mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL +h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L +Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR +tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl +ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU +tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7 +PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql +3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz +QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV +nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A +3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD +/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb +5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS +9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B +sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P +BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT +0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx +ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD +ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO +v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1 +lw== +=ipyA +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect><heading>コアチームメンバ</heading> + <sect1><heading>&a.jkh</heading><p> + +<tscreen><verb> +Jordan K. Hubbard <jkh@FreeBSD.org> +Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2i + +mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ +jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk +tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR +tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokAlQMFEDF75D1r +WmeNgbKneQEBXtcD+gJIv8JzZRKlDZyTCQanK8iRgE+zMhxptI0kDObaGxT1BrpY +4/EPyiUN10G4k2Jb+DOc8Lg2xDQ3xmvgipFf9NMNV/ThaEuZ3wA31I6tW/arQEqB +Tp8u6T3v20m62t7Afo9HaoE6MBpHQUk2TilxgAd5P57sporL3pgW9YojIO9ziQCV +AwUQMXyV2h9/qQgDWPy9AQEMfgP/RmbSg2WlesATUQ4WuanjcdREduKPyfQatrXD +2xt+jg9X78dTyiNN1YvLqvT6msfs04MKSC0hA2mou6ozw8Xak+1QmP0fBOZKp9pP +8szO188Do9ByzJPvHF1eXT7jFMOXVq8ZIl9iwjxcIDLzlxOz49DC7LO6AT+LKQk7 +UGeP+lqJAJUDBRAxe+UG9RVb+45ULV0BAXZ9A/9F9gLpGukVNkeOjaqxQdJGTS+a +xh/Abk0c/nKhAEyxpAl5JyQ3ifYk6BHhPvlTi9LrZoXGA8sk/eU4eRTZVzvGEC4G ++xsavlE/xzku8855QTLPpkCunUpQeu1wzaIrUUE6Zjh05imFbJYyQOBgTFpuqWsC +rsUpl+2mr8IGIxG5rA== +=LW9i +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect1><heading>&a.phk</heading><p> + +<tscreen><verb> +Poul-Henning Kamp <phk@FreeBSD.org> +Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3i + +mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI +ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA +K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR +tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAlQMFEDF+jX1r +WmeNgbKneQEBCrID/i/ri8/eXUXRJp2fqJqzvrWGTP9Ix1O4vMguah9IILijgpYy +OJYkezZKijjVCVmLX7EwfNXfYkqLAWUa08eov4QfJfJDgfe+Z/3/UoX7RcJoy2Aj +TBZQzOI9JMkrzFdtFGYwMr/QXhOdVVpSGeZ/6Hkrs7pd2Z6MNNrRf81ZyJyYiQCV +AwUQMXyV5/UVW/uOVC1dAQFyfAP/SujU+lS2WQuat4O2wZOQ1rswUt6CthG8MOsc +7A9kfXnZbaM9Sdxj54CtAlqR4eJMOYk2kVqAtmCWETRuonJxr5TAJdf7q6kByVYc +QEyDZvKJYwyrI9UQSelSgczWwiSB01aV9ACaKlEF9iHYvIKBa9HwJu3A9ggW9SYa +AHcxHzuJAJUDBRAxSx5cH3+pCANY/L0BAY+TA/9YQPISXYaS+5r0I60wCJ+i3a9P +C69Zak2ikgTHQi97LhpVtEsP3SAYInDw4YMS2oU9w1XxoiLLd9hUpcZlmO8Ip3vN +F+E2ZCfR4sNzKarY5fdo+sxzatGWRPgnHjbm6RHWCw6qJACDD3VpaFjx2XD8QrOT +yiObnbHhWBdoEAIyNokAlQMFEDE5Q6DvYbnpEdWO1QEBsvgD/0c6flBrSWr20oj8 +eRJ1zl8ZAP/rpV0IEBvb3ZFsHsJL8QzTsx1typFFghrT7SDBDc52xY90JWAflEiG +n9aIL5Q+RHVxjw30yDaRPAl9ll82o34GBaWBEw83bsI6Fg2XxDfc2X0KkEutlYAE +XjiM95PQS+9PM//llDtPvkSxgpiJiQCVAwUQMOavJADy2QnruxtBAQE92wQAsKPq +/U4G4ksslOXGaauSoBk9XO3lB147cSpra1w9ZxTSeo+8dgzNlxnugWDnw1mxauFJ +BAMgHl74rrlD+Hp0Ltb9oOyRl3riPG0TOdfaS3T8w6vw52wOKzUrZ/0pB+2sDHzU +qZXBbhOq3OXs1ZMNe3jh8w62JsLBWry/YMWRMnI= +=MDQ9 +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect1><heading>&a.joerg</heading><p> + +<tscreen><verb> +Joerg Wunsch <j@uriah.heep.sax.de> +Fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2i + +mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz +q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe +ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR +tCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDGp +bnd1u244dqP3sQEBJnQD/RVSAzgf4uorv3fpbosI0LE3LUufAYGBSJNJnskeKyud +ZkNkI5zGGDwVneH/cSkKT4ORooeqcTBxKeMaMuXPVl30QahgNwWjfuTvl5OZ8ors +QGGWIn5FhqYXsKkjEGxIOBOfvvlVQ0UbcR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPU +tC1Kb2VyZyBXdW5zY2ggPGpvZXJnX3d1bnNjaEB1cmlhaC5oZWVwLnNheC5kZT6J +AJUDBRAyCIWZdbtuOHaj97EBAVMzA/41VIph36l+yO9WGKkEB+NYbYOz2W/kyi74 +kXLvLdTXcRYFaCSZORSsQKPGNMrPZUoLoAKxE25AoCgl5towqr/sCcu0A0MMvJdd +UvlQ2T+ylSpGmWchqoXCN7FdGyxrZ5zzxzLIvtcio6kaHd76XxyJpltCASupdD53 +nEtxnu8sRrQxSm9lcmcgV3Vuc2NoIDxqb2VyZ193dW5zY2hAaW50ZXJmYWNlLWJ1 +c2luZXNzLmRlPokAlQMFEDIIhfR1u244dqP3sQEBWoID/RhBm+qtW+hu2fqAj9d8 +CVgEKJugrxZIpXuCKFvO+bCgQtogt9EX+TJh4s8UUdcFkyEIu8CT2C3Rrr1grvck +fxvrTgzSzvtYyv1072X3GkVY+SlUMBMArdl1qNW23oT7Q558ajnsaL065XJ5m7Ha +cgTTikiofYG8i1s7TrsEeq6PtCJKb2VyZyBXdW5zY2ggPGpAdXJpYWguaGVlcC5z +YXguZGU+iQCVAwUQMalkbHW7bjh2o/exAQFwwQP+Pa82QeWpJE0m7f4DXd/DiYAv +h/DeXWtub1fXQ9yqAL131n8OzsSLMb0PwG/qyZrpK61sT3bAvtVlNftaxmuD7yaf +1SUQ3rNmsBq5/oju/3EKEiFc4gtuyaXG74y7y1XASIstck/0byfvO2t4z0R7d1RR +nKRYeCspMcUjYshsoJeJAJUDBRAxpL3UPiAdBSUb0JkBAZg7BACE+mKhsrd39/P6 +NattCCOSg76Pf2CVgZdvbb7qK4SmsVGz+58pi2OWM1M0rcHgNZKTIg9rBy47gui2 +KOnqOR7ZuyMVJJqyEZZywmWmfCy/sR4Ui1PehZNNNBAi09u03ItbozrEH6Msa1oC +8mp86XOA70Et8e4DYtj5a9tVbjjtJYkAlQMFEDGCUB31FVv7jlQtXQEB5KgD/iIJ +Ze5lFkPr2B/Cr7BKMVBot1/JSu05NsHgJZ3uK15w4mVtNPZcFi/dKbn+qRM6LKDF +e/GF0HZD/ZD1FJt8yQjzF2w340B+F2GGEOwnClqZDtEAqnIBzM/ECQQqH+6Bi8gp +kFZrFgg5eON7ikqmusDnOlYStM/CBfgpSbR8kDmF +=Bz4E +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect1><heading>&a.ache</heading><p> + +<tscreen><verb> +Andrey A. Chernov <ache@FreeBSD.org> +Fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs +Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD +m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT +tCJBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJg +pPLZnQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqK +K8QYrr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK +/k7BgI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFu +ZHJleSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+ +iQCVAwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj +4GPao3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI +5apJmWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/o +snzCCw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOv +aoGranxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPri +u8dIrlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD +7Hv8vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZ +YMFODHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VS +TGlhBhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+M +tun9KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/ +YC3ahs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1t +GR3bvz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwO +TNQIAOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fte +FRkBAWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96x +naa5MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYi +I0UAIwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAO +z6qx/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBp +YsfA+6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzu +tZiM1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cd +iQCVAwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgR +sWFMy9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8 +JkRvCn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6 +bLMVHEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT +1b145po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvl +Om3RrsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQ +PTi35SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qO +x9FwerGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVj +DHH5+uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgby +ldq6EB33OunazFcfZFRIcXk1sfyLDvYE +=4Yu3 +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect1><heading>&a.rich</heading><p> + +<tscreen><verb> +Rich Murphey <rich@FreeBSD.org> +fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1 +FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs +wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR +tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W +vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g +Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP +/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw== +=QoiM +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> + + <sect1><heading>&a.peter</heading><p> + +<tscreen><verb> +Peter Wemm <peter@FreeBSD.org> +Fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/ +W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2 +kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT +tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMbET +6kqGN2HYnOMZAQG1iwP/atRXZ55OLp6RkLBt9UG7a+AM2kA+ZvyRyOIEZkpm4+pb +iTIDRt36TtOhnf2e7scgiQfKU7LdmvAv5YzmGcVk/ubks5EF3jIuXGHCNbGW1KZB +7Zqj1utt4a9Twd2SwNUyHE20FvjcybMUNT3OlxvXxpE/Vl0Ft14XrQD/o7lUwIS0 +JVBldGVyIFdlbW0gPHBldGVyQHBlcnRoLmRpYWxpeC5vei5hdT6JAJUDBRAxsRQh +SoY3Ydic4xkBAel5A/9hzsH7ha50FLXcBT1JILRKjXkq+uI0NzGs/MYBLW2sP8pt +T24WwpN9dVFkKuPos2RNsZLR0xQpSX2jJ8VSH26D8rokhffSh4lp3/xrKXrdEu5v +/kVyMGYtakqrwGp8TIgO5CoBUgpnIc2rPE0HMslx7Z/4Jfb9JISZG/3790dtG7Qe +UGV0ZXIgV2VtbSA8cGV0ZXJARnJlZUJTRC5vcmc+iQCVAwUQMbESXUqGN2HYnOMZ +AQGSVAP+IvzVh8+SyB/0eCBf91dy5XhcjBa+RDxWNP+JnL9r/o7vYG6zhDP8XeC5 +T68dV6j3me+CUOivZh0euEYSke2SSfQPtdsq+XVaooXvddSsiymm/eKmVB2It+lk +LtlbSxp8P7fCYOOH0Es2wReavYk83HzTmIUZEg9wXQ6wt5ZcsDu0JVBldGVyIFdl +bW0gPHBldGVyQHNwaW5uZXIuZGlhbGl4LmNvbT6JAJUDBRAxsRItSoY3Ydic4xkB +AXQOBACpjRZY/ERfR0LKCN1Gm572KgFjecAsBAeLvmX/M6ujh4nNt086CtUj5Zkn +QRNXV10Bkumog5C0/sTnXnsDbO531CHB/wwY0rpJQDicypYlz0FuxJLijcMuHquW +5fo9xwdu4vlgV4Z+jmjTUGOu+CxmkeNRBquOFqOQE3CInIoP8w== +=iB1t +-----END PGP PUBLIC KEY BLOCK----- +</verb></tscreen> diff --git a/share/doc/ja_JP.EUC/handbook/policies.sgml b/share/doc/ja_JP.EUC/handbook/policies.sgml new file mode 100644 index 000000000000..3bdb16e40b13 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/policies.sgml @@ -0,0 +1,152 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.5 --> + +<chapt><heading>ソースツリーのガイドラインおよび方針 +<label id="policies"> +</heading> + +<p><em>原作: &a.phk;</em><newline>. +<p><em>訳者: &a.mihoko;<newline> +6 September 1996 </em>. + +本章は、FreeBSD のソースツリーについてのさまざまなガイドラインやポリ +シーについて書かれています。 + +<sect><heading>Makefile 中の MAINTAINER +<label id="policies:maintainer"> +</heading> + +<p>1996年6月。 + +<p>FreeBSD 配布物の特定の部分が、一人の人やグループによって保守 +されている場合は、ソースツリーの当該 Makefile に + +<verb> + MAINTAINER= email-addresses +</verb> + +<p>が付け加えられています。これを記述することによって、この部分が誰 +に保守管理されているかを世界中のユーザに伝えることができます。 + +<p>この意味は次のとおりです: + +<p>保守担当者がそのコードを所有し、そのコードに対する責任を持っ +ています。すなわち、その人がそのコードに関するバグ吸収やトラブル報告 +に対する回答をします。また、そのコードが寄贈ソフトウェアの場合には、 +そのソフトウェアの新しいバージョンに適切に追従していきます。 + +<p>保守担当者が決められているディレクトリに対して変更をおこなう場合は、 +変更をおこなう前に、その変更内容を保守担当者に送って、 +保守担当者にレビューをしてもらってください。 +保守担当者が、電子メールに一定期間応答しない場合にのみ、 +保守担当者がレビューすることなしに、変更をおこなうことが認められます。 +しかしながら、そのような場合でも可能な限り、変更点を第三者にレビュー +してもらうようにしてください。 + +<p>もちろん、この義務を引き受けることができない人やグループを保守管 +理者として追加することはできません。 +また、保守管理者がソースツリー管理者 ("committer") である必要は +ありません。 + +<sect><heading>寄贈ソフトウェア</heading> + +<p>1996年6月。 + +<p>FreeBSD 配布物のうちのいくつかのソフトウェアは FreeBSD プロジェクト +以外のところで保守されています。 +歴史的な経緯から、私たちはこれを <em> 寄贈 </em> ソフトウェアと呼 +んでいます。perl や gcc, patch などがその例です。 + +<p>ここ数年来、この種のソフトウェアの取り扱いには、さまざまな方法が取ら +れてきましたが、どの方法にもいくつかの利点と欠点があります。 +これまで欠点のない明確な方法はありませんでした。 + +<p> +議論した結果、これらの方法のうちの一つが「公式な」方法として選択され +ました。その方法が、今後、この種のソフトウェアを取り込む場合に、使用 +されます。 +その上、この方法では、だれもが(cvs にアクセス権のない人でさえ)「公式」 +バージョンのソースに対する差分を簡単に得ることができます。 +これは古い方法にはなかった大きな利点です。ですから、 +既存の寄贈ソフトウェアも、この方法に収束していくことを強く望んでいます。 +この方法を使用することにより、寄贈ソフトウェアの主な開発者に、変更 +点を返すのがとても容易になります。 + +<p>しかしながら結局、寄贈ソフトウェアの取扱は、実際に作業を行って +いる人々に委ねられています。 +もしこの方法を使用することが、その人が扱っているパッケージには +極端に合わないような場合には、コアチームの承認さえあれば、これらの +ルールに反しても、他の開発者の一般的な合意は得られるでしょう。 +将来にわたってパッケージを保守できるということは、大変重要な事柄に +なってきます。 + +<p>プログラミング言語 <tt>Tcl</tt> は、 +この方法が活用されているよい例になっています: + +<p><verb>src/contrib/tcl</verb> には、このパッケージの保守管理者が +配布したソースが含まれています。この中からは FreeBSD に完全には適用 +できない部分が削除されています。Tcl の場合は、"mac"、 "win"、 +"compat" というサブディレクトリは、FreeBSD に取り込む前に削除されて +いました。 + +<p><verb>src/lib/libtcl</verb> には、ライブラリを生成したり、ドキュ +メントをインストールする際に使用される、標準の bsd.lib.mk の +規則を使用した「bmake スタイル」の Makefile だけが 含まれています。 + +<p><verb>src/usr.bin/tclsh</verb> には、bsd.prog.mk 規則 を使用して、 +"tclsh" プログラムや関連するマニュアルページを生成 /インストール +する bmake スタイルの Makefile だけが含まれています。 + +<p><verb>src/tools/tools/tcl_bmake</verb> には、 +tcl ソフトウェアを更新する必要が生じたときの助けになる2つのシェルス +クリプトが含まれています。これらは、ソフトウェアを構築するのに使用し +たり、インストール対象になるソフトウェアではありません。 + +<p>ここ重要なのは、"src/contrib/tcl" ディレクトリが、規則にしたがっ +て作られているということです。つまり、できるだけ FreeBSD に特化した +変更をおこなわないようにしたソースを(CVS のベンダブランチに)おくようにし +ています。 +freefall 上の「簡易取り込み」ツールは、寄贈ソフトウェアを取り込む手助 +けとなります。けれども、このツールの実行方法に疑問が生じた場合は、ま +ずはじめに質問して、失敗をしないようにしてください。そして、 +その疑問を「解決して」からツールを使用してください。 +CVS に寄贈ソフトウェアを取り込む際には、事故があってはいけません。 +よくあるような間違いをおかさないように、十分注意してください。 + +<p>CVS には、残念なことにベンダブランチという設計制限があります。このた +め、CVS に寄贈ソフトウェアを取り込むには、オリジナル配布ソースに +適用されるベンダからの「公式」パッチと、ベンダブランチに逆輸入された結 +果が必要です。 +ベンダブランチの一貫性を破壊したり、将来、新しいバージョンを取り込む +時に衝突を起こしてしまったりというような 困難な事態に陥らないように +しなければなりません。そのために、FreeBSD が管理しているバージョンに +対して、公式パッチを決して当ててはいけませんし、公式パッチを +"commit" してはいけません。 + +<p>多くのパッケージが、他のアーキテクチャや他の環境と FreeBSD +との互換性を保ためのファイルをいくつか含んでいます。そこで、 +スペースを節約するために、FreeBSD にとっては無意味な配布ツリー上の一 +部を削除することが許されています。 +けれども、削除されずに残ったファイルに対する、著作権の通知やリリース +ノートのような情報を含んだファイルは、決して削除しては <em> いけませ +ん </em>。 + +<p>"bmake" Makefile が何らかのユーティリティによって、配布ツリーか +ら自動的に生成できると、うまくいけば、新しいバージョンへのアップグレー +ドをより簡単におこなうことができます。 +もしこのようなユーティリティを作成できた場合には、将来の管理者にとっ +て便利になるように、移植の際に、src/tools ディレクトリ上に、(必要に +応じて)そのユーティリティを必ずチェックインしてください。 + +<p> src/contrib/tcl レベルのディレクトリには、 README.FreeBSD と呼ば +れるファイルが追加されており、そのファイルでは 次のような内容が +記述されています。 + +<itemize> + <item> ディレクトリ上に存在するファイル + <item> オリジナルの配布物をどこから入手すればよいか また、公式配布 +サイトはどこか + <item> オリジナルの作者にパッチを送り返すためには、どこに送ればよいか + <item> FreeBSD に特化した変更点の概要 +</itemize> diff --git a/share/doc/ja_JP.EUC/handbook/porting.sgml b/share/doc/ja_JP.EUC/handbook/porting.sgml new file mode 100644 index 000000000000..e1937094ee11 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/porting.sgml @@ -0,0 +1,1296 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.38 --> + +<sect1><heading>フリーソフトウェアの移植<label id="porting"></heading> + +<p><em>原作: &a.jkh;, &a.gpalmer; &a.asami;. +<newline>7 November 1996.</em> + +<p><em>訳: &a.simokawa;, &a.asami;. +<newline>10 November 1996.</em> + +<p>フリーで手に入るソフトウェアを移植することは, 何かをゼロから自分で +作ることほどは人に感謝されないにしても, どこに手を入れれば動くのかわから +ないような人でも使えるようにするという意味で, FreeBSDの発展のためにとて +も重要なことです. 移植されたすべてのソフトウェアは「Portsコレク +ション」(the Ports Collection) と呼ばれ, 階層的に分類されて集められ +ています. これによって, 新しいユーザでも, 何がすぐに簡単にコンパイルで +きる状態で手に入るのか, についての概要をつかむことができます. また, 移植されるソー +スコードについては, そのほとんどを実際には含まず, FreeBSDで動かすためのほんのちょっ +との差分ファイルといくつかの定義ファイルだけをソースツリーに入れることで, +かなりのディスクスペースが節約できます. + +<p>これから, FreeBSD 2.x用のportを作る際の, いくつかのガイドラインを +説明します. 実際にportをコンパイルするときのほとんどの仕事は +<tt>/usr/share/mk/bsd.port.mk</tt>というファイルでおこないます。 +Portsコレクションについてのさらに細かい内部の働きについては, そちらのファイルを +参照してください. + + <sect2> + <heading>移植を始める前に<label id="porting:starting"></heading> + + <p>注意: ここでは, 変更可能な変数の一部についてのみ記述してい + ます. ほとんどの変数は<tt>bsd.port.mk</tt>の始めに記述があり + ます. また、このファイルは非標準のタブの設定になっていま + す. <tt>Emacs</tt>はファイルのロード時にこれを認識しますが, + <tt>vi</tt>や<tt>ex</tt>では, ファイルをロードしたら + `<tt>:set tabstop=4</tt>'のようにして正しい値を設定することがで + きます. + + <p>Portの過程で, 修正や, どのバージョンのUNIXで動くかによる条件 + つきコンパイルなどが必要なコードに出会うかもしれません. その + ような条件つきコンパイルなどのための変更をおこなうときには, + FreeBSD 1.x システムへの移植や, CSRGの4.4BSD, BSD/386, + 386BSD, NetBSDなどの他のBSDシステムへの移植が可能なように, でき + るだけ普遍的な変更をおこなうことを心がけてください. + + <p>4.3BSD/Renoおよびそれより新しいBSD版を古いバージョンと区別す + るには `<tt>BSD</tt>' マクロを利用するのがよいでしょう. これは + <tt><sys/param.h></tt>で定義されています. このファイルが + すでにインクルードされていればよいのですが, もしそうでない場合 + には以下のコードを, その<tt>.c</tt> ファイルの適当な場所に加 + えて, Makefileの<tt>CFLAGS</tt>に<tt>-D_HAVE_PARAM_H</tt>を加 + えてください. + +<tscreen><verb> +#ifdef _HAVE_PARAM_H +#include <sys/param.h> +#endif +</verb></tscreen> + + そして, 次のようにしてそのコードが4.3 Net2コードベース, または + それより新しいもの (例: FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, + BSD/386 1.1とそれ以前) の上でコンパイルされているかを検出できます. + +<tscreen><verb> +#if (defined(BSD) && (BSD >= 199103)) +</verb></tscreen> + + また, + +<tscreen><verb> +#if (defined(BSD) && (BSD >= 199306)) +</verb></tscreen> + + これは, 4.4コードベース, またはそれより新しいもの (例: FreeBSD + 2.x, 4.4, NetBSD 1.0, BSD/386 2.0とそれ以後) の上でコンパイルさ + れているかどうかを検出するために使用します. + + <p>以下は控え目に使ってください. + + <itemize> + <item><tt>__FreeBSD__</tt> はFreeBSDのすべての版で定義されてい + ます. 変更がFreeBSDだけに適用されるとき以外は使用しないでく + ださい. Portでよくある, <tt>strerror()</tt> ではなく + <tt>sys_errlist[]</tt> を使うなどは, FreeBSDでの変更ではなく, + BSDの流儀です. + + <item>FreeBSD 2.xでは<tt>__FreeBSD__</tt>が2と定義されていま + す. それ以前の版では1になっています. + + <item>もし, FreeBSD 1.xシステムとFreeBSD 2.xシステムを区別 + する必要があれば, 上で述べた<tt>BSD</tt>マクロを使用するのが, + 大抵の場合において正しい答です. もし, FreeBSD特有の変更であ + れば (`<tt>ld</tt>' を使うときのシェアードライブラリ用のな + オプションなど), <tt>__FreeBSD__</tt>を使い + `<tt>#if __FreeBSD__ > 1</tt>' のようにFreeBSD 2.x + システムを検出するのはかまいません. + + もし, 2.0-RELEASE以降のFreeBSDシステムを細かく検出したけれ + ば, 以下を使用することができます. + +<tscreen><verb> +#if __FreeBSD__ >= 2 +#include <osreldate.h> +# if __FreeBSD_version >= 199504 + /* 2.0.5+ release specific code here */ +# endif +#endif +</verb></tscreen> +<tt>__FreeBSD_version</tt> の値は以下の通りです: +<tscreen><verb> +2.0-RELEASE: 199411 +2.1-current's: 199501, 199503 +2.0.5-RELEASE: 199504 +2.2-current (2.1以前): 199508 +2.1.0-RELEASE: 199511 +2.2-current (2.1.5以降): 199512 +2.1.5-RELEASE: 199607 +2.2-current (1996年7月12日現在): 199608 (リリースが出る毎に変わります) +</verb></tscreen> +見ての通り、これは年・月というフォーマットになっています. + + </itemize> + + <p>これまで, 何百ものportが作られてきましたが, + <tt>__FreeBSD__</tt>が正しく使われたのは, 1つか2つの場合だけで + しょう. 以前のportが誤った場所でそのマクロが使っているからと + いって, それをまねする理由はありません. + + <sect2> + <heading>3分porting</heading> + + <p>この節では, 簡単なportの方法について説明します. 多くの場合これ + では不十分ですが, まあうまくいくかどうか試してみて損はないでしょ + う. + + <p>まず, 元のtarファイルを<tt>${DISTDIR}</tt>に置きます. + デフォルトは<tt>/usr/ports/distfiles</tt>です. + + <p>注: 以下では, ソフトウェアはそのままコンパイルされるとします. + つまり, FreeBSDのマシンで動かすために, 変更がまったく必要ない + とします. もしなにか変更が必要な場合には次の節も参照する必要 + があります. + + <sect3> + <heading>Makefileの作成</heading> + + <p>最小限の<tt>Makefile</tt>は次のようなものです: + +<tscreen><verb> + # New ports collection makefile for: oneko + # Version required: 1.1b + # Date created: 5 December 1994 + # Whom: asami + # + # $Id$ + # + + DISTNAME= oneko-1.1b + CATEGORIES= games + MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ + + MAINTAINER= asami@FreeBSD.ORG + + USE_IMAKE= yes + + .include <bsd.port.mk> +</verb></tscreen> + + <p>おわかりになりますでしょうか. <tt>$Id$</tt>があ + る行の内容については, 気にしないでください. これはこのファイル + がportsツリーに書き込まれるときにCVSによって自動的に書 + き込まれます. もっと詳しい例が見たければ, <ref + id="porting:samplem" name="Makefileのお手本">の節をご覧ください. + + <sect3> + <heading>Package記述ファイルの作成</heading> + + <p>どのようなportでも, packageにするしないに関わらず, 3つ + の記述ファイルが必要です. <tt>pkg</tt>サブディレクトリにある, + <tt>COMMENT</tt>, <tt>DESCR</tt>, それに<tt>PLIST</tt>です. + + <sect4> + <heading>COMMENT</heading> + + <p>これには, そのportについての説明を1行で書きます. Package + の名前, バージョン番号等は<em>含めない</em>でください. + たとえば, こんな具合です: + +<tscreen><verb> +A cat chasing a mouse all over the screen +</verb></tscreen> + + <sect4> + <heading>DESCR</heading> + + <p>これは, そのソフトウェアについての, すこし長い説明を記述しま + す. そのportが何をするのかについての数段落程度の簡潔な解説があれば + 十分です. 注: このファイルはマニュアルでもなければ, 使用方 + 法やコンパイル方法についての細かい説明書ではありません. 特 + に, <tt>README</tt>ファイルを何も考えずにここにコピーするような + ことはしないでください. (もちろん, READMEがそのソフトウ + ェアの簡潔な説明になっている場合は別ですが.) + + <p>このファイルの最後にあなたの名前を書くことが推奨されています. + たとえば, こんな具合です. + +<tscreen><verb> +This is a port of oneko, in which a cat chases a poor mouse all over +the screen. + : +(うんぬん.) + +- Satoshi +asami@cs.berkeley.edu +</verb></tscreen> + + <sect4> + <heading>PLIST</heading> + + <p>このファイルには, このportによってインストールされるファ + イルが列挙されます. このファイルはpackageを作る際のリス + トとして使われるため, `packing list' とも呼ばれます. ここ + に書かれているファイル名は, インストール時のプレフィックス + (普通は<tt>/usr/local</tt>か<tt>/usr/X11R6</tt>) からの + 相対パスです. + + <p>簡単な例を載せておきましょう: + +<tscreen><verb> +bin/oneko +man/man1/oneko.1.gz +lib/X11/app-defaults/Oneko +lib/X11/oneko/cat1.xpm +lib/X11/oneko/cat2.xpm +lib/X11/oneko/mouse.xpm +</verb></tscreen> + + <p> 'Packing list'の詳細については, <tt>pkg_create(1)</tt>の + マニュアルを参照してください. + + <sect3> + <heading>チェックサムファイルの作成</heading> + + <p>ただ, `<tt>make makesum</tt>' と入力するだけです. + bsd.port.mkにルールがあるので, 自動的に<tt>files/md5</tt>が + 生成されます. + + <sect3> + <heading>Portのテスト</heading> + + <p>そのportが正しく動くことを, package化を含めて確認してく + ださい. まず, `<tt>make install</tt>', `<tt>make + package</tt>' を試してください. また, `<tt>pkg_delete -d + <pkgname></tt>' をして,すべてのファイルが正しく消去さ + れているかどうかを確認してください. それから, `<tt>pkg_add + <pkgname>.tgz</tt>' をおこない, すべてのファイルが再び現 + れ, 正しく動作することを確認してください. + + <sect3> + <heading><label id="porting:submitting">Portの送付</heading> + + <p>さあ, あなたのportに満足したら, あとはそれをFreeBSDのメイ + ンのportsツリーに置いて, 皆に使ってもらうだけです. そのた + めには, 必要なファイル (この節で述べたすべてのファイル -- た + だし, オリジナルのソースファイル, `<tt>work</tt>' サブディレ + クトリ, およびpackageは含みません) をまとめて + <tt>.tar.gz</tt> ファイルにし, +<tscreen><verb> +ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming/ +</verb></tscreen> + へ置き, <tt>send-pr(1)</tt> を使って私たちのところにメールを送っ + てください (categoryは `ports', classは `change-request' を + 使ってください). 私たちは, 何か不明な点があったらあなたに確 + 認したのち, それをツリーへ置きます. あなたの名前は, FreeBSD + ハンドブックやその他のファイルの `Additional FreeBSD + contributors' のリストにも載るでしょう. う〜ん, 素晴らし + い. <tt>:)</tt> + + <sect2> + <heading>本格的なport</heading> + + <p>残念ながら, 移植がそう簡単ではなく, 動かすために多少の変更が + 必要な場合も多いでしょう. この節では, portsコレクション + の方法論にのっとって, そのような場合にどのように変更を施し, 動 + くようにしたらよいかを順を追って説明します. + + <sect3> + <heading>port構築の詳細</heading> + + <p>まず, あなたがportのディレクトリで `<tt>make</tt>' とタイ + プしてから起こる一連の出来事について,順を追って説明しま + す. ここを読むときには, 他のウィンドウで同時に + <tt>bsd.port.mk</tt>も開いておくとよいかもしれません. + + <p>しかし, <tt>bsd.port.mk</tt>が何をしているのか, 完全に理解 + できなくても心配する必要はありません. そう多くの人が理解して + いるわけではないですから... <tt>f(^_^;)</tt> + + <enum> + <item>まず, fetchというターゲットが実行されます. このfetchターゲッ + トはローカルディスクの<tt>${DISTDIR}</tt>に配布ファ + イルがあるようにするのが役目です. もし, fetchが必要なファ + イルを<tt>${DISTDIR}</tt>に見つけることができなけ + れば, Makefileに指定されているURL + <tt>${MASTER_SITES}</tt>, そして私たちのFTPサイトで + ある <htmlurl + url="ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/" + name="ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/"> (ここ + には, 私たちが取ってきたファイルをバックアップとして置いてあ + ります) に探しにいきます. そして, ユーザのサイトがインター + ネットに直接接続されている場合には, + <tt>${FETCH}</tt> を使って, その名前のファイルを取っ + てきて, <tt>${DISTDIR}</tt>に保存します. + + <item>次に実行されるのはextractターゲットです. これは, + <tt>${DISTDIR}</tt>にある, 配布ファイル (普通は + gzipされたtarファイル) を読み, ソースを一時的な作業ディレ + クトリ<tt>${WRKDIR}</tt> (デフォルトは + <tt>work</tt>) に展開します. + + <item>次に, patchというターゲットが実行されます. まず, + <tt>${PATCHFILES}</tt>に定義されている, すべてのパッ + チをあてます. 次にもし<tt>${PATCHDIR}</tt> (デフォ + ルトは<tt>patches</tt> サブディレクトリ) にパッチが存在す + れば, これらをアルファベット順にあてます. + + <item>次に実行されるターゲットはconfigureです. これには, い + ろいろな場合があります. + + <enum> + + <item>もし存在すれば, <tt>scripts/configure</tt> が実行されます. + + <item>もし, <tt>${HAS_CONFIGURE}</tt> あるいは + <tt>${GNU_CONFIGURE}</tt> がセットされていれば, + <tt>${WRKSRC}/configure</tt> が実行されます. + + <item>もし, <tt>${USE_IMAKE}</tt> がセットされていれば, + <tt>${XMKMF}</tt> (デフォルト: `<tt>xmkmf + -a</tt>') が実行されます. + + </enum> + + <item>最後に, buildというターゲットが実行されます. これは, そのport + の専用の作業ディレクトリ (<tt>${WRKSRC}</tt>) にい + き, コンパイルするのが役目です. もし + <tt>${USE_GMAKE}</tt> がセットされていれば, GNU + <tt>make</tt>が使用されます. さもなければFreeBSDの + <tt>make</tt>が使用されます. + + </enum> + + <p>上記はデフォルトのルールです. さらに, `<tt>pre-<何とか + ></tt>や `<tt>post-<何とか></tt>' というターゲット + が定義してあったり, そのような名前のスクリプトが + <tt>scripts</tt> サブディレクトリに置いてある場合には, それ + らはデフォルトの動作の前後に実行されます. + + <p>たとえば, <tt>post-extract</tt>というターゲットがMakefile + で定義されていて, <tt>pre-build</tt>というファイルが, + <tt>scripts</tt>サブディレクトリにあるとすると, + <tt>post-extract</tt>ターゲットは, 通常の展開動作のあとに呼 + び出され, <tt>pre-build</tt>スクリプトはデフォルトのコンパイ + ルのルールが実行される前に実行されます. もし動作が簡単であれ + ば, Makefileのターゲットを使用することが推奨されています. な + ぜならば, そのportが何らかのデフォルトではない動作を必要とす + るのかどうかが一箇所にまとめて書いてあった方が他の人に理解しやす + いからです. + + <p>デフォルトの動作は<tt>bsd.port.mk</tt> の + `<tt>do-<何とか></tt>' というターゲットでおこなわれます. + たとえば, portを展開するコマンドは, `<tt>do-extract</tt>' + というターゲットにあります. もし, デフォルトのターゲットに + 不満があれば, `<tt>do-<something></tt>' というターゲッ + トを再定義することによって, どのようにでも直すことができます. + + <p>「メイン」のターゲット (例えば, <tt>extract</tt>, + <tt>configure</tt>等) は, すべての前段階が実行されていること + を確認して, 実際のターゲットやスクリプトを呼び出す以外のこと + はしません. bsd.port.mkはこれらが変更されることは仮定してい + ませんので, もし, 例えば, 展開の仕方を直したいときには, + <tt>do-extract</tt> を直し, 絶対に<tt>extract</tt>には手を + 触れないでください. + + <p>これで, ユーザが `<tt>make</tt>' と入力したときに何が起こ + るのかが理解できたと思います. では, 完璧なportを手順を追っ + て作ってみましょう. + + <sect3> + <heading>オリジナルのソースの入手</heading> + + <p>オリジナルのソースを, (普通は) 圧縮されたtarファイルの形 + (<tt><foo>.tar.gz</tt>あるいは + <tt><foo>.tar.Z</tt>) で入手して, それを + <tt>${DISTDIR}</tt> にコピーします. 可能なかぎり, 広 + く使われている<em>主流の</em>ソースを使用するようにしてください. + + <p>もし, ネットワークへの接続のよいFTP/HTTPサイトを見つけるこ + とができなかったり, 頭にくるような非標準的な形式しか持ってい + ないサイトしか見つけられないときには, 最後の手段として, 私たち + 自身で, +<tscreen><verb> +ftp://freefall.FreeBSD.ORG/pub/FreeBSD/LOCAL_PORTS/ +</verb></tscreen> + に置くことができます. これについての問い合わせのメールは + は &a.ports へお願いします. + + <p>もし, あなたのportに必要ないくつかの追加パッチがインター + ネット上で手に入るのならば, それらも取ってきて, + <tt>${DISTDIR}</tt> に置きます. もし, それらがメイン + のソースのtarファイルとは別のサイトにあっても, 心配する必要 + はありません. そのような状況にはちゃんと対応できるようになっ + ています. (以下の<ref id="porting:patchfiles" + name="${PATCHFILES}の記述">をご覧く + ださい). + + <sect3> + <heading>Portの修正</heading> + + <p>適当なディレクトリにtarファイルを展開して, FreeBSDの最新の + バージョン上で, 正しくコンパイルできるために必要なあらゆる変 + 更を施します. 最終的に処理は自動化するわけですから, 何をおこなっ + たかを<em>注意深く記録しておきましょう</em>. あなたのport + が完成した暁には, ファイルの削除, 追加, 修正を含むすべての処 + 理が, 自動化されたスクリプトやパッチファイルでおこなえるようになっ + ていないといけません. + + <p>もし, あなたのportのコンパイルやインストールのために必要 + な手作業があまりに多いようならば, Larry Wallの模範的な + Configureスクリプトでも参考にしたほうがいいかもしれませ + ん. 新しいportsコレクションは, 最小のディスクスペースで, + 個々のportがエンドユーザにできるだけ「プラグ & プレ + イ」の状態でmakeできることをめざしています. + + <p>注意: あなたが作成しFreeBSDのportsに寄付されたパッチファイル, + スクリプトおよびその他のファイルは,明示的に記述されている場合 + を除いては, BSDの標準的な著作権条件によりカバーされていると見な + されます. + + <sect3> + <heading>パッチをあてる</heading> + + <p>portの過程で追加されたり変更されたファイルは再帰的diffで変 + 更点を取り出すことができます. パッチは適当にまとめて, + `<tt>patch-<xx></tt>' という名前のファイルに入れてくだ + さい. <tt><xx></tt>はパッチが適用される順番を示します -- + これらは, <em>アルファベット順</em>, つまり `<tt>aa</tt>' が + 最初, つぎに `<tt>ab</tt>' などとなります. これらのファイル + を<tt>${PATCHDIR}</tt>に置いておくと, 自動的に適用さ + れるようになっています. すべてのパッチは + <tt>${WRKSRC}</tt> (通常は, portのtarファイルが展 + 開されるところで, makeが実行されるところと同じです) からの相 + 対パスになります. 修正やアップグレードを容易にするため, 2つ + 以上のパッチが同じファイルを修正するのは避けてください. (例, + patch-aaとpatch-abが共に<tt>${WRKSRC}</tt>/foobar.c + を修正する, など.) + + <sect3> + <heading>コンフィグレーション</heading> + + <p>カスタマイズのために追加したいコマンドがあれば, + <tt>configure</tt>という名前のスクリプトに入れて + `<tt>scripts</tt>' サブディレクトリに置きます. 上で述べたよ + うに, <tt>pre-configure</tt> あるいは<tt>post-configure</tt> + というMakefileのターゲットおよび/あるいはスクリプトで処理す + ることもできます. + + <sect3> + <heading>ユーザからの入力の扱い</heading> + + <p>もし, そのportがビルド, コンフィグレーション, インストー + ルの際にユーザからの入力を必要とするならば, Makefileで + <tt>IS_INTERACTIVE</tt>をセットしてください. これによって, + 深夜, 自動的にたくさんのportをコンパイルすることが可能にな + ります. 環境変数<tt>BATCH</tt>がセットされていると + <tt>IS_INTERACTIVE</tt>の定義されているportはスキップされ + ます (そして, ユーザが<tt>INTERACTIVE</tt>という変数をセッ + トすると入力を必要とするport<em>のみ</em>コンパイルされま + す). + + <sect2> + <heading>Makefileの作成</heading> + + <p>Makefileの作成は非常に単純です. 繰り返しになりますが, 始める + まえに, すでにある例を見てみることをお奨めします. またこのハ + ンドブックには<ref id="porting:samplem" name="Makefileのお手本"> + があります. それを見て, Makefile内の変数の順番や空行を入れると + ころなどの参考にしてください. そうすると他の人々にも読みやすい + ものとなります. + + <p>では, Makefileをデザインするときに問題となるところを順に追っ + て見てみましょう. + + <sect3> + <heading>オリジナルのソース</heading> + + <p>ソースは<tt>${DISTDIR}</tt>に, 標準的なgzipされた + tarファイルとして置かれていますか? そうであれば, 次のステッ + プに進めます. そうでなければ, 変数 + <tt>${EXTRACT_CMD}</tt>, + <tt>${EXTRACT_BEFORE_ARGS}</tt>, + <tt>${EXTRACT_AFTER_ARGS}</tt>, + <tt>${EXTRACT_SUFX}</tt>, + <tt>${DISTFILES}</tt>を適当に書き換えないといけません. + どれだけ変更しないといけないかは, あなたのportの + 配布ファイルがどの程度標準からかけはなれているかによりま + す. (最もよくある場合は, gzipではなく普通のcompressコマンド + でtarファイルが圧縮されている場合で, + `<tt>EXTRACT_SUFX=.tar.Z</tt>' とするだけです.) + + <p>最悪の場合には, 自分で `<tt>do-extract</tt>' ターゲットを作 + 成して, デフォルトを上書きすることもできます. しかし, そこま + でする必要があることはめったにないでしょう. + + <sect3> + <heading>DISTNAME</heading> + + <p><tt>${DISTNAME}</tt>にはportの名前の基幹部分を入れ + ます. デフォルトのルールでは, 配布ファイルのリスト + (<tt>${DISTFILES}</tt>) は + <tt>${DISTNAME}${EXTRACT_SUFX}</tt>という名前 + になっています. 例えば, `<tt>DISTNAME=foozolix-1.0</tt>'の場 + 合, 通常のtarファイルだと, +<tscreen><verb> +foozolix-1.0.tar.gz +</verb></tscreen> + のようになります. + + さらにデフォルトのルールでは, tarファイルは + <tt>work/${DISTNAME}</tt>というサブディレクトリ + に展開されることを仮定しています, 例えば +<tscreen><verb> +work/foozolix-1.0/ +</verb></tscreen> + といった具合いです. + + これらの動作はもちろんすべて変更可能です. デフォルトのルー + ルは最も標準的な場合を仮定しているだけです. まず, portが複 + 数の配布ファイルを必要とするときには, 単に明示的に + <tt>${DISTFILES}</tt>を設定してください. もし, + <tt>${DISTFILES}</tt>の一部だけが実際に展開される場合 + には, それらを<tt>${EXTRACT_ONLY}</tt> に設定してくだ + さい. この変数が定義されている場合には, 展開時に + <tt>${DISTFILES}</tt>に優先して利用されます. 残りのファ + イルも<tt>${DISTDIR}</tt>に取ってきますが, 展開時に + はなにもせずに後で使うためにそのまま置いておかれます. + + <sect3> + <heading>CATEGORIES (分類)</heading> + + <p>完成したpackageの実体は<tt>/usr/ports/packages/All</tt> + に置かれます. また, 1つかそれ以上の + <tt>/usr/ports/packages</tt>のサブディレクトリからのシンボリッ + クリンクが作られます. それらのサブディレクトリの名前が + <tt>${CATEGORIES}</tt>という変数によって指定されます. + これは, ユーザがFTPサイトやCD-ROMのpackageの山を渡り歩 + くことを容易にするためです. 現在存在するカテゴリを見て, そ + のportに適したもを選んでください. (<htmlurl + url="http://www.freebsd.org/ports/" name="Ports Collection + のページ">などが参考になるでしょう). もしそのportが本当 + に現在存在するすべてのものとは異なっている場合には, 新しいカテ + ゴリ名を作ることもできます. + + <sect3> + <heading>MASTER_SITES</heading> + + <p>オリジナルの配布ファイルを指し示すFTPまたはHTTPのURLのディ + レクトリ部分までを<tt>${MASTER_SITES}</tt>に記録しま + す. スラッシュ (<tt>/</tt>) を最後につけることをお忘れなく. + + <p>配布ファイルがシステム上に存在しないときに, makeマクロは + <tt>${FETCH}</tt>でこの変数に指定されたサイトから取っ + てきます. + + <p>複数の, できれば異なる大陸のサイトをこのリストに入れておく + ことが推奨されています. これによって, 広域ネットワークにトラ + ブルがあった場合でも成功する可能性が高くなります. 私たちはさら + に, 自動的に最も近いマスタサイトを検出して, そこから取って + くるメカニズムの導入を計画しています. + + <sect3> + <heading>PATCHFILES<label id="porting:patchfiles"></heading> + + <p>もし, オリジナルの配布ファイル以外にもFTPかHTTPで手に入る + パッチが必要な場合には, <tt>${PATCHFILES}</tt>にファ + イル名を, <tt>${PATCH_SITES}</tt>にサイトとディレクト + リの名前を<tt>${MASTER_SITES}</tt>と同様に設定してく + ださい. + + <p>そのパッチ内のファイル名ががソースツリーの一番上のディレク + トリ (<tt>${WKRSRC}</tt>) からの相対パスになっていな + い場合には, <tt>${PATCH_DIST_STRIP}</tt>を指定してく + ださい. 例えば, パッチ内のファイル名にすべて余計な + `<tt>foozolix-1.0/</tt>' がついている場合には, + `<tt>PATCH_DIST_STRIP=-p1</tt>'としてください. + + <p>これらのパッチは圧縮されていても大丈夫です. ファイル名が + `<tt>.gz</tt>' か `<tt>.Z</tt>' で終わる場合には自動的に復元 + されるようになっています. + + <p>もしパッチが, 文書などその他のファイルと一緒にgzipされた + tarファイルで配布されている場合には,単純に + <tt>${PATCHFILES}</tt> を使うことはできません. + このような場合には, このパッチの tar ファイルの名前と場所を + <tt>${DISTFILES}</tt> と <tt>${MASTER_SITES}</tt> + に加えます. それから, <tt>pre-patch</tt> ターゲットで, + パッチコマンドを走らせるか, パッチファイルを + <tt>${PATCHDIR}</tt> ディレクトリに + <tt>patch-<xx></tt>という名前でコピーするかして, + パッチを適用するようにします.(普通の gzip か compress された + tar ファイルであれば,通常のソースファイルと一緒にその時までに + 展開されていますので,明示的に展開する必要はありません.) + もし,後者の方法を使用する場合には,すでにそのディレクトリにある + なにかを上書きしないように, 注意する必要があります. + さらに, <tt>pre-clean</tt> ターゲットにコピーしたパッチファイル + を削除するコマンドを追加するのを忘れないでください. + + <sect3> + <heading>MAINTAINER</heading> + + <p>あなたのメールアドレスをここに入れてください. お願いします. + <tt>:)</tt> + + <p>保守担当者(maintainer)の責任についての詳細は, + <ref id="policies:maintainer" name="Makefile 中の MAINTAINER"> + の節をご覧ください. + + <sect3> + <heading>依存関係</heading> + + <p>このプログラムが他のportに依存する場合には, 必要なものが + 自動的に作られるようにすることができます. そのために, 以下の + 5つの変数が用意されています. + + <sect4> + <heading>LIB_DEPENDS</heading> + + <p>Portが必要とする非標準の共有ライブラリをこの変数で指定 + します. これは `<tt>lib:dir</tt>' という組のリストで, うち + <tt>lib</tt> が共有ライブラリの名前, そして<tt>dir</tt> + がそのライブラリが見つからない場合にインストールするport + のあるディレクトリです. 例えば, +<tscreen><verb> +LIB_DEPENDS= jpeg\\.6\\.:${PORTSDIR}/graphics/jpeg +</verb></tscreen> + と指定してあれば, まずメジャーバージョンが6のjpegライブ + ラリがあるかどうか確認し, ない場合にはportsツリーの中の + <tt>graphics/jpeg</tt> というサブディレクトリに移動し, そこ + からインストールしようとします. + + 前半の<tt>lib</tt> 部分はそのまま `<tt>ldconfig -r | + grep</tt>' へ引数として渡されることに注意してください. 特 + に, ピリオド (.) の前には上記の例のようにバックスラッシュ + を連続してつける必要があります. + + この依存関係は<tt>extract</tt> ステージのはじめでチェック + されます. また, packageを作るときに必要となるportのpackage名 + が記録され, <tt>pkg_add</tt>を使用すると自動的にそちら + のpackageもインストールされるようになります. + + <sect4> + <heading>RUN_DEPENDS</heading> + + <p>Portを使用する際に必要となるファイルまたはプログラムがある + ときにはこの変数で指定します. これは`<tt>path:dir</tt>' とい + う組のリストで, <tt>path</tt> がファイルまたはプログラムの + 名前, そして<tt>dir</tt> がそれが見つからない場合に作成する + ためのディレクトリ名です. <tt>Path</tt> の最初の文字がスラッ + シュ (<tt>/</tt>) の場合にはファイルとみなし, その存在を + `<tt>test -e</tt>' でチェックします; そうでない場合にはプ + ログラムであると仮定し, `<tt>which -s</tt>' を使ってそのプ + ログラムがユーザのサーチパス上にあるかどうか確認します. + + <p>例えばMakefileに以下のように書いてあるとします. +<tscreen><verb> +RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \ + wish:${PORTSDIR}/x11/tk +</verb></tscreen> + まず, `<tt>/usr/local/etc/innd</tt>' というファイルが存在 + するか確認し, ない場合にはportsツリーの中の + <tt>news/inn</tt> というサブディレクトリから作られます. ま + た, `<tt>wish</tt>' というプログラムがユーザのサーチパス中 + にあるかどうか探し, ない場合には同じくportsツリーの + <tt>x11/tk</tt> というサブディレクトリから作られます. + (この例で, `<tt>innd</tt>' は実際にはプログラムです; この + ように, プログラムであっても標準のサーチパス以外のところに + あるようなものの場合には, 絶対パスで指定してください.) + + この依存関係は<tt>install</tt> ステージのはじめでチェック + されます. また, packageを作る際に必要となるportのpackage名 + が記録され, <tt>pkg_add</tt>を使用すると自動的にそちら + のpackageもインストールされるようになります. + + <sect4> + <heading>BUILD_DEPENDS</heading> + + <p>Portのコンパイルに必要なファイルまたはプログラムがある + ときは, この変数で指定してください. <tt>RUN_DEPENDS</tt>と同 + 様に, これは `<tt>path:dir</tt>' という組のリストです. 例 + えば, +<tscreen><verb> +BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip +</verb></tscreen> + は `<tt>unzip</tt>' という名前のプログラムを探し, 見つから + ない場合には<tt>archivers/unzip</tt> サブディレクトリで作 + れという意味になります. + + ここでは「コンパイル」と一口にいいましたが, この変数は実際 + にはファイルの展開から実際のコンパイル・リンクまで全部をま + とめて面倒を見てくれます. この依存関係は<tt>extract</tt> + ステージからチェックされます. + + <sect4> + <heading>FETCH_DEPENDS</heading> + + <p>この変数は, portを取ってくるのに必要なファイルまたはプロ + グラムを指定するのに使います. 上の二つと同様に, これは + `<tt>path:dir</tt>' という組のリストです. 例えば, +<tscreen><verb> +FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2 +</verb></tscreen> + としておけば, `<tt>ncftp2</tt>' という名前のプログラムを探 + し, 見つからない場合には<tt>net/ncftp2</tt> サブディレク + トリにいってインストールします. + + この依存関係は<tt>fetch</tt>ステージからチェックされます. + + <sect4> + <heading>DEPENDS</heading> + + <p>上の四つのいずれにもあてはまらないような依存関係がある場 + 合, または他のportのソースが展開されている必要がある場合 + (インストールされているだけでは不十分な場合) にはこの変数 + を使います. これはディレクトリ名のリストです (上の四つと違っ + て特に「確認」するものがありませんので). + + <sect3> + <heading>コンパイル時の特別な指定</heading> + + <p>GNUの<tt>make</tt>を使う場合には, `<tt>USE_GMAKE=yes</tt>' + と指定してください. PortにGNUの<tt>configure</tt>が含まれ + ている場合には, `<tt>GNU_CONFIGURE=yes</tt>' を使います. GNU + <tt>configure</tt>にデフォルトの + `<tt>--prefix=${PREFIX}</tt>' 以外の引数を渡したい場 + 合には追加部分を<tt>${CONFIGURE_ARGS}</tt>で指定して + ください. + + <p>X Window Systemのアプリケーションなど, <tt>imake</tt>を + 使ってImakefileからMakefileを作成するportの場合には + `<tt>USE_IMAKE=yes</tt>' を指定してください. コンフィグレー + ションステージで自動的に<tt>xmkmf -a</tt> が実行されます. も + し `<tt>-a</tt>' フラグが問題をもたらすなら, さらに + `<tt>XMKMF=xmkmf</tt>'としてください. + + <p>PortのMakefileが `<tt>all</tt>' 以外のものをメインのター + ゲットとしている場合には, <tt>${ALL_TARGET}</tt> でそ + れを指定してください. `<tt>install</tt>' と + <tt>${INSTALL_TARGET}</tt> も同様です. + + <sect3> + <heading>NO_INSTALL_MANPAGES</heading> + + <p>あなたのportがimakeは使うものの `<tt>install.man</tt>' + ターゲットを持っていない場合, + `<tt>NO_INSTALL_MANPAGES=yes</tt>' を指定してください. つい + でに, 作者を探し出して八つ裂きにするといいでしょ + う. <tt>(-_-#)</tt> + + <sect2> + <heading>Motifを必要とするport</heading> + + <p>最近はコンパイルにMotifを必要とするアプリケーションが増えて + きました. (Motif自体は有料のものがいくつかの会社から手に入りま + すし, 無料の互換ライブラリを作ろうとしているグループが少なくと + も一つあります.) Motifはかなり広く使われていますし, 製品のライ + センスではライブラリを静的にリンクした実行形式は再配布が認めら + れている場合が多いので, Motifを必要とするソフトウェアを簡単に + 動的/静的にリンクできるようなしくみが用意されています. + + <sect3> + <heading>REQUIRES_MOTIF</heading> + + <p>MotifがないとコンパイルできないportのMakefileではこの変 + 数を指定してください. これによって, Motifを持っていない人が + このportをコンパイルしようとするのを未然に防ぎます. + + <sect3> + <heading>${MOTIFLIB}</heading> + + <p>この変数は<tt>bsd.port.mk</tt>によってMotifライブラリの指 + 定に置き換えられます. ソース内のMakefileやImakefileで + Motifライブラリを指定しているところをこの変数に置き換えるよ + うにパッチをあててください. + + <p>代表的な例としては以下の二つがあげられます: + <enum> + <item>MakefileかImakefileの中でMotifライブラリが + `<tt>-lXm</tt>' として使われている場合には, かわりに + `<tt>${MOTIFLIB}</tt>' と書いてください. + + <item>Imakefileの中で `<tt>XmClientLibs</tt>' が使われている + 場合には, それを `<tt>${MOTIFLIB} + ${XTOOLLIB} ${XLIB}</tt>' と書きかえてください. + </enum> + + <p><tt>${MOTIFLIB}</tt> は通常 `<tt>-L/usr/X11R6/lib + -lXm</tt>' か `<tt>/usr/X11R6/lib/libXm.a</tt>' に置き換えら + れます. したがって前に `<tt>-L</tt>' や `<tt>-l</tt>' をつけ + る必要はありません. + + <sect2> + <heading>ライセンス上の問題</heading> + + <p>ソフトウェアによっては制限の厳しいライセンスがついてきたり, + 法律的に問題があるものがあります (PKPの公開鍵暗号化, ITAR (暗 + 号化ソフトウェアの輸出) などが例としてあげられます). それらを + どう扱えばいいかはライセンスの文面によってさまざまな場合があり + ます. + + <p>ソフトウェア移植者として, あなたにはライセンスをよく読み, + FreeBSDプロジェクトがFTPまたはCD-ROMで配布してはいけないソフ + トウェアを配布してしまうことのないよう, 注意する義務があります. + なにか疑問がある場合には, &a.ports;に聞いてみてください. + + <p>よく見られるケースに対処するために, 二つの変数が用意されてい + ます: + + <enum> + <item>ソフトウェアに「有償再配布を禁ずる」という趣旨のライセン + スがついてきた場合には<tt>NO_CDROM</tt>という変数をセットして + ください. 私たちはこれがついているportはCD-ROMリリースに入 + れないようにしますが, オリジナルのソースファイルとpackage + はFTPでは取れるようにしておきます. + + <item>Portが, 使用者によっては法律上の問題が生じる時 (暗号化ソフ + トウェアなど), または「商用利用を禁ずる」とライセンスに書い + てある場合には<tt>RESTRICTED</tt>という変数にその理由を入れ + てください. この場合には, ソースファイルやpackageは私たちの + FTPサイトにも置かれません. + </enum> + + <p>注: GNU一般公有使用許諾書 (GPL) はバージョン1, 2とも + port作成上は何ら問題にはなりません. + + <p>注: もしあなたが,ソースツリー管理者 (committer) であれば, + ソースツリーにこのようなportを入れる際に, + <tt>ports/LEGAL</tt>ファイルを書き換えるのを忘れないようにし + てください. + + <sect2> + <heading>アップグレード</heading> + + <p>Portのバージョンが原作者からのものに比べて古いことに気がつ + いたら, まずはあなたの持っているportが私たちの最新のもの (ミラー + サイトの<tt>ports-current</tt>というディレクトリにあります) + であることを確認してください. + + <p>次に, portのMakefileに<tt>MAINTAINER</tt> (保守担当者) の + アドレスが書いてある場合には, その人にメールを出してみましょう. + 保守担当者の人がすでにアップグレードの準備をしているかもしれま + せんし, (新しいバージョンの安定度に問題があるなど) あえてアッ + プグレードをしない理由があるのかもしれません. + + <p>保守担当者にアップグレードをしてくれと頼まれた場合, あるいは + そもそもportのMakefileに保守担当者が書いてない場合などは, あ + なたがアップグレードをしてくださると助かります. その場合にはアッ + プグレードをしたのち, 変更前と変更後のディレクトリの再帰的diff + をとって送ってください. (例えば, 変更前のディレクトリが + `<tt>superedit.bak</tt>' という名前でとってあり, 変更後のもの + が `<tt>superedit</tt>' に入っているなら, `<tt>diff -ru + superedit.bak superedit</tt>' の結果を送ってください. ) もし変 + 更点が多すぎて, パッチが新しいport全体より大きくなる場合には, + 前に述べた手順にしたがって新しいport全体を<ref + id="porting:submitting" name="アップロード">してください. いず + れの場合にも, <tt>send-pr(1)</tt> を使ってメールを送るのを忘れ + ないようにしてください. + + <sect2> + <heading>やっていいことといけないこと</heading> + + <p>この節では, ソフトウェアをportする上でよくある落し穴などにつ + いて説明します. + + <sect3> + <heading>WRKDIR</heading> + + <p>大事なファイルを<tt>work</tt>サブディレクトリに置き忘れな + いようにしてください. うっかり `<tt>make clean</tt>' とやっ + たらこのディレクトリはその下のファイルとともに<em>あとかたも + なく</em>消え去ってしまいます! スクリプトやパッチ以外に必要 + なファイルがある場合には, <tt>files</tt>というサブディレクト + リに入れ, <tt>post-extract</tt>ターゲットで<tt>work</tt>サ + ブディレクトリにコピーするようにしてください. + + <sect3> + <heading>Package情報</heading> + + <p>Package情報, すなわち<tt>pkg</tt>ディレクトリ内の三つ + のファイルは必ず用意してください. これらはpackageを作る以 + 外にもいろいろ使われていますので, + <tt>${NO_PACKAGE}</tt>が指定してあってpackageを作 + るのが禁止してあるportの場合でも<em>必ず</em>必要です. + + <sect3> + <heading>マニュアルの圧縮, バイナリのstrip</heading> + + <p>マニュアルは圧縮し, バイナリはstripしてください. オリジナル + のソースがやってくれる場合はそれでいいのですが, そうでない場 + 合には<tt>post-install</tt>ターゲットを指定するのがいいでしょ + う. マニュアルの圧縮を望まないユーザもいますので, + <tt>/etc/make.conf</tt>で指定できる<tt>NOMANCOMPRESS</tt>と + いう変数をチェックするようにしてください. 例えば, こんな風に + なります: +<tscreen><verb> + post-install: + strip ${PREFIX}/bin/xdl + .if !defined(NOMANCOMPRESS) + gzip -9nf ${PREFIX}/man/man1/xdl.1 + .endif +</verb></tscreen> + + <p>インストールされた実行形式がすでにstripされているかどうか + は<tt>file</tt>コマンドで確認できます. これが`not stripped' + と言わなければ, stripされているということです. + + <sect3> + <heading>INSTALL_* マクロ</heading> + <p> あなた自身の *-install ターゲットでファイルの正しいモードと + オーナを保証するために, 必ず<tt>bsd.port.mk</tt>で提供されて + いるマクロを使用してください. マクロは以下のようなものがあります. + + <itemize> + <item><tt>${INSTALL_PROGRAM}</tt> は実行可能なバイナリを + インストールするコマンドです. + <item><tt>${INSTALL_SCRIPT}</tt> は実行可能なスクリプトを + インストールするコマンドです. + <item><tt>${INSTALL_DATA}</tt> は共有可能なデータを + インストールするコマンドです. + <item><tt>${INSTALL_MAN}</tt> はマニュアルを + インストールするコマンドです.(圧縮をしません) + </itemize> + + <p>これらは基本的に<tt>install</tt>コマンドに適当なフラグを与え + たものです. どのようにこれらを使用するかは以下の例を見てください. + + <sect3> + <heading>付加的ドキュメント</heading> + + <p>普通のマニュアルやinfoファイルのほかにユーザにとって有用だ + と思えるようなドキュメントがある場合には, + <tt>${PREFIX}/share/doc</tt>の下にインストールしてく + ださい. これは前記と同様, <tt>post-install</tt>ターゲットの + 中からするのがいいでしょう. + + <p>まず, あなたのportのために新しいディレクトリを作りま + す. どのportのドキュメントか簡単にわかるような名前にする必 + 要がありますので, 普通は<tt>${PKGNAME}</tt>からバージョ + ン番号を除いた部分を使うといいでしょう. もちろん, ユーザが異 + なるバージョンのものを同時に使うことが予想されるportの場合 + には, <tt>${PKGNAME}</tt>をそのまま使ってかまいません. + + <p>ユーザが<tt>/etc/make.conf</tt>でこの部分を禁止するために + <tt>NOPORTDOCS</tt>という変数をセットしている場合には, + これらのドキュメントがインストールされないようにしてください. + こんな具合です. +<tscreen><verb> + post-install: + .if !defined(NOPORTDOCS) + mkdir -p ${PREFIX}/share/doc/xv + ${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${PREFIX}/share/doc/xv + .endif +</verb></tscreen> + + <p>これらのファイルを<tt>pkg/PLIST</tt>に入れるのを忘れないよ + うにしてください. (packageが<tt>/etc/make.conf</tt>内の + 変数を読む方法は今のところ存在しませんので, + <tt>NOPORTDOCS</tt>については気にしないでください.) + + <sect3> + <heading>DIST_SUBDIR</heading> + + <p><tt>/usr/ports/distfiles</tt>ディレクトリ内をあまり散らかさ + ないようにしてください. たくさんのファイルを取ってくるport + や, 数は少なくてもほかのportのファイルと混同されるおそれが + あるファイル (`Makefile' など) がある場合には, + <tt>${DIST_SUBDIR}</tt>にportの名前 + (<tt>${PKGNAME}</tt>からバージョン番号を取った部分を + 使うといいでしょう) を入れてください. すると, + <tt>${DISTDIR}</tt>がデフォルトの + <tt>/usr/ports/distfiles</tt>から + <tt>/usr/ports/distfiles/${DIST_SUBDIR}</tt>に変更さ + れ, 取ってきたファイルはすべてそのサブディレクトリの中に置か + れるようになります. + + <p>また, ファイルを取ってくるときにバックアップサイトとして使わ + れる<tt>ftp.freebsd.org</tt>のディレクトリ名にもこの変数の + 値が使われます. (<tt>${DISTDIR}</tt>を明示的に指定し + た場合には, ローカルのファイルを置くところは変わりますが, こ + のサイトのディレクトリ名は変わりませんので, 必ず + <tt>${DIST_SUBDIR}</tt>を使うようにしてください.) + + <p>この変数はMakefile中で明示的に指定された + <tt>${MASTER_SITES}</tt>には影響しないことに注意して + ください. + + <sect3> + <heading>フィードバック</heading> + + <p>Portを作るためにソフトウェアに変更を加えたら, なるべく原 + 作者にその旨を伝えてパッチ等を送ってください. これらが次のリ + リースに取り入れられれば, アップグレードが楽になります. + + <sect3> + <heading>RCS文字列</heading> + + <p>RCSが特別な意味を与えている文字列をパッチ内に入れないように + してください. ファイルを私たちのソースツリーに入れる時にこれら + の文字列はCVSによって書き換えられてしまい, あとでまたパッチ + を使おうとした時にうまくいかないことがあります. RCS文字列は + ドル記号 (`<tt>$</tt>') で囲まれており, + `<tt>$Id</tt>' や `<tt>$RCS</tt>' などで始まり + ます. + + <sect3> + <heading>パッチ作成上の注意</heading> + + <p><tt>diff</tt>の再帰 (`<tt>-r</tt>') フラグを使って再帰的なパッ + チを作るのは大変結構なのですが, でき上がったパッチは必ず目で + チェックして余計なゴミが入っていないことを確認してくださ + い. よくあるのはバックアップファイル同士の変更点, あるいは + imakeやGNU configureを使うソフトウェアのMakefileの変更点が + 入っている場合などです. また, ファイルをまるごと消す場合には + パッチを使わずに<tt>post-extract</tt>ターゲットで消す方が簡 + 単です. + + <sect3> + <heading>PREFIX</heading> + + <p>なるべくportは<tt>${PREFIX}</tt>に対する相対パス + にインストールすることができるように心がけてください. + この変数の値は<tt>${USE_IMAKE}</tt>か + <tt>${USE_X11}</tt>が指定してある時には + <tt>${X11BASE}</tt> (デフォルト<tt>/usr/X11R6</tt>), + そうでない場合には<tt>${LOCALBASE}</tt> + (デフォルト<tt>/usr/local</tt>) にセットされます. + + <p>サイトによってフリーソフトウェアがインストールされる場所が + 違いますので, ソース内で `<tt>/usr/local</tt>' や + `<tt>/usr/X11R6</tt>' を明示的に書かないようにしてくださ + い. Xのプログラムでimakeを使うものについては, これは問題に + はなりません. それ以外の場合には, ソース中のMakefileやスク + リプトで `<tt>/usr/local</tt>' (imakeを使わないXのプログラ + ムは `<tt>/usr/X11R6</tt>') と書いてあるところを + `<tt>${PREFIX}</tt>' に書き換えてください. この値は + portのコンパイル, およびインストール時に自動的に環境変数として + 下位makeに渡されます. + + <p>変数<tt>${PREFIX}</tt>の値はportのMakefileやユー + ザの環境で変更することもできます. しかし, 個々のportが + Makefileでこの変数の値を明示的に設定することはなるべくしない + でください. (X のプログラムでimakeを使用しないport + の場合は, <tt>USE_X11=yes</tt>としてください; これは + <tt>PREFIX=/usr/X11R6</tt>とするのとはかなり違います.) + + <p>また, 他のportからインストールされるプログラムやファイル + を指定するときには, 上で述べた変数を使用してください. 例えば, + <tt>less</tt>のフルパスを<tt>PAGER</tt>というマクロに入れた + い場合は, コンパイラに + <verb>-DPAGER=\"/usr/local/bin/less\"</verb>と渡すかわりに + <verb>-DPAGER=\"${PREFIX}/bin/less\"</verb> (Xを使う + portの時は + <verb>-DPAGER=\"${LOCALBASE}/bin/less\"</verb>) を渡し + てください. こうしておけば, `/usr/local' がまるごとどこか他 + の場所に移してあるサイトでも, あなたのportがそのまま使える + 可能性が高くなります. + + <sect3> + <heading>ディレクトリ構成</heading> + + <p>インストール時には<tt>${PREFIX}</tt>の正しいサブ + ディレクトリにファイルを置くように心がけてください. ソフトウェ + アによっては新しいディレクトリを一つ作ってファイルを全部それ + に入れてしまうものがありますが, それはよくありません. また, + バイナリ, ヘッダファイルとマニュアル以外のすべてを + `<tt>lib</tt>'というディレクトリに入れてしまうportもありま + すが, これもBSD的なファイルシステム構成からいうと正しくあり + ません. これは以下のように分散すべきです. `<tt>etc</tt>' に + セットアップ/コンフィグレーションファイル, + `<tt>libexec</tt>' に内部で使用されるプログラム (コマンドラ + インから呼ばれることのないコマンド), `<tt>sbin</tt>' に管理 + 者用のコマンド, そして `<tt>share</tt>' にアーキテクチャに依 + 存しないファイルが入ります. 詳細については<tt>hier(7)</tt> + を見てください. <tt>/usr</tt>の構成方針はほとんどそのまま + <tt>/usr/local</tt>にもあてはまります. + + <sect3> + <heading>ldconfig</heading> + + <p>共有ライブラリをインストールするときには, 共有ライブラリのキャッ + シュを更新するためにportのMakefileの<tt>post-install</tt> + target から`<tt>/sbin/ldconfig -m</tt>' を走らせてください. + このコマンドの引数は共有ライブラリのインストールしてあるディ + レクトリ (通常 <tt>${PREFIX}/lib</tt>) です. + + <p>また, <tt>pkg/PLIST</tt>に<tt>@exec</tt>行を入れ, package + をインストールした場合にも共有ライブラリがすぐ使えるように + してください. この行は共有ライブラリを指定する行のすぐ後に書 + くのがいいでしょう: +<tscreen><verb> +lib/libtcl.so.7.3 +@exec /sbin/ldconfig -m %D/lib +</verb></tscreen> + + <p><em>絶対に</em>引数なしでただ `<tt>ldconfig</tt>'とだけ書い + てある行をMakefileやpkg/PLISTファイルに入れないでください. + このコマンドを実行すると, 共有ライブラリのキャッシュが + <tt>/usr/lib</tt>の内容のみとなり, ユーザのマシンにさまざま + な問題をもたらします (「ぎゃぁ! このportをインストールした + らxinitが使えなくなっちゃった!」). この掟を破った者は, 永久 + に地獄の底で苦しみ続けるように, 閻魔様に頼んでおきます. + + <sect3> + <heading>困ったら....</heading> + + <p>私たちに質問を送る前に, 既存のportの例と<tt>bsd.port.mk</tt>を + ちゃんと読んでください! <tt>;)</tt> + + <p>それでもわからないことがあったら, 一人で悩まないでどんどん + 質問してください! <tt>:)</tt> + + <sect2> + <heading>Makefileのお手本<label id="porting:samplem"></heading> + + <p>これはportのMakefileを作る際のお手本です. かぎかっこ + ([])内のコメントは忘れずに取ってください. + + <p>変数の順番, 段落の間の空行など, Makefileを作るときはなるべくこ + の形式にしたがってください. 既存のportのMakefileがすべてこの形 + 式にしたがっているわけではありませんが, 今後はなるべく統一していき + たいと考えています. この形式は重要な情報が簡単に見つけられるよ + うに設計されています. + +<tscreen><verb> + [ヘッダ -- どのようなportのMakefileかすぐにわかるようになっています] + # New ports collection makefile for: xdvi + # Version required: pl18 ["1.5alpha" みたいなのでも結構です] + # Date created: 26 May 1995 + [これはこのソフトウェアを最初にFreeBSDにportした人の名前, つまり, + このMakefileを書いた人です] + # Whom: Satoshi Asami <asami@FreeBSD.ORG> + # + # $Id$ + [ ^^^^ この行の内容は気にしないでください. CVSツリーに入れる時に +自動的に書き込まれます] + # + + [Port自体, およびオリジナルのソースを取ってくるところを記述する部分. + 最初は必ずDISTNAME, そして必要ならPKGNAME, CATEGORIES, 続いて + MASTER_SITES, そして必要ならEXTRACT_SUFXかDISTFILESが続きます] + DISTNAME= xdvi + PKGNAME= xdvi-pl18 + CATEGORIES= print + [最後のスラッシュを忘れないように ("/")!] + MASTER_SITES= ftp://crl.dec.com/pub/X11/contrib/applications/ + [ソースファイルが標準の ".tar.gz" 形式でない時にこれを使いましょう] + EXTRACT_SUFX= .tar.Z + + [配布パッチのセクション -- ない場合もあります] + PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ + PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz + + [保守責任者 -- これは *必ず* 必要です. 担当者 (あなた) 自身, あるいは + 担当者に素早く連絡をとれる人のアドレスを書いてください. どうしてもこ + こに自分のアドレスを書くのがいやな人は "ports@FreeBSD.ORG" と書いて + もいいです] + MAINTAINER= asami@FreeBSD.ORG + + [依存するport -- ない場合もあります] + RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript + LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm + + [ここには標準のbsd.port.mkの変数で, 上のどれにもあてはまらないものを + 書きます] + [${DISTNAME}以外のディレクトリにソースが展開されるなら...] + WRKSRC= ${WRKDIR}/xdvi-new + [コンフィグレーション, コンパイル, インストールなどの時に質問をする + なら...] + IS_INTERACTIVE=yes + [GNU autoconfによって生成された "configure" スクリプトを走らせたいなら...] + GNU_CONFIGURE= yes + [/usr/bin/makeでなく, GNU makeを使わないといけないなら...] + USE_GMAKE= yes + [これがXのアプリケーションで "xmkmf -a" を走らせたいなら...] + USE_IMAKE= yes + [などなど] + + [下の方のルールで使う非標準の変数] + MY_FAVORITE_RESPONSE= "yeah, right" + + [そして, 特別なターゲット, 使用順に] + pre-fetch: + i go fetch something, yeah + + post-patch: + i need to do something after patch, great + + pre-install: + and then some more stuff before installing, wow + + [最後には必ず] + .include <bsd.port.mk> +</verb></tscreen> + + <sect2> + <heading>Packageの名前</heading> + + <p>Packageの名前は以下のルールにしたがってつけてください. こ + れはpackageのディレクトリを見やすくするためで, 無秩序な名前 + がたくさん並んでいるとユーザが使いづらくなるのではという心配か + らです. (FTPサイトなどにはたくさんpackageがありますからね.) + + <p>Packageの名前は以下のようにしてください. + +<tscreen><verb> +[<言語>-]<名前>[[-]<オプション>]-<バージョン.番号>; +</verb></tscreen> + + <tt>${DISTNAME}</tt> が上記の形式になっていない場合に + は, <tt>${PKGNAME}</tt> をそのようにしてください. + + <enum> + <item>FreeBSDはユーザの慣れ親しんだ言語のサポートに力を入れて + います. 特定の言語のためのportのpackage名には + `<言語>' に言語名の略称を入れてください. 例えば, 日本 + 語なら `jp', ロシア語なら `ru' といった具合です. + + <item>`<tt><名前></tt>' の部分は原則的にはすべて英小文字 + を使います. 例外はたくさんのプログラムが入っている巨大なport + の場合で, XFree86 (ほんとにあるんですよ) やImageMagickな + どがこれにあたります. そうでない場合には, 名前の大文字を小文 + 字に (少なくとも最初の一字だけは) 変えてください. また, その + ソフトウェアの名前として通常使われるものに番号, ハイフン, あ + るいは下線が入っている場合には, それらを使うことも構いません + (`kinput2' など). + + <item>コンパイル時に環境変数や<tt>make</tt>の引数などでいくつ + か別のオプションをつけてコンパイルできる場合, + `<compiled.specifics>' にそのオプションを入れてくださ + い (ハイフンはあってもなくてもかまいません). 用紙のサイズ, + あるいはフォントの解像度などがこれにあたります. + + <item>バージョン番号は数字とアルファベットからなり, ピリオド + (.) で区切ります. アルファベットは二文字以上続けてはいけませ + ん. ただ一つの例外は「パッチレベル」を意味する `pl' で, それ + 以外にバージョン番号がまったくついていない場合にのみ使うことがで + きます. + </enum> + + <p>では, <tt>${DISTNAME}</tt>を正しい + <tt>${PKGNAME}</tt>に直す例を見てみましょう: + +<tscreen><verb> +DISTNAME PKGNAME 理由 +mule-2.2.2 mule-2.2.2 まったく問題なし +XFree86-3.1.2 XFree86-3.1.2 同上 +EmiClock-1.0.2 emiclock-1.0.2 プログラム一つだけの時は小文字のみ +gmod1.4 gmod-1.4 `<名前>' のあとにハイフンが必要 +xmris.4.02 xmris-4.02 同上 +rdist-1.3alpha rdist-1.3a `alpha'のような文字列は使えない +es-0.9-beta1 es-0.9b1 同上 +v3.3beta021.src tiff-3.3 なんなんでしょう ;) +tvtwm tvtwm-pl11 バージョン番号は必ず必要 +piewm piewm-1.0 同上 +xvgr-2.10pl1 xvgr-2.10.1 `pl' が使えるのは他にバージョン番号がない場合のみ +gawk-2.15.6 jp-gawk-2.15.6 日本語バージョン +psutils-1.13 psutils-letter-1.13 コンパイル時に用紙のサイズを指定 +pkfonts pkfonts300-1.0 300dpiフォント用のpackage +</verb></tscreen> + + <p>オリジナルのソースにまったくバージョン情報が見当たらず, また原作 + 者が新しいバージョンをリリースする可能性が低いときには, バージョ + ン番号として `1.0' を使えばいいでしょう (上記のpiewmの例がこ + れにあたります). そうでない場合には, 原作者に聞くか, 日付 (`年. + 月.日') を使うなどしてください. + + <sect2> + <heading>やっとおしまい!</heading> + + <p>いやはや, 長い文章ですみません. ここまで読んでくださった方に + は感謝, 感謝でございます. <tt>(_ _)</tt> + + <p>さあ, portの作り方がわかったところで, 世界中のソフトウェア + をport化しましょう. FreeBSDプロジェクトに貢献するには, それ + がもっとも簡単な方法です! <tt>:)</tt> diff --git a/share/doc/ja_JP.EUC/handbook/ports.sgml b/share/doc/ja_JP.EUC/handbook/ports.sgml new file mode 100644 index 000000000000..fda4a3a189f4 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/ports.sgml @@ -0,0 +1,859 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.17 --> + +<sect><heading>ports コレクション <label id="ports"></heading> + +<p><em>原作: &a.jraynard;.</em> +<p><em>訳: &a.masaki;, &a.saeki;.<newline> +11 November 1996.</em> + +FreeBSD の ports コレクションを利用すると, 最小限の労力で +非常に幅広くのアプリケーションのコンパイルとインストールがおこなえます. + +<p> やってみたことのある方はよくご存知でしょうが, オープンな規格とは +全くの誇大広告であって, あるプログラムを異なるバージョンの Unix 上で +動作させることは退屈で手間のかかる仕事です. +求めているプログラムが自分のシステムでうまくコンパイルでき, +正しいところにインストールできて, 完璧に動作するとしたらとてもラッキーです. +しかし, あいにくこれは滅多にないことなのです. +ほとんどのプログラムについて, あなたは髪を掻きむしることになるでしょうし, +かなりのプログラムでは, 白髪混じりの頭になってしまったり, あるいは慢性の +脱毛症にすら なってしまうかもしれません... + +<p> いくつかのソフトウェアディストリビューションでは, 設定用のスクリプトを +配布することでこの問題を解決しようとしています. +これらのスクリプトの中には非常に精巧なものもありますが, 残念ながら, +中にはこれまで聞いたこともないようなシステムの名前をしゃあしゃあと +言い放ったうえに, まるでシステムレベルの Unix プログラミングに関する +最終試験のような, たくさんの質問をしてくる場合があります. + (例えば, 「このシステムの gethitlist 関数は fromboz への const ポインタを +返しますか? それとも const fromboz へのポインタを返しますか?」, +「このシステムには Foonix スタイルの, 容認できない例外処理をおこなう +ルーチンがありますか? もしもないとしたら, それはなぜですか?」) + +<p> 幸いなことに, ports コレクションがあれば, これらのきつい作業はすべて +完了しています. 'make install' とタイプするだけで, 動作するプログラムを +入手することができるのです. + +<sect1><heading> なぜ ports コレクションを作ったのか?</heading> + +<p>FreeBSD の基本システムは, 非常に多くのツールやユーティリティから +構成されています. しかし, よく使われるプログラムのうち多くのものが, +この基本システムには含まれていません. その理由は:- + +<enum> +<item> 「私は x と y と z のプログラムがシステムにないと生きていけない」と +いう類のプログラム (例えば Lisp ベースのエディタや DOS フロッピーを扱うための +mtools など) は, 人によって全然違うから. (Emacs に我慢ならないという人や, +DOS フロッピーをまったく使わないという人も大勢いるのです. そういう人は +Emacs や mtools が基本システムに含まれていなくても何の問題もないでしょう.) + +<item> 基本システムに組み込むには特殊すぎるから. (CAD やデータベースなど) + +<item> 「時間があったら, ちょっと見てみようかな」というような類の, +それがシステムに含まれていないことが致命的とは言えないプログラムだから. + (おそらく, 何らかの言語などでしょう.) + +<item>お楽しみのためのプログラムは, FreeBSD のような真面目な +オペレーティングシステムといっしょに配布するべきではないから. ;-) + +<item> たくさんのプログラムを基本システムに組み込んだとしても, もっともっと +組み込みたいという要求が出てくるので, どこかで制限を引かなくてはならないため. + (そうしなければ FreeBSD の配布物は, とてつもなく膨大になってしまうでしょう.) +</enum> + +<p> すべての人が自分のお気に入りのプログラムを手作業で移植しなければ +ならないとしたら, (途方もない膨大な作業の繰り返しをさておいたとしても) +それは明らかに不合理な話です. +そこで, FreeBSD プロジェクトでは, 標準のツールを使って移植のプロセスを +自動化する巧妙な方法を考え出しました. + +<p> なお, これは単純ながら非常に柔軟なツールを組み合わせることで, +非常に強力な働きをさせるという「Unix 流」の作業の優れた実例です. + +<sect1><heading>ports コレクションはどのように動くのでしょうか?</heading> +<p> +インターネットでは通常, <ref id="ports:tarball" name="tarball"> の形で +プログラムが配布されています. これは, Makefile とソースコードで構成され, +普通は何らかの説明書 (あいにく, いつもわかりやすく書かれているとは +限りませんが) が付属しています. +ことによるとコンフィグレーションスクリプトも含まれているかもしれません. +<p> +標準的な手順では, FTP で tarball を入手して, 適当なディレクトリで展開します. +次に説明書を読んで, 必要な変更をおこないます. そして, 設定スクリプトを実行し, +標準の make コマンドを使ってソースのコンパイルとインストールをおこないます. +<p> +FreeBSD の ports も tarball の仕組みを利用していますが, これはユーザが +苦労して作業することを期待したものではなく, どのようにすれば FreeBSD 上で +そのプログラムが動くようになるかという「ノウハウ」を <ref id="ports:skeleton" +name="スケルトン"> を使用して収めているものです. +スケルトンは, カスタマイズ済みの <ref id="ports:makefile" name="Makefile"> も +提供していますので, ほとんどすべての ports は同じ手順でインストールすることが +できます. +<p> +もしあなたが (<htmlurl url="file://localhost/usr/ports/shells/bash" +name="あなたの FreeBSD システム"> または +<htmlurl url="ftp://www.freebsd.org/pub/FreeBSD/ports/shells/bash" +name="FTP サイト"> にある) ports スケルトンを見ていて, そこに潜んでいる +あらゆる種類の先端的なロケット工学的なものを見つけられると期待していると, +つまらなそうなファイルやディレクトリがそこにあるだけなのを見て, +がっかりするかもしれません. + (ports を手に入れる方法については, すぐに <ref id="ports:getting" +name="FreeBSD ports コレクションの入手方法"> の節でお話します.) + +<p>「一体どうしたらいいんだ? ここにはソースコードが全然ないじゃないか?」 +というあなたの叫びが聞こえるようです. + +<p> 心配いりません. おとなしく読んでいけば, すべてが (たぶん) 明らかに +なるでしょう. +試しに ports をインストールして, 何が起きるのかを見てみましょう. +かなり典型的な例だと思いますので, ここでは `bash' (Bourne-Again Shell として +知られています) を選びます. + +<em>Note</em> 自宅で試してみる場合には, root になる必要があるでしょう. + +<verb> + # cd /usr/ports/shells/bash + # make install + Checksums OK. + ===> Extracting for bash-1.14.5 + ===> Patching for bash-1.14.5 + ===> Applying FreeBSD patches for bash-1.14.5 + ===> Configuring for bash-1.14.5 + ===> Building for bash-1.14.5 + [とてもとても大量のメッセージをコンパイラが出力します...] + ===> Installing for bash-1.14.5 + make -f bash-Makefile bindir=/usr/local/bin prefix=/usr/local install + (cd ./documentation/; make ) + rm -f builtins.txt + nroff -man builtins.1 > builtins.txt + install -c -o bin -g bin -m 555 bash /usr/local/bin/bash + install -c -o bin -g bin -m 555 bashbug /usr/local/bin/bashbug + ( cd ./documentation/ ; make mandir=/usr/local/man/man1 man3dir=/usr/local/man/man3 +infodir=/usr/local/info install ) + [ -d /usr/local/man/man1 ] || mkdir /usr/local/man/man1 + [ -d /usr/local/info ] || mkdir /usr/local/info + ../support/install.sh -c -m 644 bash.1 /usr/local/man/man1 + ../support/install.sh -c -m 644 builtins.1 /usr/local/man/man1/bash_builtins.1 + ../support/install.sh -c -m 644 features.info /usr/local/info/bash.info + gzip -9nf /usr/local/man/man1/bash.1 /usr/local/man/man1/bash_builtins.1 + ===> Registering installation for bash-1.14.5 +</verb> + +<p> ここではあなたが混乱しないように, コンパイル時とインストール時の出力を +多少省略してあります. もしもあなた自身で実行されたら, 最初にこのような +出力結果を得るはずです:- + +<label id="ports:fetch"> +<verb> + >> bash-1.14.5.tar.gz doesn't seem to exist on this system. + >> Attempting to fetch from ftp://slc2.ins.cwru.edu/pub/dist/. +</verb> + +<p> `make' プログラムは, あなたの手元にソースコードがないことを検出し, +処理を続けられるようにソースを FTP でダウンロードしようとします. + (結構すごいとは思いませんか? 8-)) +この例では, あらかじめ手動でソースコードを用意してあったので, +持ってくる必要はありませんでした. + +<p> では, 続けて `make' プログラムが何をしているのか見てみましょう. + +<enum> +<item> ソースコード <ref id="ports:tarball" name="tarball"> のありかを +確認します. +手元にファイルが存在しなければ, FTP サイトから入手しようとします. + +<item><ref id="ports:checksum" name="チェックサム"> テストを実行して, +その tarball が事故か何かで途中で切れていたり, 転送中にニュートリノに +よって傷められたりして改変されたりしていないかどうかを確認します. + +<item>tarball を一時的な作業用ディレクトリに展開します. + +<item>FreeBSD 上でコンパイルしたり, 動作させるのに必要な +すべての <ref id="ports:patch" name="パッチ"> をソースコードに当てます. + +<item> 構築のために必要なコンフィグレーションスクリプトを実行します. +コンフィグレーションスクリプトの質問には正確に答えてください. + +<item> (いよいよ!) ソースコードをコンパイルします. + +<item> 実行形式のプログラム, マニュアル, その他のサポートファイルを, +システムのプログラムと混ざってしまわないように /usr/local 以下に +インストールします. ports はすべて同じ場所にインストールされ, +システムのあちこちにばらまかれることはありません. + +<item> インストール結果はデータベースに登録されます. これにより, +インストールしたプログラムがもしも気に入らなかったときも, システムから +すべての痕跡をきれいに <ref id="ports:remove" name="消去"> することができます. + +</enum> + +<p> 以上のステップが make の出力と一致するかどうか確認してください. +今まで確認していなかったのなら, 今からするようにしてください! + +<sect1><heading>FreeBSD ports コレクションの入手 <label id="ports:getting"></heading> +<p> +あるプログラムの FreeBSD port を入手するには二つの方法があります. +ひとつは <ref id="ports:cd" name="FreeBSD CD-ROM"> を使う方法で, +もうひとつは <ref id="ports:inet"name="インターネット接続"> を使う方法です. + +<sect2><heading>CD-ROM からコンパイルする <label id="ports:cd"></heading> +<p> +FreeBSD をインストールしたときに, ``Do you want to link the ports +collection to your CDROM'' という質問に yes と答えていたら, +初期設定は既に終わっています. +<p> +そうでない場合は, <em /FreeBSD/ CD-ROM がドライブに入っており, +/cdrom にマウントされていることを確かめてください. +そして次のコマンドを実行すると, + +<verb> + # mkdir /usr/ports + # cd /usr/ports + # ln -s /cdrom/ports/distfiles distfiles +</verb> + +ports の make メカニズムが tarball を見つけることができるようになります. + (ports は /usr/ports/distfiles に tarball があることを期待していますので, +そこから CD-ROM の tarball ディレクトリにシンボリックリンクを張ったのです.) +<p> +さて, データベースディレクトリから gnats プログラムをインストールしようと +しているとします. 方法は次のとおりです:- + +<verb> + # cd /usr/ports + # mkdir databases + # cp -R /cdrom/ports/databases/gnats databases + # cd databases/gnats + # make install +</verb> + +もしもあなたがまじめなデータベースユーザであって, ports コレクションの中の +すべてのデータベースを比較したいと思っているならば, 次のようにしてください. + +<verb> + # cd /usr/ports + # cp -R /cdrom/ports/databases . + # cd databases + # make install +</verb> + + (cp コマンドの最後のドットはドットそのものであって, もちろんタイプミスでは +ありません. Unix でドットは現在自分自身がいるカレントディレクトリを +意味しています.) +<p> +ports make メカニズムは, データベースディレクトリのすべての ports を +自動的にコンパイルし, インストールをおこなってくれます. +<p> +この方法が気に入らない場合は, まったく違うやり方もあります:- +<p> +<em>XFree86</em> の配布に含まれる <tt>lndir(1)</tt> コマンドを使用して +「リンクツリー」を作ります. ディスクの空き領域を見つけてディレクトリを作成し, +<tt>/usr/ports</tt> からそのディレクトリへシンボリックリンクを張ります. +そして CD-ROM 上の ``ports'' ディレクトリのフルパス名を引数として +<tt>lndir(1)</tt> コマンドを実行します. + (例えば <tt>lndir /cdrom/ports</tt> のように:) +そして, 作成したリンクツリーの中で ports を構築することで, CD-ROM から +直接 ports を構築することができます. +<p> +ライセンスの制限により, いくつかの ports でオリジナルのソースコードを +CD-ROM に入れることができなかったものがあることに注意してください. この場合, +<ref id="ports:inet" name="インターネット経由で ports をコンパイルする"> の +節を参照してください. + +<sect2><heading> インターネット経由で ports をコンパイルする <label id="ports:inet"></heading> +<p> +CD-ROM を持っていなかったり, その ports の最新バージョンを確実に入手したい +場合は, その ports の <ref id="ports:skeleton" name="スケルトン"> を +ダウンロードする必要があります. +ところで, これは落し穴 (誤ってパッチを pkg サブディレクトリに +ダウンロードしてしまうような失敗) が +たくさんある作業に見えるかもしれませんが, 実際には非常に簡単です. +<p> +ここで鍵になるのは, FreeBSD の FTP サイトが +その場で <ref id="ports:tarball" name="tarball"> を作成できるということです. +どのように動作するのか, ここでは例として databases ディレクトリにある +gnats プログラムを使って説明します. (角型かっこの中の文はコメントなので, +実際に実行する場合には, これをタイプしないでください!):- + +<verb> + # cd /usr/ports + # mkdir databases + # cd databases + # ftp ftp.freebsd.org + [ユーザ名 `ftp' でログインし, パスワードを要求されたら, あなたの電子メール +アドレスを入力してください. バイナリモードを (イメージモードと呼ばれることも +あります) 使うのをお忘れなく!] + > cd /pub/FreeBSD/ports/databases + > get gnats.tar.gz [gnats スケルトンの tarballs を取得] + > quit + # tar xzf gnats.tar.gz [gnats スケルトンの展開] + # cd gnats + # make install [gnats の構築とインストール] +</verb> + +さて何が起きるでしょうか? FTP サイトにいつも通りに接続して, データベースの +サブディレクトリに移動します. `get gnats.tar.gz' とコマンドを入力すると, +FTP サイトでは gnats ディレクトリを <ref id="ports:tarball" +name="tarball"> にして, 送信する前に圧縮までしてくれるのです. +ですから, 圧縮をおこなわない場合よりも多少速く手に入ることでしょう. +<p> +gnats スケルトンを展開したら, gnats ディレクトリへ移動して ports を構築します. +<ref id="ports:fetch" name="すでに"> 説明したように, make の過程で +手元にソースコードがないことを検出すると, ソースコードを取得してから +展開し, パッチ当てと構築をおこないます. +<p> +それでは, 少し冒険をしてみましょう. 一つの ports スケルトンを +取得するかわりに, たとえば ports コレクションの中のデータベースの +スケルトンをすべて, サブディレクトリ全体を取得してみましょう. +やり方はほとんど同じです:- + +<verb> + # cd /usr/ports + # ftp ftp.freebsd.org + [ユーザ名 `ftp' でログインし, パスワードを要求されたら, あなたの電子メール +アドレスを入力してください. バイナリモードを (イメージモードと呼ばれることも +あります) 使うのをお忘れなく!] + > cd /pub/FreeBSD/ports + > get databases.tar.gz [データベースディレクトリの tarballs を取得] + > quit + # tar xzf databases.tar.gz [すべてのスケルトンを展開] + # cd databases + # make install [データベース ports 全部の構築とインストール] +</verb> + +わずかばかりの簡単なコマンドで, この FreeBSD マシン上にデータベース +プログラムを一揃い手に入れてしまいました! 一つの ports スケルトンを取ってきて +それを構築する場合との違いは, すべてのディレクトリを一度に取得して, +全部を一度にコンパイルしたということだけです. かなり感動的だと思いませんか? +<p> +もし一つや二つの ports だけでなく, もっと多くの ports をインストールする +つもりなら, おそらくすべての ports ディレクトリをダウンロードしておく +価値があるでしょう. これは, 圧縮されていれば 2〜3 MB 程度の大きさです. +しかし, distfiles ディレクトリの下にあるファイルも一緒にダウンロードする +つもりがないのなら, 調子に乗って `get ports.tar.gz' とタイプしてはいけません. +distfiles ディレクトリには, ほとんどすべての ports のソースコードが +置かれているので, すべてをダウンロードするには非常に長い時間がかかるでしょう! + +<sect1><heading> スケルトン <label id="ports:skeleton"></heading> +<p> +スケルトン (訳注: skeleton とは骸骨のことです) とは, 締め切りを守るため, +食事をするのを忘れるほど仕事にのめり込んだハッカーたちのなれの果ての +ことでしょうか? FreeBSD の屋根裏に潜む, なにか気持ちの悪いものでしょうか? +いいえ, ここでスケルトンの意味するところは, ports の魔術を実現するのに +必要とされるすべてのものを提供する最小の骨組みのことです. + +<sect2><heading>Makefile<label id="ports:makefile"></heading> +<p> +スケルトンのもっとも重要な要素は Makefile です. Makefile は ports を +どのようにコンパイルし, インストールをおこなうかを指示する +いろいろな命令を含んでいます. 以下に bash の Makefile を示します:- + +<verb> + # New ports collection makefile for: bash + # Version required: 1.14.5 + # Date created: 21 August 1994 + # Whom: jkh + # + # Makefile,v 1.13 1995/10/04 14:45:01 asami Exp + # + + DISTNAME= bash-1.14.5 + CATEGORIES= shells + MASTER_SITES= ftp://slc2.ins.cwru.edu/pub/dist/ + + MAINTAINER= ache@FreeBSD.ORG + + post-install: + .if !defined(NOMANCOMPRESS) + gzip -9nf ${PREFIX}/man/man1/bash.1 ${PREFIX}/man/man1/bash_builtins.1 + .endif + + .include <bsd.port.mk> +</verb> + +"#" で始まる行は, 人間のためのコメント行です. + (ほとんどの Unix のスクリプトと同じですね.) +<p> +`DISTNAME" は <ref id="ports:tarball" name="tarball"> +の名前から拡張子を取ったものです. +<p> +`CATEGORIES" はこのプログラムの種類を示します. +<p> +`MASTER_SITES" はマスタ FTP サイトの URL です. もしローカルシステムに +<ref id="ports:tarball" name="tarball"> がない場合には, ここから取得します. +これは信頼できると考えられているサイトで, 通常はそのプログラムを +インターネット上で公式に配布しているサイトです. + (そのソフトウェアがインターネット上で「公式に」配布されているとしたら) +<p> +`MAINTAINER" は, 例えば新しいバージョンのプログラムが出た場合に, +必要であればスケルトンの更新をおこなう保守担当者の電子メールアドレスです. + (注: 「保守担当者」というのは, スケルトンの管理者という意味であって, +プログラムのサポートをおこなう責任は <em /負っていません/. +もし <ref id="ports:kaput" name="ports の不具合"> を見つけた場合には, +電子メールは &a.ports; に送ってください. +保守担当者には <em /送らないで/ ください. よろしく!) +<p> +次の数行はとりあえず飛ばします. +<verb> + .include <bsd.port.mk> +</verb> +この行は, この ports に必要なその他の命令やコマンドは `bsd.port.mk" に +入っているということです. すべての ports で同じものなので, すべての Makefile に +書いておく必要はありません. そのため単一の標準ファイルにまとめられています. +<p> +ここでは Makefile がどう働くかを詳細に調査するのが目的ではありませんので, +`post-install" で始まる行は, bsd.port.mk に書かれている, プログラムを +インストールした後での処理を置き換えていて, 最終的な場所に man ページを +置いた後で圧縮するように指示している, と言っておくだけで充分でしょう. + +<sect2><heading>files ディレクトリ </heading> +<p> +ports のチェックサム算出には MD5 アルゴリズムを使用しているので, +この <ref id="ports:checksum" name="チェックサム"> を含んでいる +ファイルは "md5" と呼ばれます. +ちょっと混乱するかもしれませんが, このファイルは "files" という +名前のディレクトリに置かれています. +<p> +このディレクトリは, ports に必要だけれども, 他のどこにも属さない +雑多なファイルも含んでいます. + +<sect2><heading>patches ディレクトリ </heading> +<p> +このディレクトリには, FreeBSD ですべてを正常に動作させるのに +必要な <ref id="ports:patch" name="パッチ"> が含まれています. + +<sect2><heading>pkg ディレクトリ </heading> +<p> +このディレクトリには, 非常に役立つ三つのファイルが含まれています:- +<itemize> +<item> +COMMENT - プログラムについての 1 行の説明. + +<item> +DESCR - より詳細な説明. + +<item> +PLIST - プログラムのインストール時に作成される, すべてのファイルのリスト. +</itemize> + +<sect1><heading> あれ? 動かない!?<label id="ports:kaput"></heading> + +<p>おやおや. では, 次の四つのどれかをやってみてください: + +<enum> +<item> 自分で修正する. 技術的な詳細については, + <ref id="porting" name="アプリケーションの移殖方法">をご覧ください. + +<item> 苦情をいう. これは電子メールで * だけ * にしてください! + Walnut Creekの人たちは, FreeBSD システムの機能 (あるいは欠陥) について, + いっさい責任がありません. + ほとんどサードパーティの貢献による ports システムなどは特にそうです. + (これが信じられないならば, Walnut Creek のカタログをチェックしてください. + 「このプロダクトに関するテクニカルサポートを提供することができません」と + 明記してあります.) + + 電子メールのアドレスは &a.ports; です. あなたがどこから ports の + ソースコードや配布ファイルを入手したのか, どんなエラーが発生したのかなど, + 詳細を記述してください. + + 注: 執筆当時, lang/Sather は Pentium マシンでは, Intel の呪い + (別名, 浮動小数点除算バグ) のために動作しません. 私たちは + これについては関知しません. 苦情をいうなら Intel にどうぞ. + これは彼らのバグなのですから! + +<item> 忘れてしまう. これはほとんどの場合最も簡単な方法です. + ports のプログラムのうち必要不可欠な物はごくわずかです. + +<item> FTP サイトコンパイル済みのパッケージを入手する. + マスターパッケージコレクションは FreeBSD の FTP サイト + <htmlurl url="ftp://ftp.FreeBSD.org/pub/FreeBSD/packages/" + name="パッケージディレクトリ"> に置いてありますが, + まずあなたの近くのローカルミラーサイトを確認してください! + + ソースからコンパイルに挑戦するよりパッケージを使ったほうが, + (ほとんど全部が) ずっと確実に動作するでしょうし, + より手っ取り早い方法でもあります. + プログラムをシステムにインストールするには, <tt>pkg_add(1)</tt> または, + <tt>pkg_manage(1)</tt> を使ってください. + +</enum> + +<sect1><heading>ports 化したいプログラムがあるのですが...</heading> + +<p> すばらしい!具体的なやり方については +<ref id="porting:starting" name="ガイドライン"> に, 詳細な手順がありますので +ご覧ください. + +<sect1><heading> 質問と回答集 </heading> +<p> +<itemize> +<item> +Q. 私はモデムについての議論をしているのかと思っていました??! +<p> +A.なるほど, あなたはきっとコンピュータの背面についている +シリアルポートのことだと思ってしまったのでしょう. +あるバージョンの Unixから別のバージョンの Unix へとプログラムを +移殖することを `porting' というのですが, ここで我たちは `porting' の結果 +という意味で `port' を使っています. +(コンピュータに関わる人々の悪しき習慣として, ひとつの同じ言葉を複数の +まったく違う意味として使うことがあるのです.) + +<item> +Q. 私は, 標準以外のプログラムのインストールには packages を使うと +思っていたのですが. +<p> +A. そのとおり. 通常は packages が最も手早くて簡単な方法です. + +<item> +Q. それではどうして面倒な ports があるのですか? +<p> +A. いくつかの理由があります:- + +<enum> +<item> いくつかのソフトウェアのライセンス条件には, +バイナリではなくソースコードでの配布を求めているものがあります. + +<item> バイナリ配布を信用していない人もいます. 少なくともソースコード +があれば, ソースコードを読んで, (理論的には) 潜在的な問題点を自分で +見つけ出すこともできるはずです. + +<item> ローカルなパッチを入手した場合, それを自分で追加するために +ソースコードが必要になります. + +<item> プログラムがいかにコンパイルされるべきかについて, +あなたはパッケージを作った人とは異なる見解を持っているかもしれません. +どんな最適化オプションをつけるべきかとか, デバッグバージョンを作ってから +それを strip するべきだとか, いや, そうするべきでない, などなど, +確固たる見解を持っている人もいるでしょう. + +<item> ソースコードを手元に置いておきたい人たちもいます. +彼らは, 退屈したときに眺めたり, あちこち解析してみたり, ソースコードを +借用したり (もちろん, ライセンスが許せばの話ですが) するのです. + +<item> あなたがソースコードを持っていなければ, それはソフトウェアとは +言えませんね! ;-) +</enum> + +<item><label id="ports:patch"> +Q. パッチとは何ですか? +<p> +A. パッチとは, あるバージョンから他のバージョンへどのように変更するかを +示す, (通常は) 小さなファイルです. 「23 行目を削除」, 「468 行目の後に +これらの 2 行を追加」, または「197 行目をこのように変更」というような +内容を含んでいます. +これは, `diff' という名前のプログラムで生成されます. + +<item><label id="ports:tarball"> +Q. tarball とは一体何ですか? +<p> +A. .tar.gz という拡張子を持つファイルです. ( .tar.Z のようなバリエーションも +ありますし, DOS のファイルシステム用に .tgz と短縮される場合もあります.) +<p> +これは基本的に, 一つのファイルに固めて (.tar) 圧縮した (.gz) ディレクトリ +ツリーです. +これは元々 <em /T/ape <em /AR/chives (訳注: テープアーカイブ) + (このため `tar' という名前なのです) で使われていたものなのですが, +インターネット上でプログラムのソースコードを配布するために +広く使われている方法です. +<p> +これらのファイルの中身を見たり, 展開したりすることもできます. +FreeBSD の基本システムに付属する Unix 標準の tar コマンドを使ってみると +次のようになります:- + +<verb> + tar tvzf foobar.tar.gz # foobar.tar.gz の内容を見る + tar xzvf foobar.tar.gz # カレントディレクトリに内容を展開する +</verb> + +<item><label id="ports:checksum"> +Q. チェックサムとは何ですか? +<p> +A. これは, チェックしたいファイル中のすべてのデータを加えて生成した +数値です. 何か文字が書き換わっていたら, チェックサムが一致しなくなります. +そのため, 単純な比較だけで違いを見つけることができるのです. + (実際には, 文字の位置が入れ替わるなどの, 単純な加算ではわからない問題も +見つけることができる複雑な方法で計算されています.) + +<item> +Q. 私は, <ref id="ports:cd" name="CD-ROM から ports をコンパイルする"> +にしたがって ports をインストールしていました. +kermit をインストールしようとするまではうまくいっていました:- + +<verb> + # make install + >> cku190.tar.gz doesn't seem to exist on this system. + >> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/. +</verb> + +なぜ cku190.tar.gz が見つからないのでしょうか? +不良品の CD-ROM を買ってしまったのでしょうか? +<p> +A. Kermit の権利を持つチームは, 私たちの CDROM に kermit の tarball を +入れることを許可しませんでした. 申し分けありませんが, 手動でファイルを +入手してください. +このようなエラーメッセージが出たのは, あなたがそのときインターネットに +接続していなかったためです. あらかじめ上記のサイトのいずれかからファイルを +ダウンロードしておけば, プロセスを再開することができます. + (ダウンロードの際には, あなたに最も近いサイトを選ぶようにしてください. +そうすれば, 時間とインターネットの帯域の節約になります) + +<item> +Q. kermit の tarball を入手しましたが, /usr/ports/distfiles に +ファイルを置こうとすると, 書き込み権がないというエラーがでます. +<p> +A. ports のしくみは /usr/ports/distfiles から tarball を探します. +しかし, これは read-only の CD-ROM へのシンボリックリンクなので, +ここにファイルを置くことはできません. +次のようにすれば, 他の場所を探すよう ports に指示することができます. +<verb> + DISTDIR=/where/you/put/it make install +</verb> + +<item> +Q. ports では, すべてを /usr/ports に置いたときだけ動作するのでしょうか? +システムの管理者によると, 私の個人的なファイルは +/u/people/guests/wurzburger に入れなければならないのですが, +これでは うまくいかないように思います. +<p> +A. PORTSDIR 変数と PREFIX 変数を変更することで, 違うディレクトリを +使用することができます. 例えば, + +<verb> + PORTSDIR=/u/people/guests/wurzburger/ports make install +</verb> + +とすると, ports は /u/people/guests/wurzburger/ports でコンパイルされ, +すべて /usr/local 以下にインストールされます. + +<verb> + PREFIX=/u/people/guests/wurzburger/local make install +</verb> + +この場合, コンパイルは /usr/ports でおこない, +/u/people/guests/wurzburger/local にインストールします. +もちろん, 以下のように両者を組み合わせることも可能です. + +<verb> + PORTSDIR=.../ports PREFIX=.../local make install +</verb> + + (省略せずに記述したら, このページに収めるには長すぎるのですが, +考え方は理解していただけたと思います) +<p> +もし ports をインストールするたびに, これらを毎回タイプするのが +気に入らないのであれば, (正直に言って, 誰もそう思わないでしょう) +これらを環境変数にセットしてしまうという手があります. + +<item> +Q. 私は, FreeBSD の CD-ROM を持っていませんが, 私はすべての tarball を +私のシステムに置いておきたいのです. そうすれば, 私は ports をインストール +するたびに, 毎回ダウンロードが終わるのを待たなくてすむでしょう. +これを一度におこなう簡単な方法はありませんか? + +<p> +A. ports コレクション全体の tarball を持ってくるには, 次のようにしてください. + +<verb> + # cd /usr/ports + # make fetch +</verb> + +ports の下のディレクトリひとつの tarball を持ってくるには, 次のように +してください. + +<verb> + # cd /usr/ports/directory + # make fetch +</verb> + +ports をひとつだけ持ってくる方法は, きっと既にご存知だと思います. + +<item> +Q. マスタ FTP サイトから tarball を持ってくるより, 近くにある FreeBSD の +ミラーサイトから持ってきた方が速いはずです. MASTER_SITES に書かれている +サイト以外から持ってくるように ports に指示する方法はありませんか? +<p> +A. もちろんあります. 例えば ftp.FreeBSD.ORG が MASTER_SITES に書かれている +サイトより近いとしたら, 以下のようにしてください. +<verb> + # cd /usr/ports/directory + # make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/distfiles/ fetch +</verb> + +<item> +Q. ダウンロードをする前に, どんなファイルが必要なのか知りたいのですが. +<p> +A. 'make fetch-list' とすると, ports に必要なファイルの一覧を表示できます. + +<item> +Q. ports のコンパイルを途中で止める方法はありますか? +私はインストールをする前にいろいろとソースコードを解析したいのですが, +毎回 control-C を打たなければならないのが少し面倒です. +<p> +A. 'make extract' を実行すると, ファイル転送とソースコードの展開まで +おこなったところで停止します. + +<item> +Q. 自分で ports を作ろうとしています. 私の作ったパッチが +正しく処理できることを確認できるように, コンパイルを止めたいのです. +パッチのための 'make extract' のようなものはありませんか? +<p> +A. あります. 'make patch' があなたのお望みのものです. +ところで, あなたの努力に感謝いたします!! + +<item> +Q. あるコンパイルオプションはバグの原因になるという話を聞きました. +本当なのでしょうか? どうやったら正しい設定で ports をコンパイルできますか? +<p> +A. 本当です. gcc の バージョン 2.6.3 (FreeBSDの 2.1.0 と 2.1.5 に付属している +バージョン) では, -O2 オプションを -fno-strength-reduce オプションなしで +使うと, バグのあるコードを出力します (ほとんどの ports は -O2 オプションを +使いません). コンバイラオプションは次のように定義 <em/ すべき / です. + +<verb> + # CFLAGS='-O2 -fno-strength-reduce' make install +</verb> + +/etc/make.conf を編集することもできますが, すべての場合でこれが反映される +訳ではありません. もっとも確実なのは 'make configure' を実行し, +ソースディレクトリの Makefile を見て手で修整することですが, ソースが +多くのサブディレクトリにわかれていて, 各々に Makefile がある場合は +大変な仕事になります. + +<item> +Q. ports がたくさんありすぎて, 私の欲しいものがなかなか見つけられません. +どんな ports が使えるのか, リストはどこかにありませんか? +<p> +A. INDEX ファイルは /usr/ports の中にあります. + +<item> +Q. 'foo' ports をインストールしたいのですが, それはすぐに停止して, +'bar' ports のコンパイルが始まってしまいます. 一体どうして? +<p> +A. 'foo' ports が, 'bar' ports の提供する何らかの機能を必要としているからです. +例えば 'foo' が画像を使うとすると, 'bar' は画像処理に必要な +ライブラリを持っている, などです. +または, 'bar' は 'foo' をコンパイルするのに必要なツールなのかもしれません. + +<item><label id="ports:remove"> +Q. ports から grizzle プログラムをインストールしましたが, まったく +ディスクスペースの浪費です. 削除したいのですが, すべてのファイルが +どこへインストールされたのかわかりません. 何か手がかりはありませんか? +<p> +A. 大丈夫, 次のようにしてください. + +<verb> + pkg_delete grizzle-6.5 +</verb> +<item> + +Q. ちょっと待ってください. 削除しようとするコマンドのバージョン番号を +知っていなくてはならないのでしょうか? あなたは, 私がバージョン番号を +覚えていることを本気で当てにしているのでしょうか? +<p> +A. そんなことはありません. バージョン番号は次のようにすればわかります. + +<verb> + pkg_info -a | grep grizzle +</verb> + +そうすると次のように表示されます:- + +<verb> + Information for grizzle-6.5: + grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game. +</verb> + +<item> +Q. ディスク容量のことなのですが, ports のディレクトリは非常に膨大な容量を +使うように見えます. 残しておいた方がよいのでしょうか? 削除してしまっても +よいのでしょうか? + +<p> +A. はい. インストールが首尾よく終わり, もうソースコードが必要でないと思うなら, +それらを残しておく理由はないでしょう. 一番よい方法は, 次の通りです. + +<verb> + # cd /usr/ports + # make clean +</verb> + +これは, すべての ports のサブディレクトリを調べ, +各 ports のスケルトン以外の削除をおこないます. + +<item> +Q. これを試してみたのですが, tarball や ports で使われたファイルが +distfiles ディレクトリに残っています. これも削除してしまっても大丈夫ですか? +<p> +A. はい. それを使った作業が終わったのであれば, 削除してしまっても大丈夫です. + +<item> +Q. 私はとてもとてもたくさんのプログラムを楽しみたいのです. +一度にすべての ports をインストールする方法はありませんか? +<p> +A. 次のようにしてください. + +<verb> + # cd /usr/ports + # make install +</verb> + +<item> +Q. やってみました. 時間がとてもかかるだろうと思ったので, そのまま実行を +続けさせて, 私は寝ました. 翌朝コンピュータを見てみると, 三つ半の ports しか +処理が終わっていませんでした. なにか悪かったのでしょうか? +<p> +A. これは ports の中には私たちの決められないこと (例えば, あなたが A4 の +用紙に印刷したいのか, US レターサイズの用紙に印刷したいのかなど) について +質問してくるものがあるからです. それらの質問には手動で答える必要があります. + +<item> +Q. 私は一日中モニタの前に座って過ごしたりしたくないのですが. +何かよいアイデアはありませんか? +<p> +A. では, あなたが寝に / 仕事に / 公園にいく前に以下を実行してください:- + +<verb> + # cd /usr/ports + # make -DBATCH install +</verb> + +これでユーザの入力を要求しないすべての ports をインストールします. +そして, 戻ってきてから, 次のように実行してください. + +<verb> + # cd /usr/ports + # make -DIS_INTERACTIVE install +</verb> + +そして, 残りの作業を実行してください. + +<item> +Q. 私たちは ports コレクションにある frobble を使っています. +ですが, 私たちの必要に応じて ports を変更したところがあるのです. +自分でパッケージを作って, それを私たちのサイトのまわりに +簡単に配布できるような方法がありますか? +<p> +A. もちろんあります. 変更点をパッチにする方法は知っていますよね:- + +<verb> + # cd /usr/ports/somewhere/frobble + # make extract + # cd work/frobble-2.8 + [あなたのパッチを当ててください] + # cd ../.. + # make package +</verb> + +<item> +Q. この ports の技術は本当に賢いですね. どのようにして動いているのか +私はどうしても知りたいと思います. その秘密は何ですか? +<p> +A. 秘密は一切ありません. +<htmlurl url="file://localhost/usr/share/mk/" name="Makefiles ディレクトリ"> +にある bsd.ports.mk と bsd.ports.subdir.mk ファイルを見るだけです. + (注: 複雑なシェルスクリプトを嫌う読者は, このリンクを追いかけないほうが +よいでしょう.) +</itemize> diff --git a/share/doc/ja_JP.EUC/handbook/ppp.sgml b/share/doc/ja_JP.EUC/handbook/ppp.sgml new file mode 100644 index 000000000000..0a1136216c59 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/ppp.sgml @@ -0,0 +1,429 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.8 --> + +<sect><heading>カーネル PPP の設定<label id="ppp"></heading> + +<p><em>原作: &a.gena;.</em> +<p><em>訳: &a.graphite;.<newline>6 September 1996.</em> + +PPP の設定を始める前に, pppd が /usr/sbin にあり, また /etc/ppp という +ディレクトリが存在することを確認してください. + +pppd はふたつのモードで動作します. +<enum> +<item> 「クライアント」モード. シリアル接続やモデムを利用して, そのマシンを +外部のネットワークに PPP 接続したい場合に用います. + +<item> 「サーバ」モード. そのマシンがネットワーク上にあるときに, PPP を使って +ほかのコンピュータを接続する際に用います. +</enum> +どちらの場合でも, オプションファイルを設定する必要があります + (<tt>/etc/ppp/options</tt> または, そのマシン上で PPP を使用する人が +複数いる場合には <tt>~/.ppprc</tt>). + +また, ダイヤルとリモートホストへの接続をおこなうために, シリアル接続やモデムを +操作する, なんらかのソフトウェアが必要です (kermit が適しているでしょう). + +<sect1><heading>PPP クライアントとしての動作</heading> + +<p>私は, CISCO ターミナルサーバの PPP 回線に接続するために, 下記のような + <tt>/etc/ppp/options</tt> を使用しています. +<verb> +crtscts # enable hardware flow control +modem # modem control line +noipdefault # remote PPP server must supply your IP address. + # if the remote host doesn't send your IP during IPCP + # negotiation , remove this option +passive # wait for LCP packets +domain ppp.foo.com # put your domain name here + +:<remote_ip> # put the IP of remote PPP host here + # it will be used to route packets via PPP link + # if you didn't specified the noipdefault option + # change this line to <local_ip>:<remote_ip> + +defaultroute # put this if you want that PPP server will be your + # default router +</verb> + +接続方法: +<enum> +<item> kermit (またはその他のモデム操作プログラム) を使ってリモートホストに +ダイヤルし, 接続してください. そして, あなたのユーザ名とパスワード (必要 +であれば, その他にもリモートホストで PPP を有効にするための操作) を入力 +します. + +<item> kermit を抜けてください. (回線を切断せずに) + +<item> 下記のように入力します: +<verb> +/usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200 +</verb> +(通信速度とデバイス名には, あなたの環境に適したものを入れてください) +</enum> + +これでこのコンピュータは PPP で接続されました. もし, なんらかの理由で +接続に失敗したならば, <tt>/etc/ppp/options</tt> ファイルに "debug" +オプションを追加して, 問題点を突き止めるために, コンソールに表示される +メッセージを調べてください. + +下記の <tt>/etc/ppp/pppup</tt> スクリプトは, 上記の作業を +すべて自動的におこないます: +<verb> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.dial +pppd /dev/tty01 19200 +</verb> + +<tt>/etc/ppp/kermit.dial</tt> は kermit 用のスクリプトで, ダイヤルして, +リモートホストでの認証に必要なすべての処理をおこないます. +(そのようなスクリプトの例はこの文書の終わりに添付してあります) + +PPP 接続を切断するには, 下記のような <tt>/etc/ppp/pppdown</tt> スクリプトを +使用します: +<verb> +#!/bin/sh +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ X${pid} != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill -TERM ${pid} +fi + +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +/sbin/ifconfig ppp0 down +/sbin/ifconfig ppp0 delete +kermit -y /etc/ppp/kermit.hup +/etc/ppp/ppptest +</verb> + +PPP が動作中かどうかを調べます (<tt>/usr/etc/ppp/ppptest</tt>): +<verb> +#!/bin/sh +pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` +if [ X${pid} != "X" ] ; then + echo 'pppd running: PID=' ${pid-NONE} +else + echo 'No pppd running.' +fi +set -x +netstat -n -I ppp0 +ifconfig ppp0 +</verb> + +モデム回線を切断します (<tt>/etc/ppp/kermit.hup</tt>): +<verb> +set line /dev/tty01 ; put your modem device here +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +echo \13 +exit +</verb> + + +<p>次は <tt>kermit</tt> の代わりに <tt>chat</tt> を使う方法です. + +<em>原作: &a.rhuff;.</em> + +<p>pppd 接続を確立するためには, 次の二つのファイルの設定だけで十分です. + +<p><tt>/etc/ppp/options</tt>: +<verb> + /dev/cuaa1 115200 + +crtscts # enable hardware flow control +modem # modem control line +connect "/usr/bin/chat -f /etc/ppp/login.chat.script" +noipdefault # remote PPP server must supply your IP address. + # if the remote host doesn't send your IP during + # IPCP negotiation, remove this option +passive # wait for LCP packets +domain <your.domain> # put your domain name here + +: # put the IP of remote PPP host here + # it will be used to route packets via PPP link + # if you didn't specified the noipdefault option + # change this line to <local_ip>:<remote_ip> + +defaultroute # put this if you want that PPP server will be + # your default router +</verb> + + +<p><tt>/etc/ppp/login.chat.script</tt>: + +(実際には一行になります.) + +<verb> +ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number> + CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id> + TIMEOUT 5 sword: <password> +</verb> + + +正しくインストールし編集した後は, 必要な事はこれだけです + +<p><tt>pppd</tt>. + + +<em> このサンプルは主に Trev Roydhouse <Trev.Roydhouse@f401.n711.z3.fidonet.org> +から寄せられた情報に基づいており, 承諾を得て使用しています.</em> + + +<sect1><heading>PPP サーバとしての動作</heading> + +<p><tt>/etc/ppp/options</tt>: +<verb> +crtscts # Hardware flow control +netmask 255.255.255.0 # netmask ( not required ) +192.114.208.20:192.114.208.165 # ip's of local and remote hosts + # local ip must be different from one + # you assigned to the ethernet ( or other ) + # interface on your machine. + # remote IP is ip address that will be + # assigned to the remote machine +domain ppp.foo.com # your domain +passive # wait for LCP +modem # modem line +</verb> + +下記のような <tt>/etc/ppp/pppserv</tt> スクリプトで, そのマシンを +PPP サーバにすることができます. +<verb> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi + +# reset ppp interface +ifconfig ppp0 down +ifconfig ppp0 delete + +# enable autoanswer mode +kermit -y /etc/ppp/kermit.ans + +# run ppp +pppd /dev/tty01 19200 +</verb> + +PPP サーバを終了するには, この <tt>/etc/ppp/pppservdown</tt> スクリプト +を使用します: +<verb> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'killing kermit, PID=' ${pid} + kill -9 ${pid} +fi +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.noans +</verb> + +下記の kermit スクリプトは, モデムの自動応答機能を有効, または無効にします +(<tt>/etc/ppp/kermit.ans</tt>): +<verb> +set line /dev/tty01 +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +inp 5 OK +echo \13 +out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable + ; autoanswer mode +inp 5 OK +echo \13 +exit +</verb> + +この <tt>/etc/ppp/kermit.dial</tt> スクリプトは, リモートホストに +ダイヤルし, 認証手続きをするのに使用します. あなたは必要に応じて, これを +変更しないといけないでしょう. あなたのユーザ名とパスワードをこの +スクリプトに書かなければいけませんし, モデムやリモートホストからの +応答によっては, 入力待ちの文を変更する必要もあります. +<verb> +; +; put the com line attached to the modem here: +; +set line /dev/tty01 +; +; put the modem speed here: +; +set speed 19200 +set file type binary ; full 8 bit file xfer +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none +set modem hayes +set dial hangup off +set carrier auto ; Then SET CARRIER if necessary, +set dial display on ; Then SET DIAL if necessary, +set input echo on +set input timeout proceed +set input case ignore +def \%x 0 ; login prompt counter +goto slhup + +:slcmd ; put the modem in command mode +echo Put the modem in command mode. +clear ; Clear unread characters from input buffer +pause 1 +output +++ ; hayes escape sequence +input 1 OK\13\10 ; wait for OK +if success goto slhup +output \13 +pause 1 +output at\13 +input 1 OK\13\10 +if fail goto slcmd ; if modem doesn't answer OK, try again + +:slhup ; hang up the phone +clear ; Clear unread characters from input buffer +pause 1 +echo Hanging up the phone. +output ath0\13 ; hayes command for on hook +input 2 OK\13\10 +if fail goto slcmd ; if no OK answer, put modem in command mode + +:sldial ; dial the number +pause 1 +echo Dialing. +output atdt9,550311\13\10 ; put phone number here +assign \%x 0 ; zero the time counter + +:look +clear ; Clear unread characters from input buffer +increment \%x ; Count the seconds +input 1 {CONNECT } +if success goto sllogin +reinput 1 {NO CARRIER\13\10} +if success goto sldial +reinput 1 {NO DIALTONE\13\10} +if success goto slnodial +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 60 goto look +else goto slhup + +:sllogin ; login +assign \%x 0 ; zero the time counter +pause 1 +echo Looking for login prompt. + +:slloop +increment \%x ; Count the seconds +clear ; Clear unread characters from input buffer +output \13 +; +; put your expected login prompt here: +; +input 1 {Username: } +if success goto sluid +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 10 goto slloop ; try 10 times to get a login prompt +else goto slhup ; hang up and start again if 10 failures + +:sluid +; +; put your userid here: +; +output ppp-login\13 +input 1 {Password: } +; +; put your password here: +; +output ppp-password\13 +input 1 {Entering SLIP mode.} +echo +quit + +:slnodial +echo \7No dialtone. Check the telephone line!\7 +exit 1 + +; local variables: +; mode: csh +; comment-start: "; " +; comment-start-skip: "; " +; end: +</verb> + +<!-- +################################################################### +Gennady B. Sorokopud ( gena@NetVision.net.il ) 24/10/94 12:00 +--> + diff --git a/share/doc/ja_JP.EUC/handbook/printing.sgml b/share/doc/ja_JP.EUC/handbook/printing.sgml new file mode 100644 index 000000000000..276d6df19036 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/printing.sgml @@ -0,0 +1,4181 @@ +<!-- This is an SGML document in the linuxdoc DTD describing + Printing with FreeBSD. By Sean Kelly, 1995. + + $Id$ + The FreeBSD Japanese Documentation Project + Original revision: 1.11 + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> + + <article> + <title> FreeBSDでのプリンタの利用 + <author> Sean Kelly <tt/kelly@fsl.noaa.gov/ + <date> 30 September 1995, (c) 1995 + + <abstract> 本ドキュメントは, FreeBSD でのプリンタの利用方法につ + いて書かれたものです. プリンタ機器をセットアップする方法, プリン + タを利用するために必要な FreeBSD での設定方法, プリンタキューの + 制御方法や様々なファイル形式の印字方法について説明しています. + </abstract> + + <toc> +--> + + <chapt><heading>プリンタの利用<label id="printing"></heading> + + <p><em>著者 &a.kelly;<newline>30 September 1995</em> + <p><em>訳者 &a.kimura;<newline>3 September 1996</em> + + FreeBSD でプリンタを使用するためには, バークレイラインプリンタ + スプーリングシステム (LPDスプーリングシステムとしても知られて + います) が機能するようにプリンタをセットアップする必要がありま + す. 本節では, LPDスプーリングシステム (大抵の場合, 単にLPDと呼 + ばれる) について紹介します. + + もし, LPDや他のプリンタスプーリングシステムについて既に詳しい + 知識をお持ちの方は, 「<ref id="printing:intro:setup" + name="スプーリングシステムのセットアップ">」から読み始めて + も結構です. + + + <sect><heading>スプーラは何をするか <label + id="printing:intro:spooler"></heading> + + <p> LPDはあるホストのプリンタに関する制御の一切をおこないます. こ + こで言う制御としては, 次のことが挙げられます. + + <itemize> + <item> ホストに接続されたプリンタ, あるいはネットワーク + 上の他ホストに接続されたプリンタに対するアクセスを制御しま + す. + + <item> ファイルをプリントする要求に対して許可を与えます. + この要求は特に <em/ジョブ/ と呼ばれています. + + <item> 各々のプリンタの <em/キュー/ を管理することにより, + 複数のユーザがあるプリンタに対して同時にアクセスすることを + 防ぎます. + + <item> <em/ヘッダページ/ (<em/バナー/ または <em/バースト/ + ページとしても知られています) をプリントすることができます. + これにより, プリントアウトの山の中から自分がプリントしたジョ + ブを見つけ易くなります. + + <item> シリアルポートに接続したプリンタ用に通信パラ + メータを管理します. + + <item> ネットワーク経由で他のホスト上の, 別のLPDスプーラにジョ + ブを送ることができます. + + <item> 様々なプリンタ言語やプリンタの能力に応じてジョブの + 形式を整えるため, 特別なフィルタを起動することができます. + + <item> プリンタの使用に対して課金をおこなうことができます. + </itemize> + + 設定ファイルを通して, また, 特別なフィルタプログラムを供給 + することにより, 多種多様なプリンタ機器に対して, 上述の機能の + 全部または一部をLPDシステムにおこなわせることができます. + + + <sect><heading>どうしてスプーラを使うべきなのか<label + id="printing:intro:why"></heading> + + <p> あなたのシステムを利用するのがあなた一人だけだとしたら, ア + クセス制御もヘッダページもプリンタ利用に対する課金も必要ないのに, + なぜわざわざスプーラに煩わされなければならないのか疑問に思うか + もしれません. プリンタに対する直接アクセスを許可することもできるので + すが, とにかくスプーラを使用するべきです. その理由は, + + <itemize> + <item> LPDはジョブをバックグラウンドで処理します. データが + プリンタに送信されるまで待つ必要はありません. + + <item> LPDではジョブをフィルタを通してプリントすることが簡 + 単にできます. これにより, 印刷物のヘッダに時刻や日付を入れ + たり, 特別なファイル形式 (TeX の DVI ファイルなど) をプリン + タが処理できる形式に変更することができます. これらの作業を + 手動でおこなう必要がなくなります. + + <item> プリント処理をおこなうフリーのまたは商用のプログラムの + ほとんどは, システムのスプーラとやりとりするように作られて + います. スプーリングシステムをセットアップすることで, 今後 + 加えるかもしれない, あるいは, 既に持っている別のソフトウエ + アをより簡単にサポートすることができるでしょう. + </itemize> + + <sect><heading>スプーリングシステムのセットアップ<label + id="printing:intro:setup"></heading> + + <p> LPDスプーリングシステムを用いてプリンタを使用するためには, + プリンタ機器とLPD用ソフトウェアの両方を準備する必要があります. + 本ドキュメントでは次の2段階のレベルに分けて説明をします. + + <itemize> + <item> プリンタを接続する方法, プリンタにどの + ように通信するかをLPDに指示する方法や, プレインテキスト + をプリンタで印字する方法については, 「<ref name="プリ + ンタの簡単な設定" id="printing:simple">」をご覧ください. + + <item> 様々な形式のファイルを印字する方法, ヘッダページを + 印字する方法, ネットワーク経由でプリンタに印字する方法, + プリンタを制御する方法, プリンタの使用に対する課金をおこなう + 方法については「<ref name="プリンタ設定上級編" + id="printing:advanced">」をご覧ください. + </itemize> + + + <sect><heading> プリンタ設定導入編 <label + id="printing:simple"></heading> + + <p> この節では, プリンタ機器やプリンタを使用するためのLPD用ソフ + トウェアを設定する方法について述べます. この節の概要は次の通り + です. + + <itemize> + <item> 「<ref id="printing:hardware" + name="プリンタ機器の設定">」では, プリンタをコンピュータに接 + 続するためのヒントがいくつか書かれています. + + <item> 「<ref id="printing:software" + name="ソフトウェアの設定">」では, LPDのスプーラ設定ファイル + <tt>/etc/printcap</tt>の設定方法について書かれています. + </itemize> + + データをプリンタに送るためにシリアルまたはパラレルインタフェー + スではなく, ネットワークプロトコルを使用する場合は, 「<ref + id="printing:advanced:network:net-if" name="ネットワークにおけ + るデータストリームのインタフェースを持つプリンタ">」をご覧くださ + い. + + この節のタイトルは「プリンタ設定導入編」ですが, 実際の設定は + かなり複雑です. プリンタをコンピュータに接続し, LPDスプーラを + 起動させることは一番困難な作業です. ヘッダページを出力させたり, + 課金したりするオプションの設定は, 一度プリンタがうまく動くよう + になれば, とても簡単です. + + + <sect1><heading>プリンタ機器の設定<label + id="printing:hardware"></heading> + + <p> この節では, プリンタにPCを接続するための様々な方法について + 説明しています. ここでは, ポートやケーブルの種類, FreeBSDが + プリンタとの通信に必要なカーネルコンフィグレーションについて + も言及しています. + + もし, プリンタが既に接続されていて, 他のオペレーティングシステ + ム上でプリンタからの印字に成功している場合は, 「<ref + id="printing:software" name="ソフトウェアの設定">」まで読み飛 + ばすことが多分できるでしょう. + + + <sect2><heading>ポートとケーブル<label + id="printing:ports"></heading> + + <p> 最近のPC用のプリンタほとんどには次のインタフェースの一つ + もしくは両方がついています. + + <itemize> + <item><em/シリアル/インタフェースでは, プリンタにデータを + 送信するためにコンピュータにあるシリアルポートが使用され + ます. シリアルインタフェースはコンピュータ業界で共通し + て使用されています. そのケーブルは容易に手に入り, また, + 簡単に自作することもできます. シリアルインタフェースには, + 特別なケーブルが必要なことがときどきあり, また, 何か複 + 雑な通信方式選択の設定が必要になることがあります. + + + <item><em/パラレル/インタフェースでは, プリンタにデータを + 送信するためにコンピュータにあるパラレルポートを使用しま + す. パラレルインタフェースはPC業界では共通して使われてい + ます. ケーブルの入手は容易ですが, 自作するのはシリアルよ + りも難しいです. パラレルインタフェースには通常, 通信方式の選 + 択はなく, このため, 設定が極めて単純になっています. + + + <p> パラレルインタフェースは「セントロニクス」インタフェー + スとして知られています. これは, プリンタ用のコネクタタ + イプとして採用された後に名付けられました. + </itemize> + + シリアルインタフェースはパラレルインタフェースより + も普通はデータの伝送速度が遅くなります. パラレルインタフェースで + は, 通常, (コンピュータからプリンタへの) 単方向通信のみをおこな + うのに対して, シリアルインタフェースは双方向通信をおこないます. + 最近のパラレルポートの多くはプリンタ側からデータを受けとる + こともできますが, コンピュータ側にデータを送り返すことが必 + 要となるプリンタはほとんどありません. さらに, FreeBSDでは + 双方向のパラレル通信をまだサポートしていません. + + 通常, プリンタで双方向通信が必要となるのは, プリンタが + PostScript 言語に対応しているときだけです. PostScript プリ + ンタは非常に冗長に動作させることができます. 事実, + PostScript によるジョブでは, プログラムを本当にプリンタ + に送信します. このことは, 印字作業を必ずしもする必要がない + ことを意味し, また, プログラムの結果をコンピュータに直接返 + されるかもしれません. PostScript プリンタでは, 双方向 + 通信を使って, PostScript プログラムのエ + ラーや紙づまりといった問題をコンピュータに報告します. ユー + ザはそれらの情報を知りたいと思うかもしれません. さらに, + PostScript プリンタで課金作業をもっとも効率よくおこなうため + には双方向通信が必要となります. この方法では, まず, プ + リンタの現在のページカウント (起動してから今まで何枚の紙を + 印字したか) の情報を得ます. 次に, ユーザのジョブをおこない, 終 + 了後, 再びページカウントを得ます. この2数を差によって, 課 + 金対象となる紙の枚数を知ることができます. + + それでは, どちらのインタフェースを使うべきなのでしょうか. + + + <itemize> + <item> 双方向通信が必要なら, シリアルポートを使ってくださ + い. FreeBSDではパラレルポート上での双方向通信はまだサポー + トされていません. + + <item> 双方向通信の必要がなく, パラレルかシリアルかの選 + 択ができる場合はパラレルインタフェースを使うのが好ましい + です. これにより, シリアルポートを他の周辺機器 (端末やモ + デムのなど) のために残しておくことができます. また, パラ + レルインタフェースの方がほとんどの場合高速であり, 設定も + より簡単になっています. + + <item> 結局のところは動いてくれるものを使えばよいのです. + </itemize> + + + <sect2><heading>パラレルポート<label id="printing:parallel"></heading> + + <p> プリンタをパラレルインタフェースを使って接続する場合は, + セントロニクスケーブルでプリンタとコンピュータをつないでくださ + い. 詳しい説明はプリンタ, コンピュータ, あるいは両方に付属す + る説明書に書かれているはずです. + + その際, どのパラレルポートを使用したかを覚えておいてください. + FreeBSDでは最初のポートは /dev/lpt0, 2番目は /dev/lpt1 であ + り, 3番目以降も同様に続きます. + + + <sect2><heading>シリアルポート<label id="printing:serial"></heading> + + <p> シリアルインタフェースを使ってプリンタを使う場合は, 適切 + なシリアルケーブルでプリンタとコンピュータを接続してください. + 詳しい説明はプリンタ, コンピュータ, あるいは両方に付属する説 + 明書に書かれているはずです. + + 「適切なシリアルケーブル」がよくわからないときは, 次のどれか + を試してみてください. + + <itemize> + <item> <em/モデム/用ケーブルでは, それぞれのピンは他方の + コネクタの対応するピンと線でつながっています. このタイプ + のケーブルは, DTE-DCE間ケーブルとしても知られています. + (訳注:日本ではストレートケーブルという名前で売られています) + + + <item> <em/ヌルモデム/用ケーブルでは, あるピンは対応するピ + ント接続していますが, あるピン (例えば, データ送信用とデー + タ受信用のピン) が交差して接続したり, いくつかのピンは内部 + で短絡していたりします. このタイプのケーブルは, DTE-DTE + 間ケーブルと呼ばれています. (訳注:日本ではクロスケーブル + という名前で売られています) + + <item>A <em/シリアルプリンタ/用ケーブルは, ある特定のプ + リンタで必要とされ, ヌルモデムケーブルと似ていますが, 内 + 部で短絡させる代わりに, ある信号を他方側に送るために使用 + しています. + </itemize> + + この他に, プリンタ用の通信パラメータを設定する必要がありま + す. 通常, プリンタのフロントパネルやDIPスイッチによって制 + 御します. コンピュータとプリンタの双方で設定できる最高の通 + 信速度[bps] (ビット/秒. <em/ボーレート/と示されているときも + ある) を選んでください. そして, データビット (7または8), パリ + ティ (偶/奇/なし), ストップビット (1または2) を選んでください. + そして, フローコントロールの有無 (制御なし, または + XON/XOFF(<em/イン・バンド/または<em/ソフトウェア/フローコ + ントロールとも呼ばれる)) を選びます. 以下に続くソフトウェア + の設定のために, ここでの設定を覚えておいてください. + + + <sect1><heading>ソフトウェアの設定<label id="printing:software"> + </heading> + + <p> 本節ではFreeBSDのLPDスプーリングシステムで印字をおこなうために + 必要となるソフトウェアの設定について説明しています. + + 本節の概要は次のようになります. + + <enum> + <item> プリンタで使用するポートのために, 必要があれば, カー + ネルの書き変えをおこないます. 「<ref id="printing:kernel" + name="カーネルの変更">」で, このためにしなくてはなら + ないことを説明しています. + + <item> パラレルポートを使用している場合は, パラレルポートの + ための通信モードの設定します. 詳細は, 「<ref + id="printing:parallel-port-mode" name = "パラレルポート + の通信モードを設定する">」で説明しています. + + <item> オペレーティングシステムからプリンタにデータが送ら + れているかをテストします. 「<ref id="printing:testing" + name="プリンタとの通信状況を調べる">」で, どのように + テストするかの提案をいくつかおこなっています. + + <item> ファイル<tt>/etc/printcap</tt>を変更し, LPDの設定を + おこないます. 「<ref id="printing:printcap" + name="/etc/printcap ファイル">」で, どのように変更するかを + 説明しています. + </enum> + + <sect2><heading>カーネルの変更<label + id="printing:kernel"></heading> + + <p> オペレーティングシステムのカーネルのコンパイルをおこなうこと + によって, 指定されたのデバイスが機能するようになります. シリ + アル, または, パラレルインタフェースをプリンタで使用する場合, + 必要なデバイスがこの指定の中に含まれていなくてはなりません. + したがって, 必要なデバイスがカーネルに組み込まれていない場合, 追 + 加のシリアル, または, パラレルポートをサポートするために, カー + ネルの再コンパイルが必要となるかもしれません. + + シリアルポートが現在使用しているカーネルでサポートされている + かどうかを調べるためには, 次のように入力します. + +<tscreen> +<tt>dmesg | grep sio</tt><it/N/ +</tscreen> + + ここで, <it/N/ はシリアルポートの番号を示し, この番号は0から + 始まります. 次のような出力があった場合, カーネルはそのポー + トをサポートしています. + +<tscreen><verb> +sio2 at 0x3e8-0x3ef irq 5 on isa +sio2: type 16550A +</verb></tscreen> + + パラレルポートが現在使用しているカーネルでサポートされている + かどうかを調べるためには, 次のように入力します. + +<tscreen> +<tt>dmesg | grep lpt</tt><it/N/ +</tscreen> + + ここで, <it/N/ はパラレルポートの番号を示し, この番号は0から + 始まります. 次のような出力があった場合, カーネルはそのポー + トをサポートしています. + +<tscreen><verb> +lpt0 at 0x378-0x37f on isa +</verb></tscreen> + + 上記の出力が得られない場合, プリンタを使うため, オペレーティ + ングシステムにパラレル, または, シリアルポートを認識し, 使用 + できるようにするためにはカーネルを変更する必要があります. + + シリアルポートをサポートさせるには, 「<ref id="kernelconfig" + name="FreeBSDカーネルのコンフィグレーション">」の節をご覧く + ださい. パラレルポートをサポートさせる場合も, その節と, <em/あ + わせて/, この節に続く節もご覧ください. + + + <sect3><heading> ポート用エントリを <tt>/dev</tt> に追加する + <label id="printing:dev-ports"></heading> + + <p> カーネルがシリアル, または, パラレルポートを通じての通 + 信をサポートしていたとしても, システム上で動いているプログ + ラムがデータの送受信をおこなうためのソフトウェアインタフェース + がさらに必要になります. そのインタフェースは, + <tt>/dev</tt> ディレクトリにあるエントリに相当します. + + + <bf> <tt>/dev</tt> エントリにポートを加えるために</bf> + <enum> + <item> <tt/su/ コマンドで root になります. suコマンド + でパスワードを聞かれたら, ルート用のパスワードを入力し + ます. + + <item> <tt>/dev</tt> ディレクトリに移動します. +<tscreen><verb> +cd /dev +</verb></tscreen> + + <item> 次のように入力します. +<tscreen> +<tt> ./MAKEDEV</tt> <it/port/ +</tscreen> + ここで, <it/port/ は, 作成するポート名です. 1番目 + のパラレルポートのときは <tt/lpt0/ に, 2番目のときは + <tt/lpt1/ になり, 以降同様になります. 1番目のシリア + ルポートのときは, <tt/ttyd0/ に, 2番目のときは + <tt/ttyd1/ になり, これも以降同様となります. + + <item> 次を入力し, デバイスのエントリができたか確認し + ます. +<tscreen> +<tt>ls -l</tt> <it/port/ +</tscreen> + </enum> + + <sect3><heading> パラレルポートの通信モードを設定する + <label id="printing:parallel-port-mode"></heading> + + <p> パラレルインタフェースを使用している場合, FreeBSDでは, + 割り込み駆動型にするか, プリンタとの通信の状況をカーネルに監 + 視させるかのいずれかを選択できます. + + <itemize> + <item> GENERIC カーネルでは<em/割り込み駆動/方式が, + デフォルトになっています. この方式では, オペレーティングシ + ステムはプリンタがデータを受け付けられるかどうかを調べ + るために, IRQ ラインを一つ使用します. + + <item> <em/監視/方式では, オペレーティングシステムにプ + リンタがもっとデータを受け付けられるかどうかを繰り返し + 尋ねるように指示します. そして, 受け付けるという応答を + 受けたとき, カーネルはさらなるデータを送信します. + </itemize> + + 割り込み駆動方式は, いくらか高速になりますが, 貴重な IRQ + ラインを一つ消費します. うまく機能するものをお使いください. + + 通信モードを設定するためには2つの方法があります. 1つはカー + ネルを変更することで, もう一つは <tt/lptcontrol/ プログ + ラムを使用する方法です. + + + <bf> カーネルを設定することによって, 通信モードを変更す + る. </bf> + + <enum> + <item> カーネルコンフィグレーションファイルを変更しま + す. <tt/lpt0/ のエントリを探すか追加してください. 2番目 + のパラレルポートを設定するときは, 代わりに <tt/lpt1/ + を使います. 以下, 3番目のポートは <tt/lpt2/ となってい + きます. + + <itemize> + <item> イベント駆動方式にする場合は, <tt/irq/ 指 + 定を追加します. + +<tscreen> +<tt>device lpt0 at isa? port? tty irq <it/N/ vector lptintr</tt> +</tscreen> + ここで, <it/N/ はパラレルポート用の IRQ 番号で + す. + + <item> 監視方式を使用する場合は, <tt/irq/ を追加 + してはいけません. + +<tscreen> +<tt>device lpt0 at isa? port? tty vector lptintr</tt> +</tscreen> + </itemize> + <item> ファイルをセーブし, config プログラムを起動 + し, カーネルの構築, インストールをおこないます. そして, リ + ブートしてください. 詳細は, 「<ref id="kernelconfig" + name="FreeBSDカーネルのコンフィグレーション">」を参照 + してください. + </enum> + + <bf> <tt/lptcontrol/で通信モードを設定する場合 </bf> + <itemize> + <item> + <tt/lpt<it/N// をイベント駆動方式に設定する場合は, + 次のように入力します. +<tscreen> +<tt>lptcontrol -i -u <it/N/</tt> +</tscreen> + + <item> + <tt/lpt<it/N// を監視方式に設定する場合は, 次のよう + に入力します. +<tscreen> +<tt>lptcontrol -p -u <it/N/</tt> +</tscreen> + </itemize> + これらのコマンドを <tt>/etc/rc.local</tt> ファイルに追加 + しておくと, システムをブートする度に通信モードを設定する + ことができます. 詳細については, lptcontrol(8) をご覧くだ + さい. + + <sect3><heading> プリンタとの通信状況を調べる <label + id="printing:testing"></heading> + + <p> スプーリングシステムの設定に進む前に, オペレーティング + システムがプリンタにデータを送ることに成功しているかどうか + を確かめるべきでしょう. これにより, 印字がうまくいかないと + き, プリンタとの通信が問題なのか, スプーリングシステムが問 + 題なのかを分けて調べることがかなり容易になります. + + プリンタをテストするためには, プリンタに何かのテキストを送 + 信してみます. 送信した文字をすぐに印字してくれるプリンタに + は, <tt/lptest/コマンドを使うと有用です. このコマンドは印 + 字可能な96文字のASCII文字すべてを96行生成します. + + PostScript (または他の言語に対応した) プリンタの場合 + は, もっと巧妙なテストが必要になります. 次のような, 簡単な + PostScript プログラムを使えば十分でしょう. +<code> +%!PS +100 100 moveto 300 300 lineto stroke +310 310 moveto +/Helvetica findfont 12 scalefont setfont +(Is this thing working?) show +showpage +</code> + + <em/注意:/ このドキュメントでプリンタ用言語を参照するとき + は, PostScript のような言語を仮定しており, Hewlett + Packard の PCL は考慮していません. PCL は非常に機能的なの + ですが, プレインテキストにエスケープシーケンスを混ぜること + ができます. PostScript ではプレインテキストを直接印字 + することはできません. このような種類のプリンタ言語に対して + は, 特別な対応をおこなわなければなりません. + + + <sect4><heading> パラレルポートのプリンタとの接続を調べる + <label id="printing:checking:parallel"></heading> + + <p> この節では, FreeBSDがパラレルポートに接続されたプリ + ンタと通信できているかどうかを調べる方法について説明し + ています. + + <bf> パラレルポートのプリンタをテストするために </bf> + <enum> + <item> <tt/su/ コマンドで root になります. + <item> プリンタにデータを送ります. + <itemize> + <item> プリンタがプレインテキストを印字できる場 + 合, <tt/lptest/ コマンドを使います. 次のように入 + 力してください. +<tscreen> +<tt>lptest > /dev/lpt<it/N/</tt> +</tscreen> + ここで, <it/N/ はパラレルポートの番号で, 番号は + 0から始まります. + + <item> プリンタが PostScript か他のプリンタ + 言語を使用している場合, そのプリンタに簡単なプロ + グラムを送信してください. 次のように入力します. +<tscreen> +<tt>cat > /dev/lpt<it/N/</tt> +</tscreen> + そして, 一行一行, プログラムを<em/慎重に/入力して + 下さい. RETUREN または ENTER キーを入力してしま + うと, その行は編集できなくなります. プログラムの + 入力が終わったら, CONTROL+Dか, あなたが設定して + いるファイル終了のキーを押してください. + + <p> もしくは, プログラムを入力したファイルがある + 場合は, 次のように入力してください. +<tscreen> +<tt>cat <it/file/ > /dev/lpt<it/N/</tt> +</tscreen> + ここで, <it/file/ はプログラムが格納されていて, + プリンタに送信するファイルの名前です. + </itemize> + </enum> + + これで何かがプリントされることでしょう. 印字されたテキ + ストがおかしくても心配しなくても構いません. それについ + ては, 後で修正します. + + <sect4><heading> シリアルポートのプリンタとの接続を調べる + <label id="printing:checking:serial"></heading> + + <p> この節では, FreeBSDがシリアルポートに接続されたプリ + ンタと通信できているかどうかを調べる方法について述べられ + ています. + + <bf> シリアルポートのプリンタをテストするために </bf> + <enum> + <item> <tt/su/ コマンドで root になります. + <item> <tt>/etc/remote</tt> ファイルを編集します. 次の + エントリを加えてください. +<tscreen> +<tt>printer:dv=/dev/<it/port/:br#<it/bps-rate/:pa=<it/parity/</tt> +</tscreen> + ここで, <it/port/ シリアルポート (<tt/ttyd0/, + <tt/ttyd1/ など) のデバイスエントリで, <it/bps-rate/は + プリンタとの通信の転送速度[bit/秒], <it/parity/はプリ + ンタとの通信で必要とされるパリティ (<tt/even/, + <tt/odd/, <tt/none/, <tt/zero/のいずれか) を表わしていま + す. + <p> + 次の例は, プリンタをシリアルケーブルでパリティなし, + 転送速度19200bpsで第3番目のシリアルポートに接続した場 + 合です. + +<code> +printer:dv=/dev/ttyd2:br#19200:pa=none +</code> + + <item> <tt/tip/コマンドでプリンタと接続します. 次のよ + うに入力してください. + +<tscreen><verb> +tip printer +</verb></tscreen> + + これがうまくいかなかった場合は, <tt>/etc/remote</tt>を + 編集して, <tt>/dev/ttyd<it/N/</tt>の代わりに + <tt>/dev/cuaa<it/N/</tt>を試してみてください. + + <item> プリンタにデータを送ります. + <itemize> + <item> プリンタがプレインテキストを印字できる場 + 合, <tt/lptest/ コマンドを使います. 次のように入 + 力してください. +<tscreen><verb> +~$lptest +</verb></tscreen> + + <item> プリンタが PostScript か他のプリンタ + 言語を使用している場合, そのプリンタに簡単なプロ + グラムを入力します. 一行一行, プログラムを<em/慎 + 重に/入力してください. バックスペースキーや他の編 + 集用のキーは, プリンタの制御コードに割り当てられ + ているかもしれません. プログラムが終了したことを + プリンタに伝えるための特別なファイル終了キーを入 + 力する必要があるかもしれません. PostScript + プリンタの場合, CONTROL+Dを入力します. + + <p> もしくは, プログラムを入力したファイルがある + 場合は, 次のように入力してください. + +<tscreen> +<tt>˜><it/file/</tt> +</tscreen> + ここで, <it/file/ はプログラムが格納されている + ファイル名です. <tt/tip/コマンドでファイルを送 + 信した後は, ファイル終了を表わすキーを入力する必要 + があります. + </itemize> + </enum> + + これで何かがプリントされることでしょう. 印字されたテキ + ストがおかしくても心配しなくても構いません. それについ + ては, 後で修正します. + + <sect2><heading> スプーラに許可を与える: + <tt>/etc/printcap</tt> ファイル + <label id="printing:printcap"></heading> + + <p> ここまでで, プリンタはコンピュータに接続され, (必要なら) + プリンタと通信できるようにカーネルを変更し, 簡単なデータをプ + リンタに送信することができているはずです. これで, LPDにプリ + ンタへのアクセスを制御させる設定をおこなう準備が整いました. + + LPDの設定は <tt>/etc/printcap</tt> を編集することでおこないます. + LPDスプーリングシステムはスプーラが使われる毎にこのファイル + を参照します. そのため, ファイルを更新するとすぐにその変更が + 反映されます. + + <tt/printcap/ ファイルの書式は簡単です. + <tt>/etc/printcap</tt> の編集はお好みのテキストエディタをお + 使いください. このファイルの書式は, + <tt>/usr/share/misc/termcap</tt> や <tt>/etc/remote</tt> + といった他のケイパビリティファイルと一致しています. この書式 + のついての詳細な情報については cgetent(3) をご覧ください. + + スプーラの単純な設定法は, 次のステップでおこないます. + + <enum> + <item> プリンタに名前 (と簡単な別名2〜3個) を付け, それを + <tt>/etc/printcap</tt> ファイルに記述します. これについ + ては, 「<ref id="printing:naming" + name="プリンタに名前を付ける">」 を参照してください. + + <item> <tt/sh/ の項目を追加することで, ヘッダページの出 + 力を禁止します (デフォルトは許可). これについては, 「<ref + id="printing:no-header-pages" name="ヘッダページの印字 + を禁止する">」 を参照してください. + + <item> スプール用のディレクトリを作成し, その位置を + <tt/sd/ 項目で指定します. これについては, 「<ref + id="printing:spooldir" name="スプーリングディレクトリ + の作成">」 を参照してください. + + <item> プリンタを使用するために <tt>/dev</tt> エントリを + 設定し, <tt>/etc/printcap</tt> の <tt/lp/ 項目でそのエ + ントリを指定します. これについては, 「<ref id="printing:device" + name="プリンタデバイスの特定">」 を参照してください. + プリンタをシリアルポートに接続した場合は, <tt/fs/, + <tt/fc/, <tt/xs/, <tt/xc/ の項目を設定する必要があります. + こちらについては, 「<ref id="printing:commparam" + name="スプーラのための通信パラメータの設定">」 + を参照してください. + + <item> プレインテキスト用の入力フィルタのインストールを + おこないます. 「<ref id="printing:textfilter" + name="テキストフィルタのインストール">」 を参照してください. + + <item> <tt/lpr/ コマンドで何かを印字することで設定のテス + トをおこないます. <ref id="printing:trying" name="印字して + みよう"> と <ref id="printing:troubleshooting" + name="トラブルシューティング"> を参照してください. + </enum> + + + <em/注意:/ PostScript プリンタのような, プリンタ言語を + 使用しているプリンタには, プレインテキストを直接印字させる + ことができません. 上にアウトラインを示し, 以下の節で説明す + る簡単な設定方法の説明では, そのようなプリンタを設置してい + る場合は, プリンタが認識できるファイルだけを印字の対象とし + ているという仮定をしています. + + + 多くの場合, 利用者はシステムに設置されているプリンタすべてでプ + レインテキストが印字できることを期待しています. 印字作業を + おこなうためにLPDのインタフェースを利用するプログラムでも, 通 + 常, そのような仮定を置きます. プリンタ言語を使用するプリン + タを設置しており, そのプリンタ言語で記述されたジョブと, + <em/これに加えて/, プレインテキストのジョブも印字できるよ + うにしたいならば, 上で示した簡単な設定方法に加えて, さら + なる設定をおこなうことを強くお勧めします. すなわち, 原始的なプ + レインテキストから PostScript (もしくは, 他のプリンタ + 言語) に変換するプログラムをインストールしてください. 「<ref + id="printing:advanced:if-conversion" name="プレインテキス + トのジョブを PostScript プリンタで印字する">」で, そ + れをどのようにおこなえばよいのかが説明されています. + + <em/訳注:/ 日本語を印字したい場合は, プリンタ言語を使用し + ていない「日本語プリンタ」についても, プリンタ固有のエスケー + プシーケンスを送る必要があります. また, 漢字コードをプリン + タが設定しているものに変換したりする必要があり, 各プリンタ + 毎に, 日本語用のフィルタが必要になります. + <!-- 時間があったらフィルタを調べることにしよう --> + + <sect3><heading> プリンタに名前を付ける <label + id="printing:naming"></heading> + + <p> 最初の (簡単な) ステップで, プリンタの名前を考えます. プ + リンタには別名をいくつか付けることもできるので, 機能的な名前 + でも風変わりな名前でもどちらを選んでもまったく問題はありません. + + 少なくとも1つのプリンタには, <tt>/etc/printcap</tt> の中 + で, <tt/lp/ という別名を持たせるべきでしょう. この名前は + デフォルトのプリンタ名になっています. ユーザが環境変数 PRINTER + を設定しておらず, かつ, LPDコマンドのコマンドラインでプリ + ンタの名前が指定されていない場合, <tt/lp/ がデフォルトのプリ + ンタ名となり, そのプリンタに出力されます. + + それから, これは共通の慣習ですが, プリンタの最後の別名には, + メーカーやモデル名を含むプリンタの完全な名称をつけることに + なっています. + + 名前と別名のいくつかを決めたら, <tt>/etc/printcap</tt> ファ + イルに設定します. プリンタ名は一番左のカラムから書き始めま + す. 別名はそれぞれ縦棒によって区切られ, 最後の別名の後ろに + コロンを置きます. + + 次の例では, 2台のプリンタ (Diablo 630 ラインプリンタと + Panasonic KX-P4455 PostScript レーザライタプリンタ) が定義 + されている <tt>/etc/printcap</tt> のスケルトンを記しています. + +<code> +# +# /etc/printcap for host rose +# +rattan|line|diablo|lp|Diablo 630 Line Printer: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: +</code> + + この例では, 最初のプリンタに <tt/rattan/ という名前と別名 + として, <tt/line/, <tt/diablo/, <tt/lp/ そして + <tt/Diablo 630 Line Printer/ が付けられています. 別名とし + て <tt/lp/ があるので, このプリンタはデフォルトのプリンタとなっ + ています. 2番目は <tt/bamboo/ と名付けられ, 別名として, + <tt/ps/ と <tt/PS/, <tt/S/, <tt/panasonic/, + <tt/Panasonic KX-P4455 PostScript v51.4/ が付けられていま + す. + + + <sect3><heading> ヘッダページの印字を禁止する<label + id="printing:no-header-pages"></heading> + + <p> LPDスプーリングシステムでは, デフォルトでジョブ毎に<em/ヘッ + ダページ/を印字します. ヘッダページにはジョブを要求したユー + ザ名, ジョブが送られたホスト名, そして, ジョブの名前が素晴 + らしい大きな文字で印字されています. 残念なことに, この余分 + なテキストすべてが, 簡単なプリンタ設定法のデバッグの際に紛れ + 込んできてしまいます. このため, ヘッダページの出力を禁止し + ておきます. + + ヘッダページの出力を禁止するには, <tt>/etc/printcap</tt> + にあるプリンタのエントリに <tt/sh/ の項目を追加します. 次 + に, <tt/sh/ を加えた <tt>/etc/printcap</tt> の例を示しま + す. + +<code> +# +# /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: +</code> + + この書式を正しく使うための注意をしておきます. 最初の行は左 + 端のカラムから始まります. それに続く行は TAB ひとつ分だけ + 字下げします. 最後の行以外のすべての行は, 行末にバックスラッ + シュを記述します. + + + <sect3><heading>スプーリングディレクトリの作成<label + id="printing:spooldir"></heading> + + <p> スプーラの簡単な設定の次のステップでは, <em/スプーリン + グディレクトリ/を作成します. プリンタに送られるジョブ + は, その印字が終了するまでこのディレクトリに置かれます. + また, 他のたくさんのスプーラもこのディレクトリにファイ + ルを置きます. + + 様々な事情によりスプーリングディレクトリは, 通常, 慣例 + として <tt>/var/spool</tt> の下に置きます. + また, スプーリングディレクトリの内容はバックアップをす + る必要はありません. <tt/mkdir/ によってディレクトリを + 作るだけでスプーリングディレクトリの復旧は完了します. + + + スプーリングディレクトリの名前は, これも慣例ですが, 次 + のようにプリンタの名前と同じにします. + +<tscreen> +<tt>mkdir /var/spool/<it>printer-name</it></tt> +</tscreen> + + しかしながら, ネットワーク上に使用可能なプリンタがたく + さんあるならば, LPDで印字するための専用のディレクトリに + スプーリングディレクトリを置きたいと思うかもしれません. + 例に出てきたプリンタ <tt/rattan/ と <tt/bamboo/ につい + て, この方式を採用すると, 次のようになります. + +<tscreen><verb> +mkdir /var/spool/lpd +mkdir /var/spool/lpd/rattan +mkdir /var/spool/lpd/bamboo +</verb></tscreen> + + <em/注意:/ 各ユーザが印字するジョブのプライバシを守りた + いと考えているならば, スプーリングディレクトリを保護し + て, これを誰からでもアクセスできないようにしたいと思う + かもしれません. スプーリングディレクトリは, deamon ユー + ザと daemon グループに所有され, 読み込み, 書き込み, 検 + 索可能であり, 他からはアクセスできないようにするべきで + す. 例題のプリンタに対して, 次のようにすることにしましょ + う. + +<tscreen><verb> +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 +</verb></tscreen> + + 最後に, <tt>/etc/printcap</tt> ファイルで, これらのディ + レクトリの位置を LPD に伝える必要があります. スプーリ + ングディレクトリのパス名は <tt/sd/ 項目で指定します. + +<code> +# +# /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: +</code> + + プリンタ名が最初のカラムから始まっており, そのプリンタ + に関して記述される他のエントリは TAB で字下げされてい + ること, 各行がバックスラッシュで終わっていることに注意 + してください. + + <tt/sd/ によりスプーリングディレクトリが指定されていな + い場合, スプーリングシステムは <tt>/var/spool/lpd</tt> + デフォルト値として使用します. + + + <sect3><heading>プリンタデバイスの特定<label + id="printing:device"></heading> + + <p> 「<ref id="printing:dev-ports" name="ポート用エントリ + を<tt>/dev</tt> に追加する">」では, FreeBSD でプリン + タとの通信に使用される <tt>/dev</tt> ディレクトリ内の + エントリを特定します. そして, LPD にその情報を伝えま + す. 印字するジョブを受け取ると, スプーリングシステムは, + (プリンタにデータを渡す義務がある) フィルタプログラムに + 代わって指定されたデバイスをオープンします. + + <tt>/etc/printcap</tt> ファイルで <tt/lp/ 項目を使って + <tt>/dev</tt> エントリを記入します. + + ここでの例では, <tt/rattan/ は1番目のシリアルポートに, + <tt/bamboo/ は6番目のシリアルポートに接続されているこ + とにしましょう. このとき, <tt>/etc/printcap</tt> には + 次のようになります. + +<code> +# +# /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: +</code> + + <tt>/etc/printcap</tt> でプリンタの <tt/lp/ 項目が指定 + されていない場合は, LPD はデフォルトとして + <tt>/dev/lp</tt> を使用します. <tt>/dev/lp</tt> は, + 現在の FreeBSD には存在していません. + + 設置したプリンタがパラレルポートに接続されている場合は, + 「<ref name="テキストフィルタのインストール" + id="printing:textfilter">」まで読み飛ばしてください. + そうでない場合は, 次節の説明に続いてください. + + + <sect3><heading> スプーラのための通信パラメータの設定 + <label id="printing:commparam"></heading> + + <p> シリアルポートにプリンタを接続した場合, プリンタにデー + タを送信するフィルタプログラムに代わり, 通信速度やパリ + ティ, その他のシリアル通信パラメータを設定することがで + きます. このことによる利点は, + + <itemize> + <item> <tt>/etc/printcap</tt> を編集するだけで, 様々な + 通信パラメータを試してみることができます. フィルタプロ + グラムを再コンパイル必要はありません. + + <item> スプーリングシステムで, シリアル通信の設定が異 + なっているかもしれない複数のプリンタに同じフィルタプロ + グラムを使うことが可能になります. + </itemize> + + 次の <tt>/etc/printcap</tt> の項目で, <tt/lp/ で指定 + されたデバイスのシリアル通信パラメータを制御できます. + + <descrip> + <tag/<tt>br#<it/bps-rate/</tt>/ + + デバイスの通信速度を <it/bps-rate/ に設定します. ここ + で, <it/bps-rate/ は 50, 75, 110, 134, 150, 200, 300, + 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400[bit/秒] + のいずれかです. + + <tag/<tt>fc#<it/clear-bits/</tt>/ + + デバイスをオープンした後で, <tt/sgttyb/ 構造体の + <it/clear-bits/ フラグビットをクリアします. + + <tag/<tt>fs#<it/set-bits/</tt>/ + + <tt/sgttyb/ 構造体の <it/clear-bits/ フラグビットをセッ + トします. + + <tag/<tt>xc#<it/clear-bits/</tt>/ + + デバイスをオープンした後で, ローカルモードビット + <it/clear-bits/ をクリアします. + + <tag/<tt>xs#<it/set-bits/</tt>/ + + ローカルモードビット <it/set-bits/ をセットします. + + </descrip> + <tt/fc/, <tt/fs/, <tt/xc/, そして <tt/xs/ のビットに関 + する詳しい情報については, + <tt>/usr/include/sys/ioctl_compat.h</tt> を参照してく + ださい. + + 項目 <tt/lp/ で指定されたデバイスを LPD がオープンする + とき, LPD は <tt/sgttyb/ 構造体のフラグビットを読み出 + します. そして, 項目 <tt/fc/ の全ビットをクリアします. + 次に, 項目 <tt/fs/ のビットをセットし, その結果を設定 + します. ローカルモードビットに関しても同様におこなわれます. + + 例題のプリンタで6番目のシリアルポートに接続されたプリ + ンタの設定を追加してみましょう. 通信速度は38400bpsに設 + 定します. フラグビットとして, TANDEM, ANYP, LITOUT, + FLUSHO, PASS8 をセットします. ローカルモードビットでは, + LITOUT と PASS8 フラグをセットします. + +<tscreen><verb> +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: +</verb></tscreen> + + + <sect3><heading>テキストフィルタのインストール<label + id="printing:textfilter"></heading> + + <p> ここまでで, プリンタにジョブを送るために使うテキストフィ + ルタを LPD に設定する準備が整いました. <em/テキストフィ + ルタ/とは, <em/入力フィルタ/としても知られていますが, + 印字するジョブがあるときに LPD が起動するプログラムで + す. LPD がプリンタのためにテキストフィルタを起動する + とき, LPD はフィルタの標準入力からプリントするジョブ + を入力し, フィルタの標準出力に項目 <tt/lp/ で指定され + たプリンタデバイスを接続します. フィルタは, 標準入力か + らジョブを読み込み, プリンタのための必要な変換をおこなった + 後, その結果を標準出力に出力する, これにより印字がなさ + れることを期待されています. テキストフィルタについての + 更に詳しい情報については, 「<ref + id="printing:advanced:filters" name="フィルタはどのよ + うに機能しているか">」をご覧ください. + + + ここでの簡単なプリンタ設定では, プリンタにジョブを送るため, + <tt>/bin/cat</tt> を実行するだけの簡単なシェルスクリプ + トで間に合います. FreeBSD に標準で付属している + <tt/lpf/ というフィルタでは, バックスペース文字を使っ + た下線引きの動作をおこなう文字ストリームをうまく扱うことが + できないプリンタのための代替処理をおこなってくれます. もちろん, + 他のどんなフィルタプログラムを使っても構いません. + フィルタ <tt/lpf/ については, 「<ref + id="printing:advanced:lpf" name="テキストフィルタ + lpf">」で詳しく説明します. + + + 最初に, 簡単なテキストフィルタであるシェルスクリプト + <tt>/usr/local/libexec/if-simple</tt> を作ってみましょ + う. 次のテキストをお好みのテキストエディタでファイルに + 書き込んでください. + +<code> +#!/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 +</code> + そして, このファイルを実行可能にします. +<tscreen><verb> +chmod 555 /usr/local/libexec/if-simple +</verb></tscreen> + + LPD にこのテキストフィルタを使うことを設定するためには, + <tt>/etc/printcap</tt> に <tt/if/ 項目を使って指定しま + す. これまでの <tt>/etc/printcap</tt> の例のプリンタ + 2台に, このフィルタを加えてみましょう. +<code> +# +# /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: +</code> + + <sect3><heading>印字してみよう<label + id="printing:trying"></heading> + + + <p> 簡単な LPD 設定も終わりにたどり着きました. 残念ながら, + 設定はこれでおしまいというわけではありません. なぜなら, + さらに, 設定をテストし, すべての問題点を解決しなくては + ならないからです. 設定をテストするために, 何かを印字し + てみましょう. LPD システムで印字をするためには, + <tt/lpr/ コマンドを使います. このコマンドは, 印字する + ためのジョブを投入する働きをします. + + <tt/lpr/ コマンドを 「<ref id="printing:testing" + name="プリンタとの通信状況を調べる">」で紹介した, + あるテスト用のテキストを生成してくれる <tt/lptest/ + プログラムと一緒に使うこともできます. + + <bf> 簡単な LPD 設定をテストするために:</bf> + + <p> 次のように入力してください. +<tscreen> +<tt>lptest 20 5 | lpr -P<it/printer-name/</tt> +</tscreen> + ここで, <it/printer-name/ は <tt>/etc/printcap</tt> + で指定したプリンタ名 (もしくはその別名) です. デフォルト + のプリンタを使用する場合は, <tt/-P/ 引数を付けないで + <tt/lpr/ を打ち込んでください. もう一度述べますが, ポス + トスクリプトを期待しているプリンタをテストするならば, + <tt/lptest/ を使う代わりに PostScript で書かれたプ + ログラムをプリンタに送ってください. プログラムを送るた + めには, プログラムをファイルに格納して, <tt/lpr + <it/file// と打ち込みます. + + PostScript プリンタの場合, 送信したプログラムによ + る結果が得られるでしょう. <tt/lptest/ を使った場合は, + 以下のような結果が見られるでしょう. + +<tscreen><verb> +!"#$%&'()*+,-./01234 +"#$%&'()*+,-./012345 +#$%&'()*+,-./0123456 +$%&'()*+,-./01234567 +%&'()*+,-./012345678 +</verb></tscreen> + + 更にプリンタをテストしたい場合は, (言語ベースのプリン + タのための) もっと大きなプログラムを送信するか, 引数を + 変えて <tt/lptest/ を実行します. 例えば, <tt/lptest + 80 60/ で それぞれ80文字の行を60行生成します. + + プリンタがうまく動かなかった場合は, 次の節, 「<ref + id="printing:troubleshooting" name="トラブルシューティ + ング">」をご覧ください. + + <sect3><heading>トラブルシューティング<label + id="printing:troubleshooting"></heading> + + <p> <tt/lptest/ を使った簡単なテストをおこなった結果, 正しい出 + 力を得られずに, 以下に示すような出力が得られるかもしれ + ません. + <descrip> + <tag/しばらくしたら出力される, または, 紙の全体が出て + こない/ + + プリンタは上で示されたような印字をおこなったのですが, しばら + くして止まってしまい, 動かなくなってしまいました. 印字 + された結果をプリンタから取り出すためには, + プリンタにある PRINT REMAINING ボタン, また + は, FORM FEED ボタンを押す必要があるようです. + + この場合は, おそらくジョブはプリントをする前に更にデー + タが送られてこないか待ち続けているのでしょう. + この問題を解決するためには, プリンタに FORM FEED 文字 + (あるいは特定の必要な文字コード) を + 送るテキストフィルタを使ってください. プリンタ内部に残っ + たデータをプリンタにすぐに印字させるには, 普通は, これ + で十分です. 次のジョブが前のジョブの最終ページの中央の + どこかから印字を開始させないためにも, 紙の途中で印字の + ジョブが終了したかどうかを確認するのは有益です. + + シェルスクリプト <tt>/usr/local/libexec/if-simple</tt> + を次のように変更して, プリンタへジョブを送信した後に + FROM FEED 文字を印字させるようにします. +<code> +#!/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 +</code> + + <tag/「階段効果」が現れた/ + + 次のような印字結果が得られた. +<tscreen><verb> +!"#$%&'()*+,-./01234 + "#$%&'()*+,-./012345 + #$%&'()*+,-./0123456 +</verb></tscreen> + あなたは<em/「階段効果」/の新たなる犠牲者になってしま + いました. この原因は, 改行を表わすべき文字がなんであるか + の解釈が混乱していることにあります. UNIX スタイルのオ + ペレーティングシステムでは, 改行文字は ASCII コード10 + の line feed (LF) の1文字が使われています. MS-DOS や + OS/2などは ASCII コード10の LF <em/と/, ASCII コード + 13の文字 (carriage return または CR) をペアで使います. + (訳注:Machintosh では CR のみで表現されています). + 大抵のプリンタでは, 改行を表わすために MS-DOS の慣習にしたが + います. + + + FreeBSD で印字する場合, 印字したテキストは LF 文字だけ + が使われていました. プリンタでは LF 文字を見つけると, + 紙を1行分送り出しました. しかし, 次の文字を印字するた + めの紙の水平方向の位置は維持されました. すなわち, CR + 文字が意味することは, 次の文字を印字する位置を紙の左端 + に動かすことです. + + + FreeBSD がプリンタに動作をして欲しいと思っている動作を + 以下に示します. +<tscreen><verb> +プリンタが CR を受け取ったとき CR 動作 (復帰) をおこなう. +プリンタが LF を受け取ったとき CR + LF 動作 (復帰, 改行) をおこなう. +</verb></tscreen> + + このように動作させるための方法がいくつかあります. + + <itemize> + <item> これらの文字の解釈を変えるために, プリンタ + の設定スイッチかコントロールパネルを操作する方 + 法. どのようにして設定をするかはプリンタのマニュ + アルを参照してください. + + <p> <em/注意:/ FreeBSD 以外のオペレーティン + グシステムを切り替えて使う場合, CR と LF 文字 + の解釈をそのオペレーティングシステムで使われて + いるようにプリンタを<em/再設定/する必要がある + かもしれません. 以下に示す解決方法のいずれかを + 選ぶのがよいかもしれませんね. + + <item> 自動的に LF を CR+LF に変換してくれる + FreeBSD 用のシリアルドライバを入手する方法. も + ちろん, このドライバはプリンタ専用に接続される + シリアルポート<em/のみ/で動作します. この機能 + を許可するためには, <tt>/etc/printcap</tt> ファ + イルで対象プリンタの <tt/fs/ 項目で CRMOD ビッ + トをセットします. + + <item> LF 文字の扱いを一時的に変更するための<em/エ + スケープコード/をプリンタに送る方法. プリンタ + がサポートしているかもしれないエスケープコード + については, プリンタのマニュアルを参照してくだ + さい. 適切なエスケープコードが見つかったら, 最 + 初にそのコードを送り, 次にプリントジョブを送信 + するようにテキストフィルタを変更してください. + + <p> 次に, Hewlett Packard 社の PCL エスケープコー + ドに対応しているプリンタのためのテキストフィル + タの例を示します. このフィルタでは, プリンタ + に LF 文字を LF と CR の2文字として扱わせます. + その後に, プリンタにジョブを送ります. 最後に, + ジョブの最終ページの紙を排出するため, FROM + FEED 文字を送ります. このフィルタは Hewlett + Packard 社のほとんどすべてのプリンタで機能するは + ずです. + +<code> +#!/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 +</code> + + ホスト orchid にある <tt>/etc/printcap</tt> の + 例を以下に示します. ここには, 一番目のパラレル + ポートにプリンタ (Hewlett Packard LaserJet 3Si) + が一台接続されており, そのプリンタ名は + <tt/teak/ です. +<code> +# +# /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: +</code> + + <item> <em/訳注:/ LF を CR+LF に置き換える cat コマンド + を作る方法も当然考えられます. そして, このコマ + ンドと, <tt>if-simple</tt> の cat の部分 + を置き換えればよいわけです. 具体的にどのように + するかは, 読者への練習問題としましょう. + </itemize> + + <tag/各行が重ね書きされてしまった/ + + プリンタは紙送りをまったくしませんでした. テキストすべての行 + がある行の上で重ねて印字されてしまいました. + + この問題は, 階段現象とは「正反対」な問題で, ほとんどま + れにしか起こりません. FreeBSDでは行末として扱われる LF + 文字が, 紙の左端に印字位置を復帰しますが, 紙送りはしな + い CR 文字として扱われています. + + プリンタの設定スイッチかコントロールパネルを使って, + LF と CR の文字を次のような解釈をするようにしてください. +<tscreen><verb> +プリンタが CR を受け取ったとき CR 動作 (復帰) をおこなう. +プリンタが LF を受け取ったとき CR + LF 動作 (復帰, 改行) をおこなう. +</verb></tscreen> + + <em/訳注:/ LF を CR+LF に置き換える cat コマンドを作る方法 + も当然考えられます. そして, このコマンドと, + <tt>if-simple</tt> の cat の部分を置き換えればよいわけ + です. 具体的にどのようにするかは, 読者への練習問題とし + ましょう. + + <tag/プリンタが文字を紛失してしまう/ + + 印字しているのですが, 各行の2〜3文字が印字されません. + プリンタを動かせば動かすほど, もっとたくさんの文字が紛 + 失されていき, この問題は更に悪くなっていくかもしれませ + んでした. + + この問題は, シリアルポートを通してコンピュータから送ら + れてくるデータの速度に, プリンタがついていけないことに + 起因します (この問題は, パラレルポートに接続されたプリ + ンタでは発生することはありません). この問題を克服する + 方法が2つあります. + <itemize> + <item> プリンタが XON/XOFF のフロー制御をサポート + している場合は, 項目 <tt/fs/ で TANDEM ビット + をセットして, FreeBSD にこの機能を使用させて + ください. + + <item> プリンタがキャリアフロー制御をサポートして + いる場合は, 項目 <tt/fs/ で MDMBUF ビットをセッ + トして下さい. それから, プリンタとコンピュータ + を接続しているシリアルケーブルがキャリアフロー + 制御用に正しく配線されたものかどうかを確認して + ください. + + <item> プリンタがフロー制御をまったくサポートしていな + い場合は, 項目 <tt/fs/ の NLDELAY と + TBDELAY, CRDELAY, VTDELAY, BSDELA のいくつかのビッ + トを組み合わせて使い, プリンタへ送るデータの流 + れに適当な遅延を加えてください. + </itemize> + + <tag/プリンタは意味不明な文字列を印字した/ + + プリンタはランダムなゴミのように見えるものを印字しまし + たが, 意図したテキストは印字してくれませんでした. + + この問題は, 通常, シリアルポートに接続したプリンタでの + 通信パラメータの誤りからくる前項とは別の症状です. + <tt/br/ 項目の通信速度と <tt/fs/ と <tt/fc/ 項目のパリ + ティビットの設定を共に調べてみてください. また, プリン + タでの設定が <tt>/etc/printcap</tt> ファイルで設定した + 内容と一致しているかどうかも確認してください. + + <em/訳注:/ simple-if のような単純なフィルタだけの状態で, 日 + 本語を含むテキストを印字しようとした場合にも, シリアル + ポート, パラレルポートの使用に関係なく, このような症状 + は見られます. 日本語プリンタの場合, 漢字コードそのもの + を送信しただけでその漢字を印字してくれるものは, 少なく + とも訳者は見たことがありません. 漢字を印字するための制御 + コードを別途送信するフィルタが必要となります. また, そ + のようなフィルタを使用していても, そのフィルタが想定し + てる漢字コードと異なった文書をプリントしようとしたとき + もこのような症状は出ます. もちろん, これはプリンタ用の + 言語を持たないプリンタの話で, PostScript プリンタ + などにプレインテキストを送信しても, 日本語対応, 非対応 + に関らず, 意味不明な文字列が印字される (もしくは, 何も + 印字されない) ことでしょう. + + + <tag/何も起きない/ + + もしプリンタが何の動作もしないのであれば, ハード的な問 + 題ではなく, 多分 FreeBSD の中に問題があります. + <tt>/etc/printcap</tt> ファイルで, デバッグしているプ + リンタのエントリに (<tt/lf/ 項目で) ログファイルを取るよ + うに設定を追加してください. 例えば, プリンタ <tt/rattan/ + 用のエントリの項目 <tt/lf/ は次のようになります. +<tscreen><verb> +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 +</verb></tscreen> + 次に, もう一度印字をおこなってみます. そして, 発生したと思 + われるエラーメッセージを見るためにログファイル (上記の + 例では, <tt>/var/log/rattan.log</tt>) を調べます. そこ + で見られたメッセージを元に, 問題を解決してみてください. + + 項目 <tt/lf/ が指定されていない場合, LPD はデフォルト + のログファイルとして <tt>/dev/console</tt> を使います. + </descrip> + + <sect><heading>プリンタを使う<label id="printing:using"></heading> + + <p> この節では, FreeBSD で設定したプリンタを使う方法について説明 + します. ここでは, ユーザレベルでのコマンドを概説します. + <descrip> + <tag/<tt/lpr// + 印字をおこないます. + + <tag/<tt/lpq// + プリンタキューを調べます. + + <tag/<tt/lprm// + プリンタキューにあるジョブを削除します. + + </descrip> + + 管理者用コマンド <tt/lpc/ もありますが, これは 「<ref + id="printing:lpc" name="プリンタを管理する">」に記 + します. このコマンドは, プリンタやそのキューの制御のために用い + られます. + + <tt/lpr/, <tt/lprm/, そして <tt/lpq/ の3コマンドは, 「<tt/-P/ + <it/printer-name/」オプションをとり, これによって, + <tt>/etc/printcap</tt> のように操作の対象となるプリンタやキュー + を指定します. これによって, 様々なプリンタに対してジョブを送る, + 取り消す, 調査することができます. <tt/-P/ が使われなかった場 + 合は, これらのコマンドは PRINTER 環境変数で指定されたプリンタ + を使用します. そして, PRINTER 環境変数がなかった場合は, これ + らのコマンドはデフォルトのプリンタ <tt/lp/ を使います. + + 以下では, <em/デフォルトプリンタ/という用語が意味するプリンタ + は, PRINTER 環境変数で指定されたプリンタ, もしくは, PRINTER + 環境変数がない場合は, <tt/lp/ という名前のプリンタです. + + <sect1><heading> 印字する<label id="printing:lpr"></heading> + <p> + + ファイルを印字するためには, 次のように入力してください. + +<tscreen> +<tt>lpr <it/filename.../</tt> +</tscreen> + これにより, 入力されたファイルのそれぞれをデフォルトのプリンタ + から印字します. ファイル名が与えられなかった場合, <tt/lpr/ + は標準入力から印字するデータを読み込みます. 例えば, 次のコマン + ドにより, ある重要なシステムファイルが印字されます. +<tscreen><verb> +lpr /etc/host.conf /etc/hosts.equiv +</verb></tscreen> + 印字させるプリンタを選択するためには, 次のように入力します. +<tscreen> +<tt>lpr -P <it/printer-name/ <it/filename.../</tt> +</tscreen> + 次の例では, プリンタ <tt/rattan/ に, カレントディレクトリにあ + るファイルの詳細なリストを印字しています. <tscreen> +<verb> +ls -l | lpr -P rattan +</verb></tscreen> + 上記の <tt/lpr/ コマンドではファイル名の指定がないので, + <tt/lpr/ は標準入力から印字するデータ, この場合, <tt/ls -l/ + コマンドの出力, を読み込みます. + + <tt/lpr/ コマンドでは, 出力の整形を制御したり, ファイル変換を + 適用したり, 複数部数のコピーを作成したり, などといた様々な幅広 + いオプションを受け付けることもできます. 詳細については, 「<ref + id="printing:lpr:options" name="その他の印字オプション">」をご + 覧ください. + + <sect1><heading>ジョブの処理状況を調べる<label id="printing:lpq"> + </heading> + + <p> <tt/lpr/ コマンドを使って印字をする場合, プリントしようと + するデータは<em/プリントジョブ/と呼ばれる箱に一緒に置かれ, こ + れが LPD スプーリングシステムに送られます. プリンタにはそれぞ + れ, ジョブ用のキューがあり, 送られてきたジョブはあなたや他のユー + ザからの別のジョブと一緒にそのキューで並んで, 処理される順番を + 待ちます. プリンタは到着順にこれらのジョブの印字をおこないます. + + デフォルトプリンタのキューの状態を表示するには, <tt/lpq/ と入 + 力します. プリンタを指定するときは, <tt/-P/ オプションを使い + ます. 例えば, 次のコマンド +<tscreen><verb> +lpq -P bamboo +</verb></tscreen> + は, プリンタ <tt/bamboo/ のキューの状態を表示します. この + <tt/lpq/ コマンドの出力結果の例を次に示します. +<tscreen><verb> +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 +</verb></tscreen> + この例では, <tt/bamboo/ のキューに3つのジョブがあることが分か + ります. 最初のジョブはユーザ kelly からのものであり, <em/ジョ + ブ番号/9が割り当てられています. プリンタのすべてのジョブには一意 + なジョブ番号が付けられています. ほとんどの場合, このジョブ番号 + は無視することができますが, ジョブをキャンセルするときにはこの + 番号が必要になります. このことの詳細については, 「<ref + id="printing:lprm" name="ジョブの削除"> 」をご覧ください. + + ジョブ番号9のジョブは2つのファイルを処理します. すなわち, + <tt/lpr/ のコマンドラインに複数のファイル名が与えられたときは, + 1つのジョブとして扱われるのです. このジョブは, 現在, アクティ + ブジョブ (「Rank」の欄の <tt/active/ という後に注目) になってい + ます. これは, プリンタからそのジョブが現在印字されているはずで + あることを意味しています. 2番目のジョブでは, <tt/lpr/ コマン + ドに標準入力からデータが与えられています. 3番目のジョブはユー + ザ mary から与えられました. このジョブのサイズはとても大きくなっ + ています. 彼女がプリントしようとしたファイルのパス名はここで表 + 示させるには長すぎるため, <tt/lpq/ コマンドはドットを3つだけ + 表示しています. + + <tt/lpq/ からの出力で一番最初の行もまた有益な情報を与えていま + す. この行から, プリンタが現在何をしているか (あるいは, 少なく + とも LPD がプリンタがしていると思っていること) が分かります. + + <tt/lpq/ コマンドは <tt/-l/ オプションもサポートしています. こ + れにより, 詳しい情報が表示されます. <tt/lpq -l/ の実行例を次 + に示します. +<tscreen><verb> +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 +</verb></tscreen> + + <sect1><heading>ジョブの削除<label + id="printing:lprm"></heading> + + <p> 印字するようジョブを送った後で印字を中断したくなったときは, + <tt/lprm/ コマンドで, キューの中からそのジョブを削除することが + できます. 大抵の場合, アクティブジョブでさえも <tt/lprm/ を使っ + て削除することができますが, そのジョブの一部またはすべてが印字さ + れてしまうかもしれません. + + デフォルトプリンタへのジョブを削除するためには, 最初に, + <tt/lpq/ を使ってそのジョブ番号を調べます. すなわち, それから, + 次のように入力して, ジョブを削除します. +<tscreen> +<tt/lprm <it/job-number// +</tscreen> + 特定のプリンタへのジョブを削除するときは, <tt/-P/ オプション + を使ってそのプリンタを指定します. 例えば, プリンタ <tt/bamboo/ + のキューからジョブ番号10のジョブを削除するには次のようにします. +<tscreen><verb> +lprm -P bamboo 10 +</verb></tscreen> + <tt/lprm/ コマンドには略記法がいくつかあります. + <descrip> + <tag/lprm -/ + + あなたが (デフォルトプリンタへ) 送ったジョブをすべて削除し + ます. + + <tag/lprm <it/user// + + ユーザ <it/user/ が (デフォルトプリンタへ) 送ったジョブ + をすべて削除します. 他のユーザのジョブを削除できるのはスー + パユーザだけです. あなたは, あなた自身のジョブしか削 + 除することはできません. + + <tag/lprm/ + + ジョブ番号もユーザ名もシンボル「<tt/-/」も指定されない + ときは, <tt/lprm/ は現在のアクティブジョブを, そのジョ + ブを送ったのがあなた自身であるときに限り, デフォルトプ + リンタから削除します. ただし, スーパユーザは任意のア + クティブジョブを削除することができます. + </descrip> + + 上記の略記法をデフォルトプリンタではなく特定のプリンタに対して + おこなうときは, <tt/-P/ オプションでそのプリンタを指定するだけよ + いのです. 例えば, プリンタ <tt/rattan/ のキューへあなたが送っ + たジョブをすべて削除するためには次のようにします. + +<tscreen><verb> +lprm -P rattan - +</verb></tscreen> + + <em/注意:/ ネットワーク環境で作業をしている場合, あるホストか + ら送られたプリンタジョブは, これを送ったホストで <tt/lprm/ を + 使った場合に限って, これを削除することができます. 他のホストで + 同じプリンタを使えたとしても, このジョブを削除することはできま + せん. 次の例では, 他ホストからジョブを削除することを試みていま + す. +<code> +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% +</code> + + <sect1><heading>その他の印字オプション + <label id="printing:lpr:options"></heading> + + <p> <tt/lpr/ コマンドには, テキストの整形や, 図や他のファイル形 + 式の変換, 複数部コピーの生成, ジョブの扱いなどをを制御すること + ができます. この節では, これに関するオプションについて記してい + ます. + + <sect2><heading> 整形と変換に関するオプション <label + id="printing:lpr:options:format"></heading> + + <p> 以下の <tt/lpr/ 用のオプションはジョブにおけるファイルの + 整形の制御に関するものです. このオプションは, ジョブにプレイン + テキストが含まれない場合や <tt/pr/ ユーティリティを使ってプレイ + ンテキストを整形する場合に用いてください. + + + 次の例では, プリンタ <tt/bamboo/ に (TeX 組版システムによる) + DVI ファイル <tt/fish-report.dvi/ を印字しています. +<tscreen><verb> +lpr -P bamboo -d fish-report.dvi +</verb></tscreen> + このオプションは, ジョブに含まれるすべてのファイルに対して適用さ + れます. したがって, 1つのジョブに (例えば) DVI ファイルと ditroff + ファイルを混在させることはできません. その代わりに, ファイルを + 形式毎に別々のジョブに分け, それぞれのジョブでその形式用の変換 + オプションを使って印字してください. + + <em/注意:/ <tt/-p/ と <tt/-T/ を除くすべてのオプションを使用 + するためには, 出力先プリンタ用の変換フィルタが必要です. 例えば, + <tt/-d/ オプションを使用するには, DVI 用の変換フィルタが必要 + です. 詳細については, 「<ref id="printing:advanced:convfilters" + name="変換フィルタ">」で説明しています. + + + <descrip> + <tag/<tt/-c// cifplot ファイルを印字します. + + <tag/<tt/-d// DVI ファイルを印字します. + + <tag/<tt/-f// FORTRAN プログラムを印字します. + + <tag/<tt/-g// plot のデータを印字します. + + <tag/<tt/-i <it/number/// + + 出力に対して, <it/number/ カラム分の字下げをおこないます. + <it/number/ が省略されると, 8カラム分字下げされます. + このオプションはある変換フィルタと一緒の指定されたとき + のみに機能します. + + <em/注意:/ <tt/-i/ と数字の間に空白を入れてはいけませ + ん. + + <tag/<tt/-l// + + 制御文字を含む文字通りのテキストデータを印字します. + + <tag/<tt/-n// ditroff (device independent troff) データ + を印字します. + + <tag/-p/ + + 印字する前に <tt/pr/ によってプレインテキストを整形し + ます. 詳細については pr(1) をご覧ください. + + <tag/<tt/-T <it/title/// + + <tt/pr/ コマンドにより生成されるヘッダを, ファイル名の + 代わりに <it/title/ とする. このオプションは, <tt/-p/ + と一緒に使ったときのみ機能する. + + <tag/<tt/-t// troff データを印字します. + + <tag/<tt/-v// ラスタのデータを印字します. + + </descrip> + + 次の例では, <tt/ls/ のマニュアルを美しく整形したものをデフォ + ルトプリンタで印字しています. +<tscreen><verb> +zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t +</verb></tscreen> + <tt/zcat/ コマンドで <tt/ls/ のマニュアルのソースファイルの圧 + 縮を復元し, これを <tt/troff/ コマンドに渡しています. これによ + り, ソースファイルが整形され, GNU troff の形式となります. そ + の結果は <tt/lpr/ に渡され, LPD スプーラへジョブの要求が発せ + られます. <tt/lpr/ には <tt/-t/ オプションが使われているため, + スプーラにて, GNU troff の形式からジョブを印字したときにデフォ + ルトプリントが解釈できる形式へと変換されます. + + <sect2><heading> ジョブに関するオプション <label + id="printing:lpr:options:job-handling"></heading> + + <p> 以下のオプションは, <tt/lpr/ によって, そのジョブを特殊 + な扱いにするよう LPD に指示するためのものである. + + <descrip> + <tag/-# <it/copies// + + ジョブに含まれるファイルのそれぞれを1部だけ印字するの + ではなく, <it/copies/ 部のコピーを生成させるものです. + 管理者によっては, プリンタの消耗を避け, コピー機による + 複製を奨励するためにこのオプションの使用が禁止されてい + るかもしれません. これに関しては, 「<ref + id="printing:advanced:restricting:copies" + name="複数部のコピーの印字を制限する">」をご覧ください. + + <p> 次の例では, デフォルトプリンタで <tt/parser.c/ を3 + 部コピーし, 次に, <tt/parser.h/ を3部コピーしています. +<tscreen><verb> +lpr -#3 parser.c parser.h +</verb></tscreen> + + <tag/-m/ + + 印字ジョブが完了した後で, メールを送ります. このオプショ + ンを付けると, LPD システムはジョブの扱いが終了したと + きに, あなたのアカウントにメールを送ります. メールのメッ + セージには, ジョブが正常終了したのか, あるいは, 何か異 + 常があり, (しばしば) その異常が何であったのかが書かれて + います. + + <tag/-s/ 印字ファイルをスプールディレクトリにコピーせず, + 代わりに, シンボリックリンクを作成するよう指示します. + + 印字させるジョブのサイズが大きいとき, このオプショ + ンを使うと便利かもしれません. このオプションにより, スプー + ルディレクトリの容量が節約されます (それに, 巨大なジョ + ブのお陰でスプールディレクトリのあるファイルシステムの + 空き容量がなくなってしまうかもしれません). さらに, + LPD がいちいちすべてのデータをコピーする必要がなくなりま + すので, 時間の節約にもなります. + + ただし, 欠点もあります. LPD はオリジナルのファイルを + 直接参照するので, 印字が終了するまでそのファイルを変更 + したり削除することができません. + + <em/注意:/ リモートのプリンタで印字している場合, LPD + は, 結局のところ, ローカルホストからリモートホストにファ + イルをコピーする必要があります. したがって, <tt/-s/ オプ + ションはローカルのスプーリングディレクトリの空き容量を + 節約するだけで, リモート側では節約されません. それに + も関わらず, このオプションはそれでも有用です. + + <tag/-r/ + + ジョブに含まれるファイルを, スプーリングディレクトリに + ファイルをコピーした後に削除します. もしくは, <tt/-s/ + オプションと一緒に使われた場合は, 印字終了後に削除され + ます. このオプションの使用には十分注意して下さい. + </descrip> + + <sect2><heading> ヘッダページ用オプション <label + id="printing:lpr:options:misc"></heading> + + <p> 以下のオプションにより, ジョブのヘッダページに通常印字さ + れるテキストを <tt/lpr/ に調整させることができます. 対象のプリ + ンタからヘッダページが出力されない場合は, これらのオプションは + 何の効力も持ちません. ヘッダページの設定に関する情報については, + 「<ref name="ヘッダページ" + id="printing:advanced:header-pages">」を参照してください. + + <descrip> + <tag/-C <it/text// + + ヘッダページに印字されるホスト名を <it/text/ に置き換 + えます. なお, ホスト名の場所には, 通常, ジョブの要求が + あったホストの名前が印字されます. + + <tag/-J <it/text// + + ヘッダページに印字されるジョブ名を <it/text/ に置き換 + えます. ジョブ名の場所には, 通常, ジョブの最初のファイ + ル名, または, 標準入力からデータが印字されたときは + 「stdin」が印字されます. + + <tag/-h/ + + ヘッダページを出力を禁止します. <em/注意:/ サイトによっ + ては, そのヘッダページの生成方法により, このオプション + の効果が現れないかもしれません. 詳細は, + 「<ref name="ヘッダページ" + id="printing:advanced:header-pages">」をご覧ください. + </descrip> + + <sect1><heading> プリンタを管理する <label + id="printing:lpc"></heading> + + <p> プリンタの管理者として, プリンタの設置, 設定, そして, それ + らのテストをおこなう必要がありました. <tt/lpc/ コマンドにより, + これまでとは別な管理方法がプリンタと対話的におこなわれます. + <tt/lpc/ により, 次のことが可能となります. + + <itemize> + <item> プリンタの起動, 停止をおこなう. + + <item> キューへの入力の許可, 禁止をおこなう. + + <item> それぞれのキューにあるジョブの順番を変更する. + </itemize> + + 最初に用語に関する注意をしておきます. プリンタが<em/停止してい + る/とは, キューの中にあるどのジョブも印字されることがない状態 + を言います. この状態においても, ユーザはまだジョブの要求をおこなう + ことができますが, これらのジョブはキューの中で, プリンタが<em/ + スタートする/状態になるまで, あるいは, キューの内容が削除され + るまで待たされることになります. + + キューが<em/禁止状態にある/とは, (root 以外の) すべてのユーザが + プリンタにジョブを要求することができない状態のことを言います. + キューが<em/許可状態にある/場合は, ジョブの入力が許可されます. + キューが<em/禁止状態にある/場合でも, プリンタを<em/スタートす + る/状態にすることは可能です. この場合は, キューが空になるまで, + キュー内のジョブの印字が続けられます. + + 一般的に, <tt/lpc/ コマンドを使用するには root の権限を持って + いる必要があります. 一般のユーザも <tt/lpc/ コマンドを使うこと + はできますが, プリンタの状態を取得することとハングしたプリンタ + を再スタートすることだけに使用が制限されています. + + 以下に, <tt/lpc/ コマンドに関する説明の要約を述べます. ほとん + どのコマンドでは, 操作対象となるプリンタを指定するため + <it/printer-name/ 引数を与えます. <it/printer-name/ の代わり + に <tt/all/ が与えられると, 操作は <tt>/etc/printcap</tt> 内に + ある全プリンタに対しておこなわれることになります. + + <descrip> + <tag/<tt/abort <it/printer-name/// + + 現在のジョブをキャンセルし, プリンタを停止させます. キュー + が許可状態にある場合は, ユーザはまだジョブを入力する + ことができます. + + <tag/<tt/clean <it/printer-name/// + + プリンタのスプーリングディレクトリから, ジョブの古いファ + イルを削除します. 状況によって, とりわけ, 印字途中でエ + ラーが発生していたり, 管理操作が頻発していた場合には, + ジョブで作られたファイルを LPDが完全に削除しないことが + あります. このコマンドでは, スプーリングディレクトリに + 入っていないファイルを見つけ出し, それを削除しています. + + <tag/<tt/disable <it/printer-name/// + + キューに新しいジョブを入れることを禁止します. プリンタ + がスタート状態にあるときは, キューに残っているジョブの + 印字は続けられます. ただし, キューが禁止状態にあったと + しても, スーパーユーザ (root) は常にジョブを入力するこ + とができます. + + このコマンドは, 新しいプリンタやフィルタを設置している + 間に使用すると有用です. すなわち, キューを禁止状態にし + ておくと, root によるジョブのみが入力されます. そして, + その他のユーザは, テストが完了し, <tt/enable/ コマン + ドでキューが再度許可状態になるまで, ジョブの入力はでき + なくなります. + + <tag/<tt/down <it/printer-name/ <it/message.../// + + プリンタをダウンさせます. これは, <tt/disable/ をおこなっ + た後で, <tt/stop/ をおこなった場合と等価になります. + <it/message/ は, ユーザが <tt/lpq/ コマンドでプリンタ + のキューの状態を調べたり, <tt/lpc status/ でプリンタの + 状態を調べたときに, プリンタの状況として表示されるメッ + セージです. + + <tag/<tt/enable <it/printer-name/// + + プリンタのキューを許可状態にします. ユーザはジョブの入 + 力ができるようになりますが, プリンタがスタートの状態に + なるまでは, プリンタからは何も印字されません. + + <tag/<tt/help <it/command-name/// + + <it/command-name/ コマンドのヘルプメッセージを表示しま + す. <it/command-name/ が指定されなかった場合は, 利用 + できるコマンドの要約が表示されます. + + <tag/<tt/restart <it/printer-name/// + + プリンタをスタートさせます. 通常のユーザは, LPD があ + る異常な状況でハングしたときに限り, このコマンドを使用 + することができます. しかし, <tt/stop/ または + <tt/down/ コマンドにより, 停止状態にあるプリンタをスター + トさせることはできません. <tt/restart/ コマンドは, + <tt/abort/ の後に <tt/start/ をおこなったことと同じになり + ます. + + <tag/<tt/start <it/printer-name/// + + プリンタをスタートさせます. プリンタのキューにあるジョ + ブを印字することでしょう. + + <tag/<tt/stop <it/printer-name/// + + プリンタを停止します. プリンタは, 現在のジョブを終了さ + せ, そして, キューにあるその他のジョブは印字しません. + プリンタが停止状態にあったとしても, まだ, 許可状態にあ + るキューに対して, ジョブを送ることができます. + + <tag/<tt/topq <it/printer-name/ <it/job-or-username.../// + + <it/printer-name/ のキューに対して, ジョブ番号 + <it/job/ のジョブ, または, ユーザ <it/username/ から送 + られたジョブを置き換えて, キューの先頭に持ってきます. + このコマンドに関しては, <it/printer-name/ の代わりに + <tt/all/ を使用することはできません. + + <tag/<tt/up <it/printer-name/// + + プリンタをアップ状態にします. これの反対のコマンドが + <tt/down/ です. <tt/start/ の次に <tt/enable/ をおこなっ + たことと等しくなります. + </descrip> + + コマンドラインから上記のコマンドを入力すると, <tt/lpc/ はこれ + を受け付けます. コマンドが入力されなかった場合は, <tt/lpc/ は + 対話モードに入り, <tt/exit/, <tt/quit/, または, ファイル終端 + 文字が入力されるまでコマンドの入力ができます. + + + <sect><heading> プリンタ設定上級編 <label + id="printing:advanced"></heading> + + <p> この節では, 特殊な形式のファイルを印字するためのフィルタ, ヘッ + ダページ, ネットワーク越しのプリンタへの印字, そして, プリンタ + 使用の制限や課金について説明しています. + + <sect1><heading> フィルタ <label + id="printing:advanced:filter-intro"></heading> + + <p> LPD では, ネットワークプロトコル, キュー, アクセス制御, そ + して, 印字のためのその他の側面について扱いますが, <em/実際の/ + 作業のほとんどは<em/フィルタ/によっておこなわれています. フィルタ + は, プリンタと通信し, プリンタのデバイス依存性や特殊な要求を扱 + うプログラムです. 簡単なプリンタ設定では, プレインテキストのた + めのフィルタをインストールしました. このプレインテキストフィル + タは, ほとんどのプリンタで機能する極めて単純なものでした. + (「<ref id="printing:textfilter" + name="テキストフィルタのインストール">」を参照) + + しかしながら, 形式変換やプリンタ課金, 特定のプリンタの癖, など + をうまく利用するためには, フィルタがどのように機能するかという + ことを理解しておくべきです. これらの側面を扱うためには, 最終的 + には, フィルタの責任であるからです. そして, これは悪い情報です + が, ほとんどの場合において, <em/あなた自身/がフィルタを供給す + る必要があるということです. また都合のよいことには, たくさんのフィルタが + 一般的に利用できるということです. もしフィルタがなかったとし + ても, 普通は, フィルタを作るのは簡単です. + + FreeBSD にも, プレインテキストを印字させることができる + <tt>/usr/libexec/lpr/lpf</tt> というフィルタが1つ付いています. + (このフィルタはファイルに含まれるバックスペースやタブを扱いま + す. また, 課金をすることもできますが, できることはこれだけしか + ありません.) いくつかのフィルタとフィルタの構成要素が FreeBSD + の ポート集にもあります. + + この節で述べることは次の通りです. + + <itemize> + <item> 「<ref id="printing:advanced:filters" name="フィル + タはどのように機能しているか">」では, 印字の過程におけ + るフィルタの役割を概説します. この節を読むことで, LPD + がフィルタを使うときに, 「見えないところで」何が起こっている + かが理解できるでしょう. このことを知っておくと, プリン + タそれぞれに様々なフィルタをインストールしたときに遭遇 + するかもしれない問題を予期したり, デバッグするときに役 + 立つでしょう. + + <item> LPD では, すべてのプリンタからデフォルトでプレインテ + キストを印字できることを期待しています. このことは, プ + レインテキストを直接印字できない PostScript (また + は他の言語用の) プリンタでは問題を引き起こします. 「<ref + id="printing:advanced:if-conversion" name="プレインテキス + トのジョブを PostScript プリンタで印字する">」 + で, この問題を克服する方法について述べます. PostScript + プリンタをお持ちの方は, この節をお読みになること + をお薦めします. + + <item> PostScript は様々なプログラムのための有名な出 + 力形式です. ある人たちは (著者自身を含めて) PostScript + のコードさえも直接書いてしまいます. しかし, PostScript + プリンタは高価です. 「<ref id="printing:advanced:ps" + name="非 PostScript プリンタで PostScript をシ + ミュレートする">」では, PostScript データを<em/非 + PostScript プリンタ/に受けつけさせ, 印字させるために, + どのようにしてプリンタ用のテキストフィルタをさらに変更 + すればよいのか, ということについて述べます. PostScript + プリンタを持っていない方は, この節をお読みになる + ことをお薦めします. + + <item> 「<ref id="printing:advanced:convfilters" + name="変換フィルタ">」では, 図形や組版データといっ + た特定のファイル形式を, プリンタが理解できる形式へ変換 + する作業を自動的におこなわせる方法について述べます. この節 + を読むと, troff のデータを印字するには <tt/lpr -t/, + または, TeX DVI を印字するには <tt/lpr -d/, ラスタイ + メージデータを印字するには <tt/lpr -v/, などといったよ + うにユーザが入力することができるようにプリンタの設定を + おこなうことができます. この節もお読みになることをお薦めし + ます. + + <item> 「<ref id="printing:advanced:of" name="出力フィルタ">」 + では, あまり使われない LPD の機能のすべて, + すなわち, 出力フィルタに関することが記述されています. + ヘッダページ (「<ref id="printing:advanced:header-pages" + name="ヘッダページ">」参照) を印字させていない場合は, + 多分, この節は飛ばしても構わないでしょう. + + <item> 「<ref id="printing:advanced:lpf" name="テキストフィ + ルタ lpf">」では, <tt/lpf/ についての説明が, + ほぼ完全におこなわれています. これは FreeBSD に付属するラ + インプリンタ (または, ラインプリンタのように動作するレー + ザプリンタ) のための, 単純なテキストフィルタです. プレ + インテキストを印字したことに対して課金をおこなう方法が至急 + 必要な場合, もしくは, バックスペース文字を印字しようと + すると煙を発するプリンタを持っている場合は, 絶対に + <tt/lpf/ を検討するべきです. + +<!-- + <item> 「<ref id="printing:advanced:kanji" name="日本語を + 印字するために(訳者補足)">」では, 日本語を含むテキスト + を印字するためのヒントを述べてます. +--> + </itemize> + + + + <sect2><heading> フィルタはどのように機能しているか <label + id="printing:advanced:filters"></heading> + + <p> 既に言及したように, フィルタとは, プリンタにデータを送る + 際に, デバイスに依存した部分を取り扱うために LPD によって起動 + される実行プログラムです. + + LPD がジョブ中のファイルを印字しようとするとき, LPD はフィル + タプログラムを起動します. このとき, フィルタの標準入力を印字す + るファイルに, 標準出力をプリンタに, そして, 標準エラー出力をエ + ラーログファイル (<tt>/etc/printcap</tt> 内の <tt/lf/ 項目で指 + 定されたファイル, または, 指定されていない場合は, デフォルトと + して <tt>/dev/console</tt>) にセットします. + + LPD が起動するフィルタと, その引数が何であるかは, + <tt>/etc/printcap</tt> ファイルの内容と, ジョブの起動時に + ユーザが指定した <tt/lpr/ コマンドの引数に依存しています. 例え + ば, ユーザが <tt/lpr -t/ と入力した場合は, LPD は出力先のプリ + ンタ用の <tt/tf/ 項目で指定されている troff 用のフィルタを起動 + させるでしょう. ユーザがプレインテキストの印字を指示したときは, + <tt/if/ で指定されたフィルタが起動されるでしょう (このことはほ + とんどの場合にあてはまります. 詳細については, 「<ref + id="printing:advanced:of" name="出力フィルタ">」をご覧ください). + + <tt>/etc/printcap</tt> で指定可能なフィルタは次の3種類がありま + す. + <itemize> + <item> <em/テキストフィルタ/(LPD のドキュメントでは紛ら + わしいことに<em/入力フィルタ/と呼んでいますが) は一般の + テキストの印字を扱います. これはデフォルトのフィルタと + 考えてください. LPD では, すべてのプリンタに対して, デフォ + ルトでプレインテキストが印字できることを期待しています. + さらに, バックスペースやタブを正しく扱い, また, 他の特 + 殊な文字が入力されてもプリンタに混乱を来さないようにす + るのはテキストフィルタの仕事であると考えています. + + プリンタの使用に対して課金をしなくてはならない環境にあ + るときは, テキストフィルタが印字したページ数を数える作 + 業もしなくてはなりません. この作業は, 通常, 印字した行 + 数を数え, これをプリンタが1ページ当たりに印字できる行 + 数と比較することでおこなわれます. + + テキストフィルタは, 次のような引数を付けて起動されます. +<tscreen> +<tt>[-c] -w<it/width/ -l<it/length/ -i<it/indent/ -n <it/login/ -h <it/host/ <it/acct-file/</tt> +</tscreen> + ここで, + <descrip> + <tag/<tt/-c// + + <tt/lpr -l/ によってジョブが入力されたときに与 + えられます. + + <tag/<tt/<it/width/// + + <tt>/etc/printcap</tt> で指定された <tt/pw/ + (page width) 項目の値が与えられます. デフォル + トは, 132です. + + <tag/<tt/<it/length/// + + <tt/pl/ (page length) 項目で指定された値が与え + られます. デフォルトは66です. + + <tag/<tt/<it/indent/// + + <tt/lpr -i/ によって与えられた字下げの量で, デ + フォルトは0です. + + <tag/<tt/<it/login/// + + ファイルを印字したユーザのアカウント名が与えら + れます. + + <tag/<tt/<it/host/// + + ジョブが入力されたホスト名が与えられます. + + <tag/<tt/<it/acct-file/// + + <tt/af/ 項目で指定されている課金データファイル + の名前が与えられます. + </descrip> + + <item> <em/変換フィルタ/は, 特定のファイル形式をプリンタ + が紙に印字できるようなものに変換します. 例えば, プリン + タで ditroff 組版データを直接印字することはできません. + しかし, ditroff データをプリンタが消化し, 印字するこ + とができる形式へ変換するために, ditroff ファイル用フィ + ルタをインストールすることができます. 「<ref + id="printing:advanced:convfilters" name="変換フィルタ">」 + で, これらに関するすべてについて説明します. + プリンタの課金をする必要がある場合は, 変換フィルタでも + 印字ページを数える作業が必要となります. + + 変換フィルタは次の引数をとって起動されます. +<tscreen> +<tt>-x<it/pixel-width/ -y<it/pixel-height/ -n <it/login/ -h <it/host/ <it/acct-file/</tt> +</tscreen> + ここで, <it/pixel-width/ は, <tt/px/ 項目で指定され + た値 (デフォルトは0), <it/pixel-height/ は, <tt/py/ 項 + 目で指定された値 (デフォルトは0) です. + + <item> <em/出力フィルタ/は, テキストフィルタが指定されて + おらず, かつ, ヘッダページの出力が許可されている場合に + のみ使われます. 「<ref id="printing:advanced:of" + name="出力フィルタ">」で, これらのことについて説明し + ます. アウトプットフィルタに対する引数は次の2つだけです. +<tscreen> +<tt>-w<it/width/ -l<it/length/</tt> +</tscreen> + ここで, <tt/-w/ と <tt/-l/ は, テキストフィルタの場合 + と同じです. + </itemize> + + フィルタは, 次に示すの終了状態をもってプログラムを <em/exit/ + するべきです. + <descrip> + <tag/exit 0/ + + フィルタがファイルを正常に印字した場合. + + <tag/exit 1/ + + フィルタはファイルの印字に失敗したが, LPD に再度ファ + イルの印字を試みて欲しい場合. この終了状態で終了した場 + 合, LPD はフィルタを再スタートします. + + <tag/exit 2/ + + フィルタはファイルの印字に失敗し, かつ, LPD に再出力 + を試みて欲しくない場合. この場合, LPD はそのファイル + を放棄します. + </descrip> + + FreeBSD に付属するテキストフィルタ + <tt>/usr/libexec/lpr/lpf</tt> は, FROM FEED 文字が送られたと + きやプリンタ使用に対する課金をどのようにするかを決定するために, + ページ幅やページ長の引数を利用します. また, 課金用のエントリを + 作成するため, ログイン名, ホスト名, 課金ファイル名の引数を利用 + します. + + もし, フィルタの購入を検討しているならば, LPD と互換性がある + かどうかを確認してください. もしそうならば, 上述の引数リストをサ + ポートしていなければなりません. 一般向けの使用のためにフィルタ + を作成する計画をしている場合は, 同じ引数リストと終了コードをサ + ポートしてください. + + <sect2><heading> プレインテキストのジョブを PostScript プリン + タで印字する <label id="printing:advanced:if-conversion"> + + </heading> + + <p> コンピュータと PostScript (または, 他の言語に対応し + た) プリンタをあなたしか使用しない場合は, プリンタにプレ + インテキストを絶対に送らない, そして, プリンタにプレインテキス + トを送りたがっている様々なプログラムの機能を決して使わないこと + にしてください. そうすれば, この節に書かれたことに心を煩わせる必 + 要はまったくなくなります. + + しかし, PostScript とプレインテキストの両方のジョブをプリン + タへ送りたいと思っている場合は, プリンタ設定についての要求が増 + えるでしょう. 両者をプリンタへ送信するためには, 到着 + したジョブがプレインテキストであるか PostScript であるかを + 検出するテキストフィルタが必要です. PostScript のジョブは + すべて <tt/%!/ で始まらなければならないことになっています + (他のプリンタ言語に関しては, プリンタのドキュメントをご覧くだ + さい). ジョブの最初の2文字がこれならば, PostScript である + ことが分かります. したがって, ジョブのそれ以降の部分をプリンタに直 + 接送ることができます (訳注:PostScript では, <tt/&percnt/ + 以降はコメントとして扱われるので, 最初の <tt/%!/ の行を + 読み捨てても問題はない). 最初の2文字が <tt/%!/ でない場 + 合は, フィルタはテキストを PostScript に変換し, その結果を + 使って印字をおこないます. + + この作業をどうやってやればよいのでしょうか. + + シリアルポートにプリンタを接続した場合は, <tt/lprps/ をインス + トールすることをお勧めします. <tt/lprps/ は PostScript 用のフィルタで, + プリンタとの双方向通信をおこないます. このフィルタでは, プリンタか + らの冗長な情報を得ることで, プリンタの状況を示すファイルが更新 + されていきます. したがって, ユーザや管理者は (「トナー残量少」や + 「紙詰まり」といった) プリンタの状況を正確に知ることができます. + しかし, もっと重要なことは, <tt/psif/ と呼ばれるプログラムが + 含まれているということです. このプログラムは, 入力されたジョブ + がプレインテキストかどうかを検出し, これを PostScript に変 + 換するために, <tt/textps/ (<tt/lprps/ に付属する別のプログラ + ム) を呼び出します. そして, このジョブをプリンタに送るために, + <tt/lprps/ が使われます. + + <tt/lprps/ は FreeBSD のポート集に含まれているべきものです (「<ref + id="ports" name="ポートコレクション">」を参照してください). + もし含まれていないならば, すぐにそのようにすべきです. もちろん, + 自分自身でプログラムを取ってきて, コンパイルし, インストールす + ることもできます. <tt/lprps/ をインストールした後は, + <tt/lprps/ の一部である <tt/psif/ プログラムのパス名を指定する + だけです. ポート集から <tt/lprps/ をインストールしたときは, + <tt>/etc/printcap</tt> の中のシリアル接続した PostScript + プリンタのエントリに対して, 次を使ってください. +<tscreen><verb> + :if=/usr/local/libexec/psif: +</verb></tscreen> + LPD にプリンタをリード・ライトモードでオープンさせるために, + <tt/rw/ 項目も指定すべきです. + + パラレルポートに接続したプリンタの場合 (すなわち, <tt/lprps/ が + 必要としているプリンタとの双方向通信ができない), テキストフィ + ルタとして次のシェルスクリプトを使うことができます. +<code> +#!/bin/sh +# +# psif - Print PostScript or plain text on a PostScript printer +# Script version; NOT the version that comes with lprps +# Installed in /usr/local/libexec/psif +# + +read first_line +first_two_chars=`expr "$first_line" : '\(..\)'` + +if [ "$first_two_chars" = "%!" ]; then + # + # PostScript job, print it. + # + echo $first_line && cat && printf "\004" && exit 0 + exit 2 +else + # + # Plain text, convert it, then print it. + # + ( echo $first_line; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 + exit 2 +fi +</code> + 上記のスクリプトにおいて, <tt/textps/ はプレインテキストから + PostScript へ変換するために別にインストールしたプログラム + です. テキストから PostScript へ変換するのには, お好みのどんなプロ + グラムでも使うことができます. FreeBSD の ポート集 (「<ref + id="ports" name="ポートコレクション">」を参照してください) には, + <tt/a2ps/ と呼ばれるテキストから PostScript に変換するプログラムが + 入っています. + + <em/訳注:/ 上記スクリプトでは, 先頭の行を読み込むために read + を使っていますが, 困ったことに, read は読み込んだ文字列の先頭 + の空白文字を取り除いてしまいます. 従って, これらの空白文字は印 + 字されないことになり, 印字結果がファイルのイメージと異なる場合 + が出てきます. この事情は csh を利用した場合でも変わりません. + 仮に, 先頭の空白文字を除去しない read コマンドを作ったとしても, + 「echo $first_line」の $first_line 変数の内容をシェルが展開す + る際に $first_line の先頭の空白文字が失われるため, 問題の解決 + にはなりません. 残念ながら, 訳者はこの問題をシェルプログラムだ + けで解決する方法をしりません. perl か C 言語の力を借りないと解 + 決できないと思います. + + + <sect2><heading> 非 PostScript プリンタで PostScript + をシミュレートする <label id="printing:advanced:ps"></heading> + + <p> PostScript は質の高い組版と印字をおこなうための<em/事実 + 上の/標準です. しかしながら, PostScript は, <em/高価な/標 + 準です. ありがたいことに, Alladin Enterprises から + <it/Ghostscript/ と呼ばれる, PostScript 互換の動作をするフリー + のプログラムが出されていて, FreeBSDで動きます. Ghostscript + はほとんどの PostScript ファイルを読むことができ, これらの + 各ページをたくさんのブランドの非 PostScript プリンタを含む + 様々なデバイス用に変換することができます. Ghostscript をイン + ストールし, プリンタ用の特別なテキストフィルタを使うことによっ + て, 非 PostScript プリンタをあたかも本物の PostScript + プリンタであるかのように動作させることができます. + + Ghostscript はポート集に入っていますので, そこからインストール + することができます. また, + 自分でソースプログラムを持ってきて, コンパイルし, インストー + ルすることもできます. この作業はとても簡単にできます. + + PostScript プリンタをシミュレートさせる場合は, テキストフィ + ルタに PostScript ファイルを印字しようとしているかどうかを + 検出させます. PostScript ファイルでない場合は, フィルタは + そのファイルを直接プリンタに送ります (訳注:テキストファイルを直 + 接印字できない場合は, もちろん, 変換フィルタを通す必要がありま + す). PostScript の場合は, まず, Ghostscript を使い, ファ + イルをそのプリンタが理解できる形式へ変換します. + + 次の例のスクリプトは, Hewlett Packard DeskJet 500 プリンタ用 + のテキストフィルタです. 他のプリンタで用いるときは, + <tt/-sDEVICE/ 引数を <tt/gs/ (Ghostscript) コマンドに変えてくだ + さい. (<tt/gs -h/ と入力すると, 現在インストールされている + Ghostscript でサポートされているデバイスのリストが得られます). +<code> +#!/bin/sh +# +# ifhp - Print Ghostscript-simulated PostScript on a DesJet 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 2 +fi + +exit 2 +</code> + 最後に, <tt/if/ 項目を通して, LPD にこのフィルタを教えてやる + 必要があります. +<tscreen><verb> + :if=/usr/local/libexec/hpif: +</verb></tscreen> + これでおしまいです. <tt/lpr plain.text/ とか <tt/lpr + whatever.ps/ と入力してみましょう. どちらも正常に印字されるは + ずです. + + <em/訳注:/ 日本語を印字する場合は, 日本語対応の Ghostscript が必要で + す. 日本語対応版の Ghostscript もポート集に入っているはずです. + + <sect2><heading> 変換フィルタ <label + id="printing:advanced:convfilters"></heading> + + <p> 「<ref name="プリンタ設定導入編" id="printing:simple">」 + に書かれた簡単な設定が完了したら, 最初に, やってみたいと思 + うことは, 多分(プレイン ASCII テキストに加えて) 好みのファイル形式 + のための変換フィルタをインストールすることでしょう. + + <sect3><heading> なぜ, 変換フィルタをインストールするのか? + </heading> + + <p> 変換フィルタによって, 様々な種類のファイルを印字するこ + とが簡単になります. 例えば, TeX 組版システムでたくさんの仕事 + をしたと仮定しましょう. そして, PostScript プリンタが接続 + されているとします. すると, TeX で DVI ファイルを作成する度に, + DVI ファイルを印字するために, これを PostScript ファイルに + 変換する必要があります. このコマンドは次のようになるでしょう. +<tscreen> +<verb> +dvips seaweed-analysis.dvi +lpr seaweed-analysis.ps +</verb></tscreen> + DVI ファイル用の変換フィルタがインストールしてあると, LPD に + 変換を肩代わりさせることで毎回毎回おこなわなければならなかった面倒 + な変換作業を省くことができます. つまり, DVI を生成したら, + 次のような1回のコマンド入力だけで, これが印字されます. +<tscreen><verb> +lpr -d seaweed-analysis.dvi +</verb></tscreen> + LPD に DVI ファイルの変換をさせるためには, <tt/-d/ オプション + を指定します. 変換オプションのリストは「<ref + id="printing:lpr:options:format" name="整形と変換に関するオプ + ション">」に載せてあります. + + 変化のオプションのそれぞれをプリンタにサポートさせるためには, + <em/変換フィルタ/をインストールし, そのパス名を + <tt>/etc/printcap</tt> の中で指定しなくてはなりません. 変換フィ + ルタは, プレインテキストを印字する代わりに, フィルタはファイル + をプリンタが理解できる形式に変換するところを除けば, 「プリンタ + の簡単な設定」で説明したテキストファイル (「<ref + id="printing:textfilter" name="テキストフィルタのインストール">」 + を見て下さい) に似ています. + + + <sect3><heading> どの変換フィルタをインストールすべきか? + </heading> + + <p> 使いたいと思う変換フィルタをインストールすべきです. + DVI のデータを頻繁に印字するならば, DVI 変換フィルタ + をインストールするのが適切でしょう. 印字しなくてはなら + ない troff を大量に抱えている場合は, 多分, troff フィ + ルタが欲しくなるはずです. + + 次の表は, LPD で動作するフィルタと, + <tt>/etc/printcap</tt> ファイルでのエントリする項目, + そして, <tt/lpr/ コマンドで呼び出す方法をまとめたもの + です. +<code> + /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 +</code> + + 先の例のように, <tt/lpr -d/ を使うためには, 出力先の + プリンタの <tt>/etc/printcap</tt> 内のエントリで, + <tt/df/ 項目が必要であることが分かります. + + 反論はあるかも知れませんが, + FORTRAN テキストや plot のような形式は, 多分, 廃れ + てていくでしょう. あなたのサイトで, 自前のフィルタをイ + ンストールするだけで, プリントオプションのいくつか, あ + るいは, 全部に新しい意味を与えることができます. 例えば, + Prinerleaf ファイル (Interleaf デスクトップパブリッシン + グプログラムによるファイル) を直接印字したいとします. + そして, Printerleaf 用の変換フィルタを <tt/gf/ 項目で + 指定したパスにインストールすれば, <tt/lpr -g/ の意味 + は「Printerleaf ファイルを印字する」意味だとユーザに教 + えることができます. + + + <sect3><heading> 変換フィルタのインストール</heading> + + <p> 変換フィルタは FreeBSD の基本システムのインストールとは別 + にインストールするプログラムなので, 変換フィルタは, 多 + 分, <tt>/usr/local</tt> ディレクトリの下に置くべ + きです. フィルタは LPD だけが実行する特別なプログラム, + すなわち, 一般ユーザが実行する必要すらない + プログラムなので, <tt>/usr/local/libexec</tt> ディレ + クトリに置くのが普通です. + + 変換フィルタを使用可能にするためには, + <tt>/etc/printcap</tt> の目的のプリンタの適切な項目に + フィルタがあるパス名を指定します. + + DVI 変換フィルタをプリンタ <tt/bamboo/ のエントリに加 + えてみましょう. プリンタ <tt/bamboo/ の <tt/df/ 項目を + 新たに加えた<tt>/etc/printcap</tt> ファイルの例を以下 + に再掲します. +<code> +# +# /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: +</code> + DVI フィルタは <tt>/usr/local/libexec/psdf</tt> という + 名前のシェルスクリプトです. このスクリプトは次のように + なっています. +<code> +#!bin/sh +# +# 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 "$@" +</code> + このスクリプトでは, <tt/dvips/ をフィルタモード (引数 + <tt/-f/) で, 標準入力上で起動しています. 標準入力は印字 + するジョブです. それから, PostScript プリンタ用フィ + ルタ <tt/lprps/ (これについては「<ref + id="printing:advanced:if-conversion" name="プレインテキス + トのジョブを PostScript プリンタで印字する">」 + を参照してください) を LPD に与えられた引数を付けて起動 + します. <tt/lprps/ はこれらの引数を印字されたページ分 + の課金をおこなうために使われます. + + <sect3><heading> 変換フィルタのその他の例 </heading> + + <p> 変換フィルタのインストールには決まったステップがないの + で, その代わりに, 例をもっと挙げることにします. これを, + 自分でフィルタを作る際のガイドにしてください. 適当な例が + あったら, それをそのまま使ってください. + + 次のスクリプト例は, Hewlett Packard LaserJet III-Si の + ための, raster (ええと・・実は, GIF ファイル) 用の変 + 換フィルタです. +<code> +#!/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 +</code> + ここでは, GIF ファイルから PNM (portable anymap) 形式 + に変換し, 次に PGM (portable graymap) 形式に変換してか + ら, LaserJet/PCL-互換データに変換しています. + + 上記のフィルタを使うプリンタのためのエントリを付け加え + た <tt>/etc/printcap</tt> ファイルは次のようになります. +<code> +# +# /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: +</code> + + 次のスクリプトは, PostScript プリンタ <tt/bamboo/ + のための groff 組版システムの troff データのための変換 + フィルタです. +<code> +#!/bin/sh +# +# pstf - Convert groff's troff data into PS, then print. +# Installed in /usr/local/libexec/pstf +# +exec grops | /usr/local/libexec/lprps "$@" +</code> + 上記のスクリプトではプリンタとの通信をおこなうため, + <tt/lprps/ をまた利用しています. プリンタがパラレルポー + トに接続されている場合は, 代わりに, 次のスクリプトを使 + うかもしれません. +<code> +#!/bin/sh +# +# pstf - Convert groff's troff data into PS, then print. +# Installed in /usr/local/libexec/pstf +# +exec grops +</code> + これで完成しました. 次に, フィルタを使用可能にするため + に <tt>/etc/printcap</tt> に加える必要があるエントリを + 示します. +<tscreen><verb> + :tf=/usr/local/libexec/pstf: +</verb></tscreen> + + 次の例をみたら, FORTRAN のベテランは赤面するかもしれ + ません. この FORTRAN テキストフィルタは, プレインテキ + ストを直接印字できるすべてのプリンタで利用できます. この + フィルタをプリンタ <tt/teak/ にインストールすることに + しましょう. +<code> +#!/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 +</code> + そして, このフィルタを使用可能にするため, 以下の行を + <tt>/etc/printcap</tt> のプリンタ <tt/teak/ のエントリ + に加えます. +<tscreen><verb> + :rf=/usr/local/libexec/hprf: +</verb></tscreen> + + これが最後の, そして, 若干複雑な例です. 前に紹介した + LaserJet プリンタ <tt/teak/ に, DVI フィルタを加える + ことにしましょう. 最初に, 簡単な部分をおこないます. すなわ + ち, DVI フィルタの位置を <tt>/etc/printcap</tt> に書 + き加えます. +<tscreen><verb> + :df=/usr/local/libexec/hpdf: +</verb></tscreen> + + さて, 難しい部分であるフィルタの作成をおこないます. このた + めに, DVI から LaserJet/PCL への変換プログラムが必要 + です. FreeBSD のポート集 (「<ref id="ports" name="ポー + トコレクション">」を参照してください) には, それがあ + ります. <tt/dvi2xx/ というのがそのパッケージの名前で + す. これをインストールすると, 必要なプログラム + <tt/dvilj2p/ が使えます. このプログラムは DVI を + LaserJet IIp, LaserJet III, そして LaserJet 2000 の互 + 換コードへ変換してくれます. + + <tt/dvilj2p/ はフィルタ <tt/hpdf/ を極めて複雑にしてい + ます. なぜなら, <tt/dvilj2p/ は標準入力からデータを読 + み込むことができないからです. このプログラムを働かせる + ためには, ファイル名が必要です. もっと悪いことに, ファ + イル名は <tt/.dvi/ で終わっている必要があり, 標準入力 + の代わりに, <tt>/dev/fd/0</tt> を使うのは問題がありま + す. この問題は, (<tt/.dvi/ で終わる) 一時的なファイル名 + から<tt>/dev/fd/0</tt> に (シンボリックな) リンクを張る + ことで回避することができます. これで, <tt/dvilj2p/ に + 強制的に標準入力からデータを読み込ませることができます. + + もう1つの問題は, 一時的なリンクを張るために /tmp ディ + レクトリを使うことができないという事実です. シンボリッ + クリンクはユーザ, グループが <tt/bin/ であるユーザに所 + 有されています. フィルタはユーザ <tt/daemon/ として起 + 動します. そして, <tt>/tmp</tt> ディレクトリはスティッ + キービットが立っています. フィルタはリンクを作ることが + できます. しかし, リンクは別のユーザに所有されているた + め, 作業が終了したとき, このリンクを削除することができ + ません. + + その代わりに, シンボリックリンクは現在の作業ディレクト + リ, すなわち, スプーリングディレクトリ + (<tt>/etc/printcap</tt> の <tt/sd/ 項目で指定する) に作 + ることにします. フィルタが作業するにはここの場所は完璧 + な場所で, なぜなら, 特に, スプーリングディレクトリのディ + スクの空き容量は (ときどき) <tt>/tmp</tt> ディレクトリ + よりもたくさんあるからです. + + 以下に示すのが最後のフィルタです. +<code> +#!/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 +</code> + + + <sect3><heading> 自動変換: その他の変換フィルタ + <label id="printing:advanced:autoconv"></heading> + + <p> ここまでに述べてきたフィルタによって, 印字環境の能率が + 上がったことと思います. しかし, これはどのフィルタを使 + うかを (<tt/lpr/ のコマンドライン上で) ユーザが指定しな + くてはならないという代価を支払って実現されています. コ + ンピュータの事情にあまり詳しくないユーザにとって, フィ + ルタのオプションを指定させられるということはいらいらさ + せられるものになるでしょう. 更に悪いことに, 間違ったフィ + ルタオプションを指定されると, 間違った形式のファイルが + そのフィルタに適用されることになり, その結果, 何百枚も + の紙を掃き出すことになるかもしれません. + + そのような結果になるならば, 変換フィルタをインストール + するよりもむしろ, テキストフィルタ (これがデフォルトフィ + ルタなので) に印字するよう要求されたファイルの形式を検 + 出させ, 自動的に, 適切な変換フィルタを起動するようにし + たいと思うかもしれません. ここでは <tt/file/ コマンド + のようなツールを役立たせることができます. もちろん, + <em/いくつかの/ファイル形式の違いを見分けることは難しい + ことでしょう. そして, もちろん, それらのファイルに対し + ては, 変換フィルタを提供するだけで済ますこともできるの + です. + + FreeBSD のポート集には, <tt/apsfilter/ と呼ばれる自 + 動変換をおこなうテキストフィルタがあります. このフィルタは + プレインテキスト, PostScript, DVI ファイルを検 + 出し, 適当な変換をおこなった後, データを印字することができ + ます. + + + <sect2><heading> 出力フィルタ <label + id="printing:advanced:of"></heading> + + <p> LPD スプーリングシステムでは, ここまでにまだ取り上げていな + いフィルタ形式, 出力フィルタをサポートしています. 出力 + フィルタは, テキストフィルタのように, プレインテキスト + のみを印字するために意図されたものですが, 非常に簡単化 + されています. テキストフィルタを用いずに, 出力フィルタ + を使っている場合は, 次のようになります. + <itemize> + <item> LPD はジョブ中の各ファイルに一度ではなく, ジョブ + 全体に対して一度だけ出力フィルタを起動します. + + <item> LPD は出力フィルタに対し, ジョブ中のファイルの先 + 頭や末尾を特定するための対策を一切おこなっていません. + + <item> LPD はユーザのログイン名やホスト名をフィルタに渡 + しません. したがって, 課金の処理をおこなうことは考えてい + ません. 実際, 出力フィルタには, 以下2つの引数しか与え + られません. +<tscreen> +<tt>-w<it/width/ -l<it/length/</tt> +</tscreen> + ここで, <it/width/ は対象となるプリンタの <tt/pw/ 項 + 目, <it/length/ は <tt/pl/ 項目に指定された数です. + </itemize> + + 出力フィルタの簡便さに誘惑されてはいけません. もし, ジョ + ブ中のそれぞれのファイルに別のページ番号を付加しようと + しても, 出力フィルタは<em/うまく動作しないでしょう/. + そのような動作を期待しているならば, (入力フィルタとし + ても知られている) テキストフィルタを使ってください. 詳 + しくは, 「<ref id="printing:textfilter" name="テキスト + フィルタのインストール">」をご覧ください. さらに, 出力 + フィルタは, 実のところ, <em/もっと複雑/になっています. + まず, 特殊なフラグ文字を検出するために, フィルタに送ら + れてくるバイトストリームを検査する必要があります. また, + LPD に代わって, 自分自身にシグナルを送らなければなりま + せん. + + しかしながら, ヘッダページの印字をおこないたい場合, また, + エスケープシーケンスやヘッダページを印字できるようにす + るその他の初期化文字列を送信する必要がある場合, 出力ファ + イルが<em/必要/です. + + 1台のプリンタに対し, LPD では出力フィルタとテキスト, + または, 他のフィルタを両方使うことができます. このよう + な場合, LPD はヘッダページ (「<ref + id="printing:advanced:header-pages" name="ヘッダページ">」 + を参照してください) だけを印字させるために, 出 + 力フィルタを起動させます. それから LPD では, アウトプッ + トフィルタに2バイトの文字 (ASCII 031 の次に ASCII 001) + を送ることで, 出力フィルタが<em/自力で停止する/ことを + 期待しています. 2バイト (031, 001) が出力フィルタに送られ + たとき, 出力フィルタは自分自身にシグナル SIGSTOP を送 + ることによって停止するべきです. LPD がその他のフィル + タの起動を完了したとき, LPD は出力フィルタにシグナル + SIGCONT を送ることで, 出力フィルタを再起動させます. + + 出力フィルタがあり, テキストフィルタが<em/ない/場合, + LPD はプレインテキストのジョブをおこなう際に, 出力フィル + タを使います. 前述したように, 出力フィルタでは, ジョブ + 中の各ファイルの並びの間に FROM FEED 文字や紙を排出す + る他の文字を入れることはしません. この動作は多分, あな + たが求めているものとは<em/異なっている/でしょう. ほと + んどすべての場合において, テキストフィルタが必要とされる + はずです. + + プログラム <tt/lpf/ は, テキストフィルタの項で既に紹介 + しましたが, 出力フィルタとしても動作させることができま + す. もし, 簡便で極悪な出力フィルタが必要で, かつ, バイ + トストリームを検査したりシグナルを送るコードを書きたく + ないときには, <tt/lpf/ をお試しください. あるいは, プ + リントが要求する初期化コードを送るために, <tt/lpf/ を + シェルスクリプトに包んで使うこともできます. + + + <sect2><heading> テキストフィルタ <tt/lpf/ <label + id="printing:advanced:lpf"></heading> + + <p> プログラム <tt>/usr/libexec/lpr/lpf</tt> は, FreeBSD の + バイナリ配布に付属しているテキストフィルタ (入力フィル + タ) で, 出力を字下げしたり (<tt/lpr -i/ でジョブが入力さ + れたとき), 文字を未処理のままプリンタに送ったり + (<tt/lpr -l/ でジョブが入力されたとき), ジョブ中のバッ + クスペースやタブの印字位置を調節したり, 印字したページ + に対して課金したりすることができます. また, このフィル + タは出力フィルタとしても動作させることができます. + + <tt/lpf/ は多くの印字環境において使用することに適して + います. このフィルタには, プリンタに初期化文字列を送る + 機能はありませんが, 必要とされる初期化をおこない, それから + <tt/lpf/ を実行させるためのシェルスクリプトを作成する + のはたやすいことです. + + <tt/lpf/ に対して, 印字ページへの課金を正確におこなわせる + ためには, <tt>/etc/printcap</tt> ファイルの中の + <tt/pw/ と <tt/pl/ の項目に正確な値を入れておく必要が + あります. これらの値は, どのくらいの量のテキストがペー + ジにフィットするか, また, ユーザのジョブが何ページある + のかを調べるために使われます. プリンタの課金についての + 詳しい情報については, 「<ref + id="printing:advanced:acct" name="プリンタの利用に対す + る課金">」をご覧ください. + + +<!-- + <sect2><heading> 日本語を印字するために(訳者補足) <label + id="printing:advanced:kanji" name="日本語を + 印字するために(訳者補足)"></heading> + + <p> 日本語を印字するためには, 当然ながら, 日本語に対応 + したフィルタが必要になります. 本節では, 日本語対応フィ + ルタについての情報を提供します. + + <itemize> + <item> フィルタを準備する前に, 漢字コード変換フィルタ + を準備する必要があります. ご存知の通り, 漢字コードの体 + 系は幾つか知られていますが, 大抵のフィルタではその内の + 一種類にしか対応していない場合がほとんどです. どんな漢 + 字コードの入力があってもよいように, 漢字コード自動判別 + 機能を持った漢字コード変換フィルタを準備し, 印字するデー + タをフィルタが想定している漢字コードに変換してください. + このような漢字フィルタには, nkf や ack などがしられて + います. この内, ・・・はポート集に含まれています. + + <item> 次に, 日本語対応フィルタを用意します. 日本語 +PostScript プリンタの場合は, ・・・などがあります. また, Canon の +Lips 対応プリンタの場合は・・・などがあります. + + <item> 日本語用の GhostScript もあり, ポート集にも付 +属しています. ドライバの話・・・ + + <item> そうでないとき. PC-201系と ESC/P系の場合. 自分 +で作れ. 練習問題としては最適? + <item> あとは・・ + </itemize> +, と. を変換する +--> + + + <sect1><heading> ヘッダページ <label + id="printing:advanced:header-pages"></heading> + + <p> あなたが管理するシステムのユーザが<em/たくさん/おり, ユー + ザ全員が様々なプリンタを使用する場合, 多分, 必要悪である + <em/ヘッダページ/を印字させることを検討したいと思うかもしれま + せん. + + ヘッダページは, <em/バナー/とか<em/バーストページ/としても知ら + れていますが, 出力されたジョブが誰によるものなのかを特定させる + 働きがあります. 印字結果の山の中において, ユーザのジョブによっ + て印字された本物のドキュメント部分よりも際立たせるために, ヘッ + ダページは, 通常, 多分, 縁が装飾されている大きな太文字で印字さ + れます. ヘッダページにより, ユーザは自分が出したジョブがどこに + あるのかをすばやく見つけることができます. ヘッダページの欠点は, + 明らかに, すべてのジョブに対して, 紙が1枚余分に印字されるという + ことです. この紙の有効期間は短く, 2〜3分も続きません. 最終的に, + これらの紙は再利用紙入れの中かくずの山に入れられることでしょう. + (ヘッダページはジョブ中の各ファイル毎に印字されるのではなく, + ジョブ毎に印字されるということに注意してください. したがって, 紙の + 消費はそれほどひどくはないかもしれません). + + <em/もし/, プリンタがプレインテキストを直接印字できるならば, + LPD システムは印字物に対して自動的にヘッダページを付けることが + できます. PostScript プリンタを使っている場合は, ヘッダペー + ジを生成する外部プログラムが必要になります. これについては, + 「<ref id="printing:advanced:header-pages:ps" name="PostScript + プリンタでのヘッダページ">」をご覧ください. + + + <sect2><heading> ヘッダページの印字を許可する <label + id="printing:advanced:header-pages:enabling"></heading> + + <p> 「<ref id="printing:simple" name="プリンタ設定導入編">」 + では, <tt>/etc/printcap</tt> ファイルの <tt/sh/ (``suppress + header'' : ヘッダを供給しないという意味) を指定して, ヘッダペー + ジの印字を止めていました. プリンタでのヘッダページの印字を許可 + するには, <tt/sh/ 項目を取り除くだけよい訳です. + + とても簡単そうに見えるけど, 本当かな? + + それは本当です. プリンタに初期化文字列を送るための出力フィ + ルタを用意しなくてはならないかもしれません. 次に, Hewlett + Packard PCL 互換プリンタの例を挙げます. +<code> +#!/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 +</code> + <tt/of/ 項目に出力フィルタのパス名を指定してください. 詳細につ + いては, 「<ref id="printing:advanced:of" name="出力フィルタ">」 + をご覧ください. + + 次に, 以前紹介したプリンタ <tt/teak/ のための + <tt>/etc/printcap</tt> ファイルの例を示します. ここでは, ヘッ + ダページの印字を許可し, 上記の出力フィルタを追加しました. +<code> +# +# /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: +</code> + さて, ユーザが <tt/teak/ からジョブを印字させたとき, それぞれ + のジョブ毎にヘッダページが印字されます. もし, ユーザが印字物を + 探すのに時間を費やしたいと思うなら, <tt/lpr -h/ によってジョ + ブを入力することで, ヘッダページの印字を止めることができます. + これ以外の <tt/lpr/ のオプションについては, 「<ref + id="printing:lpr:options:misc" name="ヘッダページ用オプション">」 + をご覧ください. + + <em/注意:/ LPD では, ヘッダページの最後に, FROM FEED 文字が印 + 字されます. プリンタに紙排出をさせるために, 別な文字, もしくは, + 別な文字列が利用されている場合は, <tt>/etc/printcap</tt> 中の + <tt/ff/ 項目で指定することができます. + + + <sect2><heading> ヘッダページを制御する <label + id="printing:advanced:header-pages:controlling"></heading> + + <p> ヘッダページの印字が許可されていると, LPD は <em/長いヘッ + ダ/を作ります. これには, 紙全面に大きな文字でユーザ名, ホスト + 名, ジョブ名が書かれています. 次に, このヘッダページの例を示 + します (kelly が ジョブ名 outline を rose というホストから印字 + された場合). +<tscreen><verb> +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 +</verb></tscreen> + + LPD はこのテキストの終わりに FROM FEED 文字を加えます + ので, ジョブは新しいページから開始されます (ただし, + <tt>/etc/printcap</tt> で出力先のプリンタのエントリに + <tt/sf/ (suppress form feeds) が指定されているときはこ + の限りではありません). + + お望みならば, LPD に<em/短いヘッダページ/を出力させる + こともできます. この場合は, <tt>/etc/printcap</tt> ファ + イルの中で <tt/sb/ (short banner) を指定してください. + ヘッダページは次のようになります. +<tscreen><verb> +rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 +</verb></tscreen> + デフォルトでは, LPD はヘッダページを最初に印字し, 次 + にジョブの印字をおこないます. この順番を逆にするときは, + <tt>/etc/printcap</tt> で <tt/hl/ (header last) を指定 + してください. + + <sect2><heading> ヘッダページに対する課金 <label + id="printing:advanced:header-pages:accounting"></heading> + + <p> LPD に備わっているヘッダページ出力機能を使うと, 入力され + たジョブに対して課金をおこなうことができても, ヘッダページは<em/無 + 料/で提供しなくてはならない, という特有のやり方を強要されます. + + なぜでしょうか. + + 出力フィルタは単なる外部プログラムなので, 課金をするための制御 + をおこなうとすれば, それはヘッダページを印字するときですが, 出力フィ + ルタには, <em/ユーザ名とホスト名/の情報や課金情報を格納するファ + イルがどれな + のかということが知らされません. それゆえ, 出力ファイルには, 誰 + にプリンタ利用の課金をおこなえばよいのかが分からないのです. テキス + トフィルタやその他の変換フィルタ (これらのフィルタはユーザやホ + ストの情報が知らされます) が出力ページの枚数に「1ページ分水増し + する」だけでは十分ではありません. なぜなら, ユーザは <tt/lpr -h/ に + よってヘッダページの出力を止めることができるからです. やみくも + に1ページを水増しすると, 印字されてもいないヘッダページに対する + 料金をとることになります. 基本的に, <tt/lpr -h/ は環境に優し + い心を持つユーザに好まれるオプションですが, これを使うように奨 + 励することもできません. + + 各々のフィルタに独自のヘッダページを生成させる (その結果, ヘッ + ダページに課金することができる) という方法<em/でも十分であると + はいえません/. この場合, LPD はフィルタに <tt/-h/ の情報を送 + りませんので, <tt/lpr -h/ によってヘッダページを印字しないオ + プションを選択したとしても, 依然としてヘッダページは印字され, + その分の課金がおこなわれてしまいます. + + では, どのような選択肢があるのでしょうか. + + ヘッダページへの課金に関しては, 次のことができます. + + <itemize> + <item> LPD のやり方を受け入れ, ヘッダページは無料とする. + + <item> LPDng や PLP といった LPD の代替品をインストール + する. LPD と入れ替えが可能な他のスプーリングソフトウェ + アに関しては, 「<ref name="標準スプーラの代替品" + id="printing:lpd-alternatives">」をご覧ください. + + <item> <em/スマートな/出力フィルタを作成する. 通常, 出力 + フィルタはプリンタを初期化するか, 単純な文字列変換をす + る程度の働きしかしません. (テキスト (入力) フィルタがな + い場合) 出力フィルタはヘッダページとプレインテキストの + 印字をおこなうのに適しています. + + プレインテキストを印字するためのテキストフィルタがない + 場合, LPD はヘッダページを印字するためだけの目的で出 + 力フィルタを起動します. そして, LPD が生成するヘッダ + ページのテキストを解析することにより, 出力フィルタはヘッ + ダページに課金するために必要なユーザ名とホスト名を取得 + することができます. この方式の唯一の問題点は, 出力フィ + ルタは課金情報を格納するデータファイルの名前を知ることが + できないということです (<tt/af/ 項目で指定されたファイ + ル名は出力ファイルに渡されません). しかし, 既知の + 名前の課金データファイルを使うのならば, その名前を出 + 力フィルタのプログラム中に埋め込むことができます. + + 解析の手順を簡単にするためには, + <tt>/etc/printcap</tt> で <tt/sh/ 項目 (短いヘッダを指 + 定) を使うとよいでしょう. + + そしてまた, ここまでの方法は少なからぬトラブルを生じさ + せるかもしれません. そうなれば, もちろんユーザはヘッダペー + ジを無料で + 提供してくれる気前のよいシステム管理者に感謝することで + しょう. + </itemize> + + <sect2><heading> PostScript プリンタでのヘッダページ + <label id="printing:advanced:header-pages:ps"></heading> + + <p> これまでに述べたように, LPD ではプレインテキストのヘッ + ダページをたくさんのプリンタに合うように生成することができます. + 残念ながら, PostScript プリンタは, プレインテキストを直接 + 印字することができません. ですから, LPD のヘッダページ機能は + まったく役に立たない, あるいはほとんどの場合で役に立ちません. + + ヘッダページを出力するための自明な方法の1つに, すべての変換フィ + ルタとテキストフィルタにヘッダページを生成させる方法があります. + フィルタは, 適切なヘッダページを生成するために, ユーザ名とホス + ト名の引数を使うべきです. この方法の欠点は, いつでも, <tt/lpr + -h/ によってジョブが入力された場合でさえも, ヘッダページが印字 + されるということです. + + この方法で試してみましょう. 次のスクリプトは, 3つの引数 (ユーザ + のログイン名, ホスト名, ジョブ名) をとり, 簡単な PostScript 用 + のヘッダページを生成します. + +<code> +#!/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` <user> <host> <job>" 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 <<EOF +%!PS + +% +% Make sure we do not interfere with user's job that will follow +% +save + +% +% Make a thick, unpleasant border around the edge of the paper. +% +$border $border moveto +$page_width $border 2 mul sub 0 rlineto +0 $page_height $border 2 mul sub rlineto +currentscreen 3 -1 roll pop 100 3 1 roll setscreen +$border 2 mul $page_width sub 0 rlineto closepath +0.8 setgray 10 setlinewidth stroke 0 setgray + +% +% Display user's login name, nice and large and prominent +% +/Helvetica-Bold findfont 64 scalefont setfont +$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto +($user) show + +% +% Now show the boring particulars +% +/Helvetica findfont 14 scalefont setfont +/y 200 def +[ (Job:) (Host:) (Date:) ] { + 200 y moveto show /y y 18 sub def +} forall + +/Helvetica-Bold findfont 14 scalefont setfont +/y 200 def +[ ($job) ($host) ($date) ] { + 270 y moveto show /y y 18 sub def +} forall + +% +% That is it +% +restore +showpage +EOF +</code> + そして, 変換フィルタやテキストフィルタがそれぞれ, 最初にこのス + クリプトを起動することで, ヘッダページが出力され, それから, ユー + ザのジョブの印字をおこないます. 次に, このドキュメントの始めのほう + で紹介した DVI 変換フィルタを, ヘッダページを印字するように変 + 更したものを示します. +<code> +#!/bin/sh +# +# 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" + +( /u/kelly/freebsd/printing/filters/make-ps-header $login $host "DVI File" + /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args +</code> + このフィルタがユーザ名やホスト名を決定するために引数リストをど + のように解析しなくてはならないかという点に注意してください. こ + の解析方法は他の変換フィルタに対しても同様です. しかしながら, + テキストフィルタについては, 引数の設定が少し異なっています (こ + れについては, 「<ref id="printing:advanced:filters" name="フィ + ルタはどのように機能しているか">」をご覧ください). + + 前述の通り, 上記の手法は, 極めて単純なのにも関らず, <tt/lpr/ + で「ヘッダページを印字しない」オプション (<tt/-h/ オプション) が + 使えなくなっています. ユーザが森林資源を (あるいは, ヘッダペー + ジが課金されているならば, その僅かな金額を), 節約したいと望んでい + る場合でも, すべてのフィルタがすべてのジョブ毎にヘッダページを印字 + することになっているので, 節約することはできません. + + ジョブ毎に印字されるヘッダページをユーザが抑制できるようにする + ためには, 「<ref + id="printing:advanced:header-pages:accounting" name="ヘッダペー + ジに対する課金">」で紹介したトリックを使う必要があります. すな + わち, LPD が生成するヘッダページの解析をおこない, PostScript + 版のヘッダページを出力させる出力フィルタを作るのです. この場 + 合, ユーザが <tt/lpr -h/ でジョブを入力すると, LPD はヘッダペー + ジを生成しなくなり, また, 出力フィルタも起動されません. そうで + ないならば, 作成した出力フィルタが LPD からのテキストを読み込 + み, ヘッダページを印字する適当な PostScript のコードがプリ + ンタに送られるでしょう. + + PostScript プリンタがシリアルポートに接続されている場合, + 出力フィルタとして <tt/lprps/ を, 上記の動作をおこなうものとして + <tt/psof/ を使うことができます. ただし, <tt/psof/ はヘッダペー + ジに対して課金をおこないませんので注意してください. + + + <sect1><heading> リモートプリンタからの出力 <label + id="printing:advanced:network-printers"></heading> + + <p> FreeBSD では, ネットワーク越しの印字, すなわち, ジョブをリ + モートプリンタに送ることをサポートしています. リモートプリンタ + からの出力をするには, 一般に, 次の2つを参照してください. + <itemize> + <item> リモートホストに接続されたプリンタにアクセスする方 + 法. プリンタがあるホストのシリアル, または, パラレルイ + ンタフェースに接続されている場合, ネットワーク上の他の + ホストからこのプリンタにアクセスできるように LPD を設 + 定します. 「<ref id="printing:advanced:network:rm" + name="リモートホストに接続されたプリンタ">」でどのよう + にするかを説明します. + + <item> ネットワークに直接接続されているプリンタにアクセ + スする方法. プリンタに, 旧来のシリアル, または, パラレ + ルインタフェースに加えて (もしくは, これらに代わって) ネッ + トワーク用のインタフェースがある場合. そのようなプリン + タは次のように動作するでしょう. + + <itemize> + <item> そのプリンタが LPD のプロトコルを理解でき, リモー + トホストからのジョブをキューに入れることさえできる場合. + この場合, プリンタは, LPD が起動している一般のホスト + のように振る舞います. そのようなプリンタを設定するため + に, 「<ref id="printing:advanced:network:rm" + name="リモートホストに接続されたプリンタ">」と同様の手 + 順をおこなってください. + + + <item> そのプリンタが, データストリームによるネットワー + ク接続をサポートしている場合. この場合, ネットワーク上 + の1つのホストとしてプリンタを「接続」します. このホス + トは, ジョブをスプーリングする責任を負い, スプーリング + されたジョブはプリンタに送られます. そのようなプリンタ + をインストールするためのいくつかの提案が「<ref + id="printing:advanced:network:net-if" name="ネットワー + クにおけるデータストリームのインタフェースを持つプリン + タ">」にあります. + </itemize> + </itemize> + + <sect2><heading> リモートホストに接続されたプリンタ <label + id="printing:advanced:network:rm"></heading> + + <p> LPD スプーリングシステムでは LPD (または LPD 互換のシス + テム) が起動している他のホストへジョブを送る機能が始めからサポー + トされています. この機能により, あるホストに接続されたプリンタ + へ, 他のホストからアクセスできるようになります. また, LPD プ + ロトコルを理解するネットワークインタフェースを持ったプリンタに + 対しても, この機能は働きます. + + リモートプリンタへの出力を許可するためには, 最初に, あるホスト + (これを, <em/プリンタホスト/と呼びます) にプリンタを接続します. + そして, 「 <ref id="printing:simple" name="プリンタ設定導入編 + ">」に書かれた簡単なプリンタの設定をおこなってください. 必要ならば, + 「<ref id="printing:advanced" name="プリンタ設定上級編">」にあ + る, 更に進んだ設定をおこなってください. そして, そのプリンタをテス + トしてうまく動作することを確認し, LPD に許可した機能がうまく働 + くかどうかを見てください. + + LPD 互換のネットワークインタフェースを持つプリンタを使用してい + る場合は, そのプリンタ自身が以下で説明する<em/プリンタホスト/ + になります. そして, <em/プリンタ名/とは, そのプリンタに設定し + た名前のことを指します. これについては, プリンタ, および (また + は), プリンタのネットワークインタフェースに付属するドキュメン + トを参照してください. + + 次に, そのプリンタにアクセスしたいと思っている他ホストにおいて, + そのホストの <tt>/etc/printcap</tt> ファイルに次にあげるエント + リを作ります. + <enum> + <item> 名前のエントリ. どんな名前でもよいのですが, 簡単 + のため, 多分, プリンタホストで設定されたプリンタ名や別 + 名と同じものを使いたいと思うでしょう. + + <item> <tt/lp/ 項目で指定されるデバイスは明示的に空にす + る (<tt/:lp=:/ とする). + + <item> スプーリングディレクトリを作成し, <tt/sd/ 項目で + その位置を指定する. LPD では, プリンタホストにジョブ + を送信するまでの間, このディレクトリにジョブを格納しま + す. + + <item> <tt/rm/ 項目でプリンタホストの名前を指定します. + + <item> <tt/rp/ 項目で<em/プリンタホスト/に接続したプリン + タ名を指定します. + </enum> + これで終わりです. 変換フィルタやページの大きさやその他の事項を + <tt>/etc/printcap</tt> に加える必要はありません. + + 次に, リモートホストに接続されたプリンタで印字するための設定例 + を示します. ホスト rose には2台のプリンタ <tt/bamboo/ と + <tt/rattan/ が接続されています. これらのプリンタをホスト + orchid のユーザが使えるようにしましょう. 最初に orchid の + <tt>/etc/printcap</tt> を示します (このファイルは, 「<ref + id="printing:advanced:header-pages:enabling" name="ヘッダペー + ジの出力を許可する">」で参照することができます). このファイルには, + 既に, プリンタ <tt/teak/ 用のエントリがありました. 以下では, + これに, ホスト rose にある2台のプリンタ用のエントリが加えられ + ています. +<code> +# +# /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: +</code> + orchid で必要となる作業はスプーリングディレクトリを作ることだ + けです. +<tscreen> +<verb> +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 +</verb></tscreen> + + これで, orchid のユーザが <tt/rattan/ と <tt/bamboo/ で印字す + ることができるようになりました. 例えば, orchid のユーザが次の + ように入力したとします. +<tscreen><verb> +lpr -P bamboo -d sushi-review.dvi +</verb></tscreen> + すると, orchid の LPD システムは, ジョブをスプーリングディレ + クトリ <tt>/var/spool/lpd/bamboo</tt> にコピーし, これが DVI + ファイルを印字するジョブであることを記録します. ホスト rose の + <tt/bamboo/ 用のスプーリングディレクトリに十分な容量が確保でき + 次第, 両者の LPD は, ジョブのファイルを rose に転送します. こ + のファイルは, そのすべてが印字されるまで, rose のキューに留まり + ます. (bamboo は PostScript プリンタなので) DVI から PostScript + への変換は rose でおこなわれます. + + + <sect2><heading> ネットワークにおけるデータストリームのインタ + フェースを持つプリンタ <label id="printing:advanced:network:net-if"> + </heading> + + <p> プリンタのネットワークインタフェースカードは, 2種類に分 + 類することができます. 1つはスプーラをエミュレートするもの (高価) + で, もう1つはシリアルやパラレルポートを使うようにプリンタにデー + タを送ることができるだけのもの (安価) です. この節では, 後者の使 + い方を説明します. 前者のプリンタは, 前節「<ref name="リモート + ホストに接続されたプリンタ" id="printing:advanced:network:rm">」 + の方法が適用できます. + + <tt>/etc/printcap</tt> ファイルでは, シリアルかパラレルのイン + タフェースのどちらを使うのか, そして, (シリアルインタフェース + を使う場合) そのボーレートはいくらであるか, フロー制御は使うのか, + タブのための遅延を加えるのか, 改行文字を変換するかなどの指定を + おこなうことができます. しかし, TCP/IP や他のネットワークポートか + らデータを受け取るプリンタを接続するための指定をおこなうことはでき + ません. + + ネットワーク接続されたプリンタにデータを送るためには, テキスト + フィルタと変換フィルタから呼び出すことができる通信プログラムを + 開発する必要があります. 以下に, そのようなプログラムの例を示し + ます. スクリプト <tt/netprint/ では, 標準入力から印字データを + すべて受け取り, ネットワーク接続されたプリンタにこれを送ります. + <tt/netprint/ の最初の引数でプリンタのホスト名を, 2番目の引数 + で接続するポート番号を指定します. このプログラムでは単方向通信 + (FreeBSD からプリンタ) のみをサポートしていることに注意してくだ + さい. ネットワークプリンタの多くは双方向通信をサポートしていま + すので, その恩恵 (プリンタの状態を得たり, 課金をおこなうなど) にあず + かりたいと思われるかもしれません. +<code> +#!/usr/bin/perl +# +# netprint - Text filter for printer attached to network +# Installed in /usr/local/libexec/netprint +# + +$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; + +$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 (<STDIN>) { print PRINTER; } +exit 0; +</code> + このスクリプトは, 様々なフィルタが利用することができます. 仮に, + Diablo 750-N ラインプリンタを持っており, これがネットワークに + 接続されているとしましょう. プリンタはポート番号5100にて印字す + るデータを受け取ります. プリンタのホスト名は scrivener としま + す. このとき, このプリンタのテキストフィルタは次のようになりま + す. +<code> +#!/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 +</code> + + + <sect1><heading> プリンタの利用に制約を与える <label + id="printing:advanced:restricting"></heading> + + <p> 本節では, プリンタの利用に制約を与えるための情報を記して + います. LPD システムでは, プリンタ (ローカル, リモートのいずれ + に接続されていても) にアクセスできる人を制限する機能, 複数部の + コピーの印字の可否を制御する機能, ジョブのサイズの最大値やプリ + ンタキューに入るジョブの最大個数を制御する機能を提供しています. + + + <sect2><heading> 複数部のコピーの印字を制限する <label + id="printing:advanced:restricting:copies"></heading> + + <p> LPD システムではユーザが複数部のコピーの印字を簡単におこなう + 機能を提供しています. ユーザが, (例えば) <tt/lpr -#5/ コマ + ンドを使ってジョブを印字すると, ジョブのそれぞれのファイルのコ + ピーを5部得ることができます. これがよい機能であると思うかどう + かは人それぞれでしょう. + + 複数部のコピーの印字によってプリンタが必要以上に消耗してしまう + と感じるならば, <tt>/etc/printcap</tt> ファイルに <tt/sc/ 項 + 目を加えてください. これにより, <tt/-#/ オプションの使用 + が禁止されます. このオプションが指定されているにも関らず, + <tt/-#/ オプションを使うと, 次のようなメッセージが表示され, + このオプションの利用できない旨を伝えます. +<tscreen><verb> +lpr: multiple copies are not allowed +</verb></tscreen> + + リモートホストからプリンタをアクセスできる設定にしている場合 (この + 設定については, 「<ref name="リモートホストに接続されたプリン + タ" id="printing:advanced:network:rm">」をご覧ください), その + リモートホストの <tt>/etc/printcap</tt> にも同じように <tt/sc/ + 項目を追加する必要があることに注意してください. そうしないと, + ユーザは別なホストから複数部のコピーの印字することができてしま + います. + + 例を使って説明しましょう. 次に示す <tt>/etc/printcap</tt> ファ + イルは, ホスト rose のものです. プリンタ <tt/rattan/ は極めて + 頑丈なので, 複数部のコピーの印字は許可されています. しかし, レー + ザプリンタの <tt/bamboo/ はもう少しデリケートで, このプリンタ + から複数部のコピーを印字することを <tt/sc/ 項目を追加すること + で禁止しています. +<code> +# +# /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: +</code> + さらに, orchid の <tt>/etc/printcap</tt> にも <tt/sc/ 項目を + 追加する必要があります (orchid でこの編集をおこなっているときに, つ + いでに, プリンタ <tt/teak/ でも複数部のコピーの印字を禁止する + ことにしましょう). +<code> +# +# /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: +</code> + <tt/sc/ 項目を指定することにより, <tt/lpr -#/ の使用を防 + ぐことができます. しかし, この状態では <tt/lpr/ を複数回起動し + たり, 1回のジョブで次のように同じファイルを複数個指定すること + を防ぐまでには至っていません. +<tscreen><verb> +lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign +</verb></tscreen> + このような悪用を防ぐ方法は (その指示を無視することも含めて) たく + さんあります. 各自で調べてみてください. + + + <sect2><heading> プリンタを使用できる人を限定する <label + id="printing:advanced:restricting:access"></heading> + + <p> それぞれのプリンタを使用できる人を限定するには, UNIX の + グループ権限のメカニズムを利用し, さらに, + <tt>/etc/printcap</tt> で <tt/rg/ 項目を指定することでおこないます. + あるプリンタにアクセスさせてもよいと思うユーザすべてをUNIXのある + グループに入れてください. そして, そのグループ名を <tt/rg/ で + 指定します. + + このとき, そのグループに含まれないユーザ (root も含む) が + <tt/rg/ の指定がされたプリンタを使用すると, 次のようなメッセー + ジが表示され, プリンタの使用はできません. + +<tscreen><verb> +lpr: Not a member of the restricted group +</verb></tscreen> + <tt/sc/ (suppress multiple copies : 複数部のコピーの印字を禁止 + する) を指定するときと同様に, <tt/rg/ が指定されたプリンタがリ + モートホストからもアクセスでき (この設定については, 「<ref + name="リモートホストに接続されたプリンタ" + id="printing:advanced:network:rm">」をご覧ください), かつ, そ + のホストでもプリンタを使用できる人を限定するのが妥当であると思 + う場合は, そのホストの <tt>/etc/printcap</tt> にも <tt/rg/ 指 + 定をおこなう必要があります. + + 例えば, プリンタ <tt/rattan/ は誰でも利用できるが, + <tt/bamboo/ はグループ <tt/artists/ に属している人のみが利用で + きるようにしてみましょう. 以下に, もうお馴染みとなったホスト + rose の <tt>/etc/printcap</tt> を示します. +<code> +# +# /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: +</code> + これ以外の <tt>/etc/printcap</tt> ファイル (ホスト orchidのもの) + はそのままにしておくことにします. もちろん, orchid のユーザは + 全員 <tt/bamboo/ を利用することができます. これは, orchid に + は特定のユーザのみにしかアクセスさせておらず, そのユーザにはプ + リンタを利用させたいと思っているからなのかもしれませんし, そう + でないかもしれません. + + <em/注意:/ 1台のプリンタを複数グループのユーザに利用させること + はできません. + + <sect2><heading> 入力可能なジョブのサイズを制限する <label + id="printing:advanced:restricting:sizes"></heading> + + <p> たくさんのユーザからプリンタが利用される場合には, 多分, + ユーザが印字要求を出すことができるファイルのサイズに上限値を置 + く必要が生じるでしょう. 結局のところ, スプーリングディレクトリ + が置かれているファイルシステムの空き容量がその上限値になる訳で + すが, あるユーザがこれを独占的に使用すること避けるために, 他ユー + ザからのジョブ用の空き容量を確保する必要もあります. + + LPD では, <tt/mx/ 項目を指定することにより, ジョブ中の個々のファ + イルのサイズの上限値を制限する機能を提供しています. 指定される + ファイルサイズの単位は BUFSIZ ブロックで, 1 BUFSIZ ブロックは + 1024バイトを表わします. この <tt/mx/ 項目の値として0が指定される + と, ファイルサイズの制限はなくなります. この制限はジョブ中の各 + <em/ファイル/に対して適用されるものであり, ジョブ全体のサイズ + を<em/制限するものではない/ことに注意してください. + + ところで, プリンタに設定された上限値を超えるファイルサイズのファ + イルが入力された場合でも, LPD はこれを拒否しません. その代わ + りに, このファイルは, その先頭から上限値のファイルサイズまでし + かキューに入れられません. そして, その部分までが印字され, 残り + の部分は捨てられます. これが正しい動作といえるのかどうかは議 + 論の余地があるところです. + + それでは, 設定例に登場しているプリンタ <tt/rattan/ と + <tt/bamboo/ の印字可能なファイルサイズに制限を加えてみましょう. + artists グループの人達が作る PostScript ファイルのサイズは + 巨大になる傾向があるので, 上限値を5Mバイトとします. それから, + プレインテキスト用のラインプリンタは無制限とします. +<code> +# +# /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: +</code> + この場合もそうですが, この制限はローカル (ホスト rose) のユーザ + のみに適用されます. リモートホストからプリンタを利用できるよう + に設定している場合は, そのリモートホストのユーザはこの制限を受 + けません. これらのユーザにも制限を加える場合は, リモートホスト + の <tt>/etc/printcap</tt> の <tt/mx/ を指定する必要があります. + リモートホストから印字するための詳しい情報については, 「<ref + name="リモートホストに接続されたプリンタ" + id="printing:advanced:network:rm">」を参照してください. + + リモートホストに接続されたプリンタへのジョブのサイズを制限する + 特別な方法は他にもあります. これについては, 「<ref + id="printing:advanced:restricting:remote" name="リモートホスト + からのプリンタの利用を制限する">」を参照してください. + + + <sect2><heading> リモートホストからのプリンタの利用を制限する + <label id="printing:advanced:restricting:remote"></heading> + + <p> LPD スプーリングシステムでは, リモートホストから要求され + たジョブの印字を制限するための方法がいくつか提供されています. + + <descrip> + <tag/ホストの制限/ + + ローカルの LPD が印字要求を受け付けるリモートホストは, + ファイル <tt>/etc/hosts.equiv</tt> と + <tt>/etc/hosts.lpd</tt> によって制御することができます. + LPD では, あるホストから印字の要求がきたとき, このホス + トの名前がこれら2つのファイルのどちらかに含まれている + かどうかを調べます. これが含まれていない場合は, LPD + はこの要求を拒否します. + + これらのファイルの形式は単純です. 各行にホストの名前を + 1つずつ書いていきます. ファイル + <tt>/etc/hosts.equiv</tt> の方は ruserok(3) プロトコル + でも利用され, <tt/rsh/ や <tt/rcp/ といったプログラム + の動作に影響するので注意が必要です. + <tt>/etc/hosts.equiv</tt> の記述は慎重におこないましょう. + + 例として, 以下にホスト rose の <tt>/etc/hosts.lpd</tt> + を示します. +<code> +orchid +violet +madrigal.fishbaum.de +</code> + この例では, rose はホスト orchid, violet, そして + madrigal.fishbaum.de からの要求を受け付けることになり + ます. その他のホストが rose の LPD にアクセスしようと + しても, LPD はこれを拒否します (訳注:拒否されるのは, + そのホストが <tt>/etc/hosts.equiv</tt> にも含まれてい + ない場合です). + + + <tag/サイズの制限/ + + スプーリングディレクトリがあるファイルシステムに残して + おく必要がある空き容量の大きさを制御することができます. + ローカルプリンタ用のスプーリングディレクトリに + <tt/minfree/ という名前のファイルを作成します. そして, + そのファイルの中にリモートホストからのジョブの要求を受 + け付けるために必要な空き容量のディスクブロックサイズ (1 + ディスクブロック=512バイト) を記します. + + これで, リモートホストのユーザにファイルシステムを満杯 + にされないことが保証されます. この機能を使うと, ローカ + ルホストのユーザに対してある種の優先権を与えることもで + きます. ローカルホストのユーザは, <tt/minfree/ ファイ + ルで指定された値よりもディスクの空き容量が下回った後で + もずっと, ジョブをキューに入れることができるのです. + + 例えば, プリンタ <tt/bamboo/ 用の <tt/minfree/ を作っ + てみましょう. このプリンタのスプーリングディレクトリを + 調べるために, <tt>/etc/printcap</tt> を調べてみましょ + う. 以下に, <tt/bamboo/ のエントリ部分を示します. +<tscreen><verb> +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: +</verb></tscreen> + スプーリングディレクトリは <tt/sd/ で指定されます. + LPD がリモートホストからのジョブを受け付けるために必要 + なファイルシステムの空き容量を3Mバイト (=6144ディスクブ + ロック) にすることにしましょう. +<tscreen><verb> +echo 6144 > /var/spool/lpd/bamboo/minfree +</verb></tscreen> + + <tag/利用ユーザの制限/ + + <tt>/etc/printcap</tt> の <tt/rs/ 項目を指定することで, + ローカルプリンタを利用できるリモートホストのユーザを制 + 限することができます. ローカルホストに接続されたプリン + タ用のエントリに <tt/rs/ 項目が指定されている場合, + LPD は印字を要求したユーザのアカウントと同じログイン名 + がローカルホストに登録されている/em/場合に限り/, その + ジョブが受け付けられます. そうでないユーザからのジョブ + は LPD は拒否します. + + この機能は, (例えば) 複数の部署がネットワークを共有して + おり, この内のあるユーザが部署の境界を越えて活動してい + る場合には特に有用です. そのようなユーザに対して, シス + テムのアカウントを与えるだけで, これらのユーザは自分が + 所属する部署のシステムからそのシステムに接続されている + プリンタを使用することができます. これらのユーザにはむ + しろ, プリンタの使用<em/だけ/を認め, その他のコンピュー + タ資源を利用させたくないときは, それらのユーザにはホー + ムディレクトリを与えず, ログインシェルはシェルとしては + 何の役にも立たない <tt>/usr/bin/false</tt> などを指定 + して, これらのユーザのアカウントはプリンタ用の「形式的 + な」ものとします. + </descrip> + + <sect1><heading> プリンタの利用に対する課金 <label + id="printing:advanced:acct"></heading> + + <p> という訳で, 印字するためには料金をとることが必要です. 取ら + ない理由などありましょうか. 紙やインクにはお金がかかります. そ + して, プリンタの維持費もかかります. プリンタには可動部分が搭載 + されており, これらの部分は壊れやすいという傾向があります. プリ + ンタや, その利用形態, 維持費について調査をし, 1ページ (1フィー + ト, 1メートルなど) 当たりにかかるコストを調べておいてください. + これに基づき, プリンタの利用に対する課金を, 実際に, どのように + 始めればよいのでしょうか. + + さて, 残念ながら, この部分に関しては LPD スプーリングシステム + はほとんど役に立ちません. 課金は使用しているプリンタの種類, 印 + 字するもののファイルの形式, プリンタの利用に対する課金での<em/ + あなた自身の/要求に大きく左右されます. + + 課金システムを実現するためには, プリンタのテキストフィルタ (プ + レインテキストのジョブに対して課金するため) と変換フィルタ (その + 他のファイル形式に対して課金するため) を変更して, 印字したペー + ジを数えたり, プリンタに印字したページ数を取得するための要求を + 送る必要があります. ただし, 出力フィルタのみを利用している場合 + は, 課金をおこなうことができません. フィルタに関しては, 「<ref + name="フィルタ" id="printing:advanced:filter-intro">」をご覧く + ださい. + + 一般に, 課金方式には次の2つがあります. + <itemize> + <item><em/定期的に課金する方法/はよく利用される方法です. + この理由は, 恐らく, 比較的簡単に実現できるからです. 誰 + かがジョブを印字する度に, フィルタはそのユーザ名, ホス + ト名, 印字したページ数を課金データファイルに記録します. + 毎月, 毎学期, 毎年, あるいは, お好みの時期に, 様々なプ + リンタの課金用ファイルを集め, それぞれのユーザが印字し + たページ数を合計し, その分の課金をおこないます. 次回の課金 + 時期のためのデータを0にして課金を再開するために, この + 処理をおこなった後, すべてのログファイルを削除し, + + <item><em/利用毎に課金する方法/はあまり利用されていません. + これは, 実現するのが比較的難しいからです. この方式では, + プリンタを使用したらすぐに, フィルタがユーザにその利用 + に対する課金をおこないます. ディスククオータのように, 課金 + 作業は瞬時におこなわれます. この方式では, ユーザのアカウン + トが赤字になる場合に, ユーザが印字をおこなうことを拒否する + ことができます. また, ユーザに「プリンタ版 quota」を + 調べたり, 調整したりする方法を提供したいと思うかもしれ + ません. これを実現するためには, ユーザとその quota を + 追跡するために, あるデータベース用のコードが必要となり + ます. + </itemize> + + LPD スプーリングシステムでは, 両方式を簡単にですがサポー + トしています. これは, (ほとんどの場合で) 印字作業をフィ + ルタがおこなっていたように, 課金作業もこのためのコードも用 + 意することで実現されています. しかし, 明るい面もありま + す. それは, 課金方式に関して, 非常に大きな柔軟性が与え + られたということです. 例えば, 「定期的に課金する方法」 + か, 「利用毎に課金する方法」のどちらかを選びまず, そし + て, どんな情報 (ユーザ名, ホスト名, ジョブのタイプ, 印 + 字された頁数, 使用した紙の大きさ, 印字をするために要した + 時間など) をログに記録するかを決めます. 以上のことをおこな + うには, 上記の情報を保持するために, フィルタを変更しな + くてはなりません. + + + + <sect2><heading> 手軽なプリンタ課金方法</heading> + + <p> FreeBSD には, 「定期的に課金する方法」による課金をすぐに + 設定できるように, 2個のプログラムを添付しています. そ + の内の1つはテキストフィルタ <tt/lpf/ で, これについて + は, 「<ref id="printing:advanced:lpf" name="テキストフィ + ルタ lpf">」をご覧ください. もう1つは, <tt/pac/ で, + これはプリンタの課金データファイルからのエントリを集め, + これを合計するプログラムです. + + 「<ref id="printing:advanced:filters" name="フィルタは + どのように機能しているか">」で述べたように, LPD では + テキストフィルタや変換フィルタを起動しますが, そのコマ + ンドラインで使用している課金データファイルの名前が指定 + されます. 両フィルタはこの引数を使って, どの課金データ + ファイルのエントリに書き込めばよいのかを知ることができ + ます. このファイルの名前は <tt>/etc/printcap</tt> 中の + <tt/af/ 項目によって指定されます. このファイルが絶対パ + スで指定されない場合は, スプーリングディレクトリからの + 相対パスとして扱われます. + + LPD は, 紙のページの幅と行数 (<tt/pw/ と <tt/pl/ 項目で + 指定される) を引数として <tt/lpf/ を起動します. + <tt/lpf/ では, 何ページ印字したかを決定するためにこれ + らの引数を使用します. ファイルをプリンタに送った後, 課 + 金情報を課金データファイルに書き込みます. このファイル + は次のようになります. +<tscreen><verb> + 2.00 rose:andy + 3.00 rose:kelly + 3.00 orchid:mary + 5.00 orchid:mary + 2.00 orchid:zhang +</verb></tscreen> + 課金データファイルはプリンタ毎に分けて作るべきです. こ + れは, <tt/lpf/ にはデータファイルをロックする機構が組 + み込まれていないためです. したがって, <tt/lpf/ が2つ起動 + されたとき, 同じファイルに同時に書き込みをおこなった場合, + お互いのエントリが破壊されてしまうかもしれません. 課金 + 用ファイルを各プリンタ毎に確実に分けるには, + <tt>/etc/printcap</tt> 中の <tt/af=acct/ 項目を使いま + す. + + プリンタの利用に対してユーザに課金する準備ができたら, + スプーリングディレクトリに移動した後, <tt/pac/ と入力 + してください. 次のような, ドル中心主義の課金リストが表 + 示されます(訳注:ドル中心主義という表現は, 表示がドルで + 出ることへの著者の皮肉でしょう. セントがあるので小数点 + 以下が表示されますが, この機能も日本では邪魔ですね). +<code> + 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 +</code> + <tt/pac/ が受け付ける引数には次のようなものがあります. + <descrip> + <tag/<tt/-P<it/printer/// + + プリンタ <it/printer/ の利用に対する課金リストを作成し + ます. このオプションは, <tt>/etc/printcap</tt> の + <tt/af/ が絶対パスで指定されていた場合に限り, 動作しま + す. + + <tag/<tt/-c// + + ユーザ名のアルファベット順ではなく, 課金額の低い順にリ + ストを並べます. + + <tag/<tt/-m// + + 課金データファイルにあるホスト名を無視します. このオプショ + ンを使用すると, ホスト alpha のユーザ smith とホスト + gamma のユーザ smith は同一人物として扱われます. この + オプションが指定されない場合は, 両者は別なユーザとして + 扱います. + + <tag/<tt/-p<it/price/// + + + <tt>/etc/printcap</tt> の <tt/pc/ 項目で指定された値, + または, デフォルトの値 (2セント) に代わり, 紙1ページ, ま + たは, 1フィート当たりの価格を指定します. <it/price/ + として, 浮動小数点数を指定することができます. + + <tag/<tt/-r// + + リストの並べる順番を逆順にします. + + <tag/<tt/-s// + + 課金リストを作成し, 課金データファイルを削除します. + + <tag/<tt/<it/names.../// + + ユーザ <it/names/ に対する課金情報のみを表示します. + </descrip> + + <tt/pac/ が生成するデフォルトのリストには, 各ホストのユーザ別 + に印字ページ数が表示されます. (ユーザがサイト内のすべてのホスト + を使用できるため) ホスト名の情報が意味を持たない場合, + <tt/pac -m/ を実行してください. 次のようなリストが得られます. + +<code> + 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 +</code> + 課金額を決めるために, <tt/pac/ は <tt>/etc/printcap</tt> ファ + イルの <tt/pc/ 項目で指定された値 (デフォルト値は200, すなわち1 + ページ当たり2セント) を使います. この項目で, 印字物に課金したい + と思う1ページ当たり, または, 1フィート当たりの価格を100分の1セ + ント単位で指定します. <tt/pac/ を <tt/-p/ オプション付きで起動 + すると, この値を置き換えることができます. この <tt/-p/ オプショ + ンで指定する額の単位は, 100分の1セント単位ではなく, ドル単位で + す. 例えば, 次の指定では, 1ページ当たりの単価が1ドル50セントに + なります. +<tscreen><verb> +pac -p1.50 +</verb></tscreen> + このオプションを使うと, 実際の課金額を集計することができます. + + 最後に, <tt/pac -s/ を起動すると, 課金情報は課金データ累計ファ + イルに保存されます. このファイルの名前は, プリンタの課金データ + ファイルの後ろに <tt/_sum/ を付けたものとなります. そして, 課 + 金データファイルは削除されます. 次に <tt/pac/ が起動されると, + その時点までの累計金額を得るために, 課金データ累計ファイルが読 + み込まれ, 通常の課金データファイルからの情報に加算されます. + + + <sect2><heading> 印字されたページ数をどのように数えるか? + </heading> + + <p> 課金を, リモートホストからの印字でさえも, 正確におこなうため + には, ジョブで使用された紙が何ページであるかを特定でき + る必要があります. このことは, プリンタ利用に対する課金 + をおこなう上の根本的な問題です. + + プレインテキストのジョブの場合, 問題を解決するのはさほ + ど難しくはありません. ジョブが何行であったかを数え, プ + リンタがサポートしている紙1ページに印字できる最大の行 + 数と比較すればよいのです. 重ね打ちするために利用される + ファイル中のバックスペース文字や, 物理的に複数の行に渡 + る長い論理行に対する取り扱いを忘れずにおこなってください. + + (「<ref id="printing:advanced:lpf" name="テキストフィ + ルタ lpf">」で紹介した) テキストフィルタ <tt/lpf/ では, + 課金をおこなうときに, これらの取り扱いをおこなってくれます. 課 + 金をおこなうために必要なテキストフィルタを作成している方は, + <tt/lpf/ のソースコードが参考になるでしょう. + + これに対して, 他のファイル形式の処理はどのようにすれば + よいのでしょうか. + + まず, DVI から LaserJet, または, DVI から PostScript + への変換の場合, フィルタが <tt/dvilj/ や <tt/dvips/ の + 出力メッセージを解析することで, 何ページ分の変換がおこなわ + れたかを知ることができます. 他のファイル形式とその変換 + プログラムに関しても, 同様のことができるかもしれません. + + しかし, この方式には問題点があります. それは, 変換され + たページがすべて印字されるとは限らないということです. 例 + えば, プリンタが紙詰まりを起こしたり, トナー切れになっ + たり, はたまた, 爆発したりするかもしれません. そのよう + な状況により印字が途中で中止されたとしても, この方式で + は, ユーザは全ページ分の料金を課されてしまうのです. + + それでは, どのような対策をたてることができるのでしょう + か. + + <em/正確な/課金をおこなうための唯一の<em/確実な/方法は, 何 + ページ印字したのかを知らせることができるプリンタを入手 + し, これをシリアルポートかネットワークに接続することで + す. ほとんどすべての PostScript プリンタではこの概念 + がサポートされています. 他のプリンタも同様です (Imagen + レーザプリンタをネットワーク接続するなど). それぞれの + プリンタのフィルタを, ジョブを印字した後で印字ページ数 + を得るように, 変更してください. そして, 課金情報はここ + で得られた値<em/のみに/基づいて記録してください. 行数 + を数えたり, エラーが生じやすいファイルの調査は必要とさ + れません. + + もちろん, 気前よく印字料 + 金をすべて無料にすることもできます. + + <sect><heading> 標準スプーラの代替品 <label + id="printing:lpd-alternatives"></heading> + + <p> このマニュアルを最初から通読されている方ならば, ここまでで, + FreeBSD 付属の LPD スプーリングシステムに関して知っておくべき + ことすべてを学ばれたことと思います. 多分, このシステムに + あるたくさんの欠点について認識できたことでしょう. すると, + 「(FreeBSD 上で動作する) スプーリングシステムには他にどのような + ものがあるのか」という疑問が自然と湧いてきます. + + 残念ながら, 著者は代替のスプーラを<em/2つ/だけしか探し出すこと + ができませんでした. そして, それぞれはほとんど同一のものです. + 以下に, 両システムの紹介をおこないます. + <descrip> + <tag/PLP (Portable Line Printer スプーリングシステム) / + + PLP は Patrick Powell によって開発されたソフトウエアを + ベースにされており, インタネット規模のグループの開発者 + によって管理されていました. このソフトの主要サイトは「 + <htmlurl + url="ftp://ftp.iona.ie/pub/plp" + name="ftp://ftp.iona.ie/pub/plp">」です. + 「<htmlurl + url="http://www.iona.ie:8000/www/hyplan/jmason/plp.html" + name="web page">」にもあります. + + + PLP は BSD LPD スプーラと極めて似ていますが, 以下のも + のを含むホストの機能が自慢です. + <itemize> + <item> ネットワークサポートの強化. ネットワーク接続され + るプリンタのサポートや NIS で管理可能な printcap ファ + イル, NFS マウントされるスプーリングディレクトリの機 + 能が組み込まれています. + + <item> 洗練されたなキュー管理. 1つのキューで複数のプリン + タに対応可能. キュー間でジョブを転送したり, キューのリ + ダイレクトができます. + + <item> リモートプリンタの制御機能 + + <item> ジョブの優先順位付け + + <item> 拡張性のあるセキュリティとアクセスオプション + </itemize> + + <tag/LPRng/ + + LPRng は, その称するところの意味は「LPR: the Next + Generation」ですが, PLP を完全に書き換えたものになっ + ています. Patrick Powell と Justin Mason (PLP の主要 + なの管理者) の共同で LPRng が作成されました. LPRng の + 主要サイトは「 + <htmlurl url="ftp://dickory.sdsu.edu/pub/LPRng" + name="ftp://dickory.sdsu.edu/pub/LPRng">」です. + </descrip> + + + <sect><heading> 謝辞 </heading> + + <p> このドキュメントの開発の手助けをして頂いた以下の方々に感謝の + 意を表わしたいと思います. + + <descrip> + <tag/Daniel Eischen <tt/<deischen@iworks.interworks.org>// + + 精読するためのあり余るほどの HP 用フィルタを提供してく + れたことに. + + <tag/&a.jehamby;/ + + 提供して頂いた Ghostscript から HP へのフィルタに. + + <tag/私の妻, Mary Kelly <tt/<urquhart@argyre.colorado.edu>// + + 彼女と一緒にいるよりもずっと長い時間を FreeBSD のため + に費やすことを許してくれたことに. + + </descrip> diff --git a/share/doc/ja_JP.EUC/handbook/quotas.sgml b/share/doc/ja_JP.EUC/handbook/quotas.sgml new file mode 100644 index 000000000000..e17877e10b5f --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/quotas.sgml @@ -0,0 +1,227 @@ +<!-- This is an SGML document in the linuxdoc DTD describing + disk quotas under FreeBSD. By Mike Pritchard, 1996. + + $Id$ + The FreeBSD Japanese Documentation Project + Original revision: 1.3 + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> + + <article> + <title> ディスク クォータ + <author> Mike Pritchard <tt/mpp@FreeBSD.org/ + <date> 26 February 1996, (c) 1996 + + <abstract> このドキュメントは FreeBSD 上での ディスククォータ + (ディスクスペースの使用量制限) についての設定/管理方法について + 記述されています。</abstract> + + <toc> +--> + + <chapt><heading>ディスク クォータ<label id="quotas"></heading> + +<p><em>原作: &a.mpp;<newline> +26 February 1996 </em>. + +<p><em>訳者: &a.mihoko;<newline> +6 September 1996 </em>. + + クォータシステムは、オペレーティングシステムのオプション機能で、 + 各ファイルシステム上で ユーザやグループのメンバが使用するディスク + スペースの総量を規制したり、作成できるファイルの個数を制限したりす + ることができます。 + この機能は、各ユーザ、各グループごとに使用できる資源の総量を制限で + きるようなタイムシェアリングシステム上でもっともよく使用されていま + す。これは、一人のユーザが、使用可能な全てのディスクスペースを使い + きってしまうことを防止できます。 + +<sect><heading>ディスククォータを使用するための設定</heading> + + <p>ディスククォータを使用しようとする前に、あなたが使用しているカー + ネルで、クォータが組み込まれているかどうかを確認する必要があります。 + クォータを使用できるカーネルを構築するためには、カーネルコンフィギュ + レーションファイルに、次の行を追加してください: +<verb> +options QUOTA +</verb> + 標準のGENERIC カーネルでは、この機能は有効になっていません。 + したがって、ディスククォータを使用するためには、 + カーネルをコンフィグレーションして構築しなおし、そのカーネ + ルをインストールしなければいけません。カーネルの構築方法について + の詳細情報は、 + <ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション"> + を参照してください。 + + <p>次に、ファイル <tt>/etc/sysconfig</tt> の中で、ディスククォー + タ機能を、使用可能に設定する必要があります。 + そのためには、以下の行を変更します: +<verb> +quotas=NO +</verb> +を次のように: +<verb> +quotas=YES +</verb> + + <p>最後に、各ファイルシステム毎にディスククォータを設定する + ために、ファイル <tt>/etc/fstab</tt> を編集する必要があります。 + 全てのファイルシステムに対して、ユーザ又はグループのいずれかのクォー + タを設定することも、ユーザとグループの両方のクォータを設定すること + もできます。 + + <p>ファイルシステム上で、ユーザ毎のクォータを設定するためには、 + <tt>userquota</tt> オプションを、ファイル <tt>/etc/fstab</tt> の中 + で、クォータを設定したいファイルシステムのエントリののオプションフィー + ルドに追加してください。 例えば: +<verb> +/dev/sd1s2g /home ufs rw,userquota 1 2 +</verb> + + <p>同様に、グループのクォータを設定するためには、 + <tt>groupquota</tt> オプションを <tt>userquota</tt> の代わりに使用 + してください。ユーザとグループの両方のクォータを設定するためには、 + 次のようにエントリを変更してください: +<verb> +/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 +</verb> + + <p>デフォルトでは、クォータファイルは ファイルシステムの root ディ + レクトリ上に、ユーザとグループのクォータに対して それぞれ + <tt>quota.user</tt> と <tt>quota.group</tt> という名前で置いてあり + ます。詳細情報は、<tt>man fstab</tt> を御覧ください。 + man ページには、クォータファイルを別な場所に置くことができると書い + てありますが、さまざまな クォータユーティリティのうち、この機能を + 適切に処理できていないものがあるので、クォータファイルをデフォルト + の場所以外に置くことは勧められません。 + + <p>ここまで準備ができたら、新しいカーネルを使って、システムを立ち + 上げ直してください。 + <tt>/etc/rc</tt> ファイルが、自動的に適切なコマンドを起動してくれ + 、あなたが <tt>/etc/fstab</tt> ファイルで使用可能にした全てのクォー + タに対して、初期クォータファイルを作成してくれます。 + したがって、手動で サイズ 0 のクォータファイルを作成する必要はあり + ません。 + + <p>通常の作業の流れでは、手動で <tt>quotacheck</tt>、 + <tt>quotaon</tt>、または <tt>quotaoff</tt> コマンドを起動すべきで + はありません。しかしながら、それらの作業について詳しく知りたい場合に + は、man ページを御覧ください。 + +<sect><heading>クォータ制限の設定</heading> + + <p>一旦システムのクォータを有効に設定したら、 + 本当にクォータが使用可能になっていることを確かめてください。 + これを簡単に確かめるには、<tt>quota -v</tt> コマンドを実行してみて + ください。ディスク使用量の総計と、クォータが設定されている各ファイ + ルシステム毎の現在のクォータ制限が表示されます。 + + <p>さてこれで、<tt>edquota</tt> コマンドによって、クォータ制限をか + ける準備ができました。 + + <p> ユーザまたはグループが使用できるディスクスペースの総計や、作成 + することのできるファイル数に制限をかけるためのオプションがいくつか + あります。 ディスクスペース容量規制 (ブロッククォータ) または ファイ + ル数制限 (iノードクォータ) またはその両方を行うことができます。 + これらの個々の制限は、二つのカテゴリ、すなわち ハード制限とソ + フト制限、でもっと細かく分類できます。 + + <p>ハード制限は越えることができません。ユーザがハード制限に到達す + ると、該当するファイルシステム上でディスクスペースを確保することが + できなくなります。 例えば、もしユーザがファイルシステム上で 500 ブ + ロックのハード的制限をされていて、かつ、現在、490 ブロック使用して + いたとすると、ユーザはあと 10 ブロックしか確保できません。 + 11ブロック目を確保しようとすると、失敗します。 + + <p>一方、ソフト制限は、定められたある一定の期間以内ならば制限を越 + えることができます。この一定期間は、猶予期間と呼ばれています。 + 猶予期間のデフォルトは 1週間です。もし、ユーザが猶予期間を過ぎても + ソフト制限を越えて使用し続けていた場合には、ソフト制限はハード制限 + に切り替わり、もはやこれ以上は、ディスクスペースを確保できなくなり + ます。ユーザのディスク使用量がソフト制限以下に戻った時に、猶予期間 + がリセットされます。 + + <p>以下は、<tt>edquota</tt> コマンドを実行した時の出力例です。 + <tt>edquota</tt> コマンドが起動されると、<tt>EDITOR</tt> 環境変数 + で定義されたエディタ、または、<tt>EDITOR</tt> 環境変数が設定されて + いない場合には <tt>vi</tt> エディタが起動され、クォータ制限を編集 + することができます。 +<verb> +# edquota -u test +Quotas for user test: +/usr: blocks in use: 65, limits (soft = 50, hard = 75) + inodes in use: 7, limits (soft = 50, hard = 60) +/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) + inodes in use: 0, limits (soft = 50, hard = 60) +</verb> + 通常は、クォータが設定されているファイルシステム毎に2行の表示が + 行われます。1行は、ブロック制限に関する情報で、もう1行は、i ノード + 制限に関する情報です。クォータ制限の値を変更したい値に書き換えてく + ださい。例えば、ユーザのブロック制限を、50 ブロックまでのソ + フト制限と 75 ブロックまでのハード制限から、500 ブロックまでのソフ + ト制限と 600 ブロックまでのハード制限にしたい場合は、 + 次のように書き換えます: +<verb> +/usr: blocks in use: 65, limits (soft = 50, hard = 75) +</verb> +を次のように: +<verb> +/usr: blocks in use: 65, limits (soft = 500, hard = 600) +</verb> + 新しいクォータ制限は、エディタを終了した時に置き換えられます。 + + <p>uid の範囲によってクォータを設定する個とも可能です。 + そのためには <tt>edquota</tt> コマンドで、<tt>-p</tt> オプションを + 使用します。まずはじめに、かけたいクォータ制限を、一人のユーザに対 + して設定します。それから次のコマンドを実行します + <tt>edquota -p protouser startuid-enduid</tt>。 + 例えば、もし、ユーザ <tt>test</tt> がクォータ制限をかけられていた + とすると、次のコマンドは、同じ制限を、uid 10,000 から 19,999 まで + のユーザにかけることができます: +<verb> +edquota -p test 10000-19999 +</verb> + + <p>uid の範囲によって制限をかけることができる機能は、2.1 がリリー + スされたあとに追加されました。もし、2.1 のシステム上で、この機能を + 必要とする場合には、新しい edquota を入手する必要があります。 + + <p>詳細情報は <tt>man edquota</tt> を御覧ください。 + +<sect><heading>クォータ制限およびディスク使用状況のチェック</heading> + + <p>クォータ制限およびディスク使用状況をチェックするには、 + <tt>quota</tt> または <tt>repquota</tt> コマンドを使用することがで + きます。<tt>quota</tt> コマンドは、各ユーザ、各グループ毎のクォー + タ制限およびディスク使用状況をチェックすることができます。 + スーパーユーザだけが、他のユーザまたは自分が所属していないグループに + 関するクォータ制限とディスク使用状況を調べることができます。 + <tt>repquota</tt> コマンドは、クォータが設定されているファイルシス + テムに対する、全てのクォータ制限およびディスク使用状況の総計を表示 + します。 + + <p>以下は、2つのファイルシステム上でクォータ制限がかけられているユー + ザに対して <tt>quota -v</tt> コマンドを実行した出力結果の例です。 + +<verb> +Disk quotas for user test (uid 1002): + Filesystem blocks quota limit grace files quota limit grace + /usr 65* 50 75 5days 7 50 60 + /usr/var 0 50 75 0 50 60 +</verb> + 上の例では、/usr ファイルシステム上で、このユーザは現在 + 50 ブロックまでのソフト制限を 15 ブロック超過して使用しており、 + 残り 5 日間の猶予期間を設定されています。 + アスタリスク (*) は、ユーザが現在クォータ制限を越えていることを示 + しています。 + + <p>通常、ユーザがディスクスペースを全く使用していないファイルシス + テムは、 たとえ そのファイルシステムにクォータ制限が設定されていた + としても、<tt>quota</tt> コマンドによる出力では表示されません。 + <tt>-v</tt> オプションを付けると、上の例の <tt>/usr/var</tt> ファ + イルシステムのように、これらのファイルシステムも表示します。 + +<sect><heading>* NFS ファイルシステム上でのクォータ</heading> + + <p>このセクションはまだ作成中です。 + diff --git a/share/doc/ja_JP.EUC/handbook/relnotes.sgml b/share/doc/ja_JP.EUC/handbook/relnotes.sgml new file mode 100644 index 000000000000..04b5656a0e7f --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/relnotes.sgml @@ -0,0 +1,571 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.15 --> + +<!-- +<!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> +<linuxdoc><book><chapt>foo +--> + <sect><heading>現在のリリースについて<label id="relnotes"></heading> + + <p>FreeBSD は自由に利用でき Intel i386/i486/Pentium(とその互換 CPU) + の PCで動作する, 4.4BSD-Lite ベースの全ソースつきのリリース + です. これはもともとにカリフォルニア大学バークレイ校 CSRGグループの + ソフトウェアがベースとなっており, NetBSD, 386BSD, そして Free + Software Foundation のソフトウェアなどにより拡張されています. + + 1年前の FreeBSD 2.0 のリリースからみると, FreeBSD は性能, 機能, + 安定性の面で劇的に改善されました. もっとも大きな変化は VM システムに + おける改良で, 統合化された VM/file バッファキャッシュを用いる + ことで性能を向上させながらも FreeBSD のメモリの使用量を減らすことが + できたことです. おかげで, 最低 5MB メモリという制約上でも動作する + ようになりました. その他の拡張としては NIS のクライアントとサーバの + 完全サポート, トランザクション TCP のサポート, ダイヤルオンデマンド + PPP, 改良 SCSI サブシステム, ISDN の初期サポート, + FDDI や Fast Ethernet(100Mbps)などのサポート, + Adaptech 2940 (WIDE と narrow)のサポートの改良と数百件のバグの修正, + などがあります. + + 私たちはたくさんのユーザからのコメントや提案をまじめに受け取り, + 私たちが正しいと考え, かつ導入の手順が分かりやすいものを提供しようと + 努力しています. この(継続的に進化する)プロセスに対するあなたの意見を + 心からお待ちしています. + + FreeBSD では基本配布セットに加え, 移植されたソフトウェア集 + として 350 を越える人気の高いプログラムを提供しています. + ports (移植ソフトウェア) には http(WWW)サーバから, ゲーム, 言語, + エディタまでありとあらゆるものが含まれています. portsはオリジナル + ソースに対する「差分」という形で表現されており, すべての portsを + 集めても 10MB程度にしかなりません. こうすることで ports の更新を + 容易にし, portsに必要なディスクスペースを小さくすることができます. + portsをコンパイルするには, インストールしたいと思っているプログラムの + ディレクトリに移動し, make と叩くだけで, あとはすべてシステムがやって + くれます. どの portsもオリジナルの配布セットを動的に CDROM または + 近くの FTP サーバから取ってくるので, ディスクは構築したいと思って + いる portsの分だけを準備しておけば十分です. ほとんどの portsは, + すでにコンパイルされた状態で ``package'' として提供されており, + ソースコードからコンパイルしたくない場合, これを使うと (pkg_add と + いうコマンドで) 簡単にインストールできます. + + FreeBSD 2.1 以降のマシンであれば, <bf>/usr/share/doc</bf> + ディレクトリにインストールの手順や FreeBSD を利用する上で有用な + ドキュメントがたくさんあります. + これらのドキュメントは, HTML ブラウザを使って, 以下の URL から + 参照することができます. + + <descrip> + <tag>FreeBSD ハンドブック (英文オリジナル)</tag> + <htmlurl url="file:/usr/share/doc/handbook/handbook.html"> + + <tag>FreeBSD に関する FAQ</tag> + <htmlurl url="file:/usr/share/doc/FAQ/FAQ.html"> + </descrip> + + また, <htmlurl + url="http://www.freebsd.org" + name="http://www.freebsd.org"> にはマスタ + (かなり頻繁に更新されます)がありますので, こちらも参照してください. + + 合衆国の輸出規制のため, FreeBSD のコア配布セットには DES のコードは + 含まれていません. 合衆国国内に限り, DES を使うプログラムなどが, + コア配布セットに加えるパッケージとして提供されています. + 誰でも使えるパッケージは, 別途, 合衆国国外で提供されています. + 合衆国国外からも自由に取得可能な DES の配布セットに関する + 詳細は, <htmlurl + url="../FAQ/FAQ.html" name="FreeBSD FAQ"> にあります. + + FreeBSD 上で必要とされるセキュリティがパスワードだけであり, Sun や + DEC などの別のホストから暗号化されたパスワードをコピーする必要が + ないのであれば, FreeBSD の MD5 ベースのセキュリティで十分です. + この標準のセキュリティモデルは DES よりも適していると私たちは思って + いますし, また, やっかいな輸出規制にもひっかかることはありません. + あなたが合衆国国外にいるなら(あるいは国内にいても)一度試してみて + ください! + +<![ IGNORE [ + <p>Since our first release of FreeBSD 1.0 nearly two + years ago, FreeBSD has changed dramatically. Since + release 2.0, FreeBSD has been based on the Berkeley + 4.4BSD-Lite code rather than the Net2 code used for + previous versions. In addition to clearing the legal + issues that surrounded the Net2 code, the port to 4.4 + has also brought in numerous new features, filesystems + and enhanced driver support. + + Since our release of FreeBSD 2.0 in November of 1994, + the performance, feature set, and stability of FreeBSD + has improved dramatically. The largest change is a + revamped Virtual Memory (VM) system with a merged + virtual memory and file buffer cache. This increases + performance while reducing FreeBSD's memory footprint, + making a system with 4 megabytes of RAM a more + acceptable minimum. Other enhancements include full + NIS client and server support, transaction TCP support, + dial on demand PPP, an improved SCSI subsystem, early + support for ISDN, support for FDDI and 100Mbit Fast + Ethernet adapters, improved support for the Adaptec + 2940 and hundreds of bug fixes. + + We have also taken the comments and suggestions of many + of our users to heart and have attempted to provide + what we hope is a more sane and easily understood + installation process. Your feedback on this constantly + evolving process is especially welcome! + + In addition to the base distributions, FreeBSD offers a + new ported software collection with some 270 commonly + sought-after programs. The list of ports ranges from + World Wide Web (http) servers, to games, languages, + editors and almost everything in between. The entire + ports collection requires only 10MB of storage because + each port contains only the changes required for the + source code to compile on FreeBSD and the information + necessary to automatically retrieve the original + sources. The original distribution for each port you + build is automatically retrieved off of CD-ROM or a via + anonymous ftp, so you need only enough disk space to + build the ports you want. Each port is also provided + as a pre-compiled package which can be installed with + the <tt>pkg_add(1)</tt> command for those who do not + wish to compile their own ports from source. See <ref + id="ports" name="The Ports Collection"> for a more + complete description. + +<!-- XXX make xref + For a list of contributors and a general project + description, please see the file "CONTRIB.FreeBSD" + which should be bundled with your binary distribution. + + Also see the "REGISTER.FreeBSD" file for information on + registering with the "Free BSD user counter". This + counter is for ALL freely available variants of BSD, + not just FreeBSD, and we urge you to register yourself + with it. +--> + + The core of FreeBSD does not contain DES code which + would inhibit its being exported outside the United + States. An add-on package, for use only in the United + States, contains the programs that normally use DES. + The auxiliary packages provided separately can be used + by anyone. A freely exportable European distribution + of DES for our non-U.S. users also exists and is + described in the <url + url="http://www.freebsd.org/FAQ" name="FreeBSD + FAQ">. If password security for FreeBSD is all you + need, and you have no requirement for copying encrypted + passwords from other hosts using DES into FreeBSD + password entries, then FreeBSD's MD5 based security may + be all you require. We feel that our default security + model is more than a match for DES, and without any + messy export issues to deal with. + + FreeBSD 2.0.5 represents the culmination of 2 years of + work and many thousands of man hours put in by an + international development team. We hope you enjoy it! + + <sect1><heading>New feature highlights</heading> + + <p>The following features were added or substantially + improved between the release of 2.0 and this 2.0.5 + release. In order to facilitate better + communication, the person, or persons, responsible + for each enhancement is noted. Any questions + regarding the new functionality should be directed to + them first. + + <sect2><heading>Kernel</heading> + + <p> + <descrip> + + <tag>Merged VM-File Buffer Cache</tag> A merged + VM/buffer cache design greatly enhances overall + system performance and makes it possible to do + a number of more optimal memory allocation + strategies that were not possible before. + + Owner: &a.davidg; and &a.dyson; + + <tag>Network PCB hash optimization</tag> For + systems with a great number of active TCP + connections (WEB and ftp servers, for example), + this greatly speeds up the lookup time required + to match an incoming packet up to its + associated connection. + + Owner: &a.davidg; + + <tag>Name cache optimization</tag> The name-cache + would cache all files of the same name to the + same bucket, which would put for instance all + ".." entries in the same bucket. We added the + parent directory version to frustrate the hash, + and improved the management of the cache in + various other ways while we were at it. + + Owner: &a.phk; and &a.davidg; + + <tag>Less restrictive swap-spaces</tag> The need + to compile the names of the swap devices into + the kernel has been removed. Now + <tt>swapon(8)</tt> will accept any block + devices, up to the maximum number of swap + devices configured in the kernel. + + Owner: &a.phk; and &a.davidg; + + <tag>Hard Wired SCSI Devices</tag> Prior to + 2.0.5, FreeBSD performed dynamic assignment of + unit numbers to SCSI devices as they were + probed, allowing a SCSI device failure to + possibly change unit number assignment. This + could cause filesystems other disks in the + system to be incorrectly mounted, or not + mounted at all. Hard wiring allows static + allocation of unit numbers (and hence device + names) to scsi devices based on SCSI ID and + bus. SCSI configuration occurs in the kernel + config file. Samples of the configuration + syntax can be found in the <tt>scsi(4)</tt> man + page or the LINT kernel config file. + + Owner: &a.dufault; + + Sources involved: <tt>sys/scsi/*</tt> + <tt>usr.sbin/config/*</tt> + + <tag>Slice Support</tag> FreeBSD now supports a + <em>slice</em> abstraction which enhances + FreeBSD's ability to share disks with other + operating systems. This support will allow + FreeBSD to inhabit DOS extended partitions. + + Owner: &a.bde; + + Sources involved: <tt>sys/disklabel.h</tt> + <tt>sys/diskslice.h</tt> <tt>sys/dkbad.h</tt> + <tt>kern/subr_diskslice.c</tt> <tt>kern/subr_dkbad.c</tt> + <tt>i386/isa/diskslice_machdep.c</tt> <tt>i386/isa/wd.c</tt> + <tt>scsi/sd.c</tt> <tt>dev/vn/vn.c</tt> + + <tag>Support for Ontrack Disk Manager Version 6.0</tag> + Support has been added for disks + which use Ontrack Disk Manager. The fdisk + program does <em>not</em> know about it + however, so make all changes using the install + program on the boot.flp or the Ontrack Disk + Manager tool under MS-DOS. + + Owner: &a.phk; + + <tag>Bad144 is back and working</tag> Bad144 + works again, though the semantics are slightly + different than before in that the bad-spots are + kept relative to the slice rather than absolute + on the disk. + + Owner: &a.bde; and &a.phk; + + </descrip> + + <sect2><heading>New device support</heading> + + <sect3><heading>SCSI and CDROM devices</heading> + + <p><descrip> + + <tag>Matsushita/Panasonic (Creative) CD-ROM driver</tag> + The Matsushita/Panasonic CR-562 and + CR-563 drives are now supported when connected to + a Sound Blaster or 100% compatible host adapter. + Up to four host adapters are supported for a + total of 16 CD-ROM drives. The audio functions + are supported with the Karoke variable speed + playback. + + Owner: &a.uhclem; + + Sources involved: <tt>isa/matcd</tt> + + <tag>Adaptec 2742/2842/2940 SCSI driver</tag> The + original 274x/284x driver has evolved + considerably since the 2.0 release of FreeBSD. + We now offer full support for the 2940 series as + well as the Wide models of these cards. The + arbitration bug that caused problems with fast + devices has been corrected and + <em>experimental</em> tagged queuing support has + been added (kernel option + <tt>AHC_TAGENABLE</tt>). John Aycock has also + released the sequencer code under a Berkeley + style copyright making the driver entirely clean + of the GPL. + + Owner: &a.gibbs; + + Sources involved: <tt>isa/aic7770.c</tt> <tt>pci/aic7870.c</tt> + <tt>i386/scsi/*</tt> <tt>sys/dev/aic7xxx/*</tt> + + <tag>NCR5380/NCR53400 SCSI (ProAudio Spectrum) driver</tag> + Owner: &a.core; + + Submitted by: Serge Vakulenko (vak@cronyx.ru) + + Sources involved: <tt>isa/ncr5380.c</tt> + + <tag>Sony CDROM driver</tag> Owner: &a.core; + + Submitted by: Mikael Hybsch (micke@dynas.se) + + Sources involved: <tt>isa/scd.c</tt> + + </descrip> + + <sect3><heading>Serial devices</heading> + + <p><descrip> + + <tag>SDL Communications Riscom/8 Serial Board Driver</tag> + Owner: &a.ache; + + Sources involved: <tt>isa/rc.c</tt> <tt>isa/rcreg.h</tt> + + <tag>Cyclades Cyclom-y Serial Board Driver</tag> + Owner: &a.bde; + + Submitted by: Andrew Werple + (andrew@werple.apana.org.au) and Heikki Suonsivu + (hsu@cs.hut.fi) + + Obtained from: NetBSD + + Sources involved: <tt>isa/cy.c</tt> + + <tag>Cronyx/Sigma sync/async serial driver</tag> + Owner: &a.core; + + Submitted by: Serge Vakulenko + + Sources involved: <tt>isa/cronyx.c</tt> + + </descrip> + + <sect2><heading>Networking</heading> + + <p><descrip> + + <tag>Diskless booting</tag> Diskless booting in 2.0.5 + is much improved over previous releases. The boot + program is in <tt>src/sys/i386/boot/netboot</tt>, + and can be run from an MS-DOS system or burned into + an EPROM. WD, SMC, 3COM and Novell ethernet cards + are currently supported. Local swapping is also + supported. + + <tag>DEC DC21140 Fast Ethernet driver</tag> This + driver supports any of the numerous NICs using the + DC21140 chipset including the 100Mb DEC DE-500-XA + and SMC 9332. + + Owner: &a.core; + + Submitted by: Matt Thomas (thomas@lkg.dec.com) + + Sources involved: <tt>pci/if_de.c</tt> <tt>pci/dc21040.h</tt> + + + <tag>DEC FDDI (DEFPA/DEFEA) driver</tag> Owner: &a.core; + + Submitted by: Matt Thomas (thomas@lkg.dec.com) + + Sources involved: <tt>pci/if_pdq.c</tt> <tt>pci/pdq.c</tt> + <tt>pci/pdq_os.h</tt> <tt>pci/pdqreg.h</tt> + + + <tag>3Com 3c505 (Etherlink/+) NIC driver</tag> Owner: + &a.core; + + Submitted by: Dean Huxley (dean@fsa.ca) + + Obtained from: NetBSD + + Sources involved: <tt>isa/if_eg.c</tt> + + + <tag>Fujitsu MB86960A family of NICs driver</tag> + Owner: &a.core; + + Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp) + + Sources involved: <tt>isa/if_fe.c</tt> + + + <tag>Intel EtherExpress driver</tag> Owner: Rodney + W. Grimes (rgrimes@FreeBSD.org) + + Sources involved: <tt>isa/if_ix.c</tt> <tt>isa/if_ixreg.h</tt> + + + <tag>3Com 3c589 driver</tag> Owner: &a.core; + + Submitted by: "HOSOKAWA Tatsumi" + (hosokawa@mt.cs.keio.ac.jp), Seiji Murata + (seiji@mt.cs.keio.ac.jp) and Noriyuki Takahashi + (hor@aecl.ntt.jp) + + Sources involved: <tt>isa/if_zp.c</tt> + + + <tag>IBM Credit Card Adapter driver</tag> Owner: &a.core; + + Submitted by: "HOSOKAWA Tatsumi" + (hosokawa@mt.cs.keio.ac.jp), + + Sources involved: <tt>isa/pcic.c</tt> <tt>isa/pcic.h</tt> + + + <tag>EDSS1 and 1TR6 ISDN interface driver</tag> + Owner: &a.core; + + Submitted by: Dietmar Friede + (dfriede@drnhh.neuhaus.de) and Juergen Krause + (jkr@saarlink.de) + + Sources involved: <tt>gnu/isdn/*</tt> + + </descrip> + + <sect2><heading>Miscellaneous drivers</heading> + + <p><descrip> + + <tag>Joystick driver</tag> Owner: &a.jmz; + + Sources involved: <tt>isa/joy.c</tt> + + <tag>National Instruments ``LabPC'' driver</tag> Owner: + &a.dufault; + + Sources involved: <tt>isa/labpc.c</tt> + + <tag>WD7000 driver</tag> Owner: Olof Johansson + (offe@ludd.luth.se) + + <tag>Pcvt Console driver</tag> Owner: &a.joerg; + + Submitted by: &a.hm; + + Sources involved: <tt>isa/pcvt/*</tt> + + <tag>BSD-audio emulator for VAT driver</tag> Owner: + Amancio Hasty (ahasty@FreeBSD.org) and + &a.pst; + + Sources involved: <tt>isa/sound/vat_audio.c</tt> + <tt>isa/sound/vat_audioio.h</tt> + + <tag>National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver</tag> + Owner: &a.core; + + Submitted by: Fred Cawthorne + (fcawth@delphi.umd.edu) + + Sources involved: <tt>isa/gpib.c</tt> <tt>isa/gpib.h</tt> + <tt>isa/gpibreg.h</tt> + + <tag>Genius GS-4500 hand scanner driver</tag> Owner: + &a.core; + + Submitted by: Gunther Schadow + (gusw@fub46.zedat.fu-berlin.de) + + Sources involved: <tt>isa/gsc.c</tt> <tt>isa/gscreg.h</tt> + + <tag>CORTEX-I Frame Grabber</tag> Owner: &a.core; + + Submitted by: Paul S. LaFollette, Jr. ( + + Sources involved: <tt>isa/ctx.c</tt> <tt>isa/ctxreg.h</tt> + + + <tag>Video Spigot video capture card</tag> Owner: Jim + Lowe + + </descrip> + + <sect1><heading>Experimental features</heading> + + <p><descrip> + + <tag>UNIONFS and LFS</tag> The unionfs and LFS file + systems are known to be severely broken in FreeBSD + 2.0.5. This is in part due to old bugs that we + have not had time to resolve yet and the need to + update these file systems to deal with the new VM + system. We hope to address these issues in a later + release of FreeBSD. + + <tag>iBCS2 Support</tag> FreeBSD now supports running + iBCS2 compatible binaries. Currently SCO UNIX 3.2.2 + and 3.2.4, and ISC 2.2 COFF are supported. The iBCS2 + emulator is in its early stages and has not been + extensively tested, but it is functional. Most of + SCO's 3.2.2 binaries work, as does an old + INFORMIX-2.10 for SCO. Further testing is necessary + to complete this project. There is also work under + way for ELF and XOUT loaders, and most of the svr4 + syscall wrappers are written. + + Owner: &a.sos; and &a.sef; + + Sources involved: <tt>sys/i386/ibcs2/*</tt> and misc + kernel changes. + + </descrip> +<!-- + <sect1><heading>Reporting problems, making suggestions, submitting code</heading> + + <p>Your suggestions, bug reports and contributions of code + are always valued - please do not hesitate to report any + problems you may find (preferably with a fix attached if + you can!). + + The preferred method to submit bug reports from a machine + with Internet mail connectivity is to use the send-pr + command. Bug reports will be dutifully filed by our + faithful bug-filer program and you can be sure that we will + do our best to respond to all reported bugs as soon as + possible. + + If, for some reason, you are unable to use the send-pr + command to submit a bug report, you can try to send it + to: <tscreen>bugs@FreeBSD.org</tscreen> Otherwise, for + any questions or suggestions, please send mail to: + <tscreen>questions@FreeBSD.org</tscreen> + + Additionally, being a volunteer effort, we are always + happy to have extra hands willing to help - there are + already far more enhancements to be done than we can ever + manage to do by ourselves! To contact us on technical + matters, or with offers of help, you may send mail to: + <tscreen>hackers@FreeBSD.org</tscreen> + + Since these mailing lists can experience significant + amounts of traffic, if you have slow or expensive mail + access and you are only interested in keeping up with + significant FreeBSD events, you may find it preferable to + subscribe to: <tscreen>announce@FreeBSD.org</tscreen> + + All but the freebsd-bugs groups can be freely joined by + anyone wishing to do so. Send mail to &a.majordomo + and include the keyword `help' on a + line by itself somewhere in the body of the message. + This will give you more information on joining the + various lists, accessing archives, etc. There are a + number of mailing lists targeted at special interest + groups not mentioned here, so send mail to majordomo and + ask about them! + +--> +]]> diff --git a/share/doc/ja_JP.EUC/handbook/routing.sgml b/share/doc/ja_JP.EUC/handbook/routing.sgml new file mode 100644 index 000000000000..50e9b2f8cda2 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/routing.sgml @@ -0,0 +1,269 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> --> + + <sect><heading>ゲートウェイとルート<label id="routing"></heading> + + <p><em>原作: &a.gryphon;.<newline>6 October 1995.</em> + <p><em>訳: &a.yuki;.<newline>6 September 1996.</em> + + ある計算機が他の計算機をみつけることができるようにするには, ある + 計算機から他の計算機へ, どのようにたどり着くかを適切に記述するた + めの仕組みが必要です. この仕組みをルーティングと呼びます. 「ルー + ト(経路)」は <bf>destination (目的地) </bf>と <bf>gateway (ゲー + トウェイ) </bf>の 2つのアドレスの組で定義します. あなたが + <em>destination</em> へアクセスしようとした場合, + <em>gateway</em> を通って送られることをこのペアは示しています. + destination には個々のホスト, サブネット, 「デフォルト」の 3つの + タイプがあります. 「デフォルトルート」は他への経路が適用できない + 場合に使われます. のちほどデフォルトルートについて少し述べること + するとして, ここでは, 個々のホスト, インタフェース (「リンク」と + も呼ばれます), イーサネットハードウェアアドレスという 3つのタイ + プのゲートウェイについて説明します. + + <sect1><heading>例</heading> + + <p>以下に示す <tt>netstat -r</tt> の出力の例を使って, ルーティン + グがいろいろと異なっている様子を説明することにします. + +<tscreen><verb> +Destination Gateway Flags Refs Use Netif Expire + +default outside-gw UGSc 37 418 ppp0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 +10.20.30.255 link#1 UHLW 1 2421 +foobar.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.foobar.com link#1 UC 0 0 +224 link#1 UC 0 0 +</verb></tscreen> + + 最初の2行はデフォルトルート(次の節で詳しく説明します)と, + <tt>localhost</tt>への経路を示しています. + + <tt>localhost</tt>のためのインタフェース (<tt>Netif</tt>の欄) + は<tt>lo0</tt>で, これはループバックデバイスとして知られています. + 結局のところ戻るだけなので, この destinationへのすべてのトラフィ + ックが内部的に処理されるのであって, LAN を経由して送られるのでは + ありません. + + 次の行では``<tt>0:e0:...</tt>''というアドレスに注目しましょう. + これはイーサネットハードウェアアドレスです. FreeBSDは自動的に + ローカルなイーサネット上の任意のホスト (この例では<tt>test0</tt>) + を見つけ, イーサネットインタフェース<tt>ed0</tt>の所にそのホスト + への経路を直接つけ加えます. タイムアウト時間 (<tt>Expire</tt>の + 欄) も経路のタイプと結びついており, 指定された時間が経過しても応 + 答がないときに使用します. この場合, 経路情報は自動的に削除されま + す. これらのホストは, RIP(Routing Information Protocol) という, + 最短パスの判定に基づいてローカルホストへの経路を決定する仕組みを + 利用することで認識されます. + + 更に, FreeBSDではローカルサブネット (<tt>10.20.30.255</tt>は + <tt>10.20.30</tt>というサブネットに対するブロードキャストアドレスで, + <tt>foobar.com</tt>はこのサブネットに結びつけられているドメイン名) + への経路情報も加えることができます. <tt>link#1</tt>というの + は, この計算機の最初のイーサネットカードのことをさします. これら + については, 何も追加インタフェースが指定されていないことに気づく + でしょう. + + これらの2つのグループ(ローカルネットワークホストとローカルサブネット) + の両方とも, <tt>routed</tt>と呼ばれるデーモンによって自動的に + 経路が設定されます. + <tt>routed</tt>を動かさなければ, 静的に定義した (つまり具体的に + 設定した) 経路のみ存在することになります. + + <tt>host1</tt> の行は私たちのホストのことで, + イーサネットアドレスで示されています. + 送信側のホストの場合, FreeBSDはイーサネットインタフェースへ + 送るのではなく, ループバックインタフェース + (<tt>lo0</tt>)を使います. + + 2つある<tt>host2</tt>の行は, ifconfigのエイリアス (このようなこと + をする理由については ethernetの章を参照してください) を使ったとき + にどのようになるかを示す例です. <tt>lo0</tt>の後にある<tt>=></tt> + は, インタフェースが (このアドレスがローカルなホストを参照しているので) + ループバックを使っているというだけでなく, エイリアスになっていることも + 示しています. このような経路はエイリアスをサポートしている + ホストにのみ現れます. ローカルネットワーク上の他のすべてのホストでは + 単に<tt>link#1</tt>となります. + + 最後の行(destinationが<tt>224</tt>のサブネット)はマルチキャスト + で扱うものですが, これは他の章で説明します. + + 他の欄については<tt>Flags</tt>について説明する必要があります. + それぞれの経路は欄に示されているように違った属性をもっています. + 以下にいくつかのフラグとこれらが何を意味しているかを示します. + + <descrip> + + <tag/U/ <bf/Up:/ この経路はアクティブです. + + <tag/H/ <bf/Host:/ 経路の destinationが単一のホストです. + + <tag/G/ <bf/Gateway:/ この destinationへ送られると, どこへ送れ + ばよいかを明らかにして, そのリモートシステムへ送られます. + + <tag/S/ <bf/Static:/ この経路はシステムによって自動的に生成 + されたのではなく, 手動で作成されました. + + <tag/C/ <bf/Clone:/ マシンに接続したときにこの経路に基づく + 新しい経路が作られます. このタイプの経路は通常は + ローカルネットワークで使われます. + + <tag/W/ <bf/WasCloned:/ ローカルエリアネットワーク(Clone) + の経路に基づいて自動的に生成された経路であることを示します. + + <tag/L/ <bf/Link:/ イーサネットハードウェアへの参照を含む + 経路です. + + </descrip> + + + <sect1><heading>デフォルトルート</heading> + + <p>ローカルシステムからリモートホストにコネクションを張る + 必要がある場合, 既知のパスが存在するかどうかを確認するためにル + ーティングテーブルをチェッ + クします. 到達するためのパスを知っているサブネットの内部にリモ + ートホストがある場合 (Cloned routes), システムはインタフェース + から接続できるかどうかをチェックします. + + 知っているパスがすべて駄目だった場合でも, システムには + 最後の切り札の <bf>デフォルト</bf>ルートがあります. このルートは + ゲートウェイルート (普通はシステムに 1つしかありません) + の特別なものです. そして, フラグフィールドは必ず ``<tt>c</tt>'' + がマークされています. このゲートウェイは, LAN 内のホストにとっ + て, 外部 (PPPのリンクを経由する場合や, データラインに接続するハー + ドウェアデバイスなど) へ直接接続するマシンすべてのためのものです. + + 外部に対するゲートウェイとして機能するマシンでデフォルトルート + を設定する場合, デフォルトルートは + インターネットサービスプロバイダ(ISP)のサイトのゲートウェ + イマシンになるでしょう. + + それではデフォルトルートの一例を見てみましょう. + 一般的な構成を示します. +<tscreen><verb> +[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] +</verb></tscreen> + + ホスト<tt>Local1</tt>とホスト<tt>Local2</tt>をPPPでISPのターミナルサー + バと接続されているあなたのサイトだとします. ISPはサイト内にロー + カルなネットワークを持っていて, そこにはまざまなものがあり, あな + たの接続するサーバやISPのインターネットへの接続点であるハード + ウェアデバイス(T1-GW)などがあります. + + あなたのマシンのデフォルトルートはそれぞれ次のようになります. + +<tscreen><verb> +host default gateway interface +---- --------------- --------- +Local2 Local1 ethernet +Local1 T1-GW PPP +</verb></tscreen> + + 「なぜ (あるいは、どうやって) Local1 の + デフォルトゲートウェイをISPのサーバでなく + T1-GWにセットするのか」という質問がよくあります. + + コネクションのローカルの側については, PPPのインタフェースは + ISPのローカルネットワーク上のアドレスを用いているため, + ISPのローカルネットワーク上のすべてのマシンへの経路は + 自動的に生成されています. つまり, あなたのマシンは, どのようにT1-GW + まで届くかという経路を既に知っていることになりますから, + ISPサーバに媒介的なトラフィックをかける必要はありません. + + 最後になりましたが, 一般的にローカルネットワークでは ``<tt>...1</tt>' + というアドレスをゲートウェイアドレスとして使います. + ですから (同じ例を用います), あなたのclass-Cのアドレス空間が + <tt>10.20.30</tt>で ISPが<tt>10.9.9</tt>を用いている場合, + デフォルトルートは次のようになります. + +<tscreen><verb> +Local2 (10.20.30.2) --> Local1 (10.20.30.1) +Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) +</verb></tscreen> + + <sect1><heading>マルチホームホスト</heading> + + <p>ここで扱うべき他のタイプの設定があります. それは2つの異なるネットワー + クにまたがるホストです. 技術的にはゲートウェイとして機能するマシン (上 + の例では PPPコネクションを用いています) はマルチホームホストで + す. しかし実際にはこの言葉は, 2つのローカルエリアネットワーク上のサ + イトであるマシンを指す言葉としてのみ使われます. + + 2枚のイーサネットカードを持つマシンが, 別のサブネット + 上にそれぞれアドレスを持っている場合があります. + あるいは, イーサネットカードを1枚持っているマシンで, + ifconfigのエイリアスを使っているかもしれません. + 物理的に分かれている2つのイーサネットのネットワークが使われて + いるならば前者が用いられます. 後者は, 物理的には1つのネットワ + ークセグメントで, 論理的には分かれている 2つのサブネットとする + 場合に用いられます. + + どちらにしても, このマシンがお互いのサブネットへのゲートウェイ + (inbound route) として定義されていることが分かるように, おのお + ののサブネットでルーティングテーブルを設定します. このマシンが + 2 つのサブネットの間のブリッジとして動作するという構成は, パケ + ットのフィルタリングを実装する必要がある場合や, 一方向または双 + 方向のファイアウォールを利用したセキュリティを構築する場合によ + く用いられます. + + <sect1><heading>ルーティングの伝播</heading> + + <p>すでに外部との経路をどのように定義したらよいかは説明しました. + しかし外部から私たちのマシンをどのようにして見 + つけるのかについては説明していません. + + ある特定のアドレス空間 (この例では class-C のサブネット) にお + けるすべてのトラフィックが, 到着したパケットを内部で転送するネ + ットワーク上の特定のホストに送られるようにルーティングテーブル + を設定することができるのは分かっています. + + あなたのサイトにアドレス空間を割り当てる場合, あなたのサブネッ + トへのすべてのトラフィックがすべて PPPリンクを通じてサイトに送 + ってくるようにサービスプロバイダはルーティングテーブルを設定し + ます. しかし, 国境の向こう側のサイトはどのようにしてあなたの + ISPへ送ることを知るのでしょうか? + + 割り当てられているすべてのアドレス空間の経路を維持する (分散し + ている DNS 情報とよく似た) システムがあり, そのインターネット + バックボーンへの接続点を定義しています. 「バックボーン」 + とは国を越え, 世界中のインターネットのトラフィックを運ぶ主要 + な信用できる幹線のことです. どのバックボーンマシンも, あるネット + ワークから特定のバックボーンのマシンへ向かうトラフィックと, + そのバックボーンのマシンからあなたのネットワークに届くサービス + プロバイダまでのチェーンのマスタテーブルのコピーを持っていま + す. + + あなたのサイトが接続(プロバイダからみて内側にある + ことになります) したということを, プロバイダからバックボー + ンサイトへ通知することはプロバイダの仕事です. これが経 + 路の伝搬です. + +<!-- + <sect1><heading>Multicast Routing</heading> +--> + + <sect1><heading>トラブルシューティング</heading> + + <p>ルーティングの伝搬に問題が生じて, いくつかのサイトが + 接続をおこなうことができなくなることがあります. + ルーティングがどこでおかしくなっているかを明らかにするのに + 最も有効なコマンドはおそらく<tt>traceroute(8)</tt>コマンドでしょ + う. このコマンドは, あなたがリモートマシンに対して接続をおこなう + ことができない(例えば<tt>ping(8)</tt>に失敗するような場合) + 場合も, 同じように有効です. + + <tt>traceroute(8)</tt>コマンドは, 接続を試みているリモートホスト + を引数にして実行します. 試みているパスの経由する + ゲートウェイホストを表示し, 最終的には目的のホストに + たどり着くか, コネクションの欠如によって終ってしまうかのどちら + かになります. + + より詳しい情報は, <tt>tracroute</tt>のマニュアルページをみてください. + diff --git a/share/doc/ja_JP.EUC/handbook/scsi.sgml b/share/doc/ja_JP.EUC/handbook/scsi.sgml new file mode 100644 index 000000000000..9cf9521c4c94 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/scsi.sgml @@ -0,0 +1,957 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.19 --> + +<!-- + <title>SCSIの概要と FreeBSDでの使い方</title> + + + <author>(c) 1995-1996, Wilko Bulte, <tt/wilko@yedi.iaf.nl/ + <date>Sat Jul 6 20:57:39 MET DST 1996</date> + Copyright 1995-1996, Wilko C. Bulte, Arnhem, The Netherlands + + + <abstract> + このドキュメントはSCSIの背景, FreeBSDでの使い方, + よくある落し穴について書いてあります. + </abstract> + +--> + + <sect1><heading>SCSIとは?<label id="scsi"></heading> + +<!-- + <p><em>Copyright © 1995, &a.wilko;.<newline>July 6, 1996.</em> +--> + <p><em>原作:&a.wilko;. <newline>July 6, 1996.</em> + + <p><em>訳: &a.yoshiaki;. <newline> + 4 November 1996. </em> + + SCSI は Small Computer Systems Interface (小規模コンピュータシ + ステムインタフェース) の頭文字をとったものです. + これはANSI標準でコンピュータ業界においては最もよく使われるI/O + バスの一つになっています. SCSIはシュガート社 (ミニフロッピーディ + スクを世界で最初に販売しました) の開発した SASI (Shugart + Associates Standard Interface) バスが元になって規格化されました. + + その後の業界の努力により,異なるベンダのデバイスが混在して使え + るようにより厳密な規格へと規格化されました.この結果が ANSIの + SCSI-1規格として認可されました. SCSI-1の仕様は (1985年ごろ + に規格化されました 訳注: SCSI-1の最終案決定は1985年, ANSIの標準 + 規格としての認可は1986年です) すでに現在では時代遅れです. + 現在の標準は SCSI-2 (<ref id="scsi:further-reading" name="さらに詳 + しい情報">を参照してください) で, SCSI-3へ移行していくでしょう. + + 物理的な相互接続の規格に加えて, SCSIではディスクドライブに不可欠な + 論理的な規格 (コマンドセット) も定義しています. + この規格は標準コマンドセット (CCS : Common Command Set) と呼ばれ, + ANSIのSCSI-1とほぼ同時期に制定されました. SCSI-2には (改定された) + CCSが規格の一部として組み込まれました. コマンドはデバイスの種 + 類によって変わります. 例えばスキャナでは Writeコマンドは意味が + ありません. + + SCSIバスは多くの種類があるパラレルバスです. 最も古く, 最も利用 + されているのが 8 bit 幅, シングルエンド (不平衡) 信号, 50線の信号線 + のバスです. (もしシングルエンドの意味が分からなくても気にするこ + とはありません. このドキュメントの中にその説明があります.) よ + り新しい設計では 16 bit幅で平衡信号のバスを使います. この場合, + 転送速度は 20Mbytes/second まで,ケーブルの長さは 25mまで可能です. + SCSI-2では追加のケーブルを使った最大32 bitのバス幅までが含まれ + ます. + 早くも Ultra SCSI (Fast-20とも呼ばれます) と Ultra2 (Fast-40とも + 呼ばれます) が現れています. Fast-20は1秒間に 2000万回の転送 (8bit + バスで20Mbyte/sec), Fast-40は1秒間に 4000万回の転送 (8bitバスで + 40Mbytes/sec) をおこないます. + + 訳注: ここでは電気的な用語としては平衡,不平衡を用いて,バ + スの名称としては基本的にはシングルエンド,ディファレンシャルとしま + した. + + もちろん SCSIバスにはデータ信号だけではなく, 多くのコントロール信 + 号線があります. 複数のデバイスがバスを効率よく共有するための複 + 雑なプロトコルも規格の一部です. SCSI-2ではデータは常に独立した + パリティ信号を使ってチェックされます. SCSI-2以前ではパリティは + オプションでした. + + SCSI-3ではさらに高速なバスタイプが導入され, それと共にケーブル + の線数を減らし, より最大バス長を伸ばしたシリアルSCSIが導入されま + す. SSAや Fiberchannelといった名前を聞いたことはありませんか? + シリアルバスは現在ではまだいずれの方式も普及していません (特に一般的な + FreeBSD環境では) . このためシリアルバスタイプについてはここでは + これ以上は触れません. + + 今までの記述から想像されるように SCSIデバイスはインテリジェント + です. これは SCSIの規格 (ところでこの文書は2インチ以上の厚さがあり + ます) と切り離すことはできません. このため例えばハードディスク + では特定のブロックをさすのに ヘッド/シリンダ/セクタ によって決 + めるのではなく単に必要なブロック番号を指定します. + 巧妙なキャッシュ動作や,不正ブロックは自動置き換えなど + の機能はこの 「インテリジェントデバイス」のアプローチによって可 + 能になっています. + + SCSIバスでは任意のデバイスの組で通信することが可能です. + (訳注: 任意のデバイスがイニシエータになれるという意味です.) + デバイスの機能がそれを許すかどうかは また別の問題ですが, 規格では + 禁止されていません. 信号の衝突を防ぐために2つ + のデバイスはバスを使う前に調停 (arbitrate) をおこなう必要があります. + + SCSIの考え方として古い規格のデバイスと新しい規格のデバイスが同 + じバスの上で動くように規格を作っています. したがって, 古い SCSI-1の + デバイスは SCSI-2バスの上でも普通は動きます. 普通は, とことわった理 + 由は, ある古いデバイスが新しいバスでも問題ない程に (古い) 規格に + 対して十分沿った実装になっているかどうかは絶対的に保証はできな + いということです. 最近のデバイスは普通はよりうまく動作します. そ + の理由は規格化はより厳密になり,デバイスの製造においてより支持 + されるものになって来ているからです. + + 一般的に言って, 単一のバス上で動かすデバイスは SCSI-2あるいはよ + り新しいデバイスであればうまく動く可能性は高いと言えます. + これは新しい 2GBのディスクを手に入れたとしたら古いデバイスを捨 + ててしまわなければならないという意味ではありません. 私のシステ + ムでは SCSI-1以前のディスク, SCSI-2の QICテープユニット,SCSI-1 + のヘリカルスキャンテープユニット (訳注: VTRのような回転ヘッドを + 持ったテープ装置のことです. DATテープドライブもその一つです) , + 2台の SCSI-1 ディスクが一緒に問題なく動いています. ただし効率 + の点から古いデバイスと新しい (= 速い) デバイスを分けたいかもしれ + ません. (訳注: 古いデバイスの中には disconnectをサポートしな + いために一連のコマンド実行中に SCSIバスを占有してしまうデバイス + もあります.) + + <sect2><heading>SCSIの構成要素</heading> + <p> + <sect3><heading> <it>インテリジェント</it> インタフェース</heading> + <p> (訳注:原文では smart interface です) + + 先に述べたように, SCSIデバイスはインテリジェントです. + つまりハードウェア細部にからむ知識は SCSIデバイス自身に + 持たせてしまおうという考え方です. この考 + え方では SCSIデバイスはそれ自身のハードウェアの詳細を知って + います. この場合, ホストシステムはハードディスクがいくつのヘッ + ドを持ち, テープデバイスがいくつのトラックを持つかというよう + なことを知る必要がありません. + もしあなたが知りたいのであれば, 規格で定義されているコマンド + を使ってデバイスにハードウェアの詳細について質問することがで + きます. + + インテリジェントデバイスの利点は明らかです. ホストのデバイス + ドライバはより一般的に書くことができ, 新しいデバイスを導入す + る場合でも変更の必要がありません. + + <sect3><heading>接続でおこなうべきこと, してはならないこと</heading> + <p> + ケーブルの接続には鉄則があります. よい部品を使うことです. バ + スの速度を上げることができ, 多くの災難を防ぐことができます. + + ですから, 金メッキのコネクタ, シールドケーブル, 固定器具付き + の頑丈なコネクタカバーなどを選ぶのは正しいことです. 2つ目の + 鉄則は, ケーブルを必要以上に長くしないことです. + 私は以前にあるマシンでトラブルの 原因を探すのに + 3日間悩んでいましたが, SCSIバスを 1m短 + くすることで問題を解決したことがあります. もちろん, 元のバス + の長さでもSCSIの仕様はきちんと満たしていたのですが. + + <sect2><heading>SCSI バスのタイプ</heading> + <p> + 電気的に互換性のない 2種類のバスのタイプがあります. シングルエ + ンドとディファレンシャルのバスです. これは SCSI + デバイスとコントローラは同一のバス上に混在することのできな + い2つのグループにに大きく分けられるということを意味しています. + しかし,特別なハードウェアを使えばシングルエンドバスをディファ + レンシャルバスに (その逆も) 変換することはできます. これらのバ + スのタイプの違いは次のセクションで説明します. + + SCSI関連のドキュメントでは異なるタイプのバスを一種の用語とし + て略語で表します. これを次の表に示します. + + <itemize> + <item>FWD: Fast Wide Differential (高速 ワイド 平衡) + <item>FND: Fast Narrow Differential (高速 ナロー 平衡) + <item>SE: Single Ended (不平衡) + <item>FN: Fast Narrow (高速 ナロー) + <item>etc. + </itemize> + + 少し想像力を働かせればどのような意味であるかはわかるでしょう. + + ワイド (Wide) はいくらか曖昧で, 16 または 32 bitのバスを示しま + す. 私の知る限りでは, 32 bit のインタフェースは (まだ) 使わ + れていませんので Wide は通常 16 bitを意味します. + + 高速 (Fast) はバスのタイミングがいくつかの点で異なり, ナロー + (8 bit) バスでは 低速 (slow) SCSIバスの 5 Mbytes/sec に対して 10 + Mbytes/sec の能力があります. 前にも述べたように, 20Mbytes/sec や + 40Mbytes/sec のバス速度を持つものも現れてきています + (Fast-20 == Ultra SCSI で Fast-40 == Ultra2 SCSI です). + + データ線の上位 (> 8) はデータの転送とデバイスの指定だけに + 利用されているという点を指摘しておきます. コマンドの送出とス + テータスメッセージ等は下位側の 8 bitのデータ線のみを使います. + この規格によりナローデバイスはワイドバス上でも動作する事がで + きます. 利用できるバスの幅はデバイス間で調停 (ネゴシエーショ + ン) されます. デバイスの IDについてはワイドとナローが混在する + 時には気をつけなければなりません. + + <sect3><heading>シングルエンドバス (不平衡バス) </heading> + <p> + シングルエンド SCSIバスは 5Vと 0Vの電圧 (実際はTTLレベルです) + を信号として使い,それらは共通のグラウンド (GND) レベルを基準 + にします. シングルエンド SCSI 8 bitバスは約25本のグラウンド線 + を持ち, すべてのデバイスを「直線状」に接続しま + す. 基準ではシングルエンドバスは最大の長さは 6mです. これ + は Fast-SCSIデバイスを使う場合は最大長さは 3mに短くなります. + Fast-SCSIでは 5Mbytes/sec ではなく 10Mbytes/sec の転送速度 + が可能になります. + + Fast-20 (Ultra SCSI) と Fast-40ではそれぞれ1秒間に2000万 (20M) + ないしは 4000万 (40M) 回の転送ができます. したがって, Fast-20では + 8bitバスで 20Mbytes/sec, 16bitバスで 40Mbytes/secとなりま + す. Fast-20ではバスの最大の長さは 1.5m, Fast-40では 0.75mに + なります. Fast-20は限界を相当に広げるものなので SCSIバス + に雑音が多い場合はその影響を即座に受けます. + + バス上のいずれかのデバイスが「高速の」転送を利用する場合は + Fastバスの長さの制限を受けるということに注意してください. + + 最近の Fast-SCSI デバイスではバスの長さが実際の問題になり + つつあるのが明らかになっています. これがデファレンシャル + SCSIバスがSCSI-2の規格に導入された理由です. + + コネクタのピン配置やコネクタの種類については SCSI-2の規格 + (<ref id="scsi:further-reading" name="さらに詳しい情報">を + ) を参照してください.コネクタ等について詳細なリ + ストがあります. + + 非標準のケーブルを使うデバイスに気をつけてください. 例えば + Apple (の Macintosh は) 25pin の D-type のコネクタ (シリア + ルポートやパラレルプリンタに使われているコネクタ -- 訳注: + 日本では一般的に D-sub 25pinと言っています) を使っています. + 公式なSCSIバスでは50 pin が必要である事からこのコネクタで + は 「独創的なピン配置」が必要な事が想像できるでしょう. ここ + でおこなわれているようにグラウンド線の数を減らすことはよい考え + ではありません. SCSIの規格通りの 50 pinの接続の方が望まし + いです. Fast-20 や 40 でこのようなケーブルを使おうなんて + 考えてはいけません. + + <sect3><heading>ディファレンシャル (平衡) バス</heading> + <p> + ディファレンシャル SCSIバスは最大長が 25m です. シングルエ + ンド Fast-SCSIバスの 3mとはまったく違います. 平衡信号の背景と + なっている考え方は, それぞれのバスの信号はそ + れぞれ独立したリターン信号線を持つというものです. つまり, + それぞれの信号は (できればより線の) ペアの信号線で伝えられま + す. これら2つの信号線の差分の電圧で信号が「真」(assert) で + あるか「偽」(de-assert) であるか判定されます. かなりの電圧 + がグラウンド電位と信号線ペアの間にかかったとしても影響があ + りません (だからといって 10kVの電圧をかけてみたりしないでく + ださい.. ). + + なぜ平衡信号がよいのかについての説明はこのドキュメントの範 + 囲を越えています. 電気的に平衡信号はノイズマージンの点で + 非常に優れたものとして利用されているということを受け入れて + ください. ディファレンシャルバスは普通は外部接続に利用さ + れています. これは低コストのシングルエンドバスが筐体内の短 + い距離のバスでは非常に多く利用されているからです. + + FreeBSDを使うにおいて, FreeBSDでサポートされているデバイス + ドライバがあるのであればディファレンシャルバスの利用で問題 + になることは何もありません. 例をあげれば, アダプテックの + AHA1740はシングルエンドで, AHA1744はディファレンシャルで + す. 双方のソフトウェアインタフェースはまったく同一です. + + <sect3><heading>ターミネータ</heading> + <p> + SCSIにおける用語でのターミネータとはインピーダンスの + マッチングを正確におこなうための抵抗ネットワークです. インピーダンス + マッチングは反射やリンギングを抑え, バスの信号をきれいにす + る重要なものです. たとえば,あまり状態のよくない回線で長距 + 離の電話をかけた時にあなたは反射をどんなものか感じるかもしれません. + 20Mbytes/sec で信号の伝わる SCSIバスでは信号のエコーはあ + りがたくありません. + + 訳注: 電気信号に限らずすべての波で反射 + という現象は起きます. ここの例はあまり実感がわかないと思う + ので簡単に書きますと, 3mのバスの端からパルスを入れた場合, + 反対の端からの反射波は 20ns後 - 本当は電線中の信号の伝達は + 光速よりも少し遅くなるのでもう少し時間がかかりますが - + に帰ってきます. 10MHzのクロックは1:1のパルスだとすると幅 + 50nsのパルスで, 反射波がやってくる時間とそれほど変わりません. + このため, 場合によっては反射波によってクロックや信号が異常 + になってしまう可能性があります. + + + ターミネータはいろいろな - 洗練されたものもそうでないもの + も - 実現方法があります. もちろん,内蔵のものと外部という + 区別もあります. ほとんどすべての SCSIデバイスにはいくつかの + ソケットがあり,その中には抵抗ネットワーク (集合抵抗) が入っ + ているものもあるかもしれません (いや,おそらく間違いなくあ + るでしょう). ターミネータを + デバイスから外す時は大事にしまっておいてください. SCSIの接 + 続の変更をしようと思った時に必要になるかもしれません. ま + た, それらしい抵抗ネットワークが見つからないこともあります. + この場合, SCSIデバイスは内蔵ターミネータの有効と無効を切替 + えるジャンパがあります. フラットケーブルに取り付ける特別 + なターミネータもあります. 他には外部コネクタのような形をし + たものやケーブルのないコネクタヘッドだけのものもあります. + いろいろと見られるように多くの選択があります. + + どのような場合に単純な抵抗 (パッシブ) ターミネータからアクティ + ブターミネータへ切替えるかという問題があります.アクティブ + ターミネータはいくらか精巧な回路が信号をよりきれいにするた + めに入っています. 一般的に一致する意見としては, 長いバス + を使ったり 高速なデバイスを使う場合はアクティブターミネー + タの有効性は増加すると言えます. SCSI バスですでに問題が起 + きているならアクティブターミネータを試すことを考えていいで + しょう. まず借りることができないか探してみてください. ア + クティブターミネータは非常に高価だそうですから. + + ディファレンシャルとシングルエンドバスのターミネータは互換 + 性がないということを覚えておいてください. これらの2つの種 + 類を <bf>混在させることはできません</bf>. + + OK, ではあなたはターミネータをどこに入れればいいでしょうか? + これは SCSIで最も多く誤解されているところです. しかし, これ + は極めて単純なことです.. ここでのルールは <bf>すべての SCSI + バスは 2個のターミネータをそれぞれの両端に入れる</bf>とい + うことです. つまり 2個であって1個でも3個でもありませ + ん. このルールを受け入れてしたがってください. そうすれば終りの + ない苦しみから救われるでしょう. なぜなら間違ったターミネー + ションは不可解なバグを引き起こす可能性が非常に高いから + です. + + よく陥りやすい落し穴はマシンの内部 (フラット) ケーブルと外部 + ケーブルがコントローラにつながっている場合です. よく見られ + るのはコントローラのターミネータを外すのを忘れることで + す. ターミネータは最後の外部デバイスで必要で, コントローラ + には必要ありません! 一般的に, SCSIバスの接続の変更をする場 + 合はこのようなことに注意をしなければなりません. + + 私自身は, すべてのデバイスとコントローラのターミネータを外し + ています. 2個の外部ターミネータをセントロニクスタイプ (訳注: + 日本ではケーブルに対してこういう言い方はあまりしないのでは + ないでしょうか) 外部ケーブルと内部フラットケーブルのコネク + タの両端に接続しています. こうすることにより接続の変更はか + なり簡単になります. + + 最近のデバイスは, ICターミネータが使われることもあります. + コントロールピンにより無効/有効を設定できる特別のICがあり + ます. これは物理的にデバイスから外す必要がありません. 新し + いホストアダプタではセットアップツール等を使ってソフトウェ + ア的に設定をおこなう場合があります. マニュアルを調べてくださ + い. + + <sect3><heading>ターミネータの電源</heading> + <p> + ここまでの章で議論したターミネータは正常に動作するためには + 電源が必要です. SCSIバス上にはこの目的のために利用される線 + があります. だから特に気にする必要はないと思いますか? + + ところがそうではないのです. それぞれのデバイスはデバイス上 + にあるターミネータソケットに電源を供給することはできま + す. けれども外部ターミネータがある場合やSCSIバスにターミネー + タの電源を供給するデバイスのスイッチがオフになっているよう + な場合にはトラブルが起きるかもしれません. + + イニシエータ (ここではバスの動作を開始-initiate-させるデバ + イスを指します -- 訳注: 簡単に言えばホスト側のアダプタです + がSCSIの規格によれば, 例えばディスク側がコマンドを発行する + ようなシステムがあってもかまわないことになっているのでこう + いう言い方をしています) はターミネータ電源を供給しなければ + なりません. すべてのSCSIデバイスはターミネータの電源を供給す + ることができます (必ずしも供給しなければならないというわけ + ではありません). + + スイッチがオフになっているデバイスがバス上に存在することを + 許すために, ターミネータの電源はダイオードを通して供給され + なければなりません. これはスイッチを切ったデバイスに電流 + が逆流することを防ぐためです. + + 最悪の事態を避けるために, ターミネータの電源は普通はヒュー + ズが入っています. 当然ヒューズは飛ぶかもしれません. この + 場合でもバスが機能停止するとは限りません. 複数のデバイスが + ターミネータの電源を供給しているのであれば, ヒューズが一つ + 飛んでも全体の機能には影響しません. ただ一つの供給線のヒュー + ズが飛んだのであれば確かに問題になるでしょう. 外部ターミネー + タによっては LEDでターミネータ電源が与えられていることを示 + すものもあります. + + 最新の設計ではある程度の時間がたつと 「リセット」され自動復 + 帰するヒューズが使われることもあります. + + <sect3><heading>デバイス アドレッシング</heading> + <p> + SCSIバスでは接続された異なるデバイスを区別して指定できなけ + ればなりません. + + これには SCSIではターゲットIDが使われます. それぞれのデバイ + スは特定のターゲットIDを持ちます. デバイスの IDはジャンパや + DIPスイッチなどで設定できます. より詳しい情報はデバイスの + マニュアルを見てください. + + 複数のデバイスを使う場合は IDの重複に気をつけてください. 重 + 複すると普通は混乱状態になります. 同じ IDを共有しているデバ + イスがI/Oリクエストに答えようと処理をおこなうことが落し穴にな + ります. + + 8 bitバスでは, 最大8台のターゲットまで可能です. 最大8台で + ある理由は, バスの8本のデータ線がデバイスの選択に使われる + からです. バス幅の広いバスでは使えるデバイスの数は増えます. + 同時にバス使用の要求が発生した場合, 最も IDの大きいデバイス + が優先されるという調停がおこなわれます. このことは (ナローバス + では) SCSIホストアダプタの IDは通常7番が使われる理由でもあり + ます. + + さらにサブユニットとして, 規格では ロジカルユニット,短縮形 + で LUNを持つことができます. 一つのターゲットIDが複数の LUNを + 持つことができます. 例えば, テープチェンジャを持つテープ + ドライブは LUN 0をテープドライブ自身, LUN 1をテープチェン + ジャ に与えることができます. このようにして, ホストシス + テムはテープチェンジャの目的のテープユニットの部分を指定す + ることができます. + + <sect3><heading>バスレイアウト</heading> + <p> + SCSIバスは直線状です. つまり, Y接続, スター接続, クモの巣 + 状の接続などの直線以外の接続ではありません. + + 先に議論したターミネータの問題は直線状以外の場合ではより困 + 難になるだろうということに注意してください. + + 電気的特性はそのノイズマージンや全体の信頼性において,直線 + 状のバスのルールに強く依存しています. + + <bf>直線状バスであるというルールにしたがってください!</bf> + + <sect2><heading>FreeBSD で SCSIを使う</heading> + <p> + <sect3><heading>トランスレーション, BIOS, そしてマジック...</heading> + <p> + まず始める前に, 電気的に問題のないバスであるか調べておいてく + ださい. + + SCSIディスクをPCでブートディスクとして使う場合に, PC BIOSに + 関する気まぐれについて知っておく必要があります. PC BIOSは ハー + ドディスクへの低レベル物理インタフェースを利用するように実 + 現されています. したがって, BIOSに (セットアップツールやBIOSビル + トイン セットアップを使って) ディスクの物理パラメタを教えてや + る必要があります. これはヘッドの数, シリンダの数, トラックあ + たりのセクタなどがあり, プリコンペンセーションや書き込み電流を + 減少させるトラック, などのあまりよく知られていないものもあります. + + SCSIディスクはこれらのことをユーザは気にする必要がないはず + だと考えるかもしれません. しかし, 不思議なことに (これらの項 + 目の) セットアップはいまだにあるのです. システム BIOSはブート + 時にFreeBSDのカーネルを読み込むためにSCSIディスクに + /ヘッド/シリンダ/セクタ を指定する方法でアクセスするため, + パラメタを知る必要があるのです. + + AT/EISA/PCIバスなどにあり,ディスクに接続される SCSI ホストア + ダプタや SCSI コントローラは それ自身のオンボードBIOSを持っ + ています. システムの起動時に, SCSI BIOSは システムBIOSのハー + ドディスクのインタフェースルーチンを乗っ取ります. システ + ム BIOSをごまかすために システムセットアップでは普通は + `No hard disk' とします. 簡単ですね? + + SCSI BIOS はドライブの<bf>トランスレーション</bf>と呼ばれる機 + 能を持ちます. これはPCがブートするために作られたドライブテー + ブルをごまかすものです. このトランスレーションは多くは (すべて + の場合ではありません) トラックあたり64あるいは32個のヘッドを + 持つ仮想的なドライブを使います. シリンダの数を変更することで + SCSI BIOS は実際のドライブのサイズに適合させます. 総セクタ数 + を 32 * 64 / 2 で割った結果がメガバイト単位のドライブのサイズ + になります. 2で割っているのは, 通常 512バイトのサイズのセク + タを kByte 単位に変換するためです. + + ではこれですべてうまくいくのでしょうか. いいえ, そういう訳で + はありません. ブート可能なハードディスクのシリンダ数は 1024よ + り多くすることはできないのです. トランスレーションを使った + 場合でもディスクの 1GB以上の領域は見えません. ディスクの容量 + がどんどん増加していくにつれこれは問題になってきました. + + 幸いにして, 単純な解決方法があります. 単に別のトランスレーショ + ンを使えばよいのです. 例えば, 32個に代わり,128個のヘッドを使いま + す. ほとんどの場合, 古いSCSIホストアダプタをアップグレードす + るための新しいバージョンの SCSI BIOS が用意されています. + 新しいアダプタではジャンパ + やセットアップソフトによって SCSI BIOSの使うトランスレーショ + ンが選択できる物もあります. + + ここで非常に重要なことは, ディスク上の<bf>すべての</bf>オペレー + ティングシステムが <bf>同一のトランスレーション</bf>により正 + しいパーティションを得ることです. つまり FreeBSDをインストー + ルする時に, ヘッド/シリンダなどについての質問にあなたのホスト + アダプタが使用しているトランスレートされた値を使わなくてはな + りません. + + トランスレーションによる失敗で見られるのは, ブートしないシス + テムや他のパーティションを上書きしてしまうことです. すべてのシ + ステムが見えるように fdiskを使うべきです. + + あなたはデバイスについてこれとは食い違った話を聞いたことがあ + るかもしれません. 古い FreeBSDのカーネルはブートする時に SCSI + ディスクのジオメトリ情報を報告していました. 私のシステムの + 一つの例を示しましょう. + + <verb> + aha0 targ 0 lun 0: <MICROP 1588-15MB1057404HSP4> + sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512 + </verb> + 最近のカーネルは, 普通はこのような情報を報告しません. たとえば, + このようになっています. + + <verb> + (bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2 + sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors) + </verb> + + なぜこのように変わったのでしょう? + + この情報は SCSIディスク自身から得られます. 最近のディスクで + はよくゾーンビット記録方式 (zone bit recording) という技術が使 + われています. これはドライブの外側のシリンダは内側よりもスペー + スが広いのでトラックあたりのセクタ数を増やすことができるとい + うアイディアです. この結果, 外側のシリンダ上のトラックの容量 + は内側のシリンダよりも大きくなり, 全体ではより大きな容量とな + ります. この場合, ドライブにのジオメトリについての報告は, + 最善のものかどうか疑わしく, ほとんどの場合誤解を招くものであ + ることがわかるでしょう. + ジオメトリを調べる場合, ほとんどの場合は BIOSの用い + ている値を与える方がよい結果となり, <em>BIOSがそのディスクに + ついてまったく関知しないのであれば</em> (例えばブートディスクで + はないなら) 都合のよい仮想のジオメトリを与えればいいでしょう. + + + <sect3><heading>SCSI サブシステムの設計</heading> + <p> + FreeBSDでは階層的な SCSIサブシステムを用いています. 各々異な + るコントローラカードのデバイスドライバが書かれています. この + ドライバはコントローラのハードウェアの詳細を知っています. ド + ライバは SCSIサブシステムのより上位の階層のコマンドを受け取り, + ステータスを報告するインタフェースを持ちます. + + カードのドライバの最上位には, デバイスのクラスのためのいくつ + かの一般的なドライバがあります. 具体的にいうと, テープドライ + ブのためのドライバ (略号は: st), 磁気ディスク (sd), CD-ROM + (cd) などです. これらのソースコードは<tt>/sys/scsi</tt>にあり + ます. マニュアルページ (man) のセクション 4 にはより詳しい内 + 容があるので見てください. + + 多階層の設計は低レベルとより高位のレベルを分離させることがで + きます. 新たに他の種類のハードウェアのサポートを加えることを + より処理しやすい問題にします. + + <sect3><heading>カーネルコンフィグレーション</heading> + <p> + あなたのハードウェア構成にしたがって, カーネルのコンフィグファイ + ルにホストアダプタについて 1行あるいは数行程度の記述をする + 必要があります. + これには I/O アドレスや割り込みなどについての内容も含 + みます. あなたのアダプタのドライバについてのマニュアルページ + にはより多くの情報があるのでよく読んでください. これとは別に + /sys/i386/conf/LINT にはカーネルコンフィグファイルについての + 概要があります. LINTには一般的なものについては可能なすべてのオ + プションが含まれています. ただし, LINTでは実際に動作するカー + ネルを作ることは <em>できません</em>. + + おそらく何をするかは明らかでしょう. カーネルコンフィグファイ + ルは実際のハードウェア構成を反映すべきです. そのように割り込 + みやI/Oアドレス等に合わせてカーネルコンフィグファイルを書か + なければなりません. システムのブート時のメッセージは実際に + 見つけたハードウェアの設定を表示します. + + 例として FreeBSD 2.0.5-Releaseのいくつかのコメント + ([]の中) をつけた LINTカーネルコンフィグファイルを示 + します. + + + <verb> + +# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca' +# +# aha: Adaptec 154x +# ahb: Adaptec 174x +# ahc: Adaptec 274x/284x/294x +# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!) +# bt: Most Buslogic controllers +# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130 +# uha: UltraStore 14F and 34F +# sea: Seagate ST01/02 8 bit controller (slow!) +# wds: Western Digital WD7000 controller (no scatter/gather!). +# + +[ Adaptec AHA274x, 284x などのコントローラ] +controller ahc0 at isa? bio irq ? vector ahcintr # port??? iomem? + +[ Adaptec AHA174x コントローラ] +controller ahb0 at isa? bio irq ? vector ahbintr + +[Ultrastor アダプタ] +controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr + +# Map SCSI buses to specific SCSI adapters +controller scbus0 at ahc0 +controller scbus2 at ahb0 +controller scbus1 at uha0 + +# The actual SCSI devices +disk sd0 at scbus0 target 0 unit 0 [SCSI ディスク 0 は scbus 0, LUN 0] +disk sd1 at scbus0 target 1 [unit を省略すると暗黙で LUN 0] +disk sd2 at scbus1 target 3 [uha0 上の SCSIディスク] +disk sd3 at scbus2 target 4 [ahb0 上の SCSIディスク] +tape st1 at scbus0 target 6 [SCSI テープ は ターゲット (ID)6] +device cd0 at scbus? [最初に見つけた CDROM, 固定にしない] + + </verb> + + 上の例では カーネルは ahc (Adaptec 274x) コントローラをまず + 探し, その次に Adaptec 174x のボードというように順番に探して + 行きます. その下の行の controller の記述ではデバイスの詳細 + を記述して, 対応するバスでターゲット ID と LUN が指定された + ものと一致する場合<em>だけ </em>認識するようにカーネルに伝え + ています. + + 固定された (Wired down) デバイスは 「最初に」ユニット番号が与え + られるので, 「固定」されいないデバイスは同じ種類の「固定」され + たユニット番号の最も大きい番号の1つ上の番号から割り当てられ + ます. + したがって, ターゲットID 2の SCSIテープを加えると, ターゲットID 6 + のテープがユニット番号1に固定されているので, それはst2に設定 + されるでしょう. ブート時に見つからなくても<em>固定されたデバ + イスにはユニット番号が常に割り当てられる</em>ということに注 + 意してください. 固定のデバイスに + 割り当てられたユニット番号は,もしそのデバイスのスイッチがブー + ト時に切られていてもそのデバイスにリザーブされています. + これは, 電源を入れて接続した時のユニット番号が与えられます. + デバイスのユニット番号は SCSIバスのター + ゲットIDとは <em>何の関係もない</em>ことに注意してください. + + 下の例は FreeBSDのバージョン 2.0.5 以前の カーネルコンフィ + グファイルです. 最初の例との違いはデバイスの「固定 (wired + down)」がないことです. 「固定」によりどのSCSIターゲットをどの + デバイスに割り当てるかを記述できるようになりました. + + 下のコンフィグファイルにより構築されたカーネルでは最初に見つ + けた SCSIディスクが sd0になり, 次に見つけたディスクが sd1に, + という具合に割り当てられます. もしディスクの削除や追加をおこなう + と, 他の同じタイプのデバイス (この場合はディスク) のすべてが + 「移動して」しまうかもしれません. これによりそのたびに + <tt>/etc/fstab</tt> を変更する必要があります. + + 古いスタイルでも動きますが, 新しいスタイルを使うことが<em>強 + く</em> 推奨されています. これにより SCSIバスのハードウェアを + どのように変更した場合でもトラブルを避けることができます. + ですから, 2.0.5.R以前の FreeBSDからアップグレードした後に古い + 信頼できるコンフィグファイルを再利用する時はこの部分をチェッ + クして直してください. + + <verb> +[Adaptec 174x用のドライバ] +controller ahb0 at isa? bio irq 11 vector ahbintr +[Adaptec 154x用のドライバ ] +controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr +[Seagate ST01/02インタフェースのドライバ] +controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr +controller scbus0 + +device sd0 [4台のSCSI ディスクのサポート, sd0 から sd3] + +device st0 [2台の SCSI テープのサポート] + +[cdromのドライバ] +device cd0 #Only need one of these, the code dynamically grows + </verb> + + + 両方の例で SCSIディスクがサポートされています. ブート中に + 「固定」の記述がされているタイプ(例えば sd ディスク) のデバ + イスで記述より多くのデバイスが見つかると, + システムは単純に最後の「固定」のデバイスの番号より + 1つずつ増加させた番号をデバイスに割り当てて行きます. もし + 「固定」のデバイスがなければユニット番号は0から始まります. + + <tt>man 4 scsi</tt> によって SCSIサブシステムの最新の情報を + チェックしてください. より詳細なホストアダプタドライバの使い + 方は, たとえば Adaptec 154xドライバの場合は<tt>man 4 + aha</tt> にあります. + + <sect3><heading>カーネルセットアップでの SCSI チューニング</heading> + <p> + 経験的に SCSIバスリセット (ブート時におきます) 後のINQUIRYコマ + ンドに対して応答が遅くなるデバイスがあります. INQUIRYコマン + ドは ブート時にカーネルがどの種類のデバイス (ディスク, テープ, + CDROMなど) がどのターゲットIDに接続されているかを調べるために + 発行します. ちなみにこのプロセスをデバイスプロービング (デバ + イス検出) と言います. + + 「応答の遅いデバイス」の問題を解決するために, FreeBSDは SCSIバ + スをリセットした後に SCSIデバイスの検出をおこなうまでのディレ + イタイムを調整することができます. カーネルコンフィグレーショ + ンファイルの下に示すような行にディレイタイムを設定してくださ + い. + + <verb> +options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device + </verb> + この行ではディレイタイムは 15秒です. 私のシステムでは, 信頼 + できる古い CDROMが認識できるように3秒の値を使っています. もし + デバイスの認識で問題が起きる時は大きな値 (30秒であるとか) から + 始めてください. うまく動いたら,値を減らしてちょうどよい値に + にチューニングしてください. + + + <sect3><heading>Rogue な SCSI デバイス</heading> + <p> + + (訳注: rogue は有名なゲーム, ではなくて 悪党, 群から離れた, 凶暴 + な, という意味) + + SCSIの規定は完全で簡潔なものにしようという努力はされましたが, + 複雑な規定となり, 正確に実現するのは簡単なことではありません. + いくつかのベンダは他よりもよい仕事をしています. + + ここで 「イカレた」デバイスが現れることになります. このような + デバイスは FreeBSD のカーネルにいくらか標準的 + ではない振舞をするものと認識されます. 「イカレた」デバイスは + ブート時にカーネルによって報告されます. 次の例は私の2つのカー + トリッジテープユニットです. + + <verb> +Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: <TANDBERG TDC 3600 -06:> +Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue + +Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: <ARCHIVE VIPER 150 21247-005> +Mar 29 21:16:37 yedi /kernel: st1: Archive Viper 150 is a known rogue + </verb> + + 例えば, あるターゲットIDから実際には1つのデバイスしかないの + にすべての LUNからの応答があるようなデバイスがあるとします. カー + ネルはその特定のターゲットIDに8個の LUNがあると誤解してしまう + かもしれません. このような混乱の起きる原因については読者へ + の課題にしておきます. + + FreeBSDの SCSIサブシステムは 検出時の INQUIRYの応答を見て + 悪い習慣を持つデバイスの認識をしています. INQUIRYの応答にはデ + バイスのファームウェアのバージョン番号が含まれるため, 異なる + 動作をするファームウェアのバージョンを区別することも可能です. + 例えば, /sys/scsi/st.c や /sys/scsi/scsiconf.c を見てくださ + い. どのように行っているか, より多くの情報があります. + + この方法はうまく行きますが, もちろん既知のデバイスがつながっ + ている場合だけうまくいくということに気をつける必要があります. + もしあなた以前に Mumbletech SCSI CDROM (訳注: 架空のメーカ + のデバイスです) を接続した人がいないとしたら, どんな「ワザ」 + を使ってそれを使うか自分で見つけないといけないかもしれません. + + あなたの Mubletech を動かすことができたらその成果を FreeBSDの + 次のリリースへ含めるために FreeBSD開発チームへ送ってくださ + い. 他の Mumbletechの利用者たちはあなたに感謝するでしょう. + + + <sect3><heading>複数の LUNを持つデバイス</heading> + <p> + 単一の SCSI ID上に複数の論理ユニット (LUN) を持つデバイスを使う + ような場合もあるかもしれません. 多くの場合では FreeBSDは LUN 0 + のみを検出します. このような例としては2台の SCSIではないハード + ディスクを SCSIバスにつなぐブリッジボード (例えば古い Sunシステ + ムに見られる Emulex MD21) があります. + + LUN が0ではないデバイスは普通はシステムブート時の検出では + 見つかりません. この問題にうまく対処するには + /sys/scsi/scsiconf.c に適切なエントリを加えてカーネルを再構築 + しなければなりません. + + 以下のように初期化されている構造体を探します. + <verb> + { + T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A", + "mx1", SC_ONE_LU + } + </verb> + + LUNが複数あるあなたの Mumbletech BRIDGE2000 はハードディスク + として働きます. またファームウェアのリビジョン123などを次のよ + うに書き加えます. + + <verb> + { + T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123", + "sd", SC_MORE_LUS + } + </verb> + + 訳注: 複数 LUNに対応するためには構造体の最後の要素を + SC_MORE_LUSにします. エントリを作る必要がある場合は scsiconf.c + にある MBR-7等のエントリを参考にするといいでしょう. + + カーネルは INQUIRYに一致するデータをブート時にテーブルから探し + てこれにしたがって振舞います. より多くの情報はソースコードを見て + ください. + + <sect3><heading>タグ コマンド キューイング</heading> + <p> + 最近の SCSI デバイス, 特に磁気ディスクではタグ コマンド キュー + イング (tagged command queuing: TCQ) がサポートされています. + + 要約すれば, TCQは複数のI/Oリクエストを同時に受けることを可能 + にすることです. デバイスはインテリジェントですから,リクエスト + キューにある処理 (ヘッドのポジショニングなど) の最適化をおこなうこ + とができます. RAID (Redundant Array of Independent + Disks) のようなSCSIデバイスではTCQ機能はデバイスの持つ並列性の + 利点を生かすために不可欠です. + + 各々の I/O リクエストは単一の `tag' (タグ コマンド キューイン + グの名前の由来) が与えられます. FreeBSDはこの tagによりデバ + イスドライバのキューの中のどの I/Oリクエストが完了したかの識 + 別をおこないます. + + TQCのリクエストはデバイスドライバがサポートしていたとしても + あるデバイスのファームウェアではインプリメントが正しくないかもし + れません. このような問題に出会うと非常に不可解な問題につ + ながります. このような場合は TCQ を無効にしてみてください. + + <sect3><heading>バスマスタ ホストアダプタ</heading> + <p> + すべてではありませんが多くの SCSIホストアダプタはバスマスタコ + ントローラです. これはホストCPUにデータ転送の負荷をか + けず, ボード自身がI/Oをおこないます. + + これは FreeBSDのようなマルチタスクのオペレーティングシステム + では大きな利点になります. しかし, 何らかの問題の起きることも + あります. + + 例えば Adaptec 1542 コントローラは ホストバス (ここではISAま + たはATバス) を異なった転送速度に設定できます. コントローラが + 異なるレートに設定できるのはすべてのマザーボードで高速な転送が + できる訳ではないからです. マザーボードに合っていない高速の + データ転送速度を用いた時には, ハングアップやデータの損傷等の + 問題が起きるかもしれません. + + + これを解決する方法は明らかです. より低いデータ転送速度に設定 + してうまく動くか確かめることです. + + Adaptec 1542の場合, 可能な限り高速な転送レートを動的に読み取って, + 正しい決定をおこなうためのオプションをカーネルコンフィグファイルに + 追加することができます. このオプションはデフォルトでは無効に + なっています. + + + <verb> +options "TUNE_1542" #dynamic tune of bus DMA speed + </verb> + + あなたの使うホストアダプタについてのマニュアルページをチェッ + クしてください. また最終的な手段としては究極のドキュメントを + 使ってください (つまりドライバのソースを読んでくださいというこ + とです). + + 訳注: 2.1.5Rの時点ではすべてのドライバに関してマニュアルページ + があるわけではありません. また上の例の TUNE_1542のオプション + も <tt>man aha </tt>にはないようです. ソースのコメントだけで + も一度見ておいてもいいかもしれません. + + + <sect2><heading>問題を突き止める </heading> + <p> + 以下は SCSI で一般的に問題が起きた場合に解決をするためのチェッ + クリストの試みです. これは完全な物ではありません. + + <itemize> + <item> + コネクタとケーブルがゆるんでいないかチェックする. + <item> + ターミネータの場所と数を念には念を入れてチェックする. + <item> + 少なくとも1つのターミネータの電源の供給源があるかチェック + する (特に外部ターミネータを使う場合). + <item> + ターゲットIDが重複していないかチェックする. + <item> + 使用するすべてのデバイスの電源がONになっているかチェックする. + <item> + 必要最小限のデバイスだけの構成を試してみる. + <item> + 可能であれば, ホストアダプタのスピードを遅くする. + <item> + 問題をより単純にするために, タグコマンドキューイングを可能 + であれば無効にする. (NCRベースのホストアダプタについては + man ncrcontrol を見てください) + <item> + カーネルのコンパイルができるのであれば, SCSIDEBUGオプショ + ンをつけて makeして, デバイスをデバッグモードにしてアクセ + スしてみてください. もしそれでも起動時にデバイスが検出 + されないのであれば, デバイスの設定アドレスが間違っている + のかもしれません. また, <tt>/sys/scsi/scsidebug.h </tt>に + あるデバッグレベルを変えてみてください. 検出はされるが + 動かないのであれば, <tt>scsi(8)</tt>コマンドで (SCSIDEBUG + をつけてmakeした) カーネルが動いている状態で動的にデバッグ + レベルを設定することができます. これは guru (UNIXの達人) で + も混乱してしまうほどの非常に大量のデバッグ情報を出すでしょ + う. <tt>man 4 scsi + </tt>にはより正確な情報があります. また<tt>man 8 + scsi</tt> も見てください. + </itemize> + + <sect2><heading>さらに詳しい情報<label id="scsi:further-reading"></heading> + <p> + もしあなたがいくらかは本気で SCSIハッキングをする気があるなら + たぶん正規の規格を持っていたくなるでしょう. + + 承認ずみのアメリカ工業規格は ANSI から購入できます. 住所と電話 + 番号は11 West 42nd Street, 13th Floor, New York, NY 10036, + Sales Dept: (212) 642-4900 です. + また, ANSIの規格および委員会の規格案 (ドラフト) のほとんどはGlobal + Engineering Documentsより買うことができます. 連絡先は 15 + Inverness Way East, Englewood, CO 80112-5704, Phone: (800) + 854-7179, Outside USA and Canada: (303) 792-2181, FAX: (303) 792- + 2192です. + + X3T10のドラフトの多くは電子的に利用できる形で SCSI + BBS (719-574-0424) と ncrinfo.ncr.com の匿名 (anonymous) FTP サ + イトから得ることができます. + + 最新の X3T10委員会のドキュメントは: + <itemize> +<item>AT Attachment (ATA or IDE) [X3.221-1994] (<em>Approved</em>) +<item>ATA Extensions (ATA-2) [X3T10/948D Rev 2i] +<item>Enhanced Small Device Interface (ESDI) [X3.170-1990/X3.170a-1991] (<em>Approved</em>) +<item>Small Computer System Interface - 2 (SCSI-2) [X3.131-1994] (<em>Approved</em>) +<item>SCSI-2 Common Access Method Transport and SCSI Interface Module (CAM) + [X3T10/792D Rev 11] + </itemize> + 追加情報を得ることのできる出版物は: +<itemize> +<item>"SCSI: Understanding the Small Computer System Interface", NCR社 +編. 出版: Prentice Hall, Englewood Cliffs, NJ, 07632 +Phone: (201) 767-5937 ISBN 0-13-796855-8 + +<item>"Basics of SCSI", a SCSI tutorial, Ancot Corporation 編 + Ancot の連絡先: +Phone: (415) 322-5322 Fax: (415) 322-0455 + +<item>"SCSI Interconnection Guide Book", AMP社の出版物 (発行 4/93, カ +タログ 65237) 色々な SCSI コネクタのリスト と ケーブル接続方法のガイド. + AMP 社より入手可能. (800) 522-6752 または (717) 564-0100 + +<item>"Fast Track to SCSI", 富士通によるプロダクトガイド, +入手先: Prentice Hall, Englewood Cliffs, NJ, 07632 +電話: (201) 767-5937 ISBN 0-13-307000-X + +<item>"The SCSI Bench Reference", "The SCSI Encyclopedia", "SCSI Tutor", +ENDL Publications, 14426 Black Walnut Court, Saratoga CA, 95070 +電話: (408) 867-6642 + +<item>"Zadian SCSI Navigator" (クイックリファレンス) および "Discover the Power of SCSI" +(最初の本は1時間のビデオとチュートリアルが付属), Zadian Software, +Suite 214, 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800 + </itemize> + + Usenet のニュースグループ <htmlurl + url="news:comp.periphs.scsi" name="comp.periphs.scsi"> + と <htmlurl url="news:comp.periphs" name="comp.periphs"> + は特により多くの情報を得るには注目すべき場所です. また定期的に + ポストされる SCSI-FAQをここから得ることができます. + + 多くの主要な SCSIデバイスとホストアダプタの供給元は FTP サイト + や BBSを開いています. これらはあなたの持っているデバイスに関す + る貴重な情報源となるでしょう. diff --git a/share/doc/ja_JP.EUC/handbook/sections.sgml b/share/doc/ja_JP.EUC/handbook/sections.sgml new file mode 100644 index 000000000000..d681753078c9 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/sections.sgml @@ -0,0 +1,59 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.17 --> + +<!-- Entities containing all the pieces of the handbook are --> +<!-- defined here --> + +<!ENTITY bibliography SYSTEM "bibliography.sgml"> +<!ENTITY basics SYSTEM "basics.sgml"> +<!ENTITY booting SYSTEM "booting.sgml"> +<!ENTITY contrib SYSTEM "contrib.sgml"> +<!ENTITY ctm SYSTEM "ctm.sgml"> +<!ENTITY current SYSTEM "current.sgml"> +<!ENTITY stable SYSTEM "stable.sgml"> +<!ENTITY crypt SYSTEM "crypt.sgml"> +<!ENTITY development SYSTEM "development.sgml"> +<!ENTITY dialup SYSTEM "dialup.sgml"> +<!ENTITY diskless SYSTEM "diskless.sgml"> +<!ENTITY dma SYSTEM "dma.sgml"> +<!ENTITY eresources SYSTEM "eresources.sgml"> +<!ENTITY esdi SYSTEM "esdi.sgml"> +<!ENTITY firewalls SYSTEM "firewalls.sgml"> +<!ENTITY goals SYSTEM "goals.sgml"> +<!ENTITY glossary SYSTEM "glossary.sgml"> +<!ENTITY history SYSTEM "history.sgml"> +<!ENTITY hw SYSTEM "hw.sgml"> +<!ENTITY install SYSTEM "install.sgml"> +<!ENTITY term SYSTEM "term.sgml"> +<!ENTITY isdn SYSTEM "isdn.sgml"> +<!ENTITY jcontrib SYSTEM "jcontrib.sgml"> +<!ENTITY kerberos SYSTEM "kerberos.sgml"> +<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml"> +<!ENTITY kerneldebug SYSTEM "kerneldebug.sgml"> +<!ENTITY linuxemu SYSTEM "linuxemu.sgml"> +<!ENTITY memoryuse SYSTEM "memoryuse.sgml"> +<!ENTITY mirrors SYSTEM "mirrors.sgml"> +<!ENTITY nfs SYSTEM "nfs.sgml"> +<!ENTITY nutshell SYSTEM "nutshell.sgml"> +<!ENTITY pgpkeys SYSTEM "pgpkeys.sgml"> +<!ENTITY policies SYSTEM "policies.sgml"> +<!ENTITY porting SYSTEM "porting.sgml"> +<!ENTITY ports SYSTEM "ports.sgml"> +<!ENTITY ppp SYSTEM "ppp.sgml"> +<!ENTITY printing SYSTEM "printing.sgml"> +<!ENTITY quotas SYSTEM "quotas.sgml"> +<!ENTITY relnotes SYSTEM "relnotes.sgml"> +<!ENTITY routing SYSTEM "routing.sgml"> +<!ENTITY scsi SYSTEM "scsi.sgml"> +<!ENTITY sio SYSTEM "sio.sgml"> +<!ENTITY cy SYSTEM "cyclades.sgml"> +<!ENTITY skey SYSTEM "skey.sgml"> +<!ENTITY slipc SYSTEM "slipc.sgml"> +<!ENTITY slips SYSTEM "slips.sgml"> +<!ENTITY submitters SYSTEM "submitters.sgml"> +<!ENTITY sup SYSTEM "sup.sgml"> +<!ENTITY synching SYSTEM "synching.sgml"> +<!ENTITY troubleshooting SYSTEM "troubleshooting.sgml"> +<!ENTITY uart SYSTEM "uart.sgml"> +<!ENTITY userppp SYSTEM "userppp.sgml"> diff --git a/share/doc/ja_JP.EUC/handbook/sio.sgml b/share/doc/ja_JP.EUC/handbook/sio.sgml new file mode 100644 index 000000000000..41b3825f80e9 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/sio.sgml @@ -0,0 +1,198 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<!-- +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +]> +--> +<sect2><heading> <tt>sio</tt>ドライバの設定<label id="sio"></heading> + +<p> <tt>sio</tt> ドライバは, NS8250-, NS16450-, NS16550とNS16550A +ベースの EIA RS-232C(CCITT V.24) 通信用インタフェースをサポートします. ま +た, いくつかのマルチポートシリアルカードもサポートされています. 技術的 +な詳細についてはマニュアル<tt>sio(4)</tt>を見てください. + +<sect3><heading>Digi International (DigiBoard) PC/8</heading> + +<p><em>原作: &a.awebster;.<newline> 1995年8月26日.</em> +<p><em>訳: &a.masaki;.<newline>6 September 1996.</em> + +以下にDigi International PC/8Dと16550チップを動作させるための, カーネ +ルconfigの部分を示します. このボードは, 8本の回線にすべてモデムを接続 +した場合でも良好に動作します. + +<tt>options COM_MULTIPORT</tt> を加えるのを忘れないでください. 忘れる +とうまく動作しません! + +<tscreen><verb> +device sio4 at isa? port 0x100 tty flags 0xb05 +device sio5 at isa? port 0x108 tty flags 0xb05 +device sio6 at isa? port 0x110 tty flags 0xb05 +device sio7 at isa? port 0x118 tty flags 0xb05 +device sio8 at isa? port 0x120 tty flags 0xb05 +device sio9 at isa? port 0x128 tty flags 0xb05 +device sio10 at isa? port 0x130 tty flags 0xb05 +device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr +</verb></tscreen> + +ここで各 SIO ポートが割り込みを共有する一つのグループであることを表現 +するために, トリッキーな設定をしなければなりません. フラグ (flags の後 +ろの 16 進数) の下から 2 バイト目にこのグループの最後の SIO ポートの番 +号を設定します. この例では 11 (16進数では 0x0b) ですから, 各デバイスの +フラグは 0xb05 となります. + +<sect3><heading>Boca 16</heading> + +<p><em>寄贈 &a.whiteside;.<newline> 1995年8月26日</em> + +FreeBSD で Boca 16pord のボードを動かすことは簡単ですが, そのた +めにはいくつかの作業が必要です. : + +<enum> + +<item>2.0.5 のデフォルトのカーネルは, マルチポートのサポートを<bf>して +いない</bf> ので, あなたは各ポート毎にデバイスエントリを追加する必要が +あります. つまり必要なオプションを付けて, カーネルの再構築をしなければ +なりません. そのためには, あなたのマシンにカーネルのソースコードが既に +インストールされているか, あなたの替わりの誰かにカーネル再構築をやって +もらう必要があります. </item> + + <item>2番目に, あなたはカーネルオプションを正しく設定するために, あな +たのBoca BoardのIOと割り込みの値を知っている必要があります. </item> + +</enum> + +ひとつ重要なことがあります. Boca 16 に使われている実際の UART チップ +は, Boca 16 のボードではなく, 外付けのコネクタボックスの中に存在します. +コネクタボックスを接続しないと, ポートの検出に失敗するでしょう. 私は, +接続しないまま起動したり, 後から接続しなおしたりした時にどうなるかをテ +ストしていません. どちらも実行しないようお奨めします. + +もしあなたがカスタマイズ済みのカーネルコンフィグレーションファイルを持っ +ていなければ, 一般的な事柄については, <ref id="kernelconfig" +name="FreeBSDカーネルのコンフィグレーション"> +を参考にしてください. 以下にBoca 16のボード +に関係する部分だけを記述します. この例では, あなたがMYKERNELという名前 +のカーネルを使っていて, エディタには viを使っていることを仮定していま +す. + +<enum> +<item>次の1行をconfigファイルに追加してください. +<tscreen><verb> +options COM_MULTIPORT +</verb></tscreen> +</item> + +<item>この <tt>device sio<em>xxx</em></tt>という行を, 必要に応じて 16 +個のデバイス分を追加してください. <em>最後のデバイスにだけ, このボード +の割り込みベクタを記述します</em>. (詳細は <tt>sio(4)</tt> のマニュア +ルページを参照してください.) + +以下の例は, 割り込み 3, ベース IO アドレス 100h の値を持つ Boca Board +の場合です. 各ポートのための IO アドレスは, 100h, 108h, 110h, ... のよ +うに 16 進法で 8 づつ加えていきます. + +<tscreen><verb> +device sio1 at isa? port 0x100 tty flags 0x1005 +device sio2 at isa? port 0x108 tty flags 0x1005 +device sio3 at isa? port 0x110 tty flags 0x1005 +device sio4 at isa? port 0x118 tty flags 0x1005 +[...] +device sio15 at isa? port 0x170 tty flags 0x1005 +device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr +</verb></tscreen> + +フラグエントリは, あなたが全く同じsioの割り当てを使っていない限り <em> +必ず</em> 上記の例から変更してください. フラグは, 次のように設定します. +0x<em>MYY</em> の<em>M</em>は, マスタポート (Boca 16に搭載された最後 +のポート)のマイナー番号を指定します. さらに <em>YY</em> の部分はFIFOが +有効または無効であること (この場合は有効), 割り込みを (ボード内で) 共 +有しているか (この場合はYES), そして, AST/4 と互換性のある持つ割り込み +制御レジスタを持っているか (この場合はNO) を指定します. + + +この例では, +<tscreen><verb> +flags 0x1005 +</verb></tscreen> + +というフラグによって, マスタポートが sio16 であることを示します. も +し同じボードをもう一枚追加し, sio17 から sio28 を割り当てるなら, <em> +新しい方の</em> ボードに対応する 16 個のポートのフラグはすべて 0x1C05 に +なります. 28 (== 0x1C) は新しいボードのマスタポートのマイナー番号で +す. フラグの 05 の部分は変更しないでください. </item> + +<item>カーネルコンフィグレーションファイルを保存してカーネルの設定を完了しま +す. カーネルをコンパイル後, インストールし, 新しいカーネルでリブートし +てください. + +再コンパイルされたカーネルがうまくインストールされて, そのカーネルに正 +しいアドレスと割り込みが設定されていたならば, ブートメッセージは次の +ように Boca ポートの検出に成功するはずです: +(sioの番号, IOとIRQの値は, この例とは異なっているでしょう) + +<tscreen><verb> +sio1 at 0x100-0x107 flags 0x1005 on isa +sio1: type 16550A (multiport) +sio2 at 0x108-0x10f flags 0x1005 on isa +sio2: type 16550A (multiport) +sio3 at 0x110-0x117 flags 0x1005 on isa +sio3: type 16550A (multiport) +sio4 at 0x118-0x11f flags 0x1005 on isa +sio4: type 16550A (multiport) +sio5 at 0x120-0x127 flags 0x1005 on isa +sio5: type 16550A (multiport) +sio6 at 0x128-0x12f flags 0x1005 on isa +sio6: type 16550A (multiport) +sio7 at 0x130-0x137 flags 0x1005 on isa +sio7: type 16550A (multiport) +sio8 at 0x138-0x13f flags 0x1005 on isa +sio8: type 16550A (multiport) +sio9 at 0x140-0x147 flags 0x1005 on isa +sio9: type 16550A (multiport) +sio10 at 0x148-0x14f flags 0x1005 on isa +sio10: type 16550A (multiport) +sio11 at 0x150-0x157 flags 0x1005 on isa +sio11: type 16550A (multiport) +sio12 at 0x158-0x15f flags 0x1005 on isa +sio12: type 16550A (multiport) +sio13 at 0x160-0x167 flags 0x1005 on isa +sio13: type 16550A (multiport) +sio14 at 0x168-0x16f flags 0x1005 on isa +sio14: type 16550A (multiport) +sio15 at 0x170-0x177 flags 0x1005 on isa +sio15: type 16550A (multiport) +sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa +sio16: type 16550A (multiport master) +</verb></tscreen> + +もしメッセージの表示が速くて読み取れないときは, <tt>dmesg | more</tt> +とするとブート時のメッセージをゆっくり見ることができます. </item> + +<item>次に, root になってから, デバイスにあわせたエントリを <tt>/dev/MAKEDEV</tt>スクリプトを使って<tt>/dev</tt> に追加します. + +<tscreen> +# cd /dev<newline> +# ./MAKEDEV tty1<newline> +# ./MAKEDEV cua1<newline> +<em> (中略) </em><newline> +# ./MAKEDEV ttyg<newline> +# ./MAKEDEV cuag +</tscreen> + +もし, 何らかの理由で発信するデバイスが不要な場合, <tt>cua*</tt> デバ +イスを作らないで済ますこともできます.</item> + +<item>デバイスが確実に動作しているかどうか確認する手っ取り早い方法は, +あなたが (rootになって) 各ポートにモデムを接続してみて, あなたが作成し +た各デバイス毎に<tt>echo at> ttyd*</tt>とやってみてください. 各ポー +トが動作していればRXの表示が光るのが見える<em>はず</em> です. </item> + +</enum> + + diff --git a/share/doc/ja_JP.EUC/handbook/skey.sgml b/share/doc/ja_JP.EUC/handbook/skey.sgml new file mode 100644 index 000000000000..f0b8c1fc5107 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/skey.sgml @@ -0,0 +1,355 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- 和訳: hino@nwk.CL.nec.co.jp 1996/09/24 --> +<!-- Original revision: 1.5 --> + +<!-- +Copyright 1995 Massachusetts Institute of Technology + +Permission to use, copy, modify, and distribute this software and +its documentation for any purpose and without fee is hereby +granted, provided that both the above copyright notice and this +permission notice appear in all copies, that both the above +copyright notice and this permission notice appear in all +supporting documentation, and that the name of M.I.T. not be used +in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. M.I.T. makes +no representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS +ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT +SHALL M.I.T. 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. +--> + +<sect><heading>S/KEY<label id="skey"></heading> + +<p><em>原作: &a.wollman;<newline>25 September 1995.</em> +<p><em>訳: &a.hino;.<newline>24 September 1996.</em> + +<p>S/KEY は一方向ハッシュ関数 (ここで述べているバージョンでは, 過去と +の互換性を保つために MD4 を用いています. S/KEY の他のバージョンでは +MD5 や DES-MAC を用いているものもあります) を基にしたワンタイムパスワー +ド方式です. S/KEY は, バージョン 1.1.5 以降のすべての FreeBSD に標準的 +に含まれています. S/KEY は FreeBSD 以外の数多くのシステムの上でも利用 +可能であり, その実装の数も増えています. S/KEY ば Bell Communications +Research, Inc. の登録商標です. + +<!-- XXX - UNIX以外のよい表現はないかな? --> +<p>以下の説明では, 三種類の異なる「パスワード」が使われます. まず一つ +目は, あなたが普段使っている普通の UNIX スタイルの, もしくは Kerberos +でのパスワードです. ここではこれを ``UNIX パスワード'' と呼ぶことにし +ます. 二つ目は, S/KEY の `<tt/key/' プログラムによって生成され, +`<tt/keyinit/' プログラムとログインプロンプトが受け付ける, 一回限りの +パスワードです. ここではこれを ``ワンタイムパスワード'' と呼ぶことにし +ます. 三つ目のパスワードは, `<tt/key/' (と場合により `<tt/keyinit/') +プログラムに対してユーザが入力する秘密のパスワードで, ワンタイムパスワー +ドを生成するのに使われます. ここではこれを ``秘密のパスフレーズ'' もし +くは単に ``パスフレーズ'' と呼ぶことにします. (訳注: ユーザが頭の中だ +けにしまっておくべきものが, この秘密のパスフレーズです. なお, 原文では +これをパスワードと表記していますが, 混乱を避けるために訳文ではすべて `` +秘密のパスフレーズ'' に統一しています.) + +<p>秘密のパスフレーズは, UNIX パスワードと同じである必要はありませんし, +また UNIX パスワードと何らかの関連性を持たなければならないということも +ありません (両者を同一に設定することは可能ですが, お奨めしません). +UNIX パスワードは長さが 8 文字に制限されています (訳注: FreeBSD で DES +を導入していない場合はもっと長いパスワードも認識されます). これに対し, +S/KEY では秘密のパスフレーズを好きなだけ長くすることができます (訳注: +実装上, `<tt/key/' コマンドなどのバッファ長で制限されてしまう可能性が +あります. 200文字程度に押えておいた方がよいでしょう :-). 筆者は 7 語か +らなる文を使っています. 通常の設定では, S/KEY システムは UNIX のパスワー +ドシステムと完全に独立して動作するようになっています. + +<p>S/KEY システムでは他に二種類のデータを使用します. 一つは ``シード +(種)'' または (混乱を招きますが) ``キー'' と呼ばれるもので, (訳注: デ +フォルトでは) 二つの文字と五つの数字で構成されます. もう一つは ``シー +ケンス番号'' で, 1 以上の整数です. シーケンス番号は特に指定しなければ +100以下です (訳注: ``<tt/keyinit/' プログラムでは 9999 まで指定できま +す). S/KEY はここまでに述べたデータを利用してワンタイムパスワードを生 +成します. その方法は, まずシードと秘密のパスフレーズを連結し, それに対 +してシーケンス番号の回数だけ一方向ハッシュ (RSA Data Security, Inc. に +よる MD4 セキュアハッシュ関数) を繰り返し計算します. そしてその結果を +六つの英単語に変換します (訳注: ハッシュ計算の後, 64ビットに収まるよう +にデータを処理したものが厳密な意味でのワンタイムパスワードです. 通常は +ユーザの便宜のために, この 64ビットデータと六つの英単語との間で変換処 +理をおこなっています) . `<tt/login/' プログラムと `<tt/su/' プログラム +は, 前回最後に受け付けられたワンタイムパスワードを記録しています. そし +て, その前回のワンタイムパスワードと, ユーザが入力したワンタイムパスワー +ドを一回ハッシュ関数にかけた結果とが一致した場合に, このユーザは認証さ +れます. 一方向ハッシュ関数を使うことにより, もし (ログイン等に成功した) +ワンタイムパスワードが一回盗聴されたとしても, 次回以降に使われる複数の +ワンタイムパスワードを生成することは不可能です. シーケンス番号はログイ +ン (等) が成功するたびに一つずつ減らされて, ユーザとログインプログラム +の間で同期が取られます. (シーケンス番号が 1 になったら, S/KEY を再度初 +期化する必要があります.) + +<p>次に, S/KEY 関連の四つのプログラムについて説明します. `<tt/key/' プ +ログラムは, シーケンス番号と, シードと, 秘密のパスフレーズを受け付けて, +ワンタイムパスワードを生成します. `<tt/keyinit/' プログラムは, S/KEY +を初期化するのに使用され, また秘密のパスフレーズやシーケンス番号やシー +ドを変更するためにも使用されます. このプログラムを実行するには, 秘密の +パスフレーズか, または, シーケンス番号とシードとワンタイムパスワードの +一組かの, どちらかが必要になります. `<tt/keyinfo/' プログラムは, +<tt>/etc/skeykeys</tt> というファイルを調べて, このプログラムを起動し +たユーザの現在のシーケンス番号とシードを表示します. 最後に, +`<tt/login/' と `<tt/su/' プログラムについてですが, これらは S/KEY の +ワンタイムパスワードを, (訳注:システムが) ユーザを認証するものとして受 +理する処理をおこないます. `<tt/login/' プログラムは, 指定された特定の +アドレスからの接続に対して, UNIX パスワードの使用を認めなくする機能, +逆に言えば S/KEY の利用を強制する機能も持っています. + +<p>このドキュメントでは, 四種類の異なる操作について説明します. 一つ目 +は, `<tt/keyinit/' プログラムを信頼できる通信路上で利用する場合で, 一 +番始めに S/KEY を設定する操作や, 使い始めたあとで秘密のパスフレーズや +シードを変更する操作です. 二つ目は, `<tt/keyinit/' プログラムを信頼で +きない通信路上で利用する場合で, 操作の目的は一つ目と同じです. この場合 +には `<tt/key/' プログラムを併用する必要があります. 三つ目は, +`<tt/key/' プログラムを使い, 信頼できない通信路を通じてログインする操 +作です. 四番目は, `<tt/key/' プログラムを使って, 複数のワンタイムパス +ワードを一気に生成する操作です. ここで生成した複数のワンタイムパスワー +ドは, メモしたり印刷したりして携帯し, 信頼できる通信路が一切ないところ +(例えば展示会場など) で利用することができます. (訳注: ワンタイムパスワー +ドを記録した紙をなくさないこと! 電話番号やIPアドレス, ユーザ名を一緒に +メモしていたら最悪です!!) + + +<sect1><heading>信頼できる通信路での初期化</heading> + +<p>信頼できる通信路 (例えばあるマシンのコンソール画面など) を利用して +いるときに, S/KEY の初期化, S/KEY の秘密のパスフレーズの変更, またはシー +ドの変更をおこなうことができます. そのためには, まずあなた自身がログイ +ンし, `<tt/keyinit/' コマンドを以下のようにパラメタなしで実行します: + +<tscreen><verb> +$ keyinit +Updating wollman: ) この部分は始めて S/KEY を使 +Old key: ha73895 ) うときには表示されません. +Reminder - Only use this method if you are directly connected. +If you are using telnet or rlogin exit with no password and use keyinit -s. + ) `keyinit' コマンドが出力する注意です. 訳すと, + ) 注意 - この動作モードはマシンに直接入力しているときのみ利用 + ) すること. もし今 telnet や rlogin を使っているなら, 秘密のパ + ) スフレーズを入力せずにこのままコマンドを終了し, かわりに + ) keyinit -s を実行すること. +Enter secret password: ) ここで秘密のパスフレーズを入力します. +Again secret password: ) もう一回入力します. + +ID wollman s/key is 99 ha73896 ) あとで説明します. +SAG HAS FONT GOUT FATE BOOM ) +</verb></tscreen> + +<p>上の例で出てきた事柄について説明しましょう. `Enter secret +password:' というプロンプトに対してあなたが考えた秘密のパスフレーズを +入力します (筆者は 7 単語以上の文を秘密のパスフレーズにしています). こ +の秘密のパスフレーズは後でログインするために必要になるものです. `ID' +から始まる行は, S/KEY における一回分のパラメタであり, あなたのログイ +ン名とシーケンス番号とシードです. (訳注: `<tt/keyinit/' コマンドは次回 +にログインするときに使われるパラメタを参考のためにここで表示しま +す. ) S/KEY を使ってログインするときには, システム側が自動的にこれらの +パラメタを表示してくれますから, これらのパラメタを覚えておく必要は +ありません. 最後の行が, 今述べたパラメタと入力された秘密のパスフレー +ズから計算されたワンタイムパスワードです. この例を実行した後, 次にログ +インするときに打ち込むべきワンタイムパスワードがこれです. + +<sect1><heading>信頼できない通信路での初期化</heading> + +<p>信頼できない通信路を使って S/KEY を初期化, または秘密のパスフレーズ +やシードを変更するためには, 信頼できる通信路として, その信頼できない通 +信路とは別のものを用意する必要があります. その信頼できる通信路は +`<tt/key/' プログラムを実行するために必要となるもので, 例えばそれは, +あなたが信頼できる Macintosh のデスクアクセサリや信頼できるマシンのシェ +ルプロンプトだったりするでしょう (そこでの操作に関しては後述します). +(訳注: ここでの通信路とはマシンそのものになります. 信頼できるマシンと +は, 信頼できる人がしっかり管理しているマシンということです.) 他に準備 +しておくものとして, シーケンス番号 (100は適切な値といえるでしょう) と, +場合によっては自分で考えた, またはランダムに生成されたシードがあります. +あなたが S/KEY を初期化しようとしているマシンへの通信路が, 信頼できな +いものである場合には `<tt/keyinit -s/' コマンドを以下のように使用しま +す: + +<tscreen><verb> +$ keyinit -s +Updating wollman: +Old key: kh94741 +Reminder you need the 6 English words from the skey command. + ) `keyinit' コマンドが出力する注意です. 訳すと, + ) 注意 - skey コマンドの出力する 6 英単語が必要になります. +Enter sequence count from 1 to 9999: 100 ) ここを入力. +Enter new key [default kh94742]: ) リターンのみ入力. +s/key 100 kh94742 +</verb></tscreen> + +デフォルトのシード (`keyinit' プログラムは困ったことにこれを `key' と +読んでいるのですが, 混乱しないよう注意してください) で構わなければ, リ +ターンキーを押してください. 次に, あらかじめ用意しておいた信頼できる通 +信路 (信頼できるマシンや信頼できる S/KEY デスクアクセサリなど) へ移っ +て, 先ほどと同じパラメタを入力します. + +<tscreen><verb> +$ key 100 kh94742 +Reminder - Do not use this program while logged in via telnet or rlogin. +Enter secret password: ) ここで秘密のパスフレーズを入力します. +HULL NAY YANG TREE TOUT VETO +</verb></tscreen> + +ここで信頼できない通信路の方に戻って, `<tt/key/' コマンドが出力したワ +ンタイムパスワードをコピーして `<tt/keyinit/' プログラムに入力します. + +<tscreen><verb> +s/key access password: HULL NAY YANG TREE TOUT VETO + +ID wollman s/key is 100 kh94742 +HULL NAY YANG TREE TOUT VETO +</verb></tscreen> + +後は, 前章で説明したことと同様です. + +<sect1><heading>ちょっと寄り道: ログインプロンプトについて</heading> + +<p>どうやってワンタイムパスワードを生成するかを説明する前に, S/KEY を +使う場合のログインプロンプトを見ておいた方がよいでしょう. + +<tscreen><verb> +$ telnet himalia +Trying 18.26.0.186... +Connected to himalia.lcs.mit.edu. +Escape character is '^]'. +s/key 92 hi52030 +Password: +</verb></tscreen> + +パスワードを要求する前に, ログインプログラムがシーケンス番号とシードを +表示していることがわかります. この二つのパラメタを使ってワンタイムパ +スワードを計算することになります. ここではまだ使っていませんが, 便利な +機能がログインプログラムに備わっています:パスワードプロンプトに対して, +何も入力せずにリターンを押すとエコーモードに切り替わります. つまりタイ +プした文字がそのまま見えるようになるのです. これは S/KEY のワンタイム +パスワードを紙に印刷していた場合など, ワンタイムパスワードを手で入力し +なければならない場合に特に役立つ機能です. + +<p>このログインしようとしてるマシンが, あなたが今使っているマシンから +UNIX パスワードを使ってログインすることができないように設定されている +場合があります. その場合には, ログインプロンプトには S/KEY のワンタイ +ムパスワードの利用が必要であることを示す `<tt>(s/key required)</tt>' +という注釈が表示されます. + +<sect1><heading>ワンタイムパスワードを生成する</heading> + +<p>次に前章のログインプロンプトに対して入力するためのワンタイムパスワー +ドを生成しましょう. そのために, 信頼できるマシンと `<tt/key/' プログラ +ムを使用します. (`<tt/key/' プログラムには DOS や Windows の上で動くも +の, Macintoshのデスクアクセサリとして動くものなどもあります.) コマンド +ラインで `<tt/key/' プログラムを起動するときには, シーケンス番号とシー +ドを引数として指定します. 入力が面倒な人は, ログインプロンプトに表示さ +れたもののうちで ``<tt/key/'' からその行の最後までを, そのままカットア +ンドペーストすることもできます. ``<tt/key/' プログラムの実行は以下のよ +うになります: + +<tscreen><verb> +$ key 92 hi52030 ) 前章の例からペースト. +Reminder - Do not use this program while logged in via telnet or rlogin. +Enter secret password: ) 秘密のパスフレーズを入力. +ADEN BED WOLF HAW HOT STUN +</verb></tscreen> + +そして別のウィンドウで: + +<tscreen><verb> +s/key 92 hi52030 ) 前章の例の続き. +Password: ) ここでリターンキーを押した. + (turning echo on) +Password:ADEN BED WOLF HAW HOT STUN +Last login: Wed Jun 28 15:31:00 from halloran-eldar.l +[以下略.] +</verb></tscreen> + +以上の手順は, 信頼できるマシンが利用できる場合 <em/のみに/ 使えるもっ +とも簡単な方法です. + +<sect1><heading>複数のワンタイムパスワードを生成する</heading> + +<p>都合によっては, 信頼できるマシンや信頼できる通信路が一切確保できな +いようなところで S/KEY を使う必要があるでしょう. このような場合には, +`<tt/key/' コマンドを使って複数のワンタイムパスワードを一気に生成する +ことが可能です. そして結果を紙に印刷して携帯していくことができます. 例 +えば: + +<tscreen><verb> +$ key -n 25 57 zz99999 +Reminder - Do not use this program while logged in via telnet or rlogin. +Enter secret password: +33: WALT THY MALI DARN NIT HEAD +34: ASK RICE BEAU GINA DOUR STAG +[...] +56: AMOS BOWL LUG FAT CAIN INCH +57: GROW HAYS TUN DISH CAR BALM +</verb></tscreen> + +`<tt/-n 25/' という引数によって 25 個のワンタイムパスワードの生成を要 +求します. ここで `<tt/57/' は, <em/最後に表示されている/ (もっとも大き +い) シーケンス番号です. 残りのパラメタは前出の例と同様です. 出力は普 +通に使う順番とは <em/逆/ に出力されていることに注意してください (訳注: +一番最初に使うワンタイムパスワードは一番最後に出力されたものです). こ +の結果をカットアンドペーストして `<tt/lpr/' コマンドを使って印刷すると +よいでしょう. もしあなたがセキュリティに偏執するなら, この結果を紙と鉛 +筆を使って手で書き移した方がよいかもしれません. ここで, 出力の各行はシー +ケンス番号とそれに対応する一回分のワンタイムパスワードです. 消費済みの +ワンタイムパスワードの行をペンで消していくと便利でしょう. + +<sect1><heading>UNIX パスワードの利用を制限する</heading> + +<p>設定ファイル <tt>/etc/skey.access</tt> を使って UNIX パスワードの利 +用を制限することができます. この場合の判断基準として, ログインを受け付 +ける際のホスト名, ユーザ名, 端末のポート, IP アドレスなどが利用できま +す. この設定ファイルの詳細に関してはマニュアル <em/skey.access/ (5) を +ご覧ください. マニュアルにはこの機能に関わるセキュリティについて, いく +つかの警告が記述してあります. この機能を使ってセキュリティを高めようと +するのならば絶対にこのマニュアルを読んでください. + +<p>もし <tt>/etc/skey.access</tt> ファイルが存在しないならば (FreeBSD +をインストールした直後の状態では存在しません), すべてのユーザが UNIX +パスワードを利用することができます. 逆に, もしファイルが存在するならば, +<tt>/etc/skey.access</tt> ファイルに明示的に記述されていない限り, すべ +てのユーザは S/KEY の利用を要求されます. どちらの場合においても, その +マシンのコンソールからはいつでも UNIX パスワードを使ってログインするこ +とが可能です. + +<p>以下によく使われるであろう三種類の設定を含む設定ファイルの例を示し +ます: + +<tscreen><verb> +permit internet 18.26.0.0 255.255.0.0 +permit user jrl +permit port ttyd0 +</verb></tscreen> + +はじめの行 (`<tt/permit internet/') で, telnet などで接続するときの IP +のソースアドレス (注意: これは偽造されるおそれがあります) が特定の値と +マスクに一致している場合に, UNIX パスワードの利用を許可することを指定 +しています. この設定自体はセキュリティを高めるための機能ではありません. +そうではなく, ログインの権利を持つ許可されたユーザに対して, 現在そのユー +ザが使っているネットワークが信頼できないと考えられるので S/KEY を使う +べきである, ということを気づかせるための機能であると考えてください. + +<p>二行目 (`<tt/permit user/') によって, ある特定のユーザに対して, い +つでも UNIX パスワードの利用を許可するように指定しています. 一般的には +この設定をおこなうべきではありません. `<tt/key/' プログラムがどうして +も使えない環境にいる人や, ダム端末しかない環境にいる人, または何度教え +ても聞く耳を持たないような人をサポートする必要がある場合にのみ設定をお +こなってください. + +<p>三行目 (`<tt/permit port/') によって, ある特定の端末ポートからログ +インしようとするすべてのユーザに対して UNIX パスワードの利用を許可する +ように指定しています. この設定はダイヤルアップ回線に対する設定として利 +用できるでしょう. diff --git a/share/doc/ja_JP.EUC/handbook/slipc.sgml b/share/doc/ja_JP.EUC/handbook/slipc.sgml new file mode 100644 index 000000000000..d6a148147088 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/slipc.sgml @@ -0,0 +1,205 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.7 --> + +<sect><heading>SLIPクライアントのセットアップ<label id="slipc"></heading> + +<p><em>原作: &a.asami;<newline>8 Aug 1995.</em> + +<p><em>訳: &a.hanai;<newline>8 August 1996.</em> + +ここにはFreeBSDマシンを静的アドレスのネットワークにつなげる場合の +SLIPのセットアップの一つの方法を書いてあります. +ホスト名を動的に割り当てる(つまり, ダイヤルアップするたびにアドレスが +かわる)ためには, おそらくもっと凝ったことが必要です. + +<!-- +This is just "what I did, and it worked for me". I am sharing this +just for your reference, I am no expert in SLIP nor networking so your +mileage may vary. +--> + +まず, モデムがどのシリアルポートにつながっているか決めましょう. 私は +<tt>/dev/modem -> cuaa1</tt>というシンボリックリンクを張り, +コンフィグレーションではその名前だけを使っています. <tt>/etc</tt> +や<tt>.kermrc</tt>など、システム全体に散らばっているファイルを修正する +必要がでるとまったく煩わしいのです!(ここで, <tt>/dev/cuaa0</tt>は +COM1であり, <tt>cuaa1</tt>はCOM2です.) + +カーネルのコンフィグレーションファイルに +<verb> +pseudo-device sl 1 +</verb> +という記述があるのを確認してください. これはGENERICカーネルに含まれている +ので削除していない限り大丈夫でしょう. + +<sect1><heading>最初の設定</heading> + +<p><enum> +<item><tt>/etc/hosts</tt>ファイルにあなたのマシンのゲートウェイとネームサーバ + を加えてください. 私のは以下のようになっています. +<verb> +127.0.0.1 localhost loghost +136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia + +136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway +128.32.136.9 ns1.Berkeley.edu ns1 +128.32.136.12 ns2.Berkeley.edu ns2 +</verb> + 余談ですが, silviaというのは私が日本にいた時に持っていた + 車の名前です(米国では2?0SXと呼ばれています). + +<item><tt>/etc/host.conf</tt>ファイル中で"hosts"が"bind"よりも前にあること + を確認してください. さもないとヘンなことが起こるかもしれません. + + +<item><tt>/etc/sysconfig</tt>ファイルを編集してください. +<enum> +<item>行 +<verb> +hostname=myname.my.domain +</verb> + を編集してホスト名をセットしてください. + 完全なInternetホスト名を与えるべきです. + +<item>行 +<verb> +network_interfaces="lo0" +</verb> +を +<verb> +network_interfaces="lo0 sl0" +</verb> +へ変更することによりネットワークインタフェースのリストにsl0を加えてください. + +<item>行 +<verb> +ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up" +</verb> +を加えてsl0のスタートアップフラグをセットしてください. + +<item>行 +<verb> +defaultrouter=NO +</verb> +を +<verb> +defaultrouter=slip-gateway +</verb> +へ変更してデフォルトのルータを指定してください. +</enum> + +<item> 次の +<verb> +domain HIP.Berkeley.EDU +nameserver 128.32.136.9 +nameserver 128.32.136.12 +</verb> + という内容を含むファイル <tt>/etc/resolv.conf</tt> を作ってください. + 見ればわかるように, これらはネームサーバホストを設定しています. + もちろん, 実際のドメイン名やアドレスはあなたの環境に依存します. + +<item>rootとtoor(及びパスワードを持っていない他のアカウントすべて)のパスワード + を設定してください. passwdコマンドを使いましょう. <tt>/etc/passwd</tt> + や <tt>/etc/master.passwd</tt> といったファイルを編集してはいけません! + +<item>マシンを再起動して正しいホスト名で立ち上がることを確認してください. +</enum> + +<sect1><heading>SLIP接続をおこなう</heading> + +<p><enum> +<item>モデムを起動、つながったらプロンプトで"slip"とタイプし, マシン名と + パスワードを入力してください. 入力する必要があるものは環境に + よって異なります. 私は次のようなスクリプトでkermitを使っています. +<verb> +# kermit setup +set modem hayes +set line /dev/modem +set speed 115200 +set parity none +set flow rts/cts +set terminal bytesize 8 +set file type binary +# The next macro will dial up and login +define slip dial 643-9600, input 10 =>, if failure stop, - +output slip\x0d, input 10 Username:, if failure stop, - +output silvia\x0d, input 10 Password:, if failure stop, - +output ***\x0d, echo \x0aCONNECTED\x0a +</verb> + (もちろん, ホスト名とパスワードは変える必要があります). + 接続するためにはkermitのプロンプトで"slip"とタイプするだけです. + + <bf>注意</bf>: ファイルシステムのどんなところにもプレインテキスト + にパスワードを書いておくのは一般的にはよくありません. 覚悟の上で + やってください. 私は単に不精なだけです. + +<item>ここでkermitから抜け出し("z"でkermitをサスペンドできます), root + で +<verb> +slattach -h -c -s 115200 /dev/modem +</verb> + と入力しましょう. + もしルータの向う側のホストへ"ping"できるなら接続成功です! もしうまく + いかなければslattachへの引数として"-c"の代わりに"-a"とやってみてください. +</enum> + +<sect1><heading>接続の切り方</heading> + + <p>slattachを殺すためにrootで "kill -INT `cat /var/run/slattach.modem.pid`" + とタイプしてください. そしてkermitに戻り(もしkermitをサスペンドしていたなら + "fg"), kermitから抜けてください("q"). + + slattachのマニュアルページにはインタフェースを落すために + "ifconfig sl0 down"をしなければいけないと書いていますが, + 私には差がないように見えます. + ("ifconfig sl0"とやっても同じ結果が得られる.) + + 時にはモデムがキャリアを落すのを拒絶するかもしれません(私のは + よくそうなります). その時は単にkermitをスタートしてまた終了 + してください. + 普通は2回目で落ちます. + +<sect1><heading>トラブルシューティング</heading> + +<p>もし動かなければ自由に私に質問してください. 今までいろんな人がつまずいた +のは次のようなことです. +<itemize> +<item>slattachで"-c"や"-a"を使わなかった(私はなぜこれが致命的になり得るのか + わかりませんが, このフラグを付けることで少なくとも一人の問題は解決しました.) + +<item>"sl0"の代わりに"s10"を使った(いくつかのフォントでは見分けるのは難しい + かもしれません). + +<item>インタフェースの状態を見るために"ifconfig sl0"をやってみてください. + 私は, +<verb> +silvia# ifconfig sl0 +sl0: flags=10<POINTOPOINT> + inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 +</verb> + となります. + +<item>また, pingが"no route to host"というメッセージを返す時には + <tt>netstat -r</tt>でルーティングテーブルを確認しましょう。 + 私のは, +<verb> +silvia# netstat -r +Routing tables +Destination Gateway Flags Refs Use IfaceMTU Rtt +Netmasks: +(root node) +(root node) + +Route Tree for Protocol Family inet: +(root node) => +default inr-3.Berkeley.EDU UG 8 224515 sl0 - - +localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438 +inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - - +silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438 +(root node) +</verb> + となります. +(これはたくさんのファイルを転送した後でのもので, あなたの見る数字はもっと小さいかも +しれません). +</itemize> diff --git a/share/doc/ja_JP.EUC/handbook/slips.sgml b/share/doc/ja_JP.EUC/handbook/slips.sgml new file mode 100644 index 000000000000..8368ad622484 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/slips.sgml @@ -0,0 +1,514 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.11 --> + +<!-- This is an SGML version in the linuxdoc DTD of the SLIP Server + FAQ by Guy Helmer. + + This guide provides instruction in configuring and preparing + a FreeBSD system to be a dialup SLIP server. + +<title> +FreeBSDを SLIPサーバとしてセットアップするには +<author>Guy Helmer, <tt/ghelmer@alpha.dsu.edu/ +<date>v1.0, 15 May 1995 + +--> + +<sect><heading>SLIPサーバのセットアップ方法<label id="slips"></heading> +<p><em>原作: &a.ghelmer;.<newline> +v1.0, 15 May 1995.</em> +<p><em>訳: &a.ts;.<newline>6 September 1996.</em> + +この文書の目的は, SLIPサーバ機能を FreeBSDシステムのもとで設定するため +の助言を提供することです. SLIPサーバ機能を設定するということは, リモー +トの SLIPクライアントがログインできるようにするために, 自動的に接続処 +理をおこなうようにすることです. この文書は著者の経験に基づいておりますが, +実際のシステム構成や要望は異なりますから, すべての疑問にこの文書が答え +ることはできません. なお, ここでの助言を試みた結果, あなたのシステムへ +の悪影響やデータの損失が生じたとしても, 著者が責任を持つことはできませ +んのでご了解をお願いします. + +当初この文書は, FreeBSD 1.xシステムでの SLIPサーバ機能のために書きまし +た. その後, FreeBSD 2.xの初期バージョンでのパス名の変更や SLIPインタフェー +ス向け圧縮フラグの削除といった変更点を反映するために, 書き換えをおこないま +した. これらが FreeBSDのバージョン間の主要な変更点だったからです. もし +この文書の間違いを見つけられましたら, ぜひ, 訂正に十分な情報とともに電 +子メールでお知らせいただければ助かります. + +<sect1><heading>前提<label id="slips:prereqs"></> + +<p> +この文書の内容はテクニカルなものなので, 前提知識が必要です. すなわち, +TCP/IPネットワークプロトコルについての知識, 特に, ネットワークとノード +のアドレス指定をはじめ, ネットワークアドレスマスク, サブネット化, ルー +ティング, および RIPなどのルーティングプロトコルなどに関する知識を前提 +としています. ダイヤルアップサーバで SLIP機能を設定するためには, これ +らの概念についての知識が必要ですから, もし不案内であると思われる方は, +O'Reilly & Associates, Inc.から出版されている Craig Hunt氏の +<em>TCP/IP Network Administration</em> (ISBN 0-937175-82-X)か, または +Douglas Comer氏の TCP/IPプロトコルに関する一連の書籍をお読みください. + +前提知識に加え, さらに, モデムの設定が完了しており, そのモデムを経由し +てログインできるように, システムファイル群が適切に記述できているものと +仮定しています. もしモデムの準備ができていないときには, あらかじめダイヤ +ルアップ機能の設定についてのチュートリアルをお読みください. Webブラ +ウザが使えるのであれば<tt>http://www.freebsd.org/</tt> におけるチュー +トリアルの一覧を調べてください. あるいは, この文書を見つけた場所を調べ +て, <tt/dialup.txt/ やそれに類似した名前の文書をお読みください. 関連す +るマニュアルページとしては, シリアルポート向けデバイスドライバについて +の <tt/sio(4)/ をはじめ, モデムからのログインを受理できるようにシステ +ムを設定するための <tt/ttys(5)/, <tt/gettytab(5)/, <tt/getty(8)/, +<tt/init(8)/ など, さらには, シリアルポート関連パラメタ [ たと +えば直接接続シリアルインタフェースの <tt/clocal/ ] についての +<tt/stty(1)/ なども助けになるかもしれません. + +<sect1><heading>概要</heading> + +<p> +一般的な設定内容で FreeBSDを SLIPサーバとして利用すると, その動作は次 +のようになります. まず, SLIPユーザが FreeBSD による SLIPサーバへ電話し +て, SLIP専用IDでログインします. なお, このIDを持ったユーザはシェルとし +て <tt>/usr/sbin/sliplogin</tt> を使います. この <tt/sliplogin/ は, ファ +イル <tt>/etc/sliphome/slip.hosts</tt> の中から, ログインIDと一致する +記述行を探します. もし一致する行があれば, ログインしたシリアル回線を, +利用可能な SLIPインタフェースへ接続し, その後にシェルスクリプト +<tt>/etc/sliphome/slip.login</tt> で SLIPインタフェースを設定します. + +<sect2><heading>SLIPサーバへのログイン例</heading> + +<p> +仮に SLIPユーザIDが <tt>Shelmerg</tt> とします. すると, +<tt>/etc/master.passwd</tt> における <tt/Shelmerg/ のエントリは次のよ +うなものになります (実際には一つの行に続いている) . + +<tscreen><verb> +Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP: + /usr/users/Shelmerg:/usr/sbin/sliplogin +</verb></tscreen> + +<tt/Shelmerg/ がログインすると, <tt>sliplogin</tt> は, ファイル +<tt>/etc/sliphome/slip.hosts</tt> からユーザIDと一致する行を探しま +す. いま仮に, <tt>/etc/sliphome/slip.hosts</tt> に次のような記述がなさ +れていたとします. + +<tscreen><verb> +Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp +</verb></tscreen> + +<tt/sliplogin/ が上記のエントリを見つけると, <tt/Shelmerg/ が使用して +いるシリアル回線を, 利用可能な SLIPインタフェースのなかの最初のものへ +接続し, 次の内容の <tt>/etc/sliphome/slip.login</tt> を実行します. + +<tscreen><verb> +/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp +</verb></tscreen> + +もし上記の手順が正常に処理されると, <tt>/etc/sliphome/slip.login</tt> +は, <tt/sliplogin/ が割り当てた SLIPインタフェース (この例では +<tt>slip.login</tt> で与えられたパラメタのうちで最初の値である SLIP +インタフェース0である) に対して <tt>ifconfig</tt> を実行し, ローカル +IPアドレス (<tt>dc-slip</tt>)をはじめ, リモート IPアドレス +(<tt>sl-helmer</tt>), SLIPインタフェースへのネットワークマスク +(<tt>0xfffffc00</tt>), およびその他のフラグ (<tt>autocomp</tt>)を設定 +します. 逆に, さきほどの手順が正常に終了しなかった場合, 通常は +<tt/sliplogin/ は十分な情報を syslogデーモン機能経由で +<tt>/var/log/messages</tt> へ記録します ( <tt>syslogd(8)</tt> や +<tt>syslog.conf(5)</tt> のマニュアルページを参照のうえ, さらに +<tt>/etc/syslog.conf</tt> を調べて <tt>syslogd</tt> がどのファイルへ記 +録するかを確認のこと) . + +例はこのくらいにして, さっそくシステムのセットアップを始めてみましょう. + +<sect1><heading>カーネルのコンフィグレーション</heading> + +<p> +FreeBSDのデフォルトのカーネルには, 通常, 二つの SLIPインタフェースが +準備されています (<tt>sl0</tt> と <tt>sl1</tt>) . これらのインタフェー +スが使用中のカーネルに準備されているかどうかを調べるには, +<tt>netstat -i</tt> を実行してください. + +<tt>netstat -i</tt> の出力例 + +<tscreen><verb> +Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll +ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133 +ed0 1500 138.247.224 ivory 291311 0 174209 0 133 +lo0 65535 <Link> 79 0 79 0 0 +lo0 65535 loop localhost 79 0 79 0 0 +sl0* 296 <Link> 0 0 0 0 0 +sl1* 296 <Link> 0 0 0 0 0 +</verb></tscreen> + +<tt>netstat -i</tt> の出力に <tt>sl0</tt> と <tt>sl1</tt> のインタフェー +スが含まれているということから, カーネルには二つの SLIPインタフェー +スが組み込まれているということを示しています. (<tt>sl0</tt> と +<tt>sl1</tt> に付いたアスタリスクは, <tt>netstat -i</tt> の実行時点で +はインタフェースがダウンしていることを表しています. ) + +なお, パケットのフォワード機能はFreeBSDのデフォルトのカーネルでは設定 +されていません (すなわちルータとしては動作しない) . もしインターネット +接続ホストについての RFC要件 ( RFC 1009 [Requirements for +Internet Gateways], 1122 [Requirements for Internet Hosts -- +Communication Layers], and perhaps 1127 [A Perspective on +the Host Requirements RFCs] ) に準拠して, FreeBSDによる SLIPサー +バをルータとして動作させたいときには, <tt>/etc/sysconfig</tt> ファイル +の <bf>gateway</bf> 変数を <tt>YES</tt> としてください. もし古いシステ +ムのために <tt>/etc/sysconfig</tt> ファイルがないときには, 次のコマン +ドを <tt>/etc/rc.local</tt> へ追加してください. + +<verb> +sysctl -w net.inet.ip.forwarding = 1 +</verb> + + +<p> +この新しい設定を有効とするには, リブートする必要があります. + +<p> +デフォルトのカーネルコンフィグレーションファイル +(<tt>/sys/i386/conf/GENERIC</tt>) の最後の部分に, 次のような行がありま +す. + +<tscreen><verb> +pseudo-device sl 2 +</verb></tscreen> + +この行によって, 使用可能な SLIPデバイスの総数が決まります. すなわち, 行 +末の数値が, 同時に動作可能な SLIP接続の最大数となります. + +カーネルの再構築については, <ref id="kernelconfig" name="FreeBSDカー +ネルのコンフィグレーション"> を参照ください. + +<sect1><heading>Sliploginのコンフィグレーション</heading> + +<p> +すでにご説明したように, <tt>/usr/sbin/sliplogin</tt> のコンフィグレー +ションのために, 3種類のファイルが<tt>/etc/sliphome</tt> ディレクトリに +あります (<tt>sliplogin</tt> についての実際のマニュアルページとしては +<tt>sliplogin(8)</tt> を参照のこと) . ファイル <tt>slip.hosts</tt> は +SLIPユーザおよびその IPアドレスを決めます. 通常, ファイル +<tt>slip.login</tt> は, SLIPインタフェースを設定することだけに使 +用します. <tt>slip.logout</tt> はオプションのファイルで, +<tt>slip.login</tt> で設定した内容を, シリアル接続が終了した時点で解除 +するときに使用します. + +<sect2><heading>slip.hostsのコンフィグレーション</heading> + +<p> +<tt>/etc/sliphome/slip.hosts</tt> には, 少なくとも 4 つの項目をホワイ +トスペース (スペースやタブ) で区切って指定します. + +<itemize> +<item> SLIPユーザのログインID +<item> SLIPリンクのローカル (SLIPサーバ側) アドレス +<item> SLIPリンクのリモートアドレス +<item> ネットワークマスク +</itemize> + +ホスト名をローカルおよびリモートのアドレスとして記述できます (IPアドレ +スの決定は, <tt>/etc/host.conf</tt> の指定内容に応じて, +<tt>/etc/hosts</tt> か DNSのいずれかによって決定される) . また, ネット +ワークマスクも <tt>/etc/networks</tt> ファイルに記述された名前を参照す +ることで, 指定することもできると思います. これまでの例としてあげたシス +テムでの <tt>/etc/sliphome/slip.hosts</tt> は次のようになります. + +<tscreen><verb> +----- begin /etc/sliphome/slip.hosts ----- +# +# login local-addr remote-addr mask opt1 opt2 +# (normal,compress,noicmp) +# +Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp +----- end /etc/sliphome/slip.hosts ------ +</verb></tscreen> + +それぞれの行の最後には, 次に示すオプションを一つ以上指定できます. + +<itemize> +<item> <tt>normal</tt> - ヘッダを圧縮しない +<item> <tt>compress</tt> - ヘッダを圧縮する +<item> <tt>autocomp</tt> - リモートの設定に応じて, ヘッダを圧縮する +<item> <tt>noicmp</tt> - ICMPパケットを禁止する (pingパケットは送出されず, バンド幅を占有しない) +</itemize> + +なお, FreeBSDバージョン2の初期リリースの <tt/sliplogin/ は, 旧 +FreeBSD 1.xでは有効であった上記のオプションを無視していましたので, +<tt/normal/, <tt/compress/, <tt/autocomp/, そして <tt/noicmp/ などのオ +プションは FreeBSD 2.2でサポートされるまでは効果がありませんでした (た +だしこれらのフラグを使うためには <tt/slip.login/ スクリプトへ記述する +必要がある) . + +SLIPリンクでのローカルとリモート向けのアドレスの選び方は, TCP/IPサブネッ +トを専用に割り当てるか, または「プロキシ ARP」を SLIPサーバへ用いるかによっ +て違います (プロキシ ARPという用語のここでの使い方は本来のものではない +が, 説明のためにこの用語を使う) . もし, どちらの方式を選ぶべきか判らな +かったり, IPアドレスの割り当て方が不明のときには, 上述の <ref +id="slips:prereqs" name="前提"> の節で紹介した TCP/IP関連書籍を参考になさるか, +またはあなたの IPネットワークを管理している方に相談なさるとよいでしょう. + +独立したサブネットを SLIPクライアントへ適用するときには, すでに割り当 +てられている IPネットワーク番号の範囲からサブネット番号を割り当て, 同 +時にそのサブネットの範囲内で有効な IPアドレスを SLIPクライアントの IP +番号として割り当てる必要があります. さらに, この SLIPサブネットから +SLIPサーバを経由して最も近い IPルータへの経路を静的に設定するか, また +は <tt>gated</tt> を FreeBSDによる SLIPサーバへインストールして, 適当 +なルーティングプロトコルを使って, SLIPサーバ経由のサブネットへの経路情 +報をルータ群へ通知できるように設定するか, のいずれかをおこなう必要がありま +す. + +「プロキシ ARP」方式を採用するときには, SLIPクライアント向けの IPアドレス +として, SLIPサーバのサブネットの範囲から選んで割り当てるとともに, +<tt>arp(8)</tt> コマンドを使うために <tt>/etc/sliphome/slip.login</tt> +と<tt>/etc/sliphome/slip.logout</tt> のスクリプトを修正して, SLIPサー +バにおける ARPテーブル内のプロキシ ARPエントリへ反映させる必要がありま +す. + +<sect2><heading>slip.loginのコンフィグレーション</heading> + +<p> +ファイル <tt>/etc/sliphome/slip.login</tt> の一般的な内容は次にように +なります. + +<tscreen><verb> +----- begin /etc/sliphome/slip.login ----- +#!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# generic login file for a slip line. sliplogin invokes this with +# the parameters: +# 1 2 3 4 5 6 7-n +# slipunit ttyspeed loginname local-addr remote-addr mask opt-args +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6 +----- end /etc/sliphome/slip.login ----- +</verb></tscreen> + +この <tt>slip.login</tt> ファイルの役目は単に, SLIPインタフェースにつ +いてのローカルとリモートのアドレス, およびそのネットワークマスクを +<tt>ifconfig</tt> コマンドで設定することです. + +もしプロキシ ARP方式を採用する (SLIPクライアントへ独立したサブネットを +使わない) ときには, ファイル <tt>/etc/sliphome/slip.login</tt> は次の +ような内容になります. + +<tscreen><verb> +----- begin /etc/sliphome/slip.login for "proxy ARP" ----- +#!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# generic login file for a slip line. sliplogin invokes this with +# the parameters: +# 1 2 3 4 5 6 7-n +# slipunit ttyspeed loginname local-addr remote-addr mask opt-args +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6 +# Answer ARP requests for the SLIP client with our Ethernet addr +/usr/sbin/arp -s $5 00:11:22:33:44:55 pub +----- end /etc/sliphome/slip.login for "proxy ARP" ----- +</verb></tscreen> + +この <tt>slip.login</tt> で追加された行 +<tt>arp -s $5 00:11:22:33:44:55 pub</tt> は, +SLIPサーバにおける ARPテーブルへ新たなエントリを作ります. SLIPサーバ +は, この ARPエントリが作られると, SLIPクライアントの IPアドレスと話し +たい他の IPノードが要求してきたときにはいつも, SLIPサーバ +の Ethernet MACアドレスを返すようになります. + +上記の例を実際に流用なさるときには, 例にある Ethernet MACアドレス +(<tt>00:11:22:33:44:55</tt>) を, あなたのシステムの実際のEthernetカー +ドの MACアドレスと置き換えなければ「プロキシ ARP」はうまく動作しません! +SLIPサーバの Ethernet MACアドレスを調べるには <tt>netstat -i</tt> コマ +ンドを利用してください. 実行結果の第2行は次のようなものになるはずです. + +<tscreen><verb> +ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 + ^^^^^^^^^^^^^^^ +</verb></tscreen> + +この例での Ethernet MACアドレスは <tt>00:02:c1:28:5f:4a</tt> であると +読みます. なお <tt>arp(8)</tt> における MACアドレスの指定に際しては, +コマンド <tt>netstat -i</tt> が付けた Ethernet MACアドレスのピリオド記 +号をコロン記号と置き換え, かつ単一桁の 16 進数にはゼロを先頭に加える必 +要があります. この指定についての正確な情報は <tt>arp(8)</tt> を参照く +ださい. + +ご注意いただきたいのは, <tt>/etc/sliphome/slip.login</tt> と +<tt>/etc/sliphome/slip.logout</tt> を作成したならば, ファイル属性の実 +行ビット (すなわち +<tt>chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout</tt>) を +設定しなければならないということです. さもなければ <tt>sliplogin</tt> が +うまく実行されません. + +<sect2><heading>slip.logoutのコンフィグレーション</heading> + +<p> +ファイル <tt>/etc/sliphome/slip.logout</tt> は必ずしも必要なものではあ +りません (ただし「プロキシ ARP」を利用する場合を除く) . もしこのファイルを +作成するときには, 次に示す標準的な <tt>slip.logout</tt> スクリプト例を +参考にしてください. + +<tscreen><verb> +----- begin /etc/sliphome/slip.logout ----- +#!/bin/sh - +# +# slip.logout + +# +# logout file for a slip line. sliplogin invokes this with +# the parameters: +# 1 2 3 4 5 6 7-n +# slipunit ttyspeed loginname local-addr remote-addr mask opt-args +# +/sbin/ifconfig sl$1 down +----- end /etc/sliphome/slip.logout ----- +</verb></tscreen> + +「プロキシ ARP」を利用する場合, この <tt>/etc/sliphome/slip.logout</tt> を +使って, 特定の SLIPクライアント向けの ARPエントリを削除したくなるよう +なときがあります. + +<tscreen><verb> +----- begin /etc/sliphome/slip.logout for "proxy ARP" ----- +#!/bin/sh - +# +# @(#)slip.logout + +# +# logout file for a slip line. sliplogin invokes this with +# the parameters: +# 1 2 3 4 5 6 7-n +# slipunit ttyspeed loginname local-addr remote-addr mask opt-args +# +/sbin/ifconfig sl$1 down +# Quit answering ARP requests for the SLIP client +/usr/sbin/arp -d $5 +----- end /etc/sliphome/slip.logout for "proxy ARP" ----- +</verb></tscreen> + +コマンド <tt>arp -d $5</tt> は, SLIPクライアントがログインした +際に, 「プロキシ ARP」を使った <tt>slip.login</tt> によって追加され +た ARPエントリを削除します. + +これによって, 繰り返して利用することができるわけです. 必ず, +<tt>/etc/sliphome/slip.logout</tt> を作成した後に, 実行ビットを設定し +てください ( <tt>chmod 755 /etc/sliphome/slip.logout</tt> ) . + +<sect1><heading>ルーティングについての考慮点</heading> + +<p> +「プロキシ ARP」方式を利用せずに SLIPクライアントとその他のネットワーク +(Internetも含む) の構成要素との間でパケットをルーティングするときには, +SLIPサーバ経由で SLIPクライアントが属するサブネットまでの経路を, 最も +近いデフォルトのルータ群へ静的な経路情報として追加しなければならないか, +または <tt>gated</tt> を FreeBSDによる SLIPサーバへインストールして, +SLIP サブネットについての経路情報を, 適当なルーティングプロトコルでルー +タ群へ通知できるように設定するか、のどちらかをおこなわなければなりません. + +<sect2><heading>静的な経路</heading> + +<p> +静的な経路を最も近いデフォルトのルータ群へ追加することが困難なことがあ +ります (経路情報を追加できる権限がなければそもそも不可能となる). もし +あなたの組織に複数のルータで構成されたネットワークがあるならば, ある種 +のルータ (たとえば Ciscoや Proteonなど) は, 静的な経路を SLIPサブネッ +トへ使うようにルータを設定しなければならないだけでなく, その静的経路を +他のどのルータへ知らせるのかもあらかじめ指定しておく必要がありますから, +静的経路に基づくルーティングを軌道に乗せるにはそれなりの専門的技術やト +ラブルシューティングやコツが必要だと思います. + +<sect2><heading>gatedの稼働</heading> + +<p> +静的経路についての頭痛への代替手段は, <tt>gated</tt> を FreeBSDによる SLIPサー +バへインストールして, 適切なルーティングプロトコル (RIP/OSPF/BGP/EGP) +を使って SLIPサブネットについての経路情報を他のルータへ知らせるように +設定することです. <tt>gated</tt> は, 匿名FTPを使って, +<tt>ftp.gated.cornell.edu</tt> の <tt>/pub/gated</tt> ディレクトリから +入手できます. このチュートリアルを執筆時点の最新バージョンは +<tt>gated-R3_5Alpha_8.tar.Z</tt> であり, このファイルだけで FreeBSDで +動作させることができます. <tt>gated</tt> についてのすべての情報と文書 +は <tt>http://www.gated.cornell.edu/</tt> からはじまる Web上で入手でき +ます. <tt>gated</tt> のコンパイルとインストールを行ったならば, 独自の +設定のために <tt>/etc/gated.conf</tt> ファイルを記述してください. 次の +例は, 筆者が FreeBSDによる SLIPサーバで使っている内容と類似のものです. + +<tscreen><verb> +----- begin sample /etc/gated.conf for gated version 3.5Alpha5 ----- +# +# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5 +# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface +# +# +# tracing options +# +traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; + +rip yes { + interface sl noripout noripin ; + interface ed ripin ripout version 1 ; + traceoptions route ; +} ; + +# +# Turn on a bunch of tracing info for the interface to the kernel: +kernel { + traceoptions remnants request routes info interface ; +} ; + +# +# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP +# + +export proto rip interface ed { + proto direct { + xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections + } ; +} ; + +# +# Accept routes from RIP via ed Ethernet interfaces + +import proto rip interface ed { + all ; +} ; + +----- end sample /etc/gated.conf ----- +</verb></tscreen> + +この <tt>gated.conf</tt> ファイルの例では, SLIPのサブネット +<tt>xxx.xxx.yy</tt> についての経路情報を RIPを使って Ethernetへブロー +ドキャストしています. もし <tt/ed/ ドライバ以外の Ethernetドライバを使 +うのであれば, <tt/ed/ インタフェースの記述を適切なものに置き換えてくだ +さい. またこの例では, <tt>gated</tt>の動作をデバッグするために, +<tt>/var/tmp/gated.output</tt> へトレース情報を出力するように指示して +います. <tt>gated</tt> が希望通りに動作したならば, このトレースオプショ +ンを止めることができます. なお, 例における <tt>xxx.xxx.yy</tt> を, あ +なた自身の SLIPサブネットのネットワークアドレスに換えてください (また +<tt>proto direct</tt> 部分のネットワークマスクも換えることを忘れないこ +と) . + +<tt>gated</tt> のコンパイルとインストールが終了し, コンフィグレーショ +ンファイルの作成も完了したら, FreeBSDシステムではデフォルトの +<tt>routed</tt>に代わって <tt>gated</tt> を起動してください. そのため +には, <tt>/etc/netstart</tt> の <tt>routed/gated</tt> 起動パラメタを +適切な値に設定してください. <tt>gated</tt> のコマンドラインパラメタにつ +いての情報は, <tt>gated</tt> のマニュアルページを参照してください. + +<sect1><heading>謝辞</heading> + +<p> +このチュートリアルについてのコメントやアドバイスを寄せてくれた次の方々 +に感謝します. + +<descrip> +<tag/&a.wilko;/ + +<tag/Piero Serini/ <Piero@Strider.Inet.IT> +</descrip> + +<!-- </article> --> diff --git a/share/doc/ja_JP.EUC/handbook/stable.sgml b/share/doc/ja_JP.EUC/handbook/stable.sgml new file mode 100644 index 000000000000..34b9911ad1c6 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/stable.sgml @@ -0,0 +1,107 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.6 --> + +<chapt><heading>FreeBSD の安定状態の持続<label id="stable"></heading> + +<p><em>原作: &a.jkh;.</em> +<p><em>訳: &a.iwasaki;.</em> + +<!-- + + THE FREEBSD STABLE POLICY + +Last updated: $Date: 1996/10/04 22:54:15 $ + +This document attempts to explain the rationale behind +FreeBSD-stable, what you should expect should you decide to run it, +and states some prerequisites for making sure the process goes as +smoothly as possible. +--> + +<sect><heading>FreeBSD-stable ってなに?</heading> + +<p>FreeBSD-stable は, 次の本流のリリースを目指した新機能をあまり採り入 +れない保守的な変更のための開発の支流です. 実験的またはテスト未完の変更 +はこの支流には取り入れられません (<ref id="current" name="最新の +FreeBSD を追いかける"> 参照). + +<sect><heading>誰が FreeBSD-stable を必要としているの?</heading> + +<p>もしあなたが仕事で使用しているとか, なによりも FreeBSD システムの安 +定性を最重要視するなら, <em>stable</em> を追いかけることを考えるべきで +しょう. <em>stable</em>の支流は前のリリースに関して効果的にバグフィッ +クスされた流れであるため, 最新のリリース (<htmlurl +url="ftp://ftp.freebsd.org/pub/FreeBSD/2.1.5-RELEASE" +name="2.1.5-RELEASE"> 執筆時点) をインストールしているのであれば, 特に +そうです. + +<p><em>stable</em> ツリーが常に完全に互換性があり安定するように努力し +ていますが, たまに間違いがあることに注意してください (結局, 内容が吟味 +されずに素早く送られた変更を含むソースがまだあるのです). また, +<em>current</em> を <em>stable</em> へ移行する前に完璧なテストフィック +スに最善を尽くしますが, 私たちのテストはすべてのケースを十分に網羅して +いるとは限りません. もし何か <em>stable</em> で不具合があるようでした +ら, 私たちに<em>すぐに</em>教えてください (次の節参照). + +<sect><heading>FreeBSD-stable を使う</heading> + + <p><enum><item> &a.stable へ加わってください. このメーリングリスト + では, <em>stable</em> の構築に関連する事柄や, その他の注意すべき点 + に関する情報が流れています. また開発者は議論の余地がある修正や変更 + を考えている場合に, このメーリングリストで公表し, 提案された変更に + 関して問題が生じるかどうかを返答する機会をユーザに与えます. + + メーリングリストに参加するには, &a.majordomo へメッセージの本文に + 次のように書いたメールを送ってください: +<verb> + subscribe freebsd-stable +</verb> + オプションとして本文に `help' と書けば, Majordomo は私たちがサポー + トする様々なメーリングリストに参加 / 脱退する方法に関する詳しいヘ + ルプを送付します. + + <item> ftp.FreeBSD.ORG からのソースの入手. 以下の 3つの方法で + おこなうことができます : + + <enum> + <item> <ref id="ctm" name="CTM"> 機能を使用する. 転送レートが + 安定している TCP/IP 接続でない場合は, この方法が適して + います. + + <item> CMUの<ref id="sup" name="sup"> プログラム (ソフトウェア + 更新プロトコル) を使用する. 一度コレクション全体を入手 + してしまえば, 前回からの変更部分だけですむので, 2番目に + 推奨される方法です. 多くの人が cron から sup を実行し, + 自動的にソースコードを最新の状態に保っています. + + <item> ftp を使用する. FreeBSD-stable 用のソースツリーは + 常に次のところで「公開」されています : + <htmlurl url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable"> + + <p>私たちはまた, tar/compress でツリー全体を入手できる + `wu-ftpd' を使用しています. 例えば : +<verb> + usr.bin/lex +</verb> + に対して: +<verb> + ftp> cd usr.bin + ftp> get lex.tar.Z +</verb> + とすることにより, ディレクトリ全体を compress された tar + ファイルとして入手することができます. + </enum> + + <item> 基本的には, ソースに迅速でオンデマンドなアクセスが必要で, + 接続のバンド幅が問題でなければ, sup か ftp を使いましょう. そうで + ない場合は CTM を使いましょう. + + <item> stable をコンパイルする前に, /usr/src にある Makefile をよ + く読んでください. 少なくとも一回はアップグレードの処理の一部として + 最初に `make world' を実行するべきでしょう. &a.stable を読めば, 次 + のリリースに移行するに当たって時々必要となる既存システムからの新シ + ステムの構築手順についての最新情報が得られるでしょう. + +</enum> diff --git a/share/doc/ja_JP.EUC/handbook/submitters.sgml b/share/doc/ja_JP.EUC/handbook/submitters.sgml new file mode 100644 index 000000000000..e1dbca5be0a5 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/submitters.sgml @@ -0,0 +1,561 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.33 --> + +<chapt><heading>FreeBSD への貢献<label id="submitters"></heading> + +<p><em>原作: &a.jkh;.</em> +<p><em>訳: &a.iwasaki;.</em> + +<p>あなたも何か FreeBSD のために貢献したくなりましたか? 素晴らしい! +私たちは常に支援を受ける用意がありますし, FreeBSD は生き残るためにユー +ザベースの貢献に<em>頼る</em>ようなシステムの一つです. あなたの貢献は +感謝されるだけではなく, FreeBSD が成長し続けるために極めて重要なものな +のです! + +<p>一部の人達が言っているのとは逆に, 貢献を受け付けてもらうために腕利 +きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はあ +りません. FreeBSD プロジェクトの開発は, 多くのそして益々増加する世界中 +の貢献者達によってなされており, 彼らの年齢, 専門技術分野は多岐に渡りま +す. そして手の空いている人よりも成されるべき仕事の方が常に多いのです. + +<p>FreeBSD プロジェクトがカーネルや散在しているユーティリティよりも, +オペレーティングシステム環境 (と, そのインストール) に対して責任を持つ +ようになったため, 私たちの「TODO」リストはドキュメンテーション, ベータテ +スト, 高度に専門化されたタイプのカーネル開発の好例を紹介するなど非常に +広い範囲のタスクに渡ります. あなたの技能レベルに関わらず, プロジェクト +を支援できることが必ず何かあります! + +<p>FreeBSD 関連の事業に従事している商業団体が私たちにコンタクトすること +も歓迎します. あなたの製品を (FreeBSD 上で) 動作させるには, 特別な拡張 +が必要ではありませんか? あまりにも風変わりな要求でなければ, それを受け +入れる用意が私たちにあるとわかるはずです. +付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは, ある +面において共同して作業をすることができるでしょう. フリーソフトウェア界 +は, ソフトウェアがそのライフサイクルを通してどのように開発され, 売られ, +保守されていくかについて, 既存の仮説に挑戦しています. 少なくとももう一 +度考慮してみることを私たちは強くお奨めします. + +<sect><heading>何が必要?</heading> + +<p>次のタスクとサブプロジェクトのリストは, コアチームの色々な TODO リ +ストと最近2ヶ月で集めたユーザリクエストを合わせたものです. 可能なとこ +ろでは, 緊急度によってタスクがランクづけされています. もしここにあるタ +スクの実行に興味があるのでしたら, コーディネータの名前をクリックしてメー +ルを送ってください. もしコーディネータが決まっていなければ, あなたがボ +ランティアしてみませんか? + +<sect1><heading>優先度の高いタスク</heading> +<p>次のタスクは通常, ひどく壊れているとか, とても必要とされている何かを +表しているため, 急務と考えられています: + +<enum> +<item>第3ステージ・ブート問題. 全体コーディネーション: +&a.hackers + +<p><itemize> +<item>64MB を越えるメモリの正しい自動検出. + +<item>userconfig (-c) の 第3ステージ・ブートへの移動. + +<item>第3ステージがディスクの BIOS ジオメトリの正確なマッピングを提供 +できるように WinNT コンパチブルなドライブの追跡をおこなう. + +</itemize> +<item>ファイルシステム問題. 全体コーディネーション: +&a.fs + +<itemize> +<item>MSDOS ファイルシステムの修正. + +<item>nullfs ファイルシステムコードのクリーンアップと +ドキュメンテーション. コーディネータ: &a.gibbs + +<item>union ファイルシステムの修正. コーディネータ: &a.dyson + +<item>LFS ファイルシステムの修正. コーディネータ: &a.dyson + +</itemize> +<item>カーネル vm86 及びユーザ vm86 サポート実装. コーディネータ: +&a.hackers + +<item>Int13 vm86 ディスクドライバの実装. コーディネータ: &a.hackers + +<item>SCSI ドライバ問題. 全体コーディネーション: &a.hackers + +<p><itemize> +<item>タグキューイングの一般的なサポート. 私たちのおこなっている +コマンドキューイング方法の書換えが必要だが, とにかく優先度付けされた +I/O にはこれが必要 (CD-R ライタ / スキャナ). + +<item>エラー処理の改善 (ビジー・ステータスおよびリトライ). + +<item>統合された Scatter-Gather リスト生成コード. + +</itemize> +<item>カーネル問題. 全体コーディネーション: +&a.hackers + +<p><itemize> +<item>すべての現存ドライバの eisaconf 変換の達成. + +<item>すべての割り込みルーチンをユニット番号を使う代わりに (void *) を +取るように変更. + +<item>EISA/PCI/ISAの割り込み登録コードの統合. + +<item>PCI/EISA/ISA デバイス検出を bt742a.c(WIP) のようなドライバから分割. + +<item>syscons の ALT-TAB/vt 切替えによるハングの修正. コーディネータ: +&a.sos + +<item>syscons 用のマウスサポート. + +<item>すべてのコンソールドライバ用のキーボードコードの統合. + +<item>Intel Etherexpress 16 ドライバの書換え. + +<item>3c509と3c590 ドライバの統合 (本質的には PCI デバイス検出の ep.c +への提供). + +<item> Adaptec 3985 (シンプルな3チャネル SCSI カードとしては最初のもの) +のサポート. コーディネータ: &a.gibbs + +<item>Advansys SCSI コントローラ製品のサポート. コーディネータ: +&a.gibbs + +</itemize> +</enum> + +<sect1><heading>優先度がさほど高くないタスク</heading> +<p>次のタスクはやっておくべきではありますが, 特にさし迫っているわけで +はありません: + +<enum> +<item>DOS エミュレータ (DOS の実行ファイル用) コーディネータ: +<tt><htmlurl url="mailto:jr@jrw.org" name="J.R. Westmoreland"></tt> + +<item>AFS (Andrew ファイルシステム) の FreeBSD への移植 コーディネータ: +<tt><htmlurl url="mailto:ajones@ctron.com" name="Alexander Seth +Jones"></tt> + +<item>MCA サポート? これは続けるにしても止めてしまうにしても結論を出 +すべき. + +<item>完全な LKM ベースのドライバのサポート / コンフィグレーションマネー +ジャ. + +<p><itemize> +<item>ld なしですべての LKM の登録をおこなう方法を考案する. これは +カーネル中にある種のシンボルテーブルを持たせることを意味します. + +<item>穏やかな方法でハードウェアを検知するコンフィグレーションマネージャ +の作成 (第3ステージ・ブートの中に?). ハードウェアが必要とする LKM だけを +残す等. + +</itemize> +<item>PCMCIA/PCCARD. コーディネータ: &a.nate と &a.phk +<itemize> +<item>ドキュメンテーション! +<item>pcic ドライバの信頼性のある操作 (テスト要). + +<item>sio.c のリコグナイザとハンドラ (ほぼ完了). + +<item>ed.c のリコグナイザとハンドラ (ほぼ完了). + +<item>ep.c のリコグナイザとハンドラ (ほぼ完了). + +<item>User-mode のリコグナイザとハンドラ (部分的に完了). + +</itemize> +<item>先進的なパワーマネージメント. コーディネータ: &a.nate と +&a.phk + +<itemize> +<item>APM サブドライバ (ほぼ完了). + +<item>IDE/ATA ディスクサブドライバ (部分的に完了). + +<item>syscons/pcvt サブドライバ. + +<item>PCMCIA/PCCARD ドライバ群との統合 (サスペンド / レジューム). + +</itemize> +</enum> + +<sect1><heading>優先度の低いタスク</heading> +<p>次のタスクは全くのあら隠し, または誰もすぐにおこないそうもない投資 +のような仕事を表します: + +<p>最初の20項目は Terry Lambert <terry@lambert.org> からのもので +す. + +<enum> +<item>プロセッサ上で V86 モードを使用して, プロテクトモードからの BIOS +コールができるようにし, マップされた割り込み IPC 機構を経由してプロテ +クトモードの呼出し元に結果を返すようにする. + +<item>DOS と同じように, 実際の下位ハードウェアから独立になるよう, BIOS +コール機構を使用したカーネルの中に組み込まれたドライバ. これは DOS ベー +スのローダプログラムで BSD がロードされる前に DOS にロードされていたネッ +トワークドライバや ASPI ドライバも含みます. このことは潜在的なポーリン +グ, つまりプロテクトモードカーネルによる V86 マシンのための +DOS-not-busy 割り込みの生成を意味します. + +<item>ハードウェア固有のプロテクトモードのドライバがロードされて活性化 +された後で, デフォルトのカーネル実行形式の中の, そのようなドライバデー +タとテキストエリアを追跡して, カーネルアドレス空間のその部分が回復され +るようにするためのイメージ形式. +これは個々の BIOS ベースのドライバを互いに分離することを含みます. なぜ +なら全く実行しないよりも, すべてのケースにおいて BIOS ベースのドライバ +と共に実行した方が良いためです. + +<item>バスインタフェース機構の抽象化. 現在のところ, PCMCIA, EISA そし +て PCI バスはブリッジで ISA バスに接続されていると仮定しています. こう +いった仮定はおこなうべきではありません. + +<item>パワーマネージメントイベント, カードの挿入, 取り出し, そしてバス +(PNPISA と PCMCIA とのブリッジチップ) 対カードのレベルのイベント管理を +含む PNP イベントを解釈するコンフィグレーションマネージャ. + +<item>固定デバイスによる他の再割当可・不可のデバイス空間リソースの使用 +と衝突しない, 再割当可能なアドレスの割り当てのためのトポロジカルソート +機構. + +<item>ハードウェアサービス登録のための登録ベースの機構. 特にタイマ, +サウンドおよび他のシステムクリティカルなサービス供給源のためのデバイス +中心の登録機構. 単一の独立していないサービス供給源の一つの例として +Timer2, Timer0 そしてスピーカサービスを考慮する必要があります. + +<item>配置転換とシンボル空間操作をおこなう LKM ローダ機構からアクセス +可能な, カーネルのデータ空間内にあるエキスポートされたシンボル空間. こ +のインタフェースの目的は, 必要な時にカーネルモジュールをロードして, 必 +要がなくなればアンロードできる能力をサポートすることです. + +<item>ネットワークカードと一緒に提供される ODI カードドライバを使用で +きるようにする, NetWare サーバ (プロテクトモードの ODI ドライバ) ロー +ダとサブサービス. NDIS ドライバと NetWare の SCSI ドライバについても同 +様. + +<item>前のリビジョンの FreeBSD マシンではなく, Linux マシンで動作する +「アップグレード システム」オプション. + +<item>移植を簡単にするためと, X, ThinkPad, PS/2マウス, LED, コンソール +スイッチング, しつこい NumLock などの問題を全部一度に片付けるためのコ +ンソールドライバの抽象レイヤへの分割. + +<item>機会が許したら, 他の外部ドライバのための他のカーネルのエミュレー +ション環境. SCO と Solaris は UnixWare などに続く良い候補です. + +<item>異なるアーキテクチャのバイナリの実行のためのプロセッサエミュレー +ション環境. これはシステムコールインタフェースがあまり変わらなければ, +思ったより簡単です. + +<item>商用のストリームドライバを使用可能にするためのストリーム機構. + +<item>カーネルのマルチスレッド化 (カーネルのプリエンプションが必要). + +<item>カーネルのプリエンプション付き対称マルチプロセッシング (カーネル +のプリエンプションが必要). + +<item>ポータブルコンピュータのサポートにおける協調の試み. +これは PCMCIA ブリッジング規則と電源管理イベント処理の変更により, いく +らかは処理できます. しかし, 内蔵ディスプレイと外部ディスプレイの検出, +この2種類のディスプレイがあるという事実に基づく異なる解像度の選択, マ +シンがドックにある場合にはディスクのモータ停止を防止すること, マシンの +ブート能力に影響を与えずにドックベースのカードの消滅を可能にすること +(PCMCIA と同じ問題) などの問題があります. + +<item>マルチプラットフォームへの移植のためのソースツリーの再組織化. + +<item>「make world」できちんと「世界を創造する」ができるようにする. +(もし「make regress 訳注: 後退する」と呼び方が適当であれば, そのように +名前を変える) + +<item>最小必要メモリ 4MB 化 (もっと小さければなお良し!). + +</enum> + +<sect><heading>貢献の仕方</heading> + +<p>一般的に, システムへの貢献は次の6つのカテゴリの1つ以上に分類されま +す: + +<sect1><heading>バグ報告と一般的な論評</heading> +<p>報告するべきバグがあったり, 提案したいことがあれば: + +<itemize> + <item>一般的な技術的関心事に関するアイデアや提案は + &a.hackers; へメールしてください. + 同様に, このような事柄に興味のある (そして<em>膨大な</em>メー + ル! に耐えられる) 人は, &a.majordomo; へメールを送って hackers + メーリングリストに参加すると良いでしょう. 情報については <ref + id="eresources:mail" name="メーリングリスト"> を参照してください. + + <item>実際のバグ報告は <tt>send-pr(1)</tt> プログラムを使用して + 提出してください. これは色々な項目について質問してきます. + 単に <tt><></tt> の辺りで, そこで示されているものの + 代わりにあなた固有の情報を入力するだけです. あなたはバグ報告の確 + 認とトラッキング番号を受け取るはずです. このトラッキング番号を覚 + えておいて, 後々の連絡に使用してください. もしタイムリに (あなた + の電子メール接続形態にもよりますが, 3日から1週間) 確認を受けとれ + ないとか, 何らかの理由で <tt>send-pr(1)</tt> コマンドが使用でき + ない場合には, &a.bugs へメールを送ってバグ報告を提出してください. + +</itemize> + +<sect1><heading>文書の変更</heading> + +<p>文書の変更は &a.doc; が監督しています. 一般的にこれは「現存のソース +コードの変更」のカテゴリで考慮されるべきマニュアルページの変更は含ん +でいません. + +<sect1><heading>現存のソースコードの変更</heading> +<p>現存のソースコードへの追加または変更は, いくらかトリッキーな仕事で + あり, core の FreeBSD 開発の現状にあなたがどれだけ通じているかに大 + きく依存します. 「FreeBSD-current」として知られる FreeBSD の特別な + 継続的リリースがあります. FreeBSD-current は開発者の積極的な活動の + 便宜のために, 色々な方法で利用可能になっています. FreeBSD-current + の入手と使用方法についての詳しい情報については <ref id="current" + name="最新の FreeBSD を追いかける"> を参照してください. + + 不幸にして古いソースをもとに仕事をすることは, 時々あなたの変更が時 + 代遅れ, または FreeBSD への簡単な再統合に合わなくなっていることを意 + 味します. システムの現状に関する議論がおこなわれている &a.announce と + &a.current へ参加することで, この可能性を最小限にすることができます. + + 完全な最新のソースを変更のベースにできることが確実になったと仮定し + て, 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です. + これは <tt>diff(1)</tt> コマンドを使用しておこないますが, 「context + diff」形式が好まれるようです. 例えば: +<tscreen><verb> +diff -c oldfile newfile +</verb></tscreen> +または +<tscreen><verb> +diff -c -r olddir newdir +</verb></tscreen> + + これで指定されたソースファイルまたはディレクトリ階層に対するコンテ + キスト形式の差分が生成されます. 詳しい説明は <tt>diff(1)</tt> のマ + ニュアルページを参照してください. + + 差分ファイル (<tt>patch(1)</tt> コマンドでテストできます) を作った + ら, それらを電子メールのメッセージにバンドルして, 差分ファイルの目 + 的の簡単な説明と一緒に &a.hackers; へ送ってください. 誰かが24時間以 + 内にあなたにコンタクトを取ってくるでしょう. もちろん, あなたの差分 + ファイルが興味深いものであると仮定していますが! :-) + + あなたの変更が差分ファイル単独でそれ自身を良く表現できない場合は + (例えば, ファイルの追加, 削除または名称変更が必要など), 新たなファ + イルをまとめて出した方が良いでしょう. 差分ファイルと他のファイルの + 削除 / 名称変更の指示を <tt>tar</tt> ファイルに格納し, + <tt>uuencode(1)</tt> プログラムにかけてから &a.hackers; へ送ってく + ださい. このファイルのバンドル方法に関する詳しい情報については, + <tt>tar(1)</tt> と <tt>uuencode(1)</tt> のマニュアルページを参照し + てください. + + 例えばあなたがそれ自身のさらなる配布を管理するコピーライト問題を良 + く分かっていないとか, 単に厳しいレビューをおこなっておらず, リリース + する準備ができていないなど, あなたの変更が潜在的に不安定な性質をも + つものである場合, &a.hackers よりむしろ &a.core; + へ送ってください. コアチームメーリングリスト宛のメールは, 日々の仕 + 事のほとんどを FreeBSD でおこなっている人たちの, より小さなグルー + プに届きます. このグループもまた<em>とても忙しい</em> ことに注意し + て, hackers への投稿が本当に実際的でない場合に, コアチームの彼らに + メールを送るだけにしてください. + +<sect1><heading>新たなコードやメジャーな付加価値の高いパッケージ</heading> + +<p>重要な大きい仕事の寄贈や, 重要な新しいフィーチャーを FreeBSD に追加 + する場合には, 変更点を tar/uuencode したファイルにして送るか, それ + らを私たちの ftp サイト <url + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming"> へアップロードす + ることのどちらかが通常必要になります. + + 大量のコードを伴った仕事の場合, コピーライトの神経過敏な問題が常に + 出てきます. FreeBSD に含めるコードのコピーライトとして受け入れるこ + とができるのは, 以下の二つです: + +<enum> + <item>BSD コピーライト. このコピーライトは「権利に縛られない」性格 + と商用企業にとって一般的な魅力をもつために最も好まれま + す. FreeBSD プロジェクトは商用利用を阻んだりせず, 何かを + FreeBSD へ投資する気になった商業関係者による参加を積極的に奨励 + します. + + <item>GNU一般公有使用許諾, または「GPL」. このライセンスはコード + を商用目的に使用する場合に余分な努力が求められるため, 私たち + にあまり評判が良いというわけではありません. しかし, 私たちは + 既に GPL 下の高品質なコード (コンパイラ, アセンブラ, テキスト + フォーマッタ等) の提供を受けており, 私たちは現在それを必要と + しています. そのため, このライセンスによる新たな貢献を拒絶す + るというのは愚かなことでしょう. GPL 下のコードはソースツリー + の別の部分, 現在のところ <tt>/sys/gnu</tt> か + <tt>/usr/src/gnu</tt> に入っています. そのため, GPL が問題と + なるような人は, 誰でも簡単にそれとわかるようになっています. +</enum> + +<p>これ以外のタイプのコピーライトによる寄贈は, FreeBSD へ含めることを + 考慮する前に, 注意深いレビューを受けなければなりません. 作者が独自 + のチャネルを通して配布しており, そのような変更をおこなうことを常に + 奨励している場合でも, 特に限定的な商用のコピーライトが適用される寄 + 贈は一般に拒否されます. + + あなたの作品に「BSD-スタイル」のコピーライトを付けるには, 保護した + いソースコードファイルすべての一番最初に以下のテキストを入れて, + `<tt>%%</tt>' の間を適切な情報に置き換えください. + +<tscreen><verb> +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: submitters.sgml,v 1.33 1996/10/04 22:54:16 wosch Exp $ +</verb></tscreen> +便宜をはかるため, このテキストのコピーは次の場所に置いてあります. +<tt>/usr/share/examples/etc/bsd-style-copyright</tt>. + + &porting; + +<sect1><heading>金銭, ハードウェアまたはインターネットアクセス</heading> +<p>FreeBSD プロジェクトの目的を進めるための寄付や, 私たちと同じような +ボランティアの細く長い ! 努力を, 私たちは常に喜んで受け入れています. +また一般的に私たちは自分達で周辺機器を買う資金が不足しているため, +周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です. + +<sect2><heading>資金の寄付</heading> +<p>FreeBSD プロジェクトは501(C3) (非営利) 企業ではないため, いかなる寄 +付に対しても特別な税金の優遇措置を提供することができません. このような +寄付はプロジェクトを代表して FreeBSD, Inc により感謝をもって受け入れら +れるでしょう. + +<p>FreeBSD, Inc.は FreeBSD プロジェクトの推進とプロジェクトに企業とし +ての最小限の体裁を持たせることを目的として, 1995年の初めに &a.jkh と +&a.davidg により設立されました. 寄付されたすべての資金は (最終的に +FreeBSD, Inc.によりもたらされるであろうすべての利益も同様に) プロジェク +トの目標を推進するためだけに使われるでしょう. + +支払い先を FreeBSD, Inc. とした小切手を, 次の住所気付けで送ってください: +<tscreen><verb> +FreeBSD, Inc. +c/o Jordan Hubbard +4041 Pike Lane, suite #D. +Concord CA, 94520 + +[私書箱が開設されるまで一時的に Walnut Creek CDROM の住所を使用] +</verb></tscreen> + +電信振替は次の所まで直接送れるでしょう: + +<tscreen><verb> +Bank Of America +Concord Main Office +P.O. Box 37176 +San Francisco CA, 94137-5176 + +Routing #: 121-000-358 +Account #: 01411-07441 (FreeBSD, Inc.) +</verb></tscreen> + +もし <ref id="donors" name="寄贈者ギャラリー"> の節で匿名を希望される +方は, 寄付の際にその旨お伝えください. Thanks! + +<sect2><heading>ハードウェアの寄贈</heading> + +<p>FreeBSD プロジェクトは, 次の3つのカテゴリのどんなハードウェアの寄贈 +も, 喜んで受け付けます: + +<itemize> +<item>ディスクドライブ, メモリまたは完全なシステムといった一般用途のハー +ドウェアは, <em>資金の寄付</em>の節にある FreeBSD, Inc. の住所まで送っ +てください. + +<item>進行中の受け入れテストのためのハードウェアが必要とされていま +す. 新たなリリース毎に適切な逆行テストができるように, 私たちは現在, +FreeBSD がサポートするすべてのコンポーネントのテストラボを設置しよう +としています. 私たちにはまだ, たくさんの重要な部品 (ネットワークカード, +マザーボードなど) が不足していますので, このような寄贈をしたいと思って +いるならば, &a.davidg へコンタクトしてどの部品がまだ必要とされているか +の情報を得てください. + +<item>現在 FreeBSD にサポートされていないハードウェアで, サポートに追 +加して欲しいもの. 私たちがそれらの荷物を受けとる前にそのタスクを引き受け +てくれる開発者を探す必要があるため, その部品を送る前に &a.core; +にコンタクトを取ってください. + +</itemize> + +<sect2><heading>インターネットアクセスの寄付</heading> + +<p>私たちは常に FTP, WWW や sup の新しいミラーサイトを募集しています. +ミラーサイトになりたい場合には <htmlurl url="mailto:admin@FreeBSD.ORG" +name="the FreeBSD project administrators"> にコンタクトを取って, 詳し +い情報を手に入れてください. + +<sect><heading>寄贈者ギャラリー<label id="donors"></heading> + +<p>FreeBSD プロジェクトは次の寄贈者に恩義を受けており, ここに公表して +感謝の意を表したいと思います. + +<itemize> + <item><htmlurl url="mailto:ANDRSN@HOOVER.STANFORD.EDU" + name="Annelise Anderson"> + + は, FreeBSD のさらなる開発のための資金を気前良く寄付してくださいま + した. + + </item> + + <item><htmlurl url="http://www.epilogue.com/" name="Epilogue + Technology Corporation"> は, FreeBSD の開発のための資金を気前 + 良く寄付してくださいました. + + </item> + + <item><htmlurl url="mailto:gmarco@masternet.it" name="Gianmarco + Giovannelli"> は, FreeBSD の開発のための資金を気前良く寄付して + くださいました. + + </item> + + <item>日本の<htmlurl url="http://www.iijnet.or.jp/laser5/" + name="Laser5"> は, FreeBSD の NEC PC98 への移植である + <em>FreeBSD for PC98</em> CD の販売利益の一部を, 気前良く寄付 + してくださいました. + + </item> + + <item><htmlurl url="http://www.cdrom.com" name="Walnut Creek CDROM"> + は, 言い表せないほど多くの寄付をしてくださいました (詳細は<ref + id="history" name="FreeBSD 小史">を参照). + 特に, 私たちのプライマリ開発マシンである + <em>freefall.FreeBSD.ORG</em>, 私たちのテストおよびビルドマシン + である<em>thud.FreeBSD.ORG</em> で使用しているハードウェアに対し + 感謝したいと思います. + また彼らには, 数年にわたる色々な貢献者への資金提供や, インターネッ + トへの T1 コネクションの無制限使用を提供してもらったという恩義があり + ます. + + </item> +</itemize> diff --git a/share/doc/ja_JP.EUC/handbook/sup.sgml b/share/doc/ja_JP.EUC/handbook/sup.sgml new file mode 100644 index 000000000000..710a92ba0e2d --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/sup.sgml @@ -0,0 +1,154 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.20 --> + +<sect><heading>SUP<label id="sup"></heading> + +<p><em>原作: &a.jkh; and &a.gclarkii;.</em> +<p><em>訳: &a.iwasaki;.</em> + +SUP は CMU で開発されたネットワークベースのソフトウェア更新ツールです. +この文書の目的は初心者が sup を利用できるようにすることです. + +<sect1><heading>セットアップ</heading> + +<p>SUP は supfile と呼ばれるコンフィグレーションファイルから, 実行す +るのに必要な情報を取得します. FreeBSD のソースリリースによって提供さ +れる異なる supfile の見本があります. +<htmlurl url="file:/usr/share/examples/sup/standard-supfile" +name="/usr/share/examples/sup/standard-supfile"> は最新の標準 +FreeBSD ソース配布ファイルの sup 情報を含んでいます - このファイルは +sup に, 何のコレクションが更新かつ / またはインストールされるか, ど +こにインストールされるかを伝えます. 特にこの supfile を使用している +人は, <ref id="current" name="-current"> を sup することになります. +<p>ports に関しては, +<htmlurl url="file:/usr/share/examples/sup/ports-supfile" +name="/usr/share/examples/sup/ports-supfile"> に目を通してください. +<p>もしソースツリーを構築する +<htmlurl url="http://www.freebsd.org/cgi-bin/cvsweb" name="CVS"> +ファイルの入手に興味があるのでしたら, <htmlurl +url="file:/usr/share/examples/sup/cvs-supfile" +name="/usr/share/examples/sup/cvs-supfile"> を参照してください. +<p>むしろ -stable 支流への変更を追いかけたいのであれば, 代わりに +<htmlurl url="file:/usr/share/examples/sup/stable-supfile" +name="/usr/share/examples/sup/stable-supfile"> を参照してください. + +アメリカ合衆国内に住んでいる方は, DES コードを持ってくるために +`secure' と `eBones' コレクションの行のコメントを外してください. +合衆国国外にいる方は, 合衆国の輸出規制を犯すことになるので, このコー +ドをsup.FreeBSD.ORG から sup すべきではありません. この代わりに sup +examples ディレクトリ内にある<htmlurl +url="file:/usr/share/examples/sup/secure-supfile" +name="secure-supfile"> を使用してください. これは secure 配布ファイ +ルを含む国際的な sup サイトへ接続します. 受けとりたくない配布ファイ +ルは, 配布ファイルの行の先頭にて &num でコメントアウトすることができ +ます. + +代替の sup サーバの一覧は, <htmlurl +url="file:/usr/share/examples/sup/README" +name="/usr/share/examples/sup/README"> を参照してください. 現在, 上 +記の見本ファイルにあるデフォルトの sup サーバ (sup.FreeBSD.ORG) は超 +負荷の状態であるので, どんなトラフィックでも他のホストへ乗り換えられ +れば, いくらか重荷が軽減できるしょう. + +これがセットアップされれば準備完了です. sup の起動は : +<verb> + sup supfile +</verb>とタイプします. +sup が何をしているかを「冗長に」に見たいなら, 次のように -v を与えてください: +<verb> + sup -v supfile +</verb> +以上です! あなたが current を実行しているどうか, standard-supfile で +sup するときに得られるものが何かを覚えておき, &a.current へ参加して +ください. -current ユーザとしてのあなたに何かできて何ができないかの +重要な情報として, <ref id="current" name="最新の FreeBSD を追いかける">を +読んでおいた方かよいでしょう. stable-supfile をお使いの方は, +&a.stable へ参加し <ref id="stable" name="FreeBSD の安定状態の持続">を +読んでください. + +<sect1><heading>FreeBSD SUP 配布ファイルの詳細説明</heading> + +<p>standard-supfile を使用したメインの FreeBSD 配布ファイルは : +<verb> +src-base: /usr/src/... /usr/src のトップにあるその他のファイル +src-bin: /usr/src/bin ユーザとシステムのバイナリ +src-secure: /usr/src/secure DES のソース (US/Canada ONLY) +src-eBones: /usr/src/eBones Kerberos と DES (US/Canada ONLY) +src-etc: /usr/src/etc システムファイル +src-games: /usr/src/games ゲーム +src-gnu: /usr/src/gnu GNU Public License 下にあるソース +src-include: /usr/src/include インクルードファイル +src-sys: /usr/src/sys カーネルのソース +src-lib: /usr/src/lib ライブラリ +src-libexec: /usr/src/libexec システムバイナリ +src-release: /usr/src/release release を構築するために必要なソース +src-share: /usr/src/share 色々な共有リソース +src-sbin: /usr/src/sbin シングルユーザのシステムバイナリ +src-tools: /usr/src/tools 色々な管理ツール +src-usrbin: /usr/src/usr.bin ユーザバイナリ +src-usrsbin: /usr/src/usr.sbin システムバイナリ +</verb> + +<p>secure-supfileを使用した国際的なFreeBSD配布ファイルは: +<verb> +src-secure: /usr/src/secure DES のソース +src-eBones: /usr/src/eBones Kerberos と DES +</verb> + +<p>また, 輸出規制のあるソフトウェア (たとえば, <tt>src-secure</tt> と +<tt>src-eBones</tt> コレクション) の両方のバージョン (合衆国内または +国外) を除く, 上記すべてを含むコレクションがあります: +<verb> +src-all: /usr/src オペレーティングシステム全体 (ほぼすべて) +</verb> + +<p>そして ports コレクションは: +<verb> +ports-base: /usr/ports/... /usr/ports のトップにあるその他のファイル +ports-archivers: /usr/ports/archivers アーカイビングのツール +ports-astro: /usr/ports/astro 天文学関連の ports +ports-audio: /usr/ports/audio サウンドサポート +ports-benchmarks: /usr/ports/benchmarks ベンチマークプログラム +ports-cad: /usr/ports/cad CAD ツール +ports-chinese: /usr/ports/chinese 中国語サポート +ports-comms: /usr/ports/comms 通信ソフトウェア +ports-databases: /usr/ports/databases データベース +ports-devel: /usr/ports/devel 開発ユーティリティ +ports-editors: /usr/ports/editors エディタ +ports-emulators: /usr/ports/emulators 他の OS のエミュレータ +ports-games: /usr/ports/games ゲーム +ports-graphics: /usr/ports/graphics 色々なグラフィックユーティリティ +ports-japanese: /usr/ports/japanese 日本語サポート +ports-lang: /usr/ports/lang プログラミング言語 +ports-mail: /usr/ports/mail メールソフトウェア +ports-math: /usr/ports/math 数値計算ソフトウェア +ports-mbone: /usr/ports/mbone MBone アプリケーション +ports-misc: /usr/ports/misc 色々なユーティリティ +ports-net: /usr/ports/net ネットワーキングソフトウェア +ports-news: /usr/ports/news USENET ニュースのソフトウェア +ports-plan9: /usr/ports/plan9 Plan9 からの色々なプログラム +ports-print: /usr/ports/print 印刷ソフトウェア +ports-russian: /usr/ports/russian ロシア語サポート +ports-security: /usr/ports/security よりよい (悪い?) 「セキュリティ」関連のユーティリティ +ports-shells: /usr/ports/shells 色々な UN*X シェル +ports-sysutils: /usr/ports/sysutils システムユーティリティ +ports-www: /usr/ports/www WWW 関連のソフトウェア +ports-x11: /usr/ports/x11 X11 のソフトウェア +</verb> + +<p>また, 上記すべてを含むコレクションがあります: +<verb> +ports-all: /usr/ports ports ツリー全体 +</verb> + +<p>ports のオリジナルソースを更新し続けたい場合は, 次の行を supfile へ +追加することができます. ただしこのコレクションは<em>巨大</em>である +ことに注意してください. そして, FreeBSD ツリー全体を (ある理由で +「mirror」は使用できませんが) ミラーリングしている FTP サイトでないので +あれば, あなたは (そして私たちにとっても) これらを収集する sup を使用しな +い方がずっといいでしょう: +<verb> +ports-distfiles: /usr/ports/distfiles original tarballs +</verb> + diff --git a/share/doc/ja_JP.EUC/handbook/synching.sgml b/share/doc/ja_JP.EUC/handbook/synching.sgml new file mode 100644 index 000000000000..80d8093099e3 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/synching.sgml @@ -0,0 +1,69 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<chapt><heading>インターネットを通じたソースツリーの同期<label id="synching"></heading> + +<p><em>原作: &a.jkh;.</em> +<p><em>訳: &a.iwasaki;.</em> + +<!-- + +Last updated: $Date: 1996/10/04 22:54:16 $ + +This document tries to describe the various ways in which a user may +use the internet to keep development sources in synch. +--> + +<p>インターネット接続 (または電子メール) を使用して, あなたの興味の対 +象によって FreeBSD プロジェクトのソースのある一部分または全体の最新を +追いかける方法は色々あります. 私たちが提供している基本的なサービスは +CTM, SUP そして CVSup (<bf>新着</bf>) です: + +<p>CTM は SUP を陳腐化させると言われてきました. が実際は, これは本当の +ことではありません. それぞれのツールはもともと異なる支持層に応えるため +に設計されたのであり, 最初に使われだしてから重要な改良が施されてきまし +たが, ソースの同期問題を解決すべく基本的に異なったアプローチを採ってき +ました. +SUP はもともとはインターネット接続を自由に (または少なくとも高速に) 使 +える人たちをサポートするために設計されたのに対して, CTM はアクセスの手 +段を電子メールのみに限定された人たちのサポートを狙ったものでした. + +<p><bf>SUP</bf> (Software Update Protocol) はハードディスク上の +FreeBSD のソースのローカルなコピーを追跡し, ユーザがセットアップした設 +定ファイルを使用して, ネットワーク越しに FreeBSD のマスタアーカイブ上 +で変更のあったファイルを取ってきて更新するためのリクエストを送します. + +<p>一方, <bf>CTM</bf> はあなたが持っているソースとマスタアーカイブ上に +あるそれとの対話的な比較をおこないません. +そのかわりに, 前回の実行時からの変更を認識するスクリプトがマスタアーカ +イブ上で一日に数回実行され, すべての変更を compress し通し番号を振り, +さらに電子メールで転送できるようにエンコードします (印時可能な ASCII +キャラクタのみです). 受けとったあとは, これらの「CTM のデルタ」は自動 +的にデコードし検査してユーザのソースのコピーに変更を適用する +ctm_rmail(1) によって処理可能となります. この処理は SUP よりずっと効率 +的であり, <em>pull</em> モデルというよりむしろ <em>push</em> モデルで +あるため, 私たちのサーバ資源の負荷は軽くなります. + +<p>もちろん他のトレードオフもあります. あなたが SUP でうっかりアーカイ +ブの一部を消してしまっても, SUP は壊れた部分を検出して再構築してくれま +す. CTM はこれをやってくれません. もしソースツリーの一部を消してしまっ +たら, 一からやり直して (最新の CVS 「ベースデルタ」から) すべてを再構 +築しなければなりません. + +<p>ごく最近, <bf>CVSup</bf> ユーティリティの紹介によって状況はより混沌 +としてきました. +これは, たった一つの CVS リポジトリ (これもまた CVSup によって非破壊的 +に転送できます - すべてのローカルな開発者が保存されている独立した支流 +で作業しています) から FreeBSD 開発のどんな支流へのアクセスも提供する +もので, SUP に取って代わる有力なものです. +SUP の数々の欠点を克服するものであり, おそらく私たちの開発サーバから +<htmlurl url="ftp://freefall.freebsd.org/pub/CVSup/" name="ダウンロー +ド">されます. 開発サーバではまた, 付加的なドキュメントを提供しています. +CVSup のクライアントとサーバは sup と supfilesrv の配布ファイル形式と +互換性があります. + +SUP と CTM についての詳しい情報については, 以下の節を参照してください: + + ⊃ + &ctm; diff --git a/share/doc/ja_JP.EUC/handbook/term.sgml b/share/doc/ja_JP.EUC/handbook/term.sgml new file mode 100644 index 000000000000..f7f8ec54c09f --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/term.sgml @@ -0,0 +1,527 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.4 --> + +<!-- This is an SGML document in the linuxdoc DTD describing + hardwired terminals with FreeBSD. By Sean Kelly, (c) 1996. + + +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> + +<linuxdoc> + <article> + <title> 端末 + <author> Sean Kelly <tt/kelly@fsl.noaa.gov/ + <date> 24 June 1996, (c) 1996 + + <abstract> このドキュメントでは, FreeBSD が動作しているコンピュー +タに接続されたシリアル端末の利用について説明します. 配線も含めたシリア +ル端末のハードウェアの設定, FreeBSD に接続されたシリアル端末に対してロ +グイン セッションを可能にするための設定方法, シリアル端末関連のト +ラブルシューティングについてまとめています. + </abstract> + + <toc> +--> + +<sect><heading>シリアル端末<label id="term"></heading> + + <p><em>原作: &a.kelly;<newline>28 July 1996</em> + <p><em>訳: &a.max;</em> + +シリアル端末を利用することで, コンピュータのコンソールのそばにいないと +きや, 手近にネットワーク接続されているコンピュータがないときでも, +FreeBSD の機能を便利に, かつ安価に利用することができます. ここでは, +FreeBSD にシリアル端末を接続する方法を解説します. + + <sect1><heading>端末の種類と利用方法<label + id="term:uses"></heading> + + <p>もともと Unix システムにはコンソールがありませんでした. ユー +ザはコンピュータのシリアル ポートに接続された端末からログインして +プログラムを利用していました. ちょうどモデムと通信ソフトを使ってリモート +のコンピュータにログインし, テキスト ベースのプログラムを利用するのと +よく似ています. + + 最近の PC は, 高品質の画像を表示できるコンソールを搭載していま +すが, ほとんどすべての Unix 系 OS には未だにシリアル ポートを使ってログ +インするための機能があり, FreeBSD でもこの機能がサポートされています. +現在使用されていないシリアル ポートに端末を接続することでシステムに +ログインし, 通常はコンソールや Xウィンドウ システムの <tt/xterm/ のウィ +ンドウ上で起動しているテキスト ベースのプログラムであれば何 +でも利用することができます. + +職場での利用ということで考えるならば, FreeBSDが動作しているコンピュー +タに接続された何台ものシリアル端末を各社員の机に配置するというようなこ +とが可能です. また, 家庭での利用方法としては, 余っている古い IBM PC や +Macintosh を FreeBSD が動いているパワフルなコンピュータの端末として利 +用することができます. 普通ならシングルユーザのコンピュータを, パワフ +ルなマルチユーザのシステムに変えることができるのです. + + FreeBSD では, 以下に挙げる3種類の端末が利用できます. + + <itemize> + <item><ref name="ダム (dumb) 端末" id="term:dumb"> + <item><ref name="PCを利用した端末" id="term:pcs"> + <item><ref name="X 端末" id="term:x"> + </itemize> + + 以下は, それぞれについての解説です. + + <sect2><heading>ダム端末<label id="term:dumb"></heading> + + <p>ダム端末は, シリアルライン経由でのコンピュータとの接続専 +用のハードウェアです. ダム端末は, テキストの送受信および表示ができる +程度の計算能力しかもっていないので, ``dumb'' (間抜け) というように呼ば +れています. この端末上でプログラムを実行することはできません. テキスト +エディタ, コンパイラ, E-mail, ゲームなどなどのプログラムを実行するのは, +ダム端末を接続しているコンピュータの方です. + + Digital Equipment社の VT-100 や, Wyse社の WY-75 を初めとして, +多くのメーカが何百種類もの ダム端末を作っています. ほとんどどんな種 +類のダム端末でも FreeBSD に接続して使用できます. さらに, 高性能の端 +末の中には画像を取り扱えるものもありますが, 限られた数のソフトウェア +パッケージしかこういった機能には対応していません. + + ダム端末は, X ウィンドウ システムで提供されるようなグラ +フィックアプリケーションを必要としない職場で広く用いられています. + + <sect2><heading>PC を端末として利用する<label + id="term:pcs"></heading> + + <p><ref name="ダム端末" id="term:dumb"> がテキストの表示およ +び送受信の機能をそなえただけのものならば, 言うまでもなく, どんなPC +もダム端末になり得ます. 必要なものは適切なケーブルと, そのPCの上 +で動作する<em/端末エミュレーション/ を行うソフトウェアのみです. + +このような環境は, 家庭においてよく利用されます. たとえば, あなたの同居 +人が FreeBSD のコンソールを専有している時などに, あまりパワーのないコ +ンピュータを FreeBSD システムにシリアル端末として接続し, その端末上で +テキストだけを用いる作業をおこなうことができます. + + <sect2><heading>X 端末<label id="term:x"></heading> + + <p>X 端末は, 既存のものの中で最も洗練された種類の端末といえ +ます. X 端末は, たいていの場合シリアル ポートで゜はなく, イーサネッ +トのようなネットワークを利用した接続をおこないます. また, アプリケーション +の利用においても, テキストベースのものだけでなく, X アプリケーション +の利用が可能です. + + ここでは, 参考までに 端末について紹介しただけで, X 端 +末の設定や利用についての解説は<em/おこないません/. + + <sect1><heading>ケーブルとポート<label + id="term:cables-ports"></heading> + + <p>シリアル端末を FreeBSD システムに接続するためには, 適切なケー +ブルと, 端末を接続するためのシリアルポートが必要です. ここでは, これ +らについて説明します. もし既にあなたの利用したい端末と, その端末 +を接続するためのケーブルについてよく理解していれば, <ref name="設定" +id="term:config"> の章まで読み飛ばしてください. + + <sect2><heading>ケーブル<label id="term:cables"></heading> + + <p>端末の接続は, シリアルポートを利用します. そこで, 端末を +FreeBSD システムに接続するためには, シリアルケーブル (RS-232C ケーブ +ルとも呼ばれています) が必要となります. + + シリアルケーブルには2種類のケーブルがあります. どちらの種類の +ケーブルを使わなければいけないかは, どんな端末を接続したいかによります. + + <itemize> + <item>もし, PC を端末として利用したい場合は, <ref +name="ヌルモデム" id="term:null"> ケーブル (リバースケーブルもしくは +クロスケーブルと呼ばれることもしばしばあります) を使用してください. +ヌルモデムケーブルは, コンピュータ同士や端末同士を接続するために用い +られるケーブルです. + + <item>もし, 本物の端末を接続するのであれば, その端末につい +てきたドキュメントからどのようなケーブルを使うべきか調べてください. も +しドキュメントがない場合は, まず <ref name="ヌルモデム" +id="term:null"> ケーブルを試してみて, うまくいかない場合は <ref name=" +スタンダード" id="term:std"> ケーブル (しばしばストレートケーブルと呼 +ばれます) を試してみてください. + </itemize> + + また, 端末側と FreeBSD 側の <em/両方の/ シリア ポート +の形状が, あなたが使用しようとしているケーブルについているコネクタの形 +状と一致していなければなりません. + + <sect3><heading>ヌルモデムケーブル<label id="term:null"></heading> + + <p>ヌルモデムケーブル (またはリバースケーブルあるいはクロ +スケーブル) は, たとえば ``signal ground'' 信号のように, いくつかの信 +号はそのまま通しますが, 他の信号は途中で入れ替えて通します. たとえば, +``send data'' 信号のピンは, 反対側のコネクタの ``receive data'' 信号の +ピンと繋がっています. + + 自分で使うケーブルは自分で作りたいということであれば, 以下にター +ミナルを接続する際に推奨されるヌルモデムケーブルの結線を示しておきま +す. この表では, RS-232C の信号線の名前と, DB-25 コネクタ上のピンの番 +号を示しています. +<tscreen><verb> + Signal Pin# Pin# Signal + TxD 2 ----------------------- 3 RxD + RxD 3 ----------------------- 2 TxD + DTR 20 ----------------------- 6 DSR + DSR 6 ----------------------- 20 DTR + SG 7 ----------------------- 7 SG + DCD 8 ----------------------+ 4 RTS* + *RTS 4 + + 5 CTS* + *CTS 5 +---------------------- 8 DCD + +* まず, コネクタ内部でピン4を5に接続し, そして逆側のコネクタのピン8と接 +続します. +</verb></tscreen> + + <sect3><heading>スタンダード RS-232C ケーブル<label + id="term:std"></heading> + + <p>スタンダードシリアルケーブル (またはストレートケーブル) +の場合は, すべての RS-232C 信号をそのまま通します. つまり, 片方の ``send +data'' 信号のピンは, 逆側の ``send data'' 信号のピンと繋がっています. +モデムを FreeBSD に接続するときや, 一部の端末を接続するときにこのタイプの +ケーブルを使用します. + + <sect2><heading>ポート<label id="term:ports"></heading> + + <p>シリアルポートは, FreeBSDが動作しているホスト コンピュータと端 +末の間でデータのやりとりを行うために用いるデバイスです. ここでは, +現在存在するポートの種類と FreeBSD でのポートのアクセス方法について解 +説します. + + <sect3><heading>ポートの種類<label + id="term:portkinds"></heading> + + <p>シリアルポートには何種類かのものがあります. ケーブルを購 +入したり自作したりする前に, そのケーブルのコネクタの形状が端末および FreeBSD +システムのポートの形状と一致していることを確認してください. + +ほとんどの端末は DB25 ポートを搭載しています. FreeBSDが動作しているも +のを含めて, PCは DB25 または DB9 ポートを搭載しています. マルチポート +のシリアルカードの場合は, RJ-12 や RJ-45 のポートを搭載しているかもし +れません. + +利用されているポートの種類に関しては, ハードウェアについてきたドキュメ +ントを参照してください. また, 多くの場合, ポートの形状から判断すること +もできるでしょう. + + <sect3><heading>ポートの名前<label + id="term:portnames"></heading> + + <p>FreeBSDでは, <tt>/dev</tt> ディレクトリ内のエントリを介 +してシリアルポートへのアクセスがおこなわれます. 2種類の異なったエン +トリがあります. + <itemize> + <item>着信用のポートの名前は, <tt>/dev/ttyd<it/x/</tt> +(<it/x/ は 0から始まるポート番号) となっています. 一般に端末の接続には +着信用ポートを用います. 着信用のポートでは, シリアルラインのデータ +キャリア検出 (DCD) 信号がオンになっている必要があります. + + <item>発信用のポートの名前は, <tt>/dev/cuaa<it/x/</tt> +となっています. 発信用のポートは普通モデムの接続に用い, 端末の接続には +利用しません. ただ, ケーブルまたは端末がキャリア検出信号を使えない +タイプのものの場合は, 発信用のポートを使うとよいでしょう. + </itemize> + +詳しくは, sio(4) のマニュアルをご覧ください. + +たとえば, 端末を一つ目のシリアルポート (DOS でいうところの COM1) に接 +続したとすると, <tt>/dev/ttyd0</tt> がこの端末を指すことになります. +また, 二つ目のシリアルポート (COM2) ならば <tt>/dev/ttyd1</tt> となり, +以下この形式のデバイスエントリを使います. + + 各シリアルポート, 特にマルチポートのシリアルカードを利用する +ために, kernel の設定をおこなう必要がある場合がありますので, 注意してくだ +さい. 詳しくは, <ref name="FreeBSDカーネルのコンフィグレーション" +id="kernelconfig"> をご覧ください. + + <sect1><heading>設定<label id="term:config"></heading> + + <p>ここでは, 端末からのログインを可能にするために必要な FreeBSD +側の設定について解説します. 既に端末を接続するポートが利用できるように +kernel の設定をおこない, 端末が接続されているものと考えて, 解説を進め +ます. + +簡単に言えば, プロセス管理や初期化をおこなっている <tt/init/ プロセス +に対して, ログイン名を読み込み <tt/login/ プログラムを起動している +<tt/getty/ を実行するように指示します. + +これをおこなうには, <tt>/etc/ttys</tt> の内容を編集する必要があります. +まず, <tt/su/ コマンドで root になって, <tt>/etc/ttys</tt> に以下の +変更を加えてください. + <enum> + <item>端末を接続するポートの <tt>/dev</tt> のエントリが含ま +れている行がまだ存在しなければ, これを <tt>/etc/ttys</tt> に追加してく +ださい. + + <item><tt>/usr/libexec/getty</tt> が対象となるポートに対して +実行されるように指定してください. また, <tt>/etc/gettytab</tt> ファイ +ル内の適切な <tt/getty/ タイプのエントリを指定してください. + + <item>デフォルトのターミナルタイプを指定してください. + + <item>対象となるポートを ``on'' に設定してください. + + <item>そのポートが ``secure'' であるかどうかを指定してくださ +い. + + <item><tt/init/ に <tt>/etc/ttys</tt> を読み込みなおさせてく +ださい. + </enum> + +また, 必要に応じて <tt>/etc/gettytab</tt> を変更し, 上の 2で使用する +<tt/getty/ のエントリを追加してください. このドキュメントではこの方 +法については特に解説しませんので, gettytab(5) および getty(8) のマニュ +アルをご覧ください. + +以下では, 上のステップについて詳しく解説します. 実例を用いて, 何をす +べきかを解説していきます. Wyse-50 と, 古い IBM の 286 マシン上で通信 +ソフト Procomm を使って VT-100 エミュレーションをおこなっているものを端 +末の例として紹介します. また, Wyse は 2番目のポートに, 286マシンは 6 +番目のポート (マルチポートのシリアルカード上のポート) に接続します. + +<tt>/etc/ttys</tt> について, より詳しくは, ttys(5) のマニュアルをご覧 +ください. + + <sect2><heading> <tt>/etc/ttys</tt> へのエントリの追加<label + id="term:etcttys"></heading> + <p>既にエントリがある場合を除いて, まず初めに +<tt>/etc/ttys</tt> にエントリを追加しなければいけません. + +<tt>/etc/ttys</tt> には, FreeBSDシステム上のログインを許可するすべての +ポートを記述します. たとえば, 一つ目の仮想コンソール <tt/ttyv0/ のエン +トリもこのファイルにあります. このエントリのおかげで, コンソールからの +ログインが可能になっています. このファイルには, 他の仮想コンソール, シ +リアルポートおよび仮想端末のエントリも含まれています. 端末を接続する +場合は, そのポートの <tt>/dev</tt> のエントリを, <tt>/dev</tt> の部分 +を省略して記述します. + +FreeBSD のインストール当初の状態では, <tt/ttyd0/ から <tt/ttyd3/ までの, +初めの四つのシリアルポートのエントリが <tt>/etc/ttys</tt> に記述され +ています. これらのポートのいずれかに端末を接続する場合は, 新たなエント +リを追加する必要はありません. + +ここで紹介している例では, 既にファイルにエントリが存在する 2番目のシリ +アルポート, <tt/ttyd0/ に Wyse-50 を接続しています. 一方, 6番目のシ +リアルポートに接続する 286マシン用のエントリは, 新たに追加してやらな +ければなりません. 以下に, エントリを追加した後の <tt>/etc/ttys</tt> か +ら抜粋して示します. +<tscreen><verb> +ttyd1 "/usr/libexec/getty std.9600" unknown off secure +ttyd5 +</verb></tscreen> + + <sect2><heading><tt/getty/ タイプの指定<label + id="term:getty"></heading> + <p>次に, 端末からのログインを処理するプログラムの指定をおこな +います. FreeBSDでは, 標準的には <tt>/usr/libexec/getty</tt> をこの目的 +で利用しています. <tt/login:/ プロンプトを送り出しているのは, このプロ +グラムです. + +<tt/getty/ プログラムは, コマンドラインパラメータとして, +<em/<tt/getty/ タイプ/ をとります. ただし, このパラメータは必須ではあ +りません. <tt/getty/ タイプは, ボーレートやパリティといった, 接続され +た端末の特徴を表すものです. <tt/getty/ プログラムは, 与えられた +<tt/getty/ タイプに対応したこれらの特徴を <tt>/etc/gettytab</tt> から +読み込みます. + +ファイル <tt>/etc/gettytab</tt> には, 新旧の端末に関する多数のエントリ +が記述されています. ほとんどの場合, <tt/std/ という文字列で始まる名前 +のエントリを使えば, 接続された端末に対してログインセッションを提供す +ることができます. これらのエントリを利用した場合, パリティは無視されま +す. 110 bps から 115200 bps までのボーレートに対応した <tt/std/ のエン +トリがあります. 当然, 新たなエントリを追加することも可能です. +gettytab(5) のマニュアルに, さらに詳しく解説されています. + +<tt>/etc/ttys</tt> の <tt/getty/ タイプの設定をする際は, 端末側の通信 +パラメータの設定が, <tt/getty/ タイプのものと一致していることを確認し +てください. + +紹介している実例では, Wyse50 はパリティなし 38400 bps で接続していま +す. また, 286 マシンの方は, パリティなし 19200 bps の接続です. 以下は, +この段階でのこの二つの端末に関する <tt>/etc/ttys</tt> の設定です. +<tscreen><verb> +ttyd1 "/usr/libexec/getty std.38400" unknown off secure +ttyd5 "/usr/libexec/getty std.19200" +</verb></tscreen> +ここで, 実行するプログラムを指定している 2番目のフィールドが, ダブルクォー +テーションに囲まれていることに注意してください. こうしないと, +<tt/getty/ のタイプの指定が, つぎのフィールドとして判断されてしまう可 +能性があるので, 十分注意することが必要です. + + <sect2><heading>デフォルトのターミナルタイプの指定<label + id="term:deftermtype"></heading> + + <p><tt>/etc/ttys</tt> の 3番目のフィールドには, そのポートのター +ミナルタイプのデフォルトを指定します. ダイアルアップ用のポートの場合 +は, ユーザがどのタイプの端末あるいは通信ソフトを利用してダイアルアップ +してくるかは分からないので, <tt/unknown/ や <tt/dialup/ を記述するの +が一般的です. 一方, 直結された端末の場合, ターミナルタイプが変わるこ +とはありませんから, このフィールドには実際のターミナルタイプを記述し +ます. + +一般に, ユーザは <tt/.login/ や <tt/.profile/ などのファイル内で +<tt/tset/ コマンドを使って, ターミナルタイプをチェックし, 必要ならば +ターミナルタイプの入力を求めるプロンプトを表示するようにします. この +とき, <tt>/etc/ttys</tt> の中でターミナルタイプが指定されていれば, +このプロンプトを表示せずに先に進むことが可能です. + +FreeBSD 上で, どのターミナルタイプを利用できるかは, +<tt>/usr/share/misc/termcap</tt> をご覧ください. このファイルには, お +よそ 600 のターミナルタイプが定義されています. 必要ならば, 新たなエン +トリを追加することも可能です. 詳しくは termcap(5) のマニュアルをご覧く +ださい. + +紹介している例では, Wyse-50 のターミナルタイプは Wyse-50 です (もっ +とも他のタイプをエミュレートすることも可能ですが, ここでは Wyse-50 モー +ドで使用します. ). また, 286マシン上では Procomm が VT-100 エミュレー +ションをおこなうように設定されています. 以下が, まだ未完成の +<tt>/etc/ttys</tt> の関連部分です. +<tscreen><verb> +ttyd1 "/usr/libexec/getty std.38400" wy50 off secure +ttyd5 "/usr/libexec/getty std.19200" vt100 +</verb></tscreen> + + <sect2><heading>ポートを利用可能にする<label + id="term:enable"></heading> + <p><tt>/etc/ttys</tt> のつぎのフィールド, つまり 4番目のフィー +ルドは, そのポートをアクティブにするかどうかの設定です. このフィールド +に ``on'' を指定すると, <tt/init/ プロセスが2番目のフィールドに書かれ +たプログラム, <tt/getty/ を実行し, ログインのためのプロンプトを送り出 +すようになります. このフィールドに ``off'' を記述すると, <tt/getty/ +は起動されず, よってこのポートからのログインもできなくなります. + +ということで, 当然このフィールドには <tt/on/ を指定します. 以下が +<tt>/etc/ttys</tt> です. それぞれのポートを <tt/on/ にしました. +<tscreen><verb> +ttyd1 "/usr/libexec/getty std.38400" wy50 on secure +ttyd5 "/usr/libexec/getty std.19200" vt100 on +</verb></tscreen> + + + <sect2><heading>``secure'' なポートの指定<label + id="term:secure"></heading> + <p>とうとう最後のフィールドの設定です. (実際にはここでは触れ +ませんが, オプショナルな<tt/window/ の設定のフィールドも存在するので, +ほぼ最後のフィールドといった方が正確かもしれません. ) 最後のフィールド +では, そのポートが安全かどうかを指定します. + +ここで, 「安全」なポートとはどういうポートのことでしょう? + +これは, root のアカウント (または, ユーザ ID が 0 のアカウント) がロ +グインしてもよいポートということです. 安全でないポートでは, root のロ +グインは許可されません. + +では, どのように安全なポートとそうでないポートを使えばよいでしょう? + +ポートを安全ではないとすることで, そのポートに接続された端末からは, +root のログインを禁止することができます. FreeBSDシステムの root のパス +ワードを知っている人は, まず一般ユーザとしてログインしなければなりませ +ん. スーパユーザの特権を得るためには, そのうえで <tt/su/ コマンドを +利用しなければいけません. + +これによって, root アカウントが不正に利用された場合に, その経過を調査 +する上で二つの記録を利用できるようになります. ユーザのログインと +<tt/su/ コマンドは, 共にシステムのログに記録を残します (また, ログイン +は wtmp にも記録を残します. ). + +ポートを安全なものとして指定すると, その端末からの root のログインが可 +能になります. root のパスワードを知っている人は, 単に root としてログ +インできます. この場合は, 当然ログインの記録や <tt/su/ コマンドのログ +は残りません. + +では, どちらを使うべきでしょうか? + +単純に ``insecure'' を使うのがよいでしょう. 公共の場所にある訳では<em/な +い/端末や, 鍵のかかったドアの内側にある端末<em/にも/ ``insecure'' を指 +定する方がよいでしょう. スーパユーザの特権が必要な場合でも, ログイ +ンして <tt/su/ を実行するのは, ごく簡単なことなんですから. + +以下に, ようやく完成した <tt>/etc/ttys</tt> のエントリに端末の場所を表 +すコメントを追加したものを示します. +<tscreen><verb> +ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Kitchen +ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom +</verb></tscreen> + + <sect2><heading><tt/init/ にファイル <tt>/etc/ttys</tt> の再読み +込みをさせる<label id="term:hup"> +</heading> + <p>FreeBSD をブートすると, 最初に起動されるプロセス, <tt/init/が +<tt>/etc/ttys</tt> を読み込んで, 記述されているプログラムを利用可能な +ポートに対して実行し, ログインプロンプトを送り出させます. + +<tt>/etc/ttys</tt> の編集が終わった後, <tt/init/ に変更を認識させるた +めに, わざわざ FreeBSD をブートしなおしたくはないでしょう. このような +場合のために, <tt/init/ は, SIGHUP (hangup) シグナルを受信すると, +<tt>/etc/ttys</tt> を読み込みなおすようになっています. + +<tt>/etc/ttys</tt> の変更を保存したら, 以下のようなコマンドを実行して, +<tt/init/ に対して SIGHUP を送信します. +<tscreen><verb> +kill -HUP 1 +</verb></tscreen> +(<tt/init/ プロセスのプロセス ID は <em/常に/ 1です. ) + +すべての設定が正しくおこなわれ, すべてのケーブルがただしく接続されてい +て, かつ端末の電源が入っていれば, 端末にはログインプロンプトが表示され +ているはずです. これで, これらの端末からの最初のログインの準備が完了で +す! + + <sect1><heading>トラブルシューティング<label + id="term:debug"></heading> + <p>細心の注意を払って設定をおこなっても, ときには端末の接続がう +まくいかない場合があるでしょう. 以下に, よく見られる問題とその解決方法 +を示します. + + <descrip> + <tag/ログインプロンプトが表示されない/ + +端末の電源が接続され, スイッチが入っていることを確認してください. もし, +PC を端末として利用している場合は, 通信ソフトが適切なシリアルポー +トを利用する設定になっているかどうか確かめてください. + +ケーブルがしっかりと端末と FreeBSDが動作しているコンピュータの両方に接続され +ていることを確認してください. また, 正しい種類のケーブルを利用している +か確かめてください. + +端末と FreeBSD の間の通信速度とパリティの設定が一致していることを確認 +してください. 出力をモニタに表示するタイプの端末の場合は, モニタ +のコントラストと明るさの設定を確認してください. また, 出力が印刷 +されるタイプの端末の場合は, 紙とインクが十分にあるかどうかを確かめてく +ださい. + +<tt/getty/ が動いていて, 端末を認識していることを確認してください. 以 +下のコマンドで動作中の <tt/getty/ プロセスのリストを得ることができます。 +<tscreen><verb> +ps -axww|grep getty +</verb></tscreen> +その端末に対する <tt/getty/ の情報が表示されるはずです. たとえば, 以下 +の表示例は, <tt/getty/ は 2番目のシリアルポート (<tt/ttyd1/) に対し +て <tt>/etc/gettytab</tt> 中の <tt/std.38400/ のエントリを使って動作し +ているということを示しています. +<tscreen><verb> +22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 +</verb></tscreen> + +もし, <tt/getty/ プロセスが一つも動いていないようであれば, +<tt>/etc/ttys</tt> の中で, そのポートを利用可能にする設定をしたかどう +か確かめてください. また, <tt/kill -HUP 1/ を確実に実行してください. + + <tag/ログインプロンプトの代わりにゴミが表示される/ + +端末と FreeBSDの間の通信速度およびパリティの設定が一致していることを確 +かめてください. また, <tt/getty/ プロセスの情報を調べて, 適切な +<tt/getty/ のタイプが使用されていることを確認してください. 間違った +<tt/getty/ タイプが使用されている場合は, <tt>/etc/ttys</tt> を修正し +てから, <tt/kill -HUP 1/ を実行してください. + + <tag/文字が重複して表示される, 入力したパスワードが表示され +る/ + +端末または通信ソフトの設定で, 「半二重 (half duplex)」あるいは「ローカ +ルエコー」となっているところを, 「全二重 (full duplex)」に変更してく +ださい. + + </descrip> diff --git a/share/doc/ja_JP.EUC/handbook/troubleshooting.sgml b/share/doc/ja_JP.EUC/handbook/troubleshooting.sgml new file mode 100644 index 000000000000..dd9ea4a10337 --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/troubleshooting.sgml @@ -0,0 +1,65 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.4 --> + +<chapt><heading>トラブルシューティング<label id="troubleshooting"></heading> + +<p><em>原作: 不明.</em> +<p><em>訳: &a.iwasaki;.</em> + +<p>インストールに失敗している (あるいは失敗してしまった) 人がうまく +いくようにするのに役立つヒントやコツを以下に示します. 注意深く読ん +でください. + +<sect> + <heading>ハードウェアコンフリクトまたはコンフィグレーションのミス</heading> + + + <p><descrip> + <tag>問題:</tag> デバイスが他のものとコンフリクトを起こす, また + は IRQ やアドレスがカーネルのコンパイル時に設定したものと合って + いません. + + <tag>原因:</tag> 今ではほとんどの FreeBSD のデバイスドライバは, + 動的にハードウェアの設定に合わせるように十分賢くなっていますが, + 中には動作する前にコンパイル時に設定した (そしてハードウェアに + 合致する) パラメタをあい変わらず要求するものがまだ少しあります. + しぶとく残っているそれらをできる限り多く取り除くように一所懸命 + 作業しいていますが, 必ずしも見た目ほど簡単なわけではありません. + + <tag>解決策:</tag> 可能な解決策がいくつかあります. 最初に, そし + て最も簡単なものは <tt>-c</tt> フラグをつけてカーネルをブートす + ることです. 初期ブートプロンプト (フロッピーディスクかハードディ + スクから起動) で: +<tscreen><verb> +/kernel -c + </verb></tscreen> + とタイプしてください. + メモリのサイジングコードを過ぎてから動的カーネル設定ユーティリ + ティが起動されます. コマンドの一覧を見るには, プロンプトで + `<tt>?</tt>' とタイプします. このユーティリティを使用して, IRQ, + メモリアドレス, IO アドレスまたはデバイスのたくさんの他の設定パ + ラメタを再設定することができます. また動作させたいデバイスに問 + 題を引き起こすデバイス全体を無効にすることもできます. + + もう一つの解決策は, 当り前のことですが, 問題のあるハードウェア + を取り外すか, 何も考えずに (うまくいけば) 問題がなくなるまでシ + ステムを基本的な部品だけの状態に取り去っていくことです. 一度起 + 動してしまえば, 上に述べたのと同じことができます --- ハードウェ + アにより一層合うようにカーネルをコンパイルしたり, 動かなかった + もともとのハードウェア設定の原因は何かを一つ一つ明らかにするこ + とができます. + + </descrip> + +<sect> + <heading>初めてブートしたときに, まだ /386bsd を探しています!</heading> + + <p>原因: 古い FreeBSD 1.x のブートブロックが, まだディスクのブート + パーティションに残っています. + + 解決策: インストールのプロセスをもう一度おこない, (F)disk エディタ + を起動して (W)rite オプションを選択する必要があります. すでに存在 + するインストレーションに害を与えずに, 確実に新しいブートブロックを + ドライブに書き込むことができます. もし初めてインストールしているの + でしたら, 新しいブロックを (W)rite することを忘れないでください! :-) diff --git a/share/doc/ja_JP.EUC/handbook/uart.sgml b/share/doc/ja_JP.EUC/handbook/uart.sgml new file mode 100644 index 000000000000..aa3c693e9dfd --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/uart.sgml @@ -0,0 +1,1093 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<!-- +<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ + +<!ENTITY % authors SYSTEM "authors.sgml"> +%authors; + +]> +--> +<sect2><heading>UART とは何か, そしてどのように動作するか <label id="uart"></heading> + +<p><em>Copyright © 1996 &a.uhclem;, All Rights Reserved.<newline> +13 January 1996.</em> +<p><em>訳: &a.saeki;, &a.iwasaki;.<newline> +11 November 1996.</em> + +<!-- Version 1(2) 13-Jan-96 --> + +<p>( ここからは &a.saeki; が翻訳を担当) + + 汎用非同期送受信コントローラ (UART) はコンピュータのシリアル通信 + サブシステムの鍵となる部品です. UART は何バイトかのデータを受けとり, + これを 1 ビットずつ順番に送信します. 受信側では, もう一つの UART が + このビット列を完全なバイト列に組み立て直します. + + シリアル転送は, モデムやコンピュータ間の非ネットワーク型の通信, + ターミナルその他のデバイスで広く使われています. + + シリアル転送には主に同期と非同期という二つの形式があります: + 通信サブシステムの名前は, そのハードウェアでサポートされている + 通信モードによって変化します. + 通常, 非同期通信をサポートしているものは文字 "A" を含み, + 同期通信をサポートしているものは文字 "S" を含みます. + 以下で両方の形式について詳しく説明します. + + 通常使われている略号は以下の通りです: +<quote>UART 汎用非同期送受信装置 (Universal Asynchronous Receiver/Transmitter)</quote> +<quote>USART 汎用同期-非同期送受信装置 (Universal Synchronous-Asynchronous Receiver/Transmitter)</quote> + + +<sect3><heading> 同期シリアル転送 </heading> + + <p> 同期シリアル転送では, 送信側と受信側がクロックを共有している + 必要があります. さもなければ, 送信側がストローブまたは + その他のタイミング信号を供給して, 受信側にデータの次のビットを + いつ「読み込」めばよいのかを知らせる必要があります. + + ほとんどの同期シリアル通信では, 常に何らかのデータが転送され続けます. + そのため, 転送のタイミングまでに送信データが用意できていなければ, + 通常のデータのかわりに「埋め草」 (fill character) が送られます. + 同期通信では, 送信側と受信側との間でデータビットのみが転送されるため, + 同じビット速度の非同期シリアル通信に比べて効率的です. + しかし, 送信側と受信側でクロック信号を共有するために余分な電線と + 回路が必要となる場合には, よりコスト高となる可能性があります. + + プリンタやハードディスクでも同期転送の一種が使用されています. + このときデータが 1 組みの電線で送られる一方, クロック信号または + ストローブ信号が別の電線で送られます. + プリンタやハードディスクは通常, シリアルデバイスではありません. + ほとんどのハードディスクのインターフェース規格では, データを送るための + 線とは別にクロックまたはストローブ信号を送るための線を持っていて, + ストローブ 1 回毎に一つのデータ全体を送ります. + PC 産業界では, これらはパラレルデバイスとして知られています. + + PC の標準的なシリアル通信ハードウェアは, 同期モードをサポートして + いません. ここで同期モードについて述べたのは, 非同期モードとの + 比較のために過ぎません. + + +<sect3><heading> 非同期シリアル転送 </heading> + + <p> 非同期転送は, 送信側がクロック信号を受信側に送らなくても + データを転送することができます. そのかわり, 送信側と受信側は + あらかじめタイミングパラメータや同期のために追加される + 特別なビットについて取り決めをおこなっておかなければなりません. + + 非同期転送をおこなうために UART にデータが与えられると, + 「スタートビット」と呼ばれるビットが転送データの先頭に追加されます. + スタートビットはデータの転送開始を受信側に知らせるために使われ, + これにより受信側のクロックを送信側のクロックに同期させます. + この二つのクロックは, 転送データの残りのビットを転送する間に + 10% 以上ふらつかないように正確なものでなければなりません. + (この条件は機械式テレタイプの時代に定められたものなので, + 現代の電子装置であれば容易に満足させることができます). + + スタートビットが送られた後, データの各ビットが最下位 (LSB) から + 順番に送られます. 転送されるビットの長さはすべて同じになっていて, + 受信側はそれぞれのビットの中央部でそれが "1" か "0" かを判断します. + 例えば, 仮に 1 ビットを送るのに 2 秒かかるとすると, 受信側は + スタートビットの始まりを認識した 1 秒後に信号が "1" か "0" かを調べ, + その後 2 秒ごとに次のビットの値を調べるという動作を繰り返します. + + 送信側は, いつ受信側がビットの値を「見た」のかはわかりません. + 送信側はクロックにしたがって次々にビットを転送するだけです. + + 設定によっては, 1 ワードのデータ全体が送られたあとに + 送信側が内部で生成したパリティビットを付加する場合があります. + パリティビットは受信側で簡単なエラーチェックをするために使われます. + その後に, 最低でも 1 ビットのストップビットが送られます. + + 1 ワードのすべてのビットを受信すると, 受信側がパリティビットの + チェックをおこなうように設定することができます. (パリティビットを + 使用するかどうか, 送信側と受信側であらかじめ取り決めておかなければ + なりません). それから受信側はストップビットをチェックします. + もしもストップビットが期待通りの位置に存在しなければ, UART は + 転送エラーが発生したと判断して, ホストがデータを読もうとした時に + フレーミングエラーが起きたと報告します. 通常, フレーミングエラーは + 送信側と受信側のクロックが一致していなかったり, 信号に割り込みが + 入った時に起こります. + + データが正しく受信されたかどうかにかかわらず, + UART はスタート, パリティ, ストップビットを自動的に捨てます. + 送信側と受信側で設定が正しく一致していれば, これらのビットが + 誤ってホストに転送されることはありません. + + 1 回の転送が終了する前に次のデータの転送準備ができていれば, + 前のデータのストップビットを送った後, 間を空けずに + 次のデータのスタートビットを送ることができます. + + 非同期転送データは「自己同期」なので, 転送するべきデータがない場合は + 転送路は空き状態になります. + + +<sect3><heading>UART のその他の機能 </heading> + + <p> 転送のためにデータをパラレルからシリアルに変換し, 受信時に + シリアルからパラレルに戻すという基本的な機能の他に, UART は通常, + 転送路の状態を示したり, リモートデバイスで次のデータを受けとる準備が + できていない場合にデータの流れを抑制するのに使われる信号のための + 付加回路も持っています. + 例えば UART に接続されているデバイスがモデムの場合, モデムは + 回線上に搬送波 (carrier) が存在していることを報告するかもしれません. + 一方, コンピュータはこれらの付加信号を操作することにより + モデムのリセットをおこなったり, かかってきた電話を取らないように + モデムに指示するかもしれません. + これらの付加信号の機能はそれぞれ EIA RE232-C 規格で定義されています. + +<sect3><heading>RS-232C と V.24 規格 </heading> + + <p> ほとんどのコンピュータシステムでは, UART は EIA RS-232C 規格に + 準拠した信号を生成するための回路に接続されています. + また, RS-232C の仕様を反映した, V.24 という CCITT 規格に + 準拠したシステムも存在しています. + +<sect4><heading>RS-232C のビット割り当て (マークとスペース) </heading> + + <p> RS-232C では, "1" の値を「マーク」, "0" の値を「スペース」と + 呼びます. 通信路にデータが流れていない時, 回線は「マーキング」 + であるとか, "1" の値を連続して転送し続けているとか言われます. + + スタートビットは常に "0" (スペース) で, + ストップビットは常に "1" (マーク) です. + このことは, たとえ複数のデータが連続して転送されている場合でも, + それぞれのデータの転送開始時には必ず, マーク (1) から + スペース (0) への遷移が回線上で起こるということを意味しています. + + これによって, 転送されるデータビットの内容にかかわらず, + 送信側と受信側のクロックを同期させることができるのです. + + ストップビットとスタートビットの間の空き時間は, その通信路で + 1 ビットを転送するのに必要な時間の正確な倍数である必要はありません. + (倍数にはゼロを含みます). しかし, ほとんどの UART では + 設計の単純化のために, 倍数になるように設計されています. + + RS-232C では, 「マーク」信号 ("1") は -2V から -12V の間の電圧で, + 「スペース」信号 ("0") は 0V から +12V の間の電圧で示されます. + 送信部は +12V または -12V を送ることになっていて, 受信部では + 長いケーブルによるいくらかの電圧ロスを許容するように定められています. + (ポータブルコンピュータなどで使用されている) 低消費電力デバイスの + 送信部では しばしば +5V と -5V のみを使用していますが, + 短いケーブルを使用するならば, これらの電圧も RS-232C 受信部の + 許容範囲に入っています. + + +<sect4><heading>RS-232C のブレーク信号 </heading> + + <p>RS-232C は「ブレーク」と呼ばれる信号についても定めています. + これは (スタートビットもストップビットも無しで) 連続して + スペースの値を送ることで発生されます. + データ回路に電流が流れていない場合は, + 回線は「ブレーク」を送り続けているものと解釈されます. + + 「ブレーク」信号は完全な 1 バイトとスタート, ストップ, パリティ + ビットを送るために必要な時間よりも長い間続かなければなりません. + ほとんどの UART はフレーミングエラーとブレークを区別することが + できますが, もしも これを区別できない UART があった場合, + フレーミングエラーの検出をブレークの識別のために + 使用することができます. + + テレタイプの時代には, 国中でおびただしい数のテレタイプが + (ニュースサービスなどで) 電線で直列に接続されていました. + 任意のテレタイプユニットは, 電流が流れないように一時的に回路を + オープンにすることで「ブレーク」信号を発生させることができました. + これは, 他のテレタイプが情報を送信している間に, 緊急ニュースを + 送る必要のあるテレタイプが割り込みをかけるために使われました. + + 現在のシステムでは, ブレーク信号には二つのタイプがあります. + もしブレーク信号が 1.6 秒よりも長ければ, それは + 「モデムブレーク」であると解釈されます. + モデムがこの信号を検出すると, 通信を終了して電話を切ったり, + コマンドモードに入るようにプログラムされていることがあります. + もしブレーク信号が 1.6 秒よりも短ければ, それはデータブレークを + 示します. この信号に応答するのはリモートコンピュータの仕事です. + この形のブレークは, しばしば注意喚起または割り込みのための信号として + 使われ, ASCII の CONTROL-C 文字の代用とされることもあります. + + マークとスペースは紙テープシステムでの「穴空き」と「穴無し」に + 相当しています. + + ブレーク信号は, 紙テープまたはその他のバイト列から生成できない + ことに注意してください. なぜならバイト列は常にスタートビットや + ストップビットとともに送られるからです. + UART には通常, ホストプロセッサからの特別なコマンドにより + 連続したスペース信号を生成する能力があります. + +<sect4><heading>RS-232C の DTE デバイスおよび DCE デバイス </heading> + + <p>RS-232C 規格は二つのタイプの装置を定めています: + それはデータターミナル装置 (DTE) とデータキャリア装置 (DCE) です. + 通常, DTE デバイスはターミナル (またはコンピュータ) で, DCE は + モデムです. 電話回線を介した通信のもう一方の端である受信側のモデムも + また DCE デバイスで, そのモデムに接続されているコンピュータは + DTE デバイスです. DCE デバイスが信号を受け取るピンは DTE デバイスが + 信号を送るピンであり, また逆も同様です. + + 二つのデバイスがともに DTE であったり, ともに DCE であって, + モデムやそれに類似したメディア変換装置を介さずに接続する必要が + ある場合, ヌルモデム (NULL modem) を使わなければなりません. + ヌルモデムはケーブルを電気的に再配列し, 一方のデバイスの送信出力が + もう一方のデバイスの受信入力に接続され, その逆もまた同様に + 接続されるようにしてくれます. + 同様の変換はすべての制御信号についておこなわれ, それぞれのデバイスが + 他方のデバイスからの DCE (または DTE) 信号を受けとれるようになります. + + DTE デバイスと DCE デバイスで生成される信号の数は等しくありません. + DTE デバイスが DCE デバイスのために生成する信号の数は, + DTE デバイスが DCE デバイスから受けとる信号の数よりも + 少なくなっています. + +<sect4><heading>RS-232C のピン割当て </heading> + + <p>EIA の RS-232C 規格 (およびこれに相当する ITU の V.24 規格) は + 25 ピンのコネクタ (通常 DB25 が使われます) を要求し, + そのコネクタのほとんどのピンの使用目的を定義しています. + + IBM PC および類似のシステムでは, RS-232C 信号のサブセットが + 9 ピンのコネクタ (DB9) で提供されています. + 主に同期モードで使用される信号は PC のコネクタには含まれていませんが, + もともと この転送モードは IBM が IBM PC で使用することにした + UART ではサポートされていません. + + メーカーによっては RS-232C 用のコネクタに DB25 か DB9, + またはその両タイプのコネクタを使っている場合があります. + (IBM PC はパラレルプリンタインターフェースにも DB25 コネクタを + 使っているので, このことは しばしば混乱を引き起こします.) + + 以下は DB25 および DB9 コネクタにおける RS-232C 信号の割り当て表です. + +<verb> +DB25 DB9 EIA CCITT 一般 信号源 説明 +RS-232C IBM PC 回路 回路 名称 +端子 端子 符号 符号 + +1 - AA 101 PG/FG --- 保安用接地 +2 3 BA 103 TD DTE 送信データ +3 2 BB 104 RD DCE 受信データ +4 7 CA 105 RTS DTE 送信要求 +5 8 CB 106 CTS DCE 送信可 +6 6 CC 107 DSR DCE データセットレディ +7 5 AV 102 SG/GND --- 信号用接地 +8 1 CF 109 DCD/CD DCE 受信キャリア検出 +9 - - - - - 予約 (テスト用) +10 - - - - - 予約 (テスト用) +11 - - - - - 未割当て +12 - CI 122 SRLSD DCE 従局受信キャリア検出 +13 - SCB 121 SCTS DCE 従局送信可 +14 - SBA 118 STD DTE 従局送信データ +15 - DB 114 TSET DCE 送信信号エレメントタイミング +16 - SBB 119 SRD DCE 従局受信データ +17 - DD 115 RSET DCE 受信信号エレメントタイミング +18 - - 141 LOOP DTE ローカルループバック +19 - SCA 120 SRS DTE 従局送信要求 +20 4 CD 108.2 DTR DTE データ端末レディ +21 - - - RDL DTE リモートデジタルループバック +22 9 CE 125 RI DCE 被呼表示 +23 - CH 111 DSRS DTE データ信号速度選択 +24 - DA 113 TSET DTE 送信信号エレメントタイミング +25 - - 142 - DCE テストモード +</verb> + + + <sect3><heading> ビット, ボー, そしてシンボル </heading> + + <p> ボーとは非同期通信における転送速度の単位です. + モデム通信技術の進歩により, 新しいデバイスのデータ速度を + 表記するにあたって, この用語が しばしば誤って使われるようになりました. + + ボーレートは伝統的に, 通信路を通して実際に送られるビットの数を + 表します. ある DTE デバイスからもう一方へと実際に移動した + データの量を表すものではありません. + ボーレートは, 送信側 UART で生成されて受信側 UART で取り除かれる + スタート, ストップ, パリティといったオーバーヘッドビットをも + 含んでいます. + これは 1 ワード 7 ビットのデータを送るためには, 実際には 10 ビットの + データが完全に転送される必要があるということを意味します. + そのため, もしパリティを使い, スタートビットとストップビットが + それぞれ 1 ビットずつ存在する場合には, 1 秒あたり 300 ビットの + 転送能力を持つモデムでは, 7 ビットのワードを通常 30 個しか + 転送することができません. + + もし 1 ワード 8 ビットのデータとパリティビットを使用する場合には, + データ転送速度は 1 秒あたり 27.27 ワードまで低下します. + なぜなら 8 ビットのワードを送るのに 11 ビットが必要で, + このモデムは 1 秒間に 300 ビットしか送ることができないからです. + + 1 秒あたりの転送バイト数をボーレートに変換したり, その逆をおこなう + 計算式は, エラー訂正をおこなうモデムが現れるまでは単純でした. + エラー訂正をおこなうモデムは, ホストコンピュータの UART から + シリアルのビット列を受けとり, それをバイト列に戻します. + (内蔵モデムを使用している場合でさえ, データは今まで通り + 頻繁にシリアル化されます) + その後これらのバイトはパケットに変換され, 同期転送方式を用いて + 電話回線を通じて送信されます. + これは DTE (コンピュータ) 中の UART で追加されたストップ, スタート + およびパリティビットは, モデムから送り出される前に, モデムによって + 取り除かれるということを意味します. + これらのバイト列がリモートモデムに受信されると, リモートモデムは + スタート, ストップおよびパリティビットを追加して, それらを + シリアル形式に変換し, リモートコンピュータの受信側 UART に送ります. + そしてリモートコンピュータの UART はスタート, ストップおよび + パリティビットを取り除きます. + + これらの特別な変換はすべて, 二つのモデムの間でエラー訂正が + 実行できるようにするためおこなわれています. + エラー訂正とは, 受信側のモデムが正しいチェックサムで + 受信できなかったデータブロックの再送を, + 送信側のモデムに要求することができるということです. + この作業はモデムにより処理されて, DTE デバイスは + このようなプロセスがおこなわれていることに, 通常気がつきません. + + スタート, ストップおよびパリティビットを取り除くことにより, + エラー訂正のために二つのモデムの間で共有しなければならない + 追加のビットを, 実効転送速度を低下させずに送ることができます. + そのため, 送受信 DTE にはエラー訂正がおこなわれているかどうかが + ほとんど見えなくなります. + 例えば, もしモデムが 10 個の 7 ビットデータをもう一方のモデムに送る + 際に, スタート, ストップ, およびパリティビットを送る必要がなければ, + その分の 30 ビットの情報を, 真のデータの転送速度に影響を与えることなく + エラー訂正のために追加することができるわけです. + + データ圧縮をおこなうモデムでは, ボーという言葉の使い方は + さらに混乱することになります. + 例えば電話回線を通じて送られた二つの 8 ビットデータは, + 送信側モデムに送られた 12 バイトのデータを表すかもしれません. + 受信側モデムはそのデータを本来の内容に展開し, 受信側の DTE に渡します. + + また, 最近のモデムはバッファを内蔵しており, (DCE から DCE へ) 電話線を + 流れるデータの転送速度と, 両端の DTE と DCE の間で流れるデータの + 転送速度とを別々に設定することができます. + モデムによる圧縮を使用する場合, 通常は DTE と DCE の間の速度を + DCE と DCE の間の速度より速くしておきます. + + 1 バイトを記述するのに必要なビットの数は, 二つのマシンの間でも + DTE-DCE と DCE-DCE のリンクでそれぞれ変化する場合がありますし, + そのうえ, それぞれのビット転送速度が異なる場合もあります. そのため, + 全体としての通信速度を表現するためにボーという言葉を使うことは + 問題でもありますし, 真の転送速度を正しく伝えない場合があります. + 1 秒あたりの転送ビット数 (bps) は DCE と DCE の間のインターフェースに + おける転送速度を記述するために使うなら正しい用語ですし, + ボーまたは 1 秒あたりのビット数は, 二つのシステムが電線で直接 + 接続されていたり, エラー訂正や圧縮をおこなわないモデムが + 使われている場合には, 許容可能な用語です. + + 最近の高速モデム (2400, 9600, 14,400, 19,200bps などのもの) も, + 実際には 2,400 ボー (正確には 2,400 シンボル/秒) か, それ以下の + 速度で通信しています. 高速モデムでは, 複数のビットを一つのシンボルで + 伝送する技術 (多値符合化など) を用いて, シンボル速度 (シンボル/秒) よりも + 高い通信速度 (ビット/秒) を達成しています. + これが電話の限られた音声帯域で高い伝送速度を得られる理由です. + 28,800bps やそれ以上のモデムでは, シンボル速度自体が + 可変になっていますが, それ以外は同様の技術が用いられています. + + <sect3><heading>IBM PC の UART</heading> + + <p> 元祖 IBM PC を設計した際に, IBM はナショナル・セミコンダクタ社の + INS8250 UART を IBM PC パラレル/シリアルアダプタで使用することに + 決めました. + + IBM 自身やその他のベンダが作っている後継世代の AT 互換機でも, + INS8250 そのものやナショナル・セミコンダクタの UART ファミリの + 改良版を使い続けられています. + +<sect4><heading> ナショナル・セミコンダクタの UART ファミリ系統図 </heading> + + <p>INS8250 UART にはいくつかのバージョンと後継の部品があります. + 主要なバージョンを以下に示します. + +<verb> + INS8250 -> INS8250B + \ + \ + \-> INS8250A -> INS82C50A + \ + \ + \-> NS16450 -> NS16C450 + \ + \ + \-> NS16550 -> NS16550A -> PC16550D +</verb> + +<descrip> + <tag>INS8250</tag> この部品は元祖 IBM PC と IBM PC/XT で + 使われていました. + この部品は本来 INS8250 ACE (Asynchronous Communications Element) と + いう名前で, NMOS 技術で作られていました. + + 8250 は八つの I/O ポートを占有し, 送信バッファ 1 バイトと + 受信バッファ 1 バイトを持っています. この元祖の UART はいくつかの + 競合状態などに関する欠陥を持っています. + 元祖の IBM BIOS はこれらの欠陥を回避してうまく動くようなコードを + 含んでいましたが, そのために BIOS が欠陥の存在に依存するように + なってしまいました. このため, 元祖 IBM PC や IBM PC/XT では + 8250A, 16450, または 16550 のような後継部品を使うことは + できませんでした. + + <tag>INS8250-B</tag> これは NMOS 技術で作られた INS8250 の低速版です. + これもオリジナルの INS8250 と同じ問題を含んでいます. + + <tag>INS8250A</tag> XMOS 技術を使い, さまざまな機能的欠陥を修正した + INS8250 の改良版です. INS8250A は当初, 「クリーン」な BIOS を + 使用したベンダの PC クローンで使用されていました. + なぜなら欠陥が修正されたことにより, この部品は INS8250 や INS8250B の + ために書かれた BIOS で使うことはできなかったからです. + + <tag>INS82C50A</tag> これは INS8250A の CMOS 版 (低消費電力版) で, + INS8250A と同じ機能特性を持っています. + + <tag>NS16450</tag> より高速な CPU バスにも対応できるように + 改良されたこと以外は NS8250A と同じです. + IBM はこの部品を IBM AT で使うことに決め, もはや IBM BIOS が + INS8250 のバグに依存しなくなるように変更をおこないました. + + <tag>NS16C450</tag> これは NS16450 の CMOS 版 (低消費電力版) です. + + <tag>NS16550</tag> 送信バッファと受信バッファをそれぞれ 16 バイトに + 変更したこと以外は NS16450 と同じですが, バッファの設計に + 欠陥があるため, 信頼して使用することはできません. + + <tag>NS16550A</tag> バッファの欠陥が修正されたこと以外は NS16550 と + 同じです. 割り込みへの反応が遅い OS でも高い信頼性で高速なデータを + 扱うことができることから, 16550A とその後継部品は PC 産業界で + 最も一般的に使われる UART となりました. + + <tag>NS16C552</tag> これは 2 個の NS16C550A CMOS UARTを + 一つのパッケージに入れた部品です. + + <tag>PC16550D</tag> ささいな欠陥が修正されたこと以外は NS16550A と + 同じです. これは 16550 ファミリの D リビジョンで, + ナショナル・セミコンダクタ社から提供されている最新の部品です. +</descrip> + +<sect4><heading>NS16550AFとPC16550Dは同じもの</heading> +<p>( ここからは &a.iwasaki; が翻訳を担当) + + <p>ナショナル・セミコンダクタは数年前に部品番号体系を再編成して + おり, NS16550AFN という名称はもはや存在しません. (もしあなたが + NS16550AFN を持っていたら, 部品の日付コードを見てください. それは + 通常 9 から始まる4桁の数字です. 最初の2桁の数字は年度, 次の2桁 + は部品がパッケージされた年度の週です. あなたの持っている + NS16550AFN は, おそらく数年前のものでしょう.) + + 新しい番号は PC16550DV の様に, パッケージ材料と形状により接尾辞 + に小さな違いがあります (番号体系についての記述は後述します). + + ここで注意しなければいけないことがあります. 例えば, ある店に行って + 1990年製の NS16550AFN を15米ドルで売っているとします. ところが, + そのすぐ隣には ナショナル・セミコンダクタが AFN を生産開始してから + それにマイナーな変更を加えて作った PC16550DN があり, そちらは + 最近 6ヶ月に作られたものなのに, 簡単に入手できるため NS16550AFN の + 半額 (たくさん一度に買うと 5米ドルまで下がることもあります) 位で + 買えたりすることがあるのです. + + NS16550AFN のチップ供給は減少し続けているため, PC16550DN が古い + 部品番号のものとまったく同じ機能を持っていることに, より多くの人が + 気付いて受け入れるまでは, 価格はおそらく上昇し続けるでしょう. + +<sect4><heading>ナショナル・セミコンダクタの部品番号体系</heading> + + <p> 古い NS<em>nnnnnrqp</em> の部品番号は, 現在 + PC<em>nnnnnrgp</em> というフォーマットになっています. + + 「<em>r</em>」はリビジョンのフィールドです. 現在のナショナルセ + ミコンダクタの 16550 のリビジョンは「D」です. + + 「<em>p</em>」はパッケージタイプのフィールドです. タイプは以下 + の通りです: +<verb> "F" QFP (quad flat pack) L lead type + "N" DIP (dual inline package) through hole straight lead type + "V" LPCC (lead plastic chip carrier) J lead type</verb> + + <p>訳注: 具体的なパッケージ形状についての情報は <htmlurl + url="http://www.national.com/packaging/plastic.html" + name="http://www.national.com/packaging/plastic.html" >を参照 + してください. + + 「<em>g</em>」は製品グレードのフィールドです. もしパッケージタイ + プの文字の前に「I」があれば, 「工業用」グレード部品を表し, 標準 + 部品より高いスペックを持ちますが, Miltary 仕様 (Milspec) ほど高 + くはありません. これは付加的なフィールドです. + + 私たちがかつて NS16550AFN (DIP パッケージ) と呼んでいたものは, 現在 + は PC16550DN または PC16550DIN と呼ばれています. + + <sect3><heading>他のベンダと類似の UART</heading> + + <p>長年に渡り, 8250, 8250A, 16450 そして 16550 はライセンスされ, + または他のチップベンダにコピーされてきました. 8250, 8250A そして + 16450 の場合は, そのものの回路 (「megacell」: LSIの中に組み込む + ことのできるライブラリ化された回路の大規模な物) が Western + Digital と Intel を含むたくさんのベンダにライセンスされまし + た. 他のベンダは部品をリバースエンジニアリングした物か同じように + 動作する互換品を製造しました. + + 内蔵モデムにおいては, モデム設計者はモデムのマイクロプロセッサで + 8250A/16450 をエミュレートすることはよくおこなわれます. このエミュレート + による (互換の) UART は数百バイトの隠れたバッファを持つでしょう. + バッファのサイズのため, このような互換品は高速データ処理の能力では + 16550A と変わらない信頼性を持つことができます. しかし, それでも + ほとんどのオペレーティングシステムは UART は 8250A か 16450 である + と報告し, 特殊なドライバが使用されなければ エミュレートによる UART + の余分に存在するバッファリングの効果的な使用はおこないません. + + 幾つかのモデムメーカーは, 市場における競争を有利にするために数百バ + イトのバッファを持ち 16550A の置き換えができるはずの設計を, たとえ + 性能が低下する事になったとしても棄てざるを得なくなるような市場の圧 + 力を受けています. + + 一般的にある誤解は, 「16550A」と書かれたすべての部品が同じ性能であると + いうことです. それらは異なるものであり, 状況によってはまちがいなく + 欠陥と呼べるものがこれらの 16550A クローンのほとんどにあります. + + NS16550 が開発された時に, ナショナル・セミコンダクタは設計に関する + 幾つかの特許を取得し, 彼らはライセンスを制限して他のベンダが類似 + の特徴を持つチップを供給することを困難にしました. 特許のため, リバー + スエンジニアリングによる設計とエミュレーションは, 特許がカバーする + 請求権を侵害を回避しなくてはなりませんでした. 結果として, これらの + コピーのほとんどは, 多くのコンピュータとモデムのメーカーは支払いた + くはない程の価格であった本物の部品の NS16550A または PC16550D とまった + く同じような動作をさせることはできませんでした. + + 16550A のクローン部品ののいくつかの相違点は, その相違点を除いた点だ + けがオペレーティングシステムやドライバで使われるのであれば重要では + ありません. これらの相違点は他のドライバを使用している時または, 良 + くテストされなかったとか Windows ドライバで考慮されなかった実際の + イベントの組み合せが発生した時に出てくるでしょう. + これはほとんどのモデムベンダと 16550 クローンメーカーが, NS16550A + との互換性のプライマリテストとして Windows for Workgroups 3.11 と + Microsoft MSD ユーティリティの Microsoft ドライバを使用しているか + らです. この安易過ぎる規準は, もし異なるオペレーティングシステムが + 使用されたらクローンと本物の部品の微妙な違いのために問題が発生し得 + る, ということを意味しています. + + ナショナル・セミコンダクタは, どんな OS のドライバからも独立した互 + 換性テストを実行する COMTEST という名前の入手可能なプログラムを作 + 成しました. このタイプのプログラムの目的は, 競合製品にある欠陥のデ + モンストレーションであることをおぼえておくべきです. ですからそのプ + ログラムは, テスト中の部品の動作の重要な問題と極めてささいな相違を + 同じように報告するでしょう. + + この文書の著者が1994年に実行した一連のテストでは, ナショナルセミ + コンダクタ, TI, StarTech そして CMD が製造した部品は megacell 及び + COMTEST でテストされた内蔵モデムに埋め込まれたエミュレーションと同 + 等です. これらの部品のの幾つかで注目される相違点を以下に示します. + これらのテストは1994年に実行されたので, これらはベンダから供給さ + れた製品の現在の性能には反映されないでしょう. + + 極端に多くの問題やあるタイプの問題が検出された場合に, COMTEST は通 + 常は実行を中止することに注意してください. このテストの一部では, たと + え何回相違点に遭遇しても中止しないように COMTEST を修正しました. + + +<verb>ベンダ 部品番号 報告された「相違点」として知られるエラー +National (PC16550DV) 0 * + +National (NS16550AFN) 0 + +National (NS16C552V) 0 * + +TI (TL16550AFN) 3 + +CMD (16C550PE) 19 + +StarTech (ST16C550J) 23 + +Rockwell reference modem + with internal 16550 or an + emulation (RC144DPi/C3000-25) 117 + +Sierra modem with an internal + 16550 (SC11951/SC11351) 91</verb> + + <p>COMTEST からの相違点の単純なカウントが, 何の相違点が重要であり + どれがそうでないのかについて多くを明らかにしないことを理解すること + が大切です. 例えば, 内蔵の UART を持つ上記の二つのモデムで報告され + た相違点の約半分が, 5及び6ビットキャラクタモードをサポートしないク + ローンの UART によって引き起こされました. 本物の 16550, 16450 そし + て 8250 UART すべてはこれらのモードをサポートし, COMTEST はこれらの + モードの機能性をチェックするので, 50を越える相違点が報告されました. + しかし, 5及び6ビットキャラクタモードをサポートするモデムは殆どなく, + 特ににこれらはエラー修正と圧縮機能付のものです. これは5及び6ビット + キャラクタモードに関連した相違点は差し引いて考えることができること + を意味しています. + + COMTEST が報告した相違点の多くは, タイミングに関する点でしょう. + 多くのクローンの設計では, ホストが一つのポートから読み込んだ時に他 + のあるポートのステータスビットは, <em>本当の</em> NS16550AFN と同じ + 長さの時間内で更新されない (あるものは速く, あるものは遅く) かもしれ + ませんが, COMTEST はこれらの相違点を探します. これは相違点の数は誤 + 解を招き易いものです. あるデバイスには一つか二つの相違点しかありま + せんがそれらは非常に重大かもしれません. また別のデバイスは基準部品 + と比べて速くまたは遅く status レジスタを更新するために (適切に書か + れたドライバの操作にはまったく影響しないかもしれません) 多くの相違点を + 報告されるかもしれません. + + * この文書の著者は今まで, COMTEST プログラムを使用して相違点がゼロ + と報告されるナショナル・セミコンダクタ以外の部品を一つも発見しませ + んでした. ナショナル・セミコンダクタは長年に渡り 16550 の五つのバー + ジョンを持っており, 最新の部品は機能性のために, ベンチマークを考慮 + した古い NS16550AFN と少し異なる振る舞いをすることに注意するべきで + す. COMTEST はナショナル・セミコンダクタの製品ラインの相違点につい + ては見て見ぬふりをするようになり, 部品のリビジョン A, B そして C + にあるバグが記述されている公式な正誤表がある時でも, (オリジナルの + 16550 を除いては) ナショナル・セミコンダクタの部品についてエラーを + 報告しなくなったので, この COMTEST のひいきを考慮にいれるべきです. + + COMTEST は問題を引き起こすかも知れない, または特殊なケースとして処 + 理しなければならない潜在的に矛盾した部品の存在に対して, 管理者に警 + 告を出すスクリーニングツールとして使用できます. + + もしモデムの中にある 16550 やシリアルポート接続されているモデムに + 対して COMTEST を実行する場合, モデムがテストキャラクタをエコーし + ないように最初に ATE0&W コマンドをモデムに発行する必要がありま + す. これをおこなうことを忘れた場合, COMTEST は少なくともこの相違点を + 報告するでしょう: + <quote>Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61</quote> + + <sect3><heading>8250/16450/16550 のレジスタ</heading> + + <p>8250/16450/16550 UART は八つの連続する I/O ポートアドレスを予約 + しています. IBM PC ではこれらの八つのポートに対して二つの定義された + 位置があり, それらは集合的に COM1 と COM2 として知られています. PC + クローンとアドオンカードのメーカーは COM3 と COM4 として知られる二つ + の付加的な領域を作成しましたが, 幾つかのシステムではこれらの余分な + COM ポートは他のハードウェアと衝突します. 最もよく起きるものは IBM + 8514 エミュレーションを提供するビデオアダプタとの衝突です. + +<verb> +COM1 には 0x3f8 から 0x3ff が割り当てられ, 通常 IRQ 4 が使用されます +COM2 には 0x2f8 から 0x2ff が割り当てられ, 通常 IRQ 3 が使用されます +COM3 には 0x3e8 から 0x3ef が割り当てられ, IRQ は標準化されていません +COM4 には 0x2e8 から 0x2ef が割り当てられ, IRQ は標準化されていません +</verb> +<p>8250/16450/16550 UART のI/Oポートの詳細は以下に提供されています. + +<verb> +I/O 許可された 説明 +ポート アクセス + ++0x00 write Transmit Holding Register (THR) + (DLAB==0) このポートに書き込まれた情報はデータ命令として + 処理され, UART により送信されます. + ++0x00 read Receive Buffer Register (RBR) + (DLAB==0) シリアル接続から UART によって受信されたすべての + データ命令は, このポートを読むことによってホス + トによりアクセスされます. + ++0x00 write/read Divisor Latch LSB (DLL) + (DLAB==1) マスタ入力クロックの周波数をこのレジスタに入っ + ている値で割ることにより, UART の周波数が決定 + されます (IBM PCでは, マスタクロックの周波数は + 1.8432MHzです). このレジスタには上記の除数の下 + 位8ビットが入っています. + + ++0x01 write/read Divisor Latch MSB (DLH) + (DLAB==1) マスタ入力クロックの周波数をこのレジスタに入っ + ている値で割ることにより, UART の周波数が決定 + されます (IBM PCでは, マスタクロックの周波数は + 1.8432MHzです). このレジスタには上記の除数の上 + 位8ビットが入っています. + ++0x01 write/read Interrupt Enable Register (IER) + (DLAB==0) 8250/16450/16550 の UART はイベントを四つのカテ + ゴリの一つに分類します. それぞれのカテゴリは設 + 定可能です. それぞれのカテゴリは, どんな類のイ + ベントの発生時に割り込みを生成するように設定可 + 能です. 8250/16450/16550 の UART は, 有効になっ + ているカテゴリ内でいくつのイベントが発生してい + るかに関わらず, 単一の外部割り込みシグナルを生 + 成します. 割り込みに応答し有効になっている割り + 込みカテゴリ (通常すべてのカテゴリが有効になって + いる割り込みを持ちます) を割り込みの本当の原因 + を決定するためにポーリングするかは, ホストのプ + ロセッサ次第です. + + Bit 7 予約済み, 常に 0. + + Bit 6 予約済み, 常に 0. + + Bit 5 予約済み, 常に 0. + + Bit 4 予約済み, 常に 0. + + Bit 3 Enable Modem Status Interrupt (EDSSI) + このビットを「1」に設定することで, + 一つ以上の状態ラインで変更が発生した時 + に, UART が割り込みを生成可能となりま + す. + + Bit 2 Enable Receiver Line Status + Interrupt (ELSI) + このビットを「1」に設定することで, 入っ + てくるデータにエラー (または BREAK シ + グナル) が検知された時に, UART が割り + 込みを生成するようになります. + + Bit 1 Enable Transmitter Holding Register + Empty Interrupt (ETBEI) + このビットを「1」に設定することで, + UART に送信される一つ以上の付加的な文 + 字に対する空きが生じた時に, UART が割 + り込みを生成するようになります. + + Bit 0 Enable Received Data Available + Interrupt (ERBFI) + このビットを「1」に設定することで, + UART が FIFO のトリガーレベルを越え + る十分な文字を受け取るか, FIFO のタイ + マが期限切れとなるか (古くなったデータ), + FIFO が無効の場合にシグナル文字が受信 + された時に, UART が割り込みを生成する + ようになります. + + ++0x02 write FIFO Control Register (FCR) + (このポートは 8250 と 16450 の UART では + 存在しません.) + + Bit 7 Receiver Trigger Bit #1 + Bit 6 Receiver Trigger Bit #0 + この二つのビットは FIFO が機能している + 場合にレシーバがどの時点で割り込みを生 + 成するかを制御します. + + 7 6 割り込み生成前にいくつの命令が + 受信されたか. + + 0 0 1 + + 0 1 4 + + 1 0 8 + + 1 1 14 + + Bit 5 予約済み, 常に 0. + + Bit 4 予約済み, 常に 0. + + Bit 3 DMA Mode Select + Bit 0 が「1」 (FIFO 有効) に設定されて + いる場合, このビットの設定は -RXRDY と + -TXRDY の処理を Mode 0 から Mode 1 へ + 変更します. + + Bit 2 Transmit FIFO Reset + このビットに「1」が書き込まれている場 + 合, FIFO の内容は破棄されます. 現在送 + 信されているすべての命令は損なわれずに送 + られるでしょう. この機能は送信中止の場 + 合に役に立ちます. + + Bit 1 Receiver FIFO Reset + このビットに「1」が書き込まれている場 + 合, FIFO の内容は破棄されます. 現在 + shift レジスタ内で組み立てられているすべ + ての命令は損なわれずに受信されるでしょ + う. + + Bit 0 16550 FIFO Enable + 設定されている場合, 送信 / 受信両方の + FIFO が有効になります. holding レジス + タ, shift レジスタまたは FIFO 内のすべて + の内容は, FIFO が有効または無効になっ + た時点で失われます. + + ++0x02 read Interrupt Identification Register (IIR) + + Bit 7 FIFO有効. + 8250/16450 UART では, このビットはゼロ. + + Bit 6 FIFO有効. + 8250/16450 UART では, このビットはゼロ. + + Bit 5 予約済み, 常に0. + + Bit 4 予約済み, 常に0. + + Bit 3 Interrupt ID Bit #2 + 8250/16450 UART では, このビットはゼロ. + Bit 2 Interrupt ID Bit #1 + Bit 1 Interrupt ID Bit #0 + これらの3つのビットは進行中の割り込み + を引き起こしたイベントのカテゴリを併せ + て報告します. これらのカテゴリは優先度 + を持つため, イベントの複数のカテゴリが + 同時に発生した場合, UART は最初に最も + 重要なイベントを報告し, ホストは報告さ + れた順に解決するでしょう. 現在の割り込 + みを引き起こしたすべてのイベントは, 新し + い割り込みが生成される前に解決されなけ + ればなりません (これは PC のアーキテク + チャの制限です). + + 2 1 0 優先度 説明 + + 0 1 1 First レシーバエラー + (OE, PE, BI または + FE) + + 0 1 0 Second 有効な受信データ + + 1 1 0 Second トリガーレベル + 識別子 + (受信バッファ中の + 古いデータ) + + 0 0 1 Third トランスミッタに + 命令用の空きがある + (THRE) + + 0 0 0 Fourth モデムの状態が + 変わった (-CTS, + -DSR, -RI, または + -DCD) + + Bit 0 Interrupt Pending Bit + このビットが「0」に設定されている場合, + 少なくとも一つの割り込みがペンディング + されています. + ++0x03 write/read Line Control Register (LCR) + + Bit 7 Divisor Latch Access Bit (DLAB) + 設定されている場合, transmit/receive + register (THR/RBR) と Interrupt Enable + Register (IER) へのアクセスが無効にな + ります. 現在これらのポートへのすべてのア + クセスは Divisor Latch Register へリダ + イレクトされます. このビットの設定, + Divisor Register のローディング, そし + て DLAB のクリアは割り込みが無効になっ + ている状態でおこなわれるべきです. + + Bit 6 Set Break + 「1」に設定されている場合, トランスミッ + タはこのビットが「0」に設定されるまで + スペースを切り目なく送信します. これは + 送信されている文字のすべてのビットに優先 + します. + + Bit 5 Stick Parity + parity が有効になっている場合, このビッ + トの設定はビット4の値に基づき parity + を常に「1」か「0」にします. + + Bit 4 Even Parity Select (EPS) + parity が有効でビット5が「0」の場合, + このビットの設定は偶数 parity が送信そ + して要求されるようにします. そうでなけ + れば奇数 parity が使用されます. + + Bit 3 Parity Enable (PEN) + 「1」に設定されている場合, データの最 + 後のビットとストップビットの間に + parity ビットが挿入されます. また UART + は受信データに存在する parity を要求す + るでしょう. + + Bit 2 Number of Stop Bits (STB) + 「1」に設定されている場合, 5-bit デー + タ命令を使用して, 1.5の Stop ビットが + 送信され各データ命令内に要求されま + す. 6, 7 そして 8-bit データ命令に対し + ては, 2つの Stop ビットが送信され要求 + されます. このビットが「0」に設定され + ている場合, 1つの Stop ビットが各デー + タ命令で使用されます. + + Bit 1 Word Length Select Bit #1 (WLSB1) + + Bit 0 Word Length Select Bit #0 (WLSB0) + これらのビットは共に各データ命令内のビッ + トの数を指定します. + + 1 0 命令長 + + 0 0 5 Data Bits + 0 1 6 Data Bits + 1 0 7 Data Bits + 1 1 8 Data Bits + ++0x04 write/read Modem Control Register (MCR) + + Bit 7 予約済み, 常に 0. + + Bit 6 予約済み, 常に 0. + + Bit 5 予約済み, 常に 0. + + Bit 4 Loop-Back Enable + 「1」に設定されている場合, UART のトラ + ンスミッタとレシーバは診断処理のために + 内部的に相互に接続されます. 付け加えて + UART のモデム制御出力はモデム制御入力 + に接続されます. CTS は RTS へ, DTR は + DSRへ, OUT 1 は R1 へ, OUT 2 は DCD へ + 各々接続されます. + + Bit 3 OUT 2 + ホストのプロセッサが high または low + に設定するであろう補助的な出力. IBM PC + のシリアルアダプタ (とクローンの殆ど) + では, OUT 2 は 8250/16450/16550 UART + からの割り込み信号をハイインピーダンス + (無効) にするのに使用されます. + + Bit 2 OUT 1 + ホストのプロセッサが high または low + に設定するであろう補助的な出力. IBM PC + のシリアルアダプタではこの出力は使用 + されません. + + Bit 1 Request to Send (RTS) + 「1」に設定されている場合, UART の + -RTS ラインの出力は Low (有効) となり + ます. + + Bit 0 Data Terminal Ready (DTR) + 「1」に設定されている場合, UART の + -DTR ラインの出力は Low (有効) となり + ます. + + ++0x05 write/read Line Status Register (LSR) + + Bit 7 Error in Receiver FIFO + 8250/16450 UART では, このビットはゼロ + です. FIFOの中に次のエラー条件が一つ以 + 上含まれている場合, このビットは「1」 + に設定されます: PE, FE, または BI. + + Bit 6 Transmitter Empty (TEMT) + 「1」に設定されている場合, 送信 FIFO + または送信 shift レジスタ中に残ってい + る命令はありません. トランスミッタは完 + 全に働いていません. + + Bit 5 Transmitter Holding Register Empty (THRE) + 「1」に設定されている場合, 現在 FIFO + (または holding レジスタ) には少なくと + も一つの送信される付加的な命令に対する + 空きあります. このビットが「1」に設定 + されている時は, 多分トランスミッタはま + だ送信しています. + + Bit 4 Break Interrupt (BI) + レシーバは Break シグナルを検知しました. + + Bit 3 Framing Error (FE) + Start ビットが検知されましたが, Stop + ビットは要求された時間内には現れません + でした. 受信された命令はおそらく勝手に + 解釈されます. + + Bit 2 Parity Error (PE) + parity ビットが受信された命令に対して + 不正です. + + Bit 1 Overrun Error (OE) + 新しい命令が受信され, 受信バッファに空 + きがありませんでした. shift レジスタに + 新たに到着した命令は破棄されます. + 8250/16450 UART では, holding レジスタ + 内の命令は破棄され新たに到着した命令は + holding レジスタに置かれます. + + Bit 0 Data Ready (DR) + 一つ以上の命令がホストが読むであろう受 + 信 FIFO にあります. このビットが設定さ + れる前に, 命令は完全に受信され shift + レジスタから FIFO (または 8250/16450 + の設計では holding レジスタ) へ移動さ + れなければなりません. + + ++0x06 write/read Modem Status Register (MSR) + + Bit 7 Data Carrier Detect (DCD) + UART の DCD ラインの状態を反映します. + + Bit 6 Ring Indicator (RI) + UART の RI ラインの状態を反映します. + + Bit 5 Data Set Ready (DSR) + UART の DSR ラインの状態を反映します. + + Bit 4 Clear To Send (CTS) + UART の CTS ラインの状態を反映します. + + Bit 3 Delta Data Carrier Detect (DDCD) + ホストによって MSR が最後に読み込まれ + た時点から, -DCD ラインが状態を一回以 + 上変えた場合に「1」に設定されます. + + Bit 2 Trailing Edge Ring Indicator (TERI) + ホストによって MSR が最後に読み込まれ + た時点から, -RI ラインが low から high + へ移り変わった場合に「1」に設定されま + す. + + Bit 1 Delta Data Set Ready (DDSR) + ホストによって MSR が最後に読み込まれ + た時点から, -DSR ラインが状態を一回以 + 上変えた場合に「1」に設定されます. + + Bit 0 Delta Clear To Send (DCTS) + ホストによって MSR が最後に読み込まれ + た時点から, -CTS ラインが状態を一回以 + 上変えた場合に「1」に設定されます. + + ++0x07 write/read Scratch Register (SCR) + このレジスタは UART では機能しません. この場所 + には どんな値でもホストによって書き込まれるこ + とができ, その後ホストによって読み込むことが可 + 能です. +</verb> + + <sect3><heading>16550A UART を越えて</heading> + + <p>ナショナル・セミコンダクタは付加的な機能を持つ 16550 と互換 + 性のある部品を提供していませんが, 色々な他のベンダがそれを持っ + ています. これらの部品の幾つかは以下に記述されています. 効果的 + にこれらの改良を使用するためには, 殆どのポピュラーなオペレーティ + ングシステムが 16550 が提供する機能以上のものをサポートしない + ため, ドライバはチップベンダから提供されなければならないことを + 理解しておく必要があります. + +<descrip> +<tag>ST16650</tag>デフォルトではこの部品は NS16550A と似ていますが, 拡 + 張された32バイトの送受信バッファをオプションで有効にで + きます. Startech により製造されました. + +<tag>TIL16660</tag>デフォルトではこの部品は NS16550A と類似した振舞いを + しますが, 拡張された64バイトの送受信バッファをオプショ + ンで有効にできます. Texas Instruments により製造されま + した. + +<tag>Hayes ESP</tag>この専売特許のプラグインカードは, 2048バイトの送受 + 信バッファを含み, 230.4Kbit/sec のデータレートをサポー + トします. Hayes により製造されました. + +</descrip> + + <p>これらの「ダム」UART に加え, たくさんのベンダがインテリジェ + ントシリアルコミニュケーションボードを製造しています. こ + のタイプの設計は通常マイクロプロセッサを提供しており, このマイ + クロプロセッサは幾つかの UART へのインタフェースとなってデータ + を処理 / バッファリングし, そして必要な時にメインの PC のプロセッ + サへ警告を出します. UART はこのタイプのコミニュケーションシ + ステムにおいて PC のプロセッサによって直接アクセスされないため, + ベンダにとっては 8250, 16450, または 16550 UART と互換性のある + UART を使用する必要はありません. これにより設計者は, より良い + 性能特性を持つ部品が自由に利用できます. + +<!-- 601131 ? --> + diff --git a/share/doc/ja_JP.EUC/handbook/userppp.sgml b/share/doc/ja_JP.EUC/handbook/userppp.sgml new file mode 100644 index 000000000000..398440a3c3df --- /dev/null +++ b/share/doc/ja_JP.EUC/handbook/userppp.sgml @@ -0,0 +1,391 @@ +<!-- $Id$ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.10 --> + +<sect> ユーザ PPP のセットアップ <label id="userppp"> + +<p><em>原作: &a.nik;<newline> +28 July 1995</em>. +<p><em>訳: &a.saeki;<newline> +11 November 1996</em>. + +<!-- この FAQ または手引は, <em> ユーザレベル ppp</em> としても + 知られている iijppp を, あなたの FreeBSD 2.0.5 (以降) で + 動くようにすることを目的としています. + + 実は私は PPP の権威ではありません. ですから, このドキュメントが + 協力の成果となってくれるよう望んでいます. + わたしは ppp を動かすことができるようになりましたので, 他の人もそれを + 動かすことができるように, 私がやったことの詳細を伝えたいと思います. + しかし, 私はいくつかの細かい点について 100% 理解しているわけではありません. + そのため, このドキュメントを書くことにより他の人に情報を伝えるとともに, + 私も何かを学びたいと思っています. +--> + + <p> ユーザ PPP は FreeBSD 2.0.5-RELEASE において, + 既存のカーネル実装版の PPP に加えて導入されました. + それでは, この新しい PPP が追加された理由となる ppp との違いは何でしょう ? + マニュアルから引用すると: + +<quote> + これはユーザプロセス PPP ソフトウェアパッケージです. 通常 PPP は + (例えば pppd でそうなっているように) カーネルの一部として + 実装されています. そのためデバッグや動作の変更が幾分困難です. + しかしこの実装では, PPP はトンネルデバイスドライバ (tun) の + 補助により, ユーザプロセスとして実装されています. +</quote> + + これは本質として, 常に PPP デーモンを実行しておかないでも, + 必要な時に ppp プログラムを実行できるということを意味します. + このプログラムはカーネルとのデータ送受のために一般のトンネルデバイスを + 使うことができるため, PPP インターフェースをカーネルに組み込んでおく + 必要がありません. + + 以降では, ユーザ ppp と他の PPP クライアント / サーバソフトウェアとを + 区別する必要がないので, ユーザ ppp を単に ppp とだけ呼びます. + 特に断らない限り, このセクションのすべてのコマンドは root 権限で + 実行されるべきです. + + このセクションでアスタリスクマーク (*) のついている部分は不完全です. + コメントや提案は歓迎しますので, &a.nik; まで送ってください. + 私が最初にユーザ ppp を実験していた時に, 価値ある情報の宝庫となってくれた + Rob Snow <rsnow@txdirect.net> に感謝します. + + 訳者注: このユーザ ppp は iij-ppp0.94(beta2?) に由来しています. + 作者の大野さんは日本の方ですので, iij-ppp には詳細な日本語 + ドキュメントが附属しています. オリジナルアーカイブ + (iij-ppp0.94beta2.tar.gz) を入手して, そちらを参照されることを + 強くおすすめします. + +<sect1><heading> スタートの前に </heading> + +<p> このドキュメントでは, あなたが大体以下のような状況にあると仮定しています: + + PPP 接続の使えるインターネットサービスプロバイダ (ISP) のアカウントを + 持っている. さらに, 接続済みのモデム (または他のデバイス) があり, + プロバイダとの接続が可能なように正しく設定されている. + + 以下の情報を手に入れておく必要があるでしょう: + +<itemize> + <item> プロバイダのゲートウェイの IP アドレス + + <item> プロバイダのネットマスク設定 + + <item> 一つ以上のネームサーバの IP アドレス + + <item> もしプロバイダが固定の IP アドレスとホスト名を割り当ててくれるなら, + 同様にそれも必要でしょう. そうでなければ, どの IP アドレス範囲から + 割り当てがおこなわれるかを知っておく必要があるでしょう. +</itemize> + + もしこれらの情報のうち不明なものがあれば, + プロバイダに連絡して確認しておいてください. + + 同様に, カーネルを再コンパイルするためのファイルが必要になるかもしれません. + これらを手に入れる方法の詳細については <ref id="kernelconfig" name="FreeBSD + カーネルのコンフィグレーション"> を参照してください. + + 加えて, インターネットへの接続は常時おこなわれているものではなく, + そのためネームサーバ (<tt>named(8)</tt>) を立ち上げていないと仮定しています. + +<sect1><heading>ppp 対応カーネルの構築 </heading> + +<p> 説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います. + そのため, このデバイスがカーネルに組み込まれていることの確認が不可欠です. + + これを確認するためには, カーネルコンパイルディレクトリ + (おそらく /sys/i386/conf) に移動して, カーネルコンフィグレーション + ファイルを調べます. 以下の行がどこかに含まれている必要があります. +<tscreen><verb> +pseudo-device tun 1 +</verb></tscreen> + 元々の GENERIC カーネルは標準でこれを含んでいますので, カスタムカーネルを + インストールしていなければ, 何も変更する必要はありません. + あなたのカーネルコンフィグレーションファイルに + この行が含まれていなければ, この行を追加して + カーネルの再コンパイルとインストールをおこなう必要があります. + この新しいカーネルを使ってブートしてください. + カーネルコンフィグレーションの詳細については, + <ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション"> + を参照してください. + +<sect1><heading>tun デバイスのチェック </heading> + +<p> 私は一つの ``tun'' デバイス (tun0) による ppp の経験しかありません. + より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション + ファイルで疑似デバイスの行に `1' 以外の数値が指定されている場合), + 以下のすべての ``tun0'' に対する参照を, あなたが使うデバイスの番号に + あわせて変更してください. + + tun0 デバイスが正しく設定されていることを確認する最も簡単な方法は, + それを作り直すことです. そのためには, 以下のコマンドを実行します: +<tscreen><verb> +# cd /dev +# ./MAKEDEV tun0 +</verb></tscreen> + +<sect1><heading>PPP の設定 </heading> + +<p> これが問題の核心です. + + まぎらわしいことに, ユーザ ppp と pppd (カーネルレベルの PPP 実装) は + ともに, 設定ファイルが /etc/ppp に置かれていると仮定しているようです. + しかし, 提供されているサンプル設定ファイルはユーザ ppp 用のものですので, + 参照のため手元に置いておきます. + これをおこなう最も簡単な方法は, 以下の通りです: +<tscreen><verb> +# cd /etc +# mv ppp ppp.orig +# mkdir ppp +</verb></tscreen> + ppp を設定するためには, 必要に応じて一〜三つのファイルを + 編集する必要があります. 書き込む内容はプロバイダが静的に IP アドレスを + 割り当てる (すなわち, 一つの IP アドレスが与えられて, 常にそれを使う) か, + または動的に IP アドレスを割り当てる (すなわち, PPP セッション毎に + IP アドレスが異なる可能性がある) かにある程度依存します. + + しかし, 静的な IP アドレスを使うか動的な IP アドレスを使うかにかかわらず, + 最初にやらなければならないことがいくつかあります. + +<sect2><heading>resolver(5) の設定 </heading> + +<p>リゾルバ (resolver) はネットワーキングシステムの一部分で, IP アドレスと + ホスト名の変換をおこないます. これは, IP アドレスとホスト名を対応づける + マップを二つの場所のうちの一つから探すように設定できます. + + 一つめの場所は <tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれる + ファイルです. + 二つめの場所は, 分散データベースである, インターネットドメイン + ネームサービスです. これに関する議論はこのドキュメントの範囲を + 越えています. + + リゾルバはマッピングをおこなうシステムコールの集合です. + どこからマッピング情報を得ればよいかはあなたが指示しなければなりません. + これは <tt>/etc/host.conf</tt> ファイルを編集することでおこないます. + 混乱する可能性があるので, このファイルを <tt>/etc/hosts.conf</tt> と + 呼んでは <bf> いけません </bf> (余分な ``s'' に注意). + + このファイルは以下の 2 行を含んでいるはずです. +<tscreen><verb> +hosts +bind +</verb></tscreen> + これは, 最初に <tt>/etc/hosts</tt> ファイルを調べ, + 目的の名前が見つからなければ DNS を引きにいくようリゾルバに指示します. + + このマシンで ``named'' サービスが走っていないことを確認しておいた方が + 良いでしょう. + <tt>/etc/sysconfig</tt> ファイルをチェックして ``namedflags'' の行を探し, + 以下のようになっていることを確認します. +<tscreen><verb> +namedflags="NO" +</verb></tscreen> + +<sect2><heading>/etc/hosts(5) ファイルの作成 </heading> + +<p> このファイルはローカルネットワーク上に存在するマシンの IP アドレスと + ホスト名を含んでいるはずです. 最低でも ppp を動作させるマシンのエントリを + 含んでいなければなりません. あなたのマシンのホスト名が foo.bar.com で, + IP アドレスが 10.0.0.1 であると仮定すると, <tt>/etc/hosts</tt> は + 以下の行を含んでいなければなりません: +<tscreen><verb> +127.0.0.1 localhost +10.0.0.1 foo.bar.com foo +</verb></tscreen> + 最初の行は別名 ``localhost'' を現在のマシンの同義語として定義しています. + 固有の IP アドレスによらず, この行の IP アドレスは常に 127.0.0.1 で + なければなりません. 二つめの行はホスト名 ``foo.bar.com'' + (そして別名 ``foo'') を IP アドレス 10.0.0.1 にマップします. + + もしプロバイダが固定の IP アドレスを割り当ててくれるなら, + それを 10.0.0.1 のかわりに使ってください. + + <!-- XXX <em>(* IP アドレスの割り当てが動的におこなわれる場合は + どうするべきか ?)</em> --> + +<sect2><heading> /etc/resolv.conf ファイルの作成 </heading> + +<p><tt>/etc/resolv.conf</tt> はネームサーバをそのマシンで走らせていない場合に + 必要となる特別な情報を含んでいます. これは実際のネームサーバの位置を + リゾルバルーチンに指示したり, その他いくつかの情報を指定したりします. + + 少なくとも <tt>/etc/resolv.conf</tt> は問い合わせ可能なネームサーバを + 示す 1 行を含んでいる必要があります. + これは (ホスト名ではなく) IP アドレスで書かれていなければなりません. + 私の <tt>/etc/resolv.conf</tt> は以下の行を含んでいます: +<tscreen><verb> +nameserver 158.152.1.193 +nameserver 158.152.1.65 +</verb></tscreen> + これはプロバイダ Demon Internet の二つのネームサーバです. + あなたのプロバイダのネームサーバ行をすべて書いてください. + +<sect1><heading>PPP と静的 IP アドレス </heading> + +<p> これはおそらく設定が最も楽でしょう. 必要なのは <tt>/etc/ppp</tt> + ディレクトリにファイルを三つ作成することだけです. + + 一つめのファイルは <tt>ppp.conf</tt> です. 以下の例と似たような + ものになるでしょう. ``:'' で終る行は 1 カラム目から始まり, その他の行は + この例の通りにインデントされるべきだということに注意してください. + + <tt>/etc/ppp/ppp.conf</tt> +<tscreen><verb> +1 default: +2 set device /dev/cuaa0 +3 set speed 9600 +4 disable lqr +5 deny lqr +6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK +\\dATDT\\T TIMEOUT 40 CONNECT" +7 provider: +8 set phone 01234567890 +9 set login "TIMEOUT 10 gin:-BREAK-gin: foo word: bar col: ppp" +10 set timeout 120 +11 set ifaddr x.x.x.x y.y.y.y +</verb></tscreen> + 行番号はファイルには含めないでください. これは説明のためのものです. + +<descrip> +<tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは + ppp が起動された時に自動的に実行されます. + +<tag/Line 2:/ モデムが接続されているデバイスを指定します. + COM1: は <tt>/dev/cuaa0</tt> で, + COM2: は <tt>/dev/cuaa1</tt> です. + +<tag/Line 3:/ 接続速度 (DTE 速度) を設定します. + +<tag/* Lines 4 and 5:/ 私はこれらの行がどんな影響を持つかを正確には知りません. + + 訳者注: LQR 要求および受付を禁止します. + これを有効にすると, 定期的に LQR パケットを送って + 相手側が正常に動作しているかどうかを確認します. + LQR が使えない場合は LCP ECHO を使って確認をおこないます. + LQR の詳細については RFC1333 を参照してください. + +<tag/Line 6:/ ダイアルスクリプトです. ユーザ ppp は <tt>chat(8)</tt> 言語を + 使用します. この言語の仕様についての情報はマニュアルを + 参照してください. + +<tag/Line 7:/ 接続するプロバイダの名前を ``provider'' として指定します. + +<tag/Line 8:/ プロバイダの電話番号を設定します. 電話番号にはスペースを + 含めないでください. + +<tag/Line 9:/ ログインスクリプトを設定します. + この例は, 以下のようなログインセッションを持つ + プロバイダのためのものです. +<tscreen><verb> +J. Random Provider +login: foo +password: bar +protocol: ppp +</verb></tscreen> + このスクリプトを必要に応じて書き換える必要があるでしょう. + これは <tt>chat(8)</tt> 言語で書かれています. + +<tag/Line 10:/ デフォルトのタイムアウトを (秒数で) 設定します. + この例では, 120 秒間通信がおこなわれなければ, 自動的に接続が + 切られます. + +<tag/Line 11:/ インターフェースアドレスを設定します. 文字列 x.x.x.x は + プロバイダに割り当てられた IP アドレスで置き換えてください. + 文字列 y.y.y.y はプロバイダによりゲートウェイとして指示された + IP アドレスで置き換えてください. +</descrip> + + 次に <tt>/etc/ppp/ppp.linkup</tt> ファイルを編集しなければなりません: +<tscreen><verb> +x.x.x.x: + add 0 0 HISADDR +</verb></tscreen> + 先ほどと同じように x.x.x.x をあなたの IP アドレスで置き換えます. + このファイルは, あなたのマシンからプロバイダ (HISADDR マクロは + プロバイダのアドレスで自動的に置き換えられます) へのルートを + デフォルトルートとして自動的に追加するのに使われます. + + 最後に, <tt>/etc/ppp/ppp.secret</tt> ファイルを作成します. + 同じ ppp システムを使う他のユーザの不正使用を防ぐためパスワードを + 設定します. どれだけの人がこの ppp システムを触るかによって, + これを設定したいと思うかもしれません. + +<sect1><heading>PPP と動的 IP 設定 </heading> + +<!-- XXX --> + <p> プロバイダから静的な IP アドレスの割り当てを受けていない場合, + ローカル IP アドレスとして 0 を指定することで <tt>ppp</tt> が + リモートホストとの交渉によりローカルアドレスを決定するように設定できます. +<tscreen><verb> +set ifaddr 0 0 +</verb></tscreen> + 詳細については <tt>ppp(8)</tt> のマニュアルを参照してください. + +<sect1><heading> システムの最終設定 </heading> + +<p> これで PPP の設定は終りました. しかし PPP の動作準備が完了するのには + もう少し必要なことがあります. + それはすべて <tt>/etc/sysconfig</tt> ファイルの編集に含まれています. + + このファイルを上から順に設定していきます. まず ``hostname='' の行が + 設定されていることを確認します. 例えば, +<tscreen><verb> +hostname=foo.bar.com +</verb></tscreen> + 次に network_interfaces 変数を探し, tun0 デバイスがリストに追加されて + いることを確認します. 私の設定では以下のようになっています. +<tscreen><verb> +network_interfaces="lo0 tun0 ep0" +</verb></tscreen> + 他に私はイーサネットカード (ep0) も持っているので, 同様に設定しています. + + 次に tun0 デバイスのための ifconfig 行を追加します. + それは以下のようなものになるでしょう. +<tscreen><verb> +ifconfig_tun0="inet foo.bar.com y.y.y.y netmask 0xffffffff" +</verb></tscreen> + 先ほどと同じように, ``foo.bar.com'' はあなたのホスト名に, + y.y.y.y はプロバイダのゲートウェイの IP アドレスに, 0xffffffff は + (16 進で) プロバイダから指定されたネットマスクに変更します. + ネットマスクとしては以下の二つの値がよく用いられます. +<tscreen><verb> +255.255.255.255 = 0xffffffff +255.255.255.0 = 0xffffff00 +</verb></tscreen> + routed フラグを以下のように ``-s'' に設定します. +<tscreen><verb> +routedflags=-s +</verb></tscreen> + ``sendmail_flags'' 行が ``-q'' オプションを含まないようにしておくことは, + おそらく, やっておくだけの価値があるでしょう. + さもなければ, ネットワークからアドレスを引こうとして sendmail が + 時々発信をおこなってしまうでしょう. 私の sendmail 行は次の通りです. +<tscreen><verb> +sendmail_flags="-bd" +</verb></tscreen> + この結果, 私は PPP リンクを立ち上げた時はいつでも以下のようにタイプして, + sendmail に mailqueue を調べ直させなければなりません. +<tscreen><verb> +# /usr/sbin/sendmail -q +</verb></tscreen> + これが静的 IP アドレスで PPP を動作させるために必要なすべてのはずです. + 後はマシンをリブートするだけです. スタートアップの間に tun0 デバイスが + 検出され, 以下のような 2 行が表示されると思います. +<tscreen><verb> +tun0: flags=51<UP,POINTOPOINT,RUNNING> mtu 1500 +inet x.x.x.x --> y.y.y.y netmask 0xffffffff +</verb></tscreen> + この時点で, ppp は完全に動作するはずです. 以下のうち好きなほうを + タイプしてください. +<tscreen><verb> +# ppp +</verb></tscreen> + その後 PPP セッションを開始させるために ``dial provider'' をタイプします. + または, 外向きのトラフィックが発生した時に ppp が自動的にセッションを + 確立してくれるようにしたければ, 以下をタイプします. +<tscreen><verb> +# ppp -auto provider +</verb></tscreen> + この行を <tt>/etc/rc.local</tt> ファイルに追加しておくのも良いでしょう. + |