diff options
118 files changed, 50496 insertions, 0 deletions
diff --git a/ja/handbook/Makefile b/ja/handbook/Makefile new file mode 100644 index 0000000000..5c9b6657e7 --- /dev/null +++ b/ja/handbook/Makefile @@ -0,0 +1,22 @@ +# $Id: Makefile,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ +# 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/ja/handbook/authors.sgml b/ja/handbook/authors.sgml new file mode 100644 index 0000000000..304e5d1e02 --- /dev/null +++ b/ja/handbook/authors.sgml @@ -0,0 +1,365 @@ +<!-- $Id: authors.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/basics.sgml b/ja/handbook/basics.sgml new file mode 100644 index 0000000000..a43d411fc6 --- /dev/null +++ b/ja/handbook/basics.sgml @@ -0,0 +1,93 @@ +<!-- $Id: basics.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/bibliography.sgml b/ja/handbook/bibliography.sgml new file mode 100644 index 0000000000..222a2d35bc --- /dev/null +++ b/ja/handbook/bibliography.sgml @@ -0,0 +1,265 @@ +<!-- $Id: bibliography.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/boothelp.sgml b/ja/handbook/boothelp.sgml new file mode 100644 index 0000000000..debab0180b --- /dev/null +++ b/ja/handbook/boothelp.sgml @@ -0,0 +1,51 @@ +<!-- $Id: boothelp.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/booting.sgml b/ja/handbook/booting.sgml new file mode 100644 index 0000000000..c82af75afd --- /dev/null +++ b/ja/handbook/booting.sgml @@ -0,0 +1,183 @@ +<!-- $Id: booting.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/contrib.sgml b/ja/handbook/contrib.sgml new file mode 100644 index 0000000000..7a353a8966 --- /dev/null +++ b/ja/handbook/contrib.sgml @@ -0,0 +1,430 @@ +<!-- $Id: contrib.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/crypt.sgml b/ja/handbook/crypt.sgml new file mode 100644 index 0000000000..f4a6243f5e --- /dev/null +++ b/ja/handbook/crypt.sgml @@ -0,0 +1,81 @@ +<!-- $Id: crypt.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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/ja/handbook/ctm.sgml b/ja/handbook/ctm.sgml new file mode 100644 index 0000000000..172994825d --- /dev/null +++ b/ja/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: ctm.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ +# 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/ja/handbook/current.sgml b/ja/handbook/current.sgml new file mode 100644 index 0000000000..39e8fa4484 --- /dev/null +++ b/ja/handbook/current.sgml @@ -0,0 +1,161 @@ +<!-- $Id: current.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ --> +<!-- 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-11-15 05:14:38 $ + +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/ja/handbook/cyclades.sgml b/ja/handbook/cyclades.sgml new file mode 100644 index 0000000000..7178f8ea10 --- /dev/null +++ b/ja/handbook/cyclades.sgml @@ -0,0 +1,58 @@ +<!-- $Id: cyclades.sgml,v 1.1.1.1 1996-11-15 05:14:43 asami Exp $ --> +<!-- 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/ja/handbook/development.sgml b/ja/handbook/development.sgml new file mode 100644 index 0000000000..61e53ad97c --- /dev/null +++ b/ja/handbook/development.sgml @@ -0,0 +1,104 @@ +<!-- $Id: development.sgml,v 1.1.1.1 1996-11-15 05:14:44 asami Exp $ --> +<!-- 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/ja/handbook/dialup.sgml b/ja/handbook/dialup.sgml new file mode 100644 index 0000000000..60dead0e45 --- /dev/null +++ b/ja/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: dialup.sgml,v 1.1.1.1 1996-11-15 05:14:38 asami Exp $ + 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/ja/handbook/diskless.sgml b/ja/handbook/diskless.sgml new file mode 100644 index 0000000000..8e646139cb --- /dev/null +++ b/ja/handbook/diskless.sgml @@ -0,0 +1,163 @@ +<!-- $Id: diskless.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/dma.sgml b/ja/handbook/dma.sgml new file mode 100644 index 0000000000..c0b8c6d65e --- /dev/null +++ b/ja/handbook/dma.sgml @@ -0,0 +1,478 @@ +<!-- $Id: dma.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/eresources.sgml b/ja/handbook/eresources.sgml new file mode 100644 index 0000000000..1ca9a3fd52 --- /dev/null +++ b/ja/handbook/eresources.sgml @@ -0,0 +1,373 @@ +<!-- $Id: eresources.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/esdi.sgml b/ja/handbook/esdi.sgml new file mode 100644 index 0000000000..680824ca8c --- /dev/null +++ b/ja/handbook/esdi.sgml @@ -0,0 +1,418 @@ +<!-- $Id: esdi.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/firewalls.sgml b/ja/handbook/firewalls.sgml new file mode 100644 index 0000000000..4c35467516 --- /dev/null +++ b/ja/handbook/firewalls.sgml @@ -0,0 +1,579 @@ +<!-- $Id: firewalls.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/glossary.sgml b/ja/handbook/glossary.sgml new file mode 100644 index 0000000000..3a2c14774f --- /dev/null +++ b/ja/handbook/glossary.sgml @@ -0,0 +1,6 @@ +<!-- $Id: glossary.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- The FreeBSD Japanese Documentation Project --> +<!-- Original revision: 1.3 --> + +<chapt><heading>* Glossary<label id="glossary"></heading> + diff --git a/ja/handbook/goals.sgml b/ja/handbook/goals.sgml new file mode 100644 index 0000000000..04f619917e --- /dev/null +++ b/ja/handbook/goals.sgml @@ -0,0 +1,33 @@ +<!-- $Id: goals.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/handbook.sgml b/ja/handbook/handbook.sgml new file mode 100644 index 0000000000..60334459b0 --- /dev/null +++ b/ja/handbook/handbook.sgml @@ -0,0 +1,177 @@ +<!-- $Id: handbook.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/history.sgml b/ja/handbook/history.sgml new file mode 100644 index 0000000000..21163e8121 --- /dev/null +++ b/ja/handbook/history.sgml @@ -0,0 +1,167 @@ +<!-- $Id: history.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/hw.sgml b/ja/handbook/hw.sgml new file mode 100644 index 0000000000..5e0d197fe8 --- /dev/null +++ b/ja/handbook/hw.sgml @@ -0,0 +1,1445 @@ +<!-- $Id: hw.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/install.sgml b/ja/handbook/install.sgml new file mode 100644 index 0000000000..944d95449a --- /dev/null +++ b/ja/handbook/install.sgml @@ -0,0 +1,848 @@ +<!-- $Id: install.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/isdn.sgml b/ja/handbook/isdn.sgml new file mode 100644 index 0000000000..dbf16eb6c6 --- /dev/null +++ b/ja/handbook/isdn.sgml @@ -0,0 +1,226 @@ +<!-- $Id: isdn.sgml,v 1.1.1.1 1996-11-15 05:14:44 asami Exp $ --> +<!-- 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/ja/handbook/jcontrib.sgml b/ja/handbook/jcontrib.sgml new file mode 100644 index 0000000000..84e0fc83e4 --- /dev/null +++ b/ja/handbook/jcontrib.sgml @@ -0,0 +1,72 @@ +<!-- $Id: jcontrib.sgml,v 1.1.1.1 1996-11-15 05:14:44 asami Exp $ --> +<!-- 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/ja/handbook/jmembers.sgml b/ja/handbook/jmembers.sgml new file mode 100644 index 0000000000..b533ce17a3 --- /dev/null +++ b/ja/handbook/jmembers.sgml @@ -0,0 +1,116 @@ +<!-- $Id: jmembers.sgml,v 1.1.1.1 1996-11-15 05:14:44 asami Exp $ --> +<!-- 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/ja/handbook/kerberos.sgml b/ja/handbook/kerberos.sgml new file mode 100644 index 0000000000..1e3ab92269 --- /dev/null +++ b/ja/handbook/kerberos.sgml @@ -0,0 +1,492 @@ +<!-- $Id: kerberos.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/kernelconfig.sgml b/ja/handbook/kernelconfig.sgml new file mode 100644 index 0000000000..4fc3463f43 --- /dev/null +++ b/ja/handbook/kernelconfig.sgml @@ -0,0 +1,1244 @@ +<!-- $Id: kernelconfig.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/kerneldebug.sgml b/ja/handbook/kerneldebug.sgml new file mode 100644 index 0000000000..6afc64cce1 --- /dev/null +++ b/ja/handbook/kerneldebug.sgml @@ -0,0 +1,419 @@ +<!-- $Id: kerneldebug.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/linuxemu.sgml b/ja/handbook/linuxemu.sgml new file mode 100644 index 0000000000..2e60c77474 --- /dev/null +++ b/ja/handbook/linuxemu.sgml @@ -0,0 +1,714 @@ +<!-- $Id: linuxemu.sgml,v 1.1.1.1 1996-11-15 05:14:43 asami Exp $ --> +<!-- 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/ja/handbook/lists.sgml b/ja/handbook/lists.sgml new file mode 100644 index 0000000000..b293996930 --- /dev/null +++ b/ja/handbook/lists.sgml @@ -0,0 +1,66 @@ +<!-- $Id: lists.sgml,v 1.1.1.1 1996-11-15 05:14:43 asami Exp $ --> +<!-- 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/ja/handbook/memoryuse.sgml b/ja/handbook/memoryuse.sgml new file mode 100644 index 0000000000..b93c88ed45 --- /dev/null +++ b/ja/handbook/memoryuse.sgml @@ -0,0 +1,61 @@ +<!-- $Id: memoryuse.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/mirrors.sgml b/ja/handbook/mirrors.sgml new file mode 100644 index 0000000000..b60533d76a --- /dev/null +++ b/ja/handbook/mirrors.sgml @@ -0,0 +1,569 @@ +<!-- $Id: mirrors.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/nfs.sgml b/ja/handbook/nfs.sgml new file mode 100644 index 0000000000..fcc73dd1f3 --- /dev/null +++ b/ja/handbook/nfs.sgml @@ -0,0 +1,88 @@ +<!-- $Id: nfs.sgml,v 1.1.1.1 1996-11-15 05:14:39 asami Exp $ --> +<!-- 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/ja/handbook/nutshell.sgml b/ja/handbook/nutshell.sgml new file mode 100644 index 0000000000..508705cf85 --- /dev/null +++ b/ja/handbook/nutshell.sgml @@ -0,0 +1,153 @@ +<!-- $Id: nutshell.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/pgpkeys.sgml b/ja/handbook/pgpkeys.sgml new file mode 100644 index 0000000000..47a2cc182d --- /dev/null +++ b/ja/handbook/pgpkeys.sgml @@ -0,0 +1,250 @@ +<!-- $Id: pgpkeys.sgml,v 1.1.1.1 1996-11-15 05:14:43 asami Exp $ --> +<!-- 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/ja/handbook/policies.sgml b/ja/handbook/policies.sgml new file mode 100644 index 0000000000..031f54fccb --- /dev/null +++ b/ja/handbook/policies.sgml @@ -0,0 +1,152 @@ +<!-- $Id: policies.sgml,v 1.1.1.1 1996-11-15 05:14:44 asami Exp $ --> +<!-- 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/ja/handbook/porting.sgml b/ja/handbook/porting.sgml new file mode 100644 index 0000000000..1ebe7e257c --- /dev/null +++ b/ja/handbook/porting.sgml @@ -0,0 +1,1296 @@ +<!-- $Id: porting.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/ports.sgml b/ja/handbook/ports.sgml new file mode 100644 index 0000000000..bd6b59696d --- /dev/null +++ b/ja/handbook/ports.sgml @@ -0,0 +1,859 @@ +<!-- $Id: ports.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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/ja/handbook/ppp.sgml b/ja/handbook/ppp.sgml new file mode 100644 index 0000000000..03036001fd --- /dev/null +++ b/ja/handbook/ppp.sgml @@ -0,0 +1,429 @@ +<!-- $Id: ppp.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ --> +<!-- 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: |