diff --git a/ja_JP.eucJP/books/handbook/introduction/chapter.sgml b/ja_JP.eucJP/books/handbook/introduction/chapter.sgml
index aabffd4b1a..3089cc8a80 100644
--- a/ja_JP.eucJP/books/handbook/introduction/chapter.sgml
+++ b/ja_JP.eucJP/books/handbook/introduction/chapter.sgml
@@ -1,1017 +1,1013 @@
Jim
Mock
改訂:
はじめに
この章では
FreeBSD に興味を持っていただきありがとうございます!
この章では FreeBSD の歴史、目標、開発モデルなど、
FreeBSD プロジェクトに関するさまざまな事柄を扱います。
この章に書かれている話題は、次のようなものです。
FreeBSD とその他のオペレーティングシステムとの違い
FreeBSD プロジェクトの歴史
FreeBSD プロジェクトの目標
FreeBSD オープンソース開発モデルの基本的な考え方
そして、FreeBSD
という名前の由来について
FreeBSD へようこそ!
4.4BSD-Lite
FreeBSD は、4.4BSD-Lite
から派生したオペレーティングシステムで、
Intel (x86 および &itanium;), AMD64, Alpha,
Sun &ultrasparc; コンピュータに対応しています。
他のアーキテクチャに対する移植も進行中です。
FreeBSD の概要については、
次のセクションをご覧ください。
FreeBSD の歴史や、
現在のリリースについても読むことができます。
プロジェクトへの何らかの貢献 (ソースコード、ハードウェア、
資金の提供など) について興味があれば、
FreeBSD
への貢献をご覧ください。
FreeBSD で何ができるの?
FreeBSD には多くの注目すべき機能があります。
例を挙げれば以下のようになります:
プリエンプティブマルチタスキング
優先度を動的に調節する機能を備えることで
アプリケーションとユーザとの間で円滑かつ公平な
コンピュータ資源共有を実現し、
特に高い負荷にも耐えることができる堅牢さを備えた
プリエンプティブマルチタスキング。
マルチユーザ機能
多くの人々が 1 つの FreeBSD
システムをさまざまな目的で同時に使うことを可能にする
マルチユーザ機能。
これは例えば、プリンタやテープデバイスといったシステムの周辺機器が、
そのシステムを利用する全てのユーザだけでなく
ネットワーク経由においても自然な形で共有され、
さらに重要なシステム資源の使い過ぎを防ぐために
個々の資源に対する制限がユーザ単位、
グループ単位で設定できる、というようなことを意味しています。
TCP/IP ネットワーキング
SLIP や PPP, NFS, DHCP, NIS といった業界標準規格の
サポートを含んだ堅固な
TCP/IP ネットワーキング。
これによって、FreeBSD マシンが商用サーバと同じように相互に運用でき、
NFS (リモートファイルアクセス) や、電子メールサービスのような
極めて重要な機能を提供します。
また、WWW や FTP, ルーティング、ファイアウォール
(セキュリティ) サービスを用いてインターネットと
接続できます。
メモリ保護
アプリケーション (あるいはユーザ) がお互いに干渉できない
ようにするメモリ保護機能。
アプリケーションがクラッシュしても、どのような場合でも
他のアプリケーションには影響を与えません。
FreeBSD は 32ビット
のオペレーティングシステム
(Alpha 版、&itanium; 版、AMD64 版および &ultrasparc; 版は
64 ビット) であり、
最初からそのようにこつこつと設計されました。
X Window System
XFree86
業界標準である X Window システム
(X11R6) は、普通の VGA カードやモニタでグラフィカルユーザ
インタフェース (GUI) を提供し、
すべてのソースコードも一緒に提供されます。
バイナリ互換性
Linux
バイナリ互換性
SCO
バイナリ互換性
SVR4
バイナリ互換性
BSD/OS
バイナリ互換性
NetBSD
Linux や SCO, SVR4, BSDI, NetBSD 用に作られた多くの
プログラムとのバイナリ互換性。
何千ものすぐに実行可能な
アプリケーションが FreeBSD の ports や
packages コレクションで利用可能です。
ここに用意されているものは
ネットを探し回る必要がありません
インターネット上で入手可能な、
移植が容易な
何千ものアプリケーションを追加できます。FreeBSD
は最も評判のよい商用の &unix;
システムとソースコードレベルで互換性があります。このため、
ほとんどのアプリケーションは、もしあったとしてもほんの
少しの変更でコンパイルすることができます。
仮想メモリ
デマンドページング仮想メモリ
とそれに 付随の VM/buffer キャッシュ
の設計は、
多くのメモリを要求する
アプリケーションに対して効率よくメモリを
与えるようにする一方で、
他のユーザに対しても対話的な応答を維持します。
対称型マルチプロセッシング (SMP)
複数の CPU を搭載したマシンにおける
SMP 機能のサポート。
コンパイラ
C
コンパイラ
C++
コンパイラ
FORTRAN
完全な C や
C++, Fortran,
Perl の
開発ツール。進んだ研究や開発のための多くの他の言語も
ports や packages コレクションで提供されています。
ソースコード
システム全体のソースコード
が提供されているので、
要求に合わせて環境を最大限に適合させることができます。
真のオープンシステムが利用できるのですから、
所有権のある解決方法に締めつけられ、
ベンダのなすがままになる必要はありません。
膨大な量の
オンラインドキュメント。
もう書ききれません!
4.4BSD-Lite
Computer Systems Research Group (CSRG)
U.C. Berkeley
FreeBSD はカリフォルニア大学バークレイ校の Computer Systems
Research Group (CSRG) による 4.4BSD-Lite リリースを基にしており、
BSD システムの開発の優れた伝統を守り続けています。
CSRG による素晴らしい活動に加えて、
FreeBSD プロジェクトは何千時間もの時間を注ぎ込んで、
実際の使用の場において最大の性能と信頼性を
発揮するためにシステムのチューニングをおこなっています。
多くの大企業が PC オペレーティングシステムの分野で
実現しようと奮闘しているそのような機能や性能、信頼性を
FreeBSD は今すぐ提供できます!
あなたの思いつく限りのアプリケーションは、何でも FreeBSD で
実行できます。ソフトウェア開発からファクトリオートメーション、
在庫制御から遠く離れた人工衛星のアンテナの方向調整まで;
商用 &unix; 製品でできることは、FreeBSD でも十分にできるのです!
また、FreeBSD は世界中の研究センターや大学によって開発される
文字通り何千もの高品質で、たいていはほとんど無料で利用できる
アプリケーションによる恩恵を得ることができます。
商用のアプリケーションも提供されており、
日々増え続けています。
FreeBSD のソースコードは広く提供されているので、
システムも特別なアプリケーションやプロジェクトに合わせて、
いくらでもカスタマイズすることができます。
これは有名な商業ベンダから出ているほとんどのオペレーティング
システムでは不可能なことです。以下に現在 FreeBSD を
使っている人々のアプリケーションの例をいくつか上げます:
インターネットサービス:
FreeBSDに組み込まれている 頑強な TCP/IP
ネットワーキング機能は次のようなさまざまなインターネット
サービスの理想的なプラットフォームになります:
FTP サーバ
FTP サーバ
web サーバ
World Wide Web サーバ (標準、もしくは安全な [SSL])
ファイアウォール
IP マスカレード
ファイアウォールと NAT
(IP マスカレード
) ゲートウェイ
電子メール
電子メールサーバ
USENET
USENET ニュースおよび電子掲示板システム
さらにいろいろ…
FreeBSD を利用すれば、小規模で安価な 386 クラスの
PC でも気軽に導入することができますし、
事業の成長に合わせてアップグレードした
4 つの Xeon プロセッサと RAID ストレージデバイスを
備えたシステムでも、全くそのまま使うことができるのです。
教育:
あなたは計算機科学または工学の学生ですか?
オペレーティングシステムやコンピュータアーキテクチャ、
ネットワーキングを学習するなら、FreeBSD を手に
経験するのが一番よい方法です。自由に利用できる CAD や数学、
グラフィックデザインのパッケージもいくつもあり、
コンピュータに関心を持った人が他の人
の成果を手に入れて利用するのにとても役に立ちます。
研究:
システム全体のソースコードが利用できるため、
FreeBSD はオペレーティングシステムの研究だけでなく、
計算機科学の他の部門においても優れたプラットフォームです。
自由に利用できる FreeBSD の特長は、オープンフォーラムで
議論される特別なライセンスの同意や制限について心配することなく、
離れたグループでもアイディアや開発の共有による共同研究を可能にします。
ルータ
DNS サーバ
ネットワーキング:
新しいルータが必要? ネームサーバ (DNS) は?
内部のネットワークを人々から守るファイアウォールは?
FreeBSD はすみに眠っている使われていない 386 や 486 の PC を簡単に
洗練されたパケットフィルタリング機能を持つ高級なルータに
変えることができます。
X Window System
XFree86
X Window System
Accelerated-X
X Window ワークステーション:
- 自由に利用できる &xfree86; サーバや Xi Graphics 社から提供されている
優れた商業サーバを使うことによって、安価な X 端末
として FreeBSD を使うこともできます。X 端末とは違って FreeBSD
は多くのアプリケーションをローカルに走らせることもでき、
中心のサーバの負荷を軽減することも可能です。
FreeBSD は ディスクレス
でもブート可能であり、
個々のワークステーションを安価で、容易に管理することさえ
可能にします。
GNU Compiler Collection
ソフトウェア開発:
基本的な FreeBSD システムには
有名な GNU の C/C++
コンパイラやデバッガを含んだ完全な開発ツールがついてきます。
FreeBSD は、ソースとバイナリの両方とも、CDROM または
anonymous FTP で入手可能です。
詳しくは をご覧ください。
FreeBSD はどこに使われていますか?
ユーザ
FreeBSD を利用している大規模サイト
FreeBSD は、以下のサイトに代表されるような、
インターネット上で最大クラスのサイトで利用されています。
Yahoo!
Yahoo!
Hotmail
Hotmail
Apache
Apache
Blue Mountain Arts
Blue Mountain
Arts
Pair Networks
Pair
Networks
Sony Japan
Sony
Japan
Netcraft
Netcraft
Weathernews
Weathernews
Supervalu
Supervalu
TELEHOUSE America
TELEHOUSE
America
Sophos Anti-Virus
Sophos
Anti-Virus
JMA Wired
JMA Wired
また、この他にもあります。
FreeBSD プロジェクトについて
以下の節では簡単な歴史やプロジェクトの目標、
開発モデルなど、普段は表にでない話題を提供しています。
Jordan
Hubbard
寄稿:
FreeBSD 小史
386BSD Patchkit
Hubbard, Jordan
Williams, Nate
Grimes, Rod
FreeBSD プロジェクト
history
FreeBSD プロジェクトは 1993 年の始めに Unofficial
386BSD Patchkit
の最後の 3 人のまとめ役によって、部分的に
patchkit から派生する形で開始されました。ここでの
3 人のまとめ役というのは、Nate Williams と、Rod Grimes と、私
(Jordan K. Hubbard) です。
386BSD
私たちのもともとの目標は、patchkit
という仕組みではもう十分に解決できなくなってしまった 386BSD
の数多くの問題を修正するための、386BSD
の暫定的なスナップショットを作成することでした。
こういった経緯を経ているので、
このプロジェクトの初期の頃の名前が 386BSD 0.5
や
386BSD 暫定版 (Interim)
であったということを覚えている人もいるでしょう。
Jolitz, Bill
386BSD は、Bill Jolitz が (訳注: バークレイ Net/2
テープを基に) 作成したオペレーティングシステムです。当時の
386BSD は、ほぼ一年にわたって放っておかれていた (訳注:
作者がバグの報告を受けても何もしなかった)
というひどい状況に苦しんでいました。
作者の代わりに問題を修正し続けていた patchkit
は日を追うごとに不快なまでに膨張してしまっていました。
このような状況に対して、このままではいけない、
何か行動を起こさなければ、
ということで異議を唱えるものは私たちのなかにはいませんでした。
そして私たちは挑戦することを決断し、
暫定的な クリーンアップ
スナップショットを作成することで
Bill を手助けしようと決めたのです。しかし、
この計画は唐突に終了してしまいました。Bill Jolitz が、
このプロジェクトに対する受け入れ支持を取り下げることを突然決意し、
なおかつこのプロジェクトの代わりに何をするのかを一切言明しなかったのです。
Greenman, David
Walnut Creek CDROM
たとえ Bill が支持してくれないとしても、
われわれの目標には依然として
やる価値があると決心するのにさしたる時間はかかりませんでした。
そこで David Greenman が考案した名称 FreeBSD
を私たちのプロジェクトの名前に採用し、
新たなスタートを切りました。
この時点でのプロジェクトの初期目標は、すでにこのシステム
(訳注: 386BSD + Patchkit)
を使っていた利用者たちと相談して決められました。
プロジェクトが実現に向けて軌道に乗ってきたことが明確になった時点で、
私は Walnut Creek CDROM
社に連絡してみました。CDROM を使って FreeBSD
を配布することによって、
インターネットに容易に接続できない多くの人々が FreeBSD
を簡単に入手できるようになると考えたからです。Walnut Creek
CDROM 社は FreeBSD を CD
で配布するというアイデアを採用してくれたばかりか、
作業するためのマシンと高速なインターネット回線を私たちのプロジェクトに提供してくれました。
当時は海のものとも山のものともわからなかった私たちのプロジェクトに対して、Walnut
Creek CDROM 社が信じられないほどの信頼を寄せてくれたおかげで、
FreeBSD は短期間のうちにここまで大きく成長したのです。
4.3BSD-Lite
Net/2
U.C. Berkeley
386BSD
Free Software Foundation
CDROM による最初の配布 (そしてネットでの、
ベータ版ではない最初の一般向け配布) は FreeBSD 1.0 で、1993 年
12 月に公開されました。これはカリフォルニア大学バークレイ校の
4.3BSD-Lite (Net/2
) を基とし、386BSD や Free
Software Foundation からも多くの部分を取り入れたものです。
これは初めて公開したものとしては十分に成功しました。続けて 1994 年
5 月に FreeBSD 1.1 を公開し、
非常に大きな成功を収めました。
Novell
U.C. Berkeley
Net/2
AT&T
この時期、
あまり予想していなかった嵐が遠くから接近してきていました。
バークレイ Net/2 テープの法的な位置づけについて、Novell
社とカリフォルニア大学バークレイ校との間の長期にわたる
法廷論争において和解が成立したのです。和解の内容は、Net/2
のかなりの部分が 権利つき (encumbered)
コードであり、それは Novell 社の所有物である、
というバークレイ校側が譲歩したものでした。なお、Novell
社はこれらの権利を裁判が始まる少し前に AT&T
社から買収していました。
和解における譲歩の見返りにバークレイ校が得たのは、
4.4BSD-Lite が最終的に発表された時点で、
4.4BSD-Lite は権利つきではないと公式に宣言されること、
そしてすべての既存の Net/2 の利用者が 4.4BSD-Lite
の利用へと移行することが強く奨励されること、という Novell
社からの ありがたき天からの恵み
でした (訳注:
4.4BSD-Lite はその後 Novell
社のチェックを受けてから公開された)。FreeBSD も Net/2
を利用していましたから、1994 年の 7 月の終わりまでに Net/2 ベースの
FreeBSD の出荷を停止するように言われました。ただし、
このときの合意によって、
私たちは締め切りまでに一回だけ最後の公開をすることを許されました。
そしてそれは FreeBSD 1.1.5.1 となりました。
それから FreeBSD プロジェクトは、まっさらでかなり不完全な
4.4BSD-Lite を基に、文字どおり一から再度作り直すという、
難しくて大変な作業の準備を始めました。Lite
バージョンは、部分的には本当に軽くて、中身がなかったのです。
起動し、
動作できるシステムを実際に作り上げるために必要となるプログ
ラムコードのかなりの部分がバークレイ校の CSRG (訳注:
BSDを作っているグループ) によって (いろいろな法的要求のせいで)
削除されてしまっていたということと、4.4BSD の Intel
アーキテクチャ対応が元々かなり不完全であったということがその理由です。
この移行作業は結局 1994 年の
11 月までかかりました。そしてその時点で FreeBSD 2.0 をネットと
CDROM (12 月末ごろ) を通じて公開しました。これは、
かなり粗削りなところが残っていたにもかかわらず、
かなりの成功を収めました。そしてその後に、より信頼性が高く、
そしてインストールが簡単になった FreeBSD 2.0.5 が 1995 年の
6 月に公開されました。
私たちは 1996 年の 8 月に FreeBSD 2.1.5 を公開しました。
この出来が非常に良く、特に業務で運用しているサイトや ISP
での人気が高かったので、私たちは 2.1-STABLE
開発分流から更に公開をおこなうことにメリットがあると考えました。
それが FreeBSD 2.1.7.1 で、2.1-STABLE
開発分流の最後を締めくくるものとして、
1997 年の 2月に公開されました。2.1-STABLE
開発分流 (RELENG_2_1_0) は現在、
保守のみをおこなう状態になっており、今後は、
セキュリティの改善や他の何か重要なバグフィックスのみがおこなわれるでしょう。
FreeBSD 2.2 の開発は、RELENG_2_2 開発ブランチとして、開発の本流
(-CURRENT
) から 1996 年 11 月に分岐し、そして 1997 年
4 月に最初のリリース (2.2.1) が行なわれました。2.2
開発ブランチからは、さらに 97 年の夏と秋にリリースが行なわれ、
98 年 11 月に 2.2 開発ブランチの最終リリース (2.2.8) が
行なわれています。1998 年 10 月に FreeBSD 3.0 最初の公式リリースが
行なわれ、2.2 開発ブランチは開発の終了を迎えることになりました。
1999 年 1 月 20 日には、FreeBSD の開発ツリーが
4.0-CURRENT と 3.X-STABLE の各ブランチに再び分岐しました。
3.X-STABLE からは 3.1 が 1999 年 2 月 15 日に、
3.2 が 1999 年 5 月 15 日に、
3.3 が 1999 年 9 月 16 日に、
3.4 が 1999 年 12 月 20 日に、
そして 3.5 が 2000 年 6 月 24 日にリリースされました。
3.5 はリリースの数日後、
Kerberos に対するセキュリティ上の修正を組み込むために
小規模な更新がなされ、3.5.1 になりました。
3.5.1 は、この 3.X ブランチにおける最終リリースになる予定です。
- 2000 年 3 月 13 日には
- 4.X-STABLE ブランチの作成が行われました。
- これは現時点で「最新の -stable ブランチ」になります。
- このブランチからのリリースは、
+ 2000 年 3 月 13 日に 4.X-STABLE ブランチが作成されました。
+ このブランチからはこれまでいくつものリリースが公開されています。
2000 年 3 月に初めて 4.0-RELEASE が公開され、
現在の最新版は &rel2.current.date; に公開された
&rel2.current;-RELEASE になっています。
- 4.X-stable (RELENG_4) ブランチからのリリースは、2003
- 年まで続けられる予定になっています。
+ 4.X-stable (RELENG_4) ブランチからのリリースは、今後も行われる
+ 予定です。
長い間延期されていた 5.0-RELEASE は、2003 年 1 月 19
日にアナウンスされました。これは 3 年近くにわたる作業の集大成であり、
このリリースより、FreeBSD
は先進的なマルチプロセッサとアプリケーションスレッドに対応し、
また、&ultrasparc; と ia64
プラットフォームへの対応も始まりました。
これに続いて 5.1 が 2003 年 6 月に公開されています。
- 5.X リリースは、数多くの新機能に加えて、
- システムアーキテクチャレベルでの改良も大きくおこなわれています。
- ただ、こうした進歩はあったのですが、システムにはまだ十分に試験されていない、
- 新しいコードもたくさん含まれています。そのため、5.X リリースは
- テクノロジ
リリース、4.X 系列は プロダクション
- リリースという位置付けになっています。最終的には 5.X が安定版となり、
- 次期の開発ブランチ 6.0-CURRENT での開発が始まる予定です。
-
- 長期的な開発プロジェクトは 5.0-CURRENT 開発ブランチ
+ -CURRENT ブランチからの最後の 5.X リリースは 5.2.1-RELEASE で、
+ 2004 年 2 月に公開されました。
+
+ 2004 年 8 月に RELENG_5 ブランチが作成され、続いて 5.3-RELEASE が
+ 5-STABLE ブランチからのリリースの始まりを飾りました。
+
+ 長期的な開発プロジェクトは 6.0-CURRENT 開発ブランチ
(トランク) で続けられ、
- 5.0 のスナップショットリリースが収録された CDROM
+ 6.0 のスナップショットリリースが収録された CDROM
(もちろん、ネットワーク上でも) は、開発の進行状況に応じて
スナップショットサーバ
より継続的に作成されています。
Jordan
Hubbard
寄稿:
FreeBSD プロジェクトの目標
FreeBSD プロジェクト
目標
FreeBSD
プロジェクトの目的は、いかなる用途にも使用でき、
何ら制限のないソフトウェアを供給することです。
私たちの多くは、
コード (そしてプロジェクト) に対してかなりの投資をしてきており、
これからも多少の無駄はあっても投資を続けて行くつもりです。ただ、
他の人達にも同じような負担をするように主張しているわけではありません。
FreeBSD に興味を持っている一人の残らず全ての人々に、
目的を限定しないでコードを提供すること。これが、
私たちの最初のそして最大の 任務
であると信じています。そうすれば、コードは可能な限り広く使われ、
最大の恩恵をもたらすことができるでしょう。これが、
私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であると、
私は信じています。
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
BSD Copyright
私たちのソースツリーに含まれるソースのうち、
GNU 一般公有使用許諾 (GPL) または GNU ライブラリ一般公有使用許諾 (LGPL)
に従っているものについては、多少制限が課せられています。ただし、
ソースコードへのアクセスの保証という、
一般の制限とはいわば逆の制限 (訳注1) です。
GPL ソフトウェアの商利用には、そのライセンスにある
複雑な側面が影響してくることがあります。
ですから私たちは、そうすることが合理的であると判断されたときには、
より制限の少ない、BSD 著作権表示を採用しているソフトウェアを
選択するようにしています。
(訳注1) GPL では、「ソースコードを実際に受け取るか、
あるいは、希望しさえすればそれを入手することが可能であること」
を求めています。
浅見
賢
寄稿:
FreeBSD の開発モデル
FreeBSD プロジェクト
開発モデル
FreeBSD の開発は非常に開かれた、柔軟性のあるプロセスです。
貢献者リスト
を見ていただければわかるとおり、
FreeBSD は文字通り世界中の何百という人々の努力によって開発されています。
FreeBSD の開発環境は、
この何百という開発者がインターネット経由で共同作業できるようになっているのです。
新しい開発者はいつでも大歓迎ですので、&a.hackers;
にメールを送ってください。
&a.announce; もありますので、他の FreeBSD
ユーザに自分のやっていることを宣伝したい時にはどうぞ使ってください。
あと、FreeBSD プロジェクトとその開発プロセスについて、
どなたにも知っていていただきたいのは以下のようなことです。
CVS リポジトリ
CVS
リポジトリ
Concurrent Version System
CVS
FreeBSD のソースツリーは
CVS
(Concurrent Versions System) によってメンテナンスされています。
CVS はソースコード管理用のフリーソフトウェアで、
FreeBSD のリリースにも含まれています。FreeBSD
のメイン
CVS リポジトリは米国カリフォルニア州のサンタクララ市に存在し、
そこから世界中のたくさんのミラーサイトにコピーされています。
-CURRENT と
-STABLE
が含まれている CVS ツリーそのものは、
あなたのマシンにも簡単に取ってくることができます。
これについては
ソースツリーの同期の章をご覧ください。
ソースツリー管理者
コミッター
コミッター (committers)は
CVS ツリーへの書き込み権限を持っている人、
FreeBSD のソースに変更を加えることができる人です
(CVS でリポジトリに変更を加えるには &man.cvs.1;
commit というコマンドを使うので、
これらの人々は英語では committers
と呼ばれます)。
開発者にコードを送って見てもらうのに一番いい方法は
&man.send-pr.1; コマンドを使うことです。
もし、何か問題があって send-pr
が使えないなら &a.committers;
にメールを送っていただいても構いません。
FreeBSD コアチーム
コアチーム
FreeBSD コアチームは
FreeBSD プロジェクトが会社だとすると取締役会にあたるものです。
コアチームとして一番重要な役割は FreeBSD
プロジェクトが全体としてよい方向に向かっていることを確認することです。
責任感あふれる開発者を上記のソースツリー管理者として招くこと、
また仕事上の都合などでコアチームをやめた人たちの後任を見つけることもコアチームの役割です。
現在のコアチームは FreeBSD 開発者 (committer) の中から
2004 年 7 月に選挙によって選出されました。
コアチームを選出するための選挙は、2 年ごとに行なわれています。
コアチームのうち何人かは特定の担当分野を持っており、
システムのうち一部に特に重点をおいて面倒を見ています。
FreeBSD 開発者と担当分野の完全なリストはコントリビュータのリストをご覧ください。
忘れてほしくないのは、
コアチームのほとんどは FreeBSD に対してボランティアの立場であり、
FreeBSD プロジェクトからは何ら金銭的な支援を受けていない、
ということです。ですから、
ここでの 責任
は 保証されたサポート
ではありません。
そういう意味で、
上記の 取締役会
という例えはあまりよくないかもしれません。
むしろ、FreeBSD のために人生を棒に振ってしまった人の集まりといった方が正しいかも…。
その他のコントリビュータ
コントリビュータ
最後になりますが、
もっとも重要で多数をしめる開発者はフィードバック
やバグフィクスをどんどん送ってくれるユーザ自身です。
FreeBSD の開発に関わっていきたいという人は、
議論の場である
&a.hackers; に参加するとよいでしょう。
FreeBSD 関連メーリングリストに関する詳細は、
をご覧ください。
FreeBSD への貢献者リスト
は日に日に長くなっています。
あなたも今日、何か送ることからはじめてみませんか?
もちろん FreeBSD に貢献するには、
コードを書くほかにもいろいろな方法があります。
助けが求められている分野については、
FreeBSD
プロジェクトのウェブサイトをご覧ください。
ひとことで言うと、FreeBSD
の開発組織はゆるやかな同心円状になっています。
ともすると中央集権的に見えがちなこの組織は、
FreeBSD のユーザがきちんと管理されたコードベースを
容易に追いかけられるようにデザインされているもので、
貢献したいという人を締め出す意図は全くありません!
私たちの目標は安定したオペレーティングシステムと
簡単にインストールして使うことのできる
アプリケーションを提供することです。
この方法は、それを達成するために非常にうまくはたらきます。
これからFreeBSDの開発にたずさわろうという人に、
私たちが望むことはただ一つです。
FreeBSDの成功を継続的なものにするために、
現在の開発者と同じような情熱を持って接してください!
現在のリリースについて
NetBSD
OpenBSD
386BSD
Free Software Foundation
U.C. Berkeley
Computer Systems Research Group (CSRG)
FreeBSD は自由に利用でき、
Intel &i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (とその互換品),
&xeon;, DEC Alpha
Sun &ultrasparc;
ベースのコンピュータで動作する、
4.4BSD-Lite ベースの全ソースつきのリリースです。
これはもともとカリフォルニア大学バークレイ校
CSRG グループのソフトウェアがベースとなっており、NetBSD, OpenBSD,
386BSD, そして Free Software Foundation の
ソフトウェアなどにより拡張されています。
94 年末の FreeBSD 2.0 のリリースからみると、FreeBSD は性能、
機能、安定性の面で劇的に改善されました。
もっとも大きな変化は仮想メモリシステムに おける改良で、
統合化された VM/file バッファキャッシュを用いる
ことで性能を向上させながらも FreeBSD
のメモリの使用量を減らすことができたことです。そのおかげで、最低
5 MB メモリという制約上でも動作するようになりました。
その他の拡張としては、NIS のクライアントとサーバの完全なサポート、
トランザクション TCP のサポート、ダイヤルオンデマンド PPP,
統合された DHCP のサポート、改良された SCSI サブシステム、
ISDN, ATM, FDDI, Fast Ethernet や Gigabit Ethernet (1000 Mbit)
アダプタへの対応、最新の Adaptec コントローラ対応の改良や、
数百件におよぶバグの修正などがあります。
FreeBSD では基本配布セットに加え、移植されたソフトウェア集
として数千の人気の高いプログラムを提供しています。
この文書を印刷している時点で &os.numports;
以上の ports (移植ソフトウェア) が存在します。
ports には http (WWW) サーバから、ゲーム、言語、
エディタまでありとあらゆるものが含まれています。
ports はオリジナルソースに対する 差分
という形で表現されており、
すべての ports を集めても &ports.size; 程度にしかなりません。
こうすることで ports の更新を容易にし、
ports に必要なディスクスペースを小さくすることができます。
ports をコンパイルするには、
インストールしたいと思っているプログラムのディレクトリに移動し、
make install とすると、
あとはすべてシステムがやってくれます。
どの ports もオリジナルの配布セットを動的に
CDROM や近くの FTP サーバから取ってくるので、
ディスクは構築したいと思っている ports の分だけを準備しておけば十分です。
ほとんどの ports は、すでにコンパイルされた状態で
package
として提供されており、
ソースコードからコンパイルしたくない場合、これを使うと
(pkg_add
というコマンドで) 簡単にインストールできます。
package と ports に関する詳細は、 をご覧ください。
最近の FreeBSD マシンであれば、
/usr/share/doc
というディレクトリに、インストールの手順や FreeBSD
を利用する上で有用なドキュメントがたくさんあります。
これらのローカルにインストールされたドキュメントは、HTML
ブラウザを使って、以下の URL から 参照することができます。
FreeBSD ハンドブック (英文オリジナル)
/usr/share/doc/handbook/index.html
FreeBSD に関する FAQ
/usr/share/doc/faq/index.html
また、
にはマスタ (かなり頻繁に更新されます) がありますので、
こちらも参照してください。
diff --git a/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml b/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml
index 67addc128f..5e5925bc96 100644
--- a/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml
+++ b/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml
@@ -1,1192 +1,1264 @@
FreeBSD カーネルのコンフィグレーション
この章では
更新/再構成: &a.jim;、2000 年 3 月
寄稿: &a.jehamby;、1995 年 10 月 6 日
訳: &a.jp.tomo;、&a.jp.yoshiaki; 1996 年 11 月 2 日
+
+ カーネル
+ カスタムカーネルの構築
+
この章では、自分のシステムに合わせた
カーネルを構築する方法について扱います。
カーネルの再構築によりどんなメリットがあるのか不思議に思っていたり、
自分用のカーネルを設定し、コンパイルし、インストールする方法を
知りたいと思っているのなら、この章が役に立つでしょう。
なぜカスタムカーネルを作るか?
システムに合わせたカーネルの構築はほとんどすべての
UNIX ユーザが
避けて通ることのできない最も重要な通過儀礼の1つです。
この作業は、多くの時間を必要としますが、あなたの FreeBSD
システムに多くの利益をもたらします。
広範囲のハードウェアをサポートしなければならない
GENERICカーネルとは異なり、
システムに合わせたカーネルは
あなたの PC
のハードウェアのみをサポートします。これは、
次にあげるような利益をもたらします。
素早く起動します。
カーネルはあなたのシステム上にあるハードウェアしか
検出を行わないので、
あなたのシステムの起動にかかる時間は劇的に短くなります。
メモリの消費量が減少します。
システムに合わせたカーネルは、大抵 GENERIC
カーネルより少ないメモリしか消費しません。
カーネルは常にメモリ上に存在するプロセスなので、
このことは重要になります。
したがって、RAM が少ないシステムでは、
カーネルの再構築は大変重要です。
追加のハードウェアをサポートします。
システムに合わせたカーネルは、サウンドカードなど
GENERIC カーネルに存在しない
デバイスのサポートを追加することができます。
カスタムカーネルの構築とインストール
+
+ カーネル
+ 構築 / インストール
+
まず、
カーネル再構築に必要なディレクトリをざっと見てみましょう。
ここではディレクトリはすべて
/usr/src/sys 以下の相対位置で示します。
また、/sys からもアクセス可能です。
ここには、カーネルの各部分を構成するサブディレクトリが
いくつもあります。しかし、私たちの目的で最も重要なのは
arch/conf です。
ここで、あなたの
システムに合わせてカーネルコンフィグレーションを編集します。
それから compileディレクトリ、
ここはカーネルが作られる 場所です。
arch は、i386,
alpha, pc98(これは
日本で普及している PC のための開発ブランチです)のいずれかを表します。
各アーキテクチャのディレクトリ内部にあるファイルはすべて
そのアーキテクチャでのみ使用され、残りのコードは
FreeBSD が他のプラットフォームに移植される際に共有されます。
サポートされているデバイス、ファイルシステム、オプションが、
それぞれ各々のサブディレクトリに分かれている、
という論理的な構成に注意してください。
もし、あなたのシステムに/usr/src/sys
以下のディレクトリがなければ、
カーネルのソースが インストールされていません。
もっとも簡単な方法は (rootで)
/stand/sysinstall
を用いて以下のようにします。設定(Configure)
を選んでから 配布ファイル(Distribution)
を選択し、src の中の sys
をインストールしてください。
つぎに、
arch/confに移動して、
GENERIC
コンフィグレーションファイルをカーネルに与えたい名前に
コピーしてください。たとえば次のようにします。
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNEL
慣習として、この名前はすべて大文字でつづられます。もし、
いくつかの異なるハードウェアの FreeBSDマシンを扱うなら、
この名前にホスト名を含めるとよいでしょう。ここでは、例として
MYKERNEL と呼ぶことにします。
この作業は root権限でおこなう必要があります。
そうでなければ、permission
deniedというエラーが出ます。
では、MYKERNEL
をあなたの好きなエディタで編集してください。もし、
システムをインストールしたばかりならば、利用できるエディタは
viだけかもしれません。ここでは使い方
の説明はしませんが、参考図書
にあるような多くの本で詳しく説明 されていますので、
そちらを参照してください。FreeBSD にはより簡単なエディタとして
ee
があります。初心者の方であればこちらをエディタ
に選ぶとよいでしょう。
まずファイルの最初の方のコメント行を編集し、あなたのコンフィグ
レーションに合せて変更した点などを記述して
GENERIC と区別がつく
ようにしておきましょう。
+ SunOS
もし SunOSや他の BSDオペレーティングシステムでカーネルの
再構築をしたことがあれば、このファイルはとても親しみ
やすいでしょう。しかし、DOSのようなその他の
オペレーティングシステムしか知らない人から見れば、
GENERIC
コンフィグレーションファイルはとても
なじみにくいものかもしれません。そのような場合は、
コンフィグレーションファイル
の節をゆっくりと注意深く読んでください。
FreeBSD Project の最新のソースファイルと、あなたの
ソースツリーを同期させている場合、
アップデートを行う際には、必ず
/usr/src/UPDATING ファイルをチェックするように
してください。
このファイルには、FreeBSD をアップデートする際のすべての重要な情報
が書かれています。
/usr/src/UPDATING は常にあなたの FreeBSD
ソースファイルのバージョンと同期していますので、
ハンドブックの情報よりも正確なものとなっています。
FreeBSD 4.0 より前の FreeBSD を使っていて、
FreeBSD 4.0 以降へはアップグレードしない、
もしくはリリース版の FreeBSD を使っていて
/usr/src/ ディレクトリには
sys/ しか無い場合、
編集し終ったら次のコマンドによってコンパイル、インストール
を行ってください。
古いバージョンの FreeBSD からカーネルをアップグレードしようと
している場合、新しいカーネルのソースファイルを取ってきた場所と
同じところから、新しいバージョンの &man.config.8; を取ってくる
必要があるでしょう。
&man.config.8; は /usr/src/usr.sbin
にあるので、これらのソースファイルもダウンロードする必要が
あります。
次のコマンドを実行する前に、これを再構築してインストールして
おいてください。
&prompt.root; /usr/sbin/config MYKERNEL
&prompt.root; cd ../../compile/MYKERNEL
&prompt.root; make depend
&prompt.root; make
&prompt.root; make install
4.X 以降の新しいバージョンにアップグレードした場合
(例えば 3.X から 4-STABLE へ、もしくは 4-STABLE から
最新版の 4-STABLE へなど)、予め
buildworld を行なって、
以下のコマンドを実行してください:
&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNEL
FreeBSD-4.2 とそれ以前の場合は、
KERNCONF=
ではなく
KERNEL=
としなければなりません。
2001 年 2 月 2 日以降の 4.2-STABLE は
KERNCONF= を認識します。
+ CVSup
+ anoncvs
+ CTM
+
+ CVS
+ anonymous
+
+
何らかの方法であなたのソースツリーをアップグレードして
いない 場合
(CVSup, CTM,
anoncvs などを実行していない場合)、
config, make depend,
make, make install
の手順を実行してください。
最後にカーネルを構築した後で、ソースをアップグレードした場合、
カーネルを構築するには make buildkernel
を使わなければ なりません。
そうしないと、カーネルを構築するのに古いユーティリティが
使われてしまい、失敗してしまうかもしれません。
ソースを更新した場合には、カーネルを構築するのに
config/make
の手順は使わないでください!
+ kernel.old
新しいカーネルはルートディレクトリに
/kernelという 名前でコピーされ、
今までのカーネルは /kernel.old
という名前へ変更されます。では、システムをシャットダウン、リブー
トして新しいカーネルを使ってください。うまく行かない場合は、
この章の終りの
問題が起きた場合には
を参照してください。この章の新しい
カーネルが起動しない
場合のリカバリの方法を注意深く読んでおいてください。
(サウンドカードのような)新しいデバイスを 追加した場合は、
使う前に /devディレクトリで
デバイスノードを追加しなければならないかもしれません。
詳しくは、デバイスノード
を読んでください。
コンフィグレーション ファイル
+ カーネルLINT
+ LINT
+
+ カーネル
+ コンフィグレーションファイル
+
コンフィグレーション ファイルの一般的なフォーマット
はとてもシンプルです。各行は1つのキーワードと1つ以上の
引数を含んでいます。見やすくするために、ほとんどのキーワードは
引数を1つしか書いてありません。
#に続くものはすべてコメントとして扱われ、
無視されます。ここでは、それぞれのキーワードについて だいたい
GENERIC に出てくる順番で説明します。しかし、
お互いに関係のあるキーワードは、実際には
GENERIC ファイル上に
バラバラに現れていても、(ネットワーキングのように)1つにまとめ
てあります。 おびただしい数の
オプションの一覧が
GENERICと同じディレクトリの
LINT コンフィグ
レーションファイルにあります。もし、ある行の目的や必要性に疑
問を持ったら最初に LINT
をチェックしてください。
数字と二重引用符
FreeBSD 3.x と、それまでの全てのバージョンの FreeBSD における
&man.config.8; は、コンフィグレーションファイル中の
テキストとして使われる数字を含む文字列が
全て二重引用符で括られていなければならないという制限があります。
この制限は (このハンドブックが対象としている)
4.X ブランチでは取り除かれました。
4.X 以前のシステムを使っている場合には、
サンプルとしてシステム上の
/usr/src/sys/i386/conf/LINT と
/usr/src/sys/i386/conf/GENERIC
を参照してください。
+
+ カーネル
+ コンフィグレーション例
+
以下は必要に応じてコメントを追加した
GENERIC カーネルの
コンフィグレーションファイルです。
この設定例は /usr/src/sys/i386/conf/GENERIC
に極めて近いものになっているはずです。
その他に指定可能なカーネルオプションについては、
/usr/src/sys/i386/conf/LINT
を参照してください。
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# このファイルについて更に情報が必要なら、ハンドブックのカーネル
# コンフィグレーションファイルのセクションを参照して下さい。
#
# http://www.freebsd.org/handbook/kernelconfig-config.html
#
# doc ディストリビューションをインストールした場合、ハンドブックは
# ローカルマシンの /usr/share/doc/handbook でも見ることができます。
# 最新版は FreeBSD の WWW サーバ (http://www.FreeBSD.ORG/) を参照して
# 下さい。
#
# ./LINT コンフィギュレーションファイルには、デバイス行に関する大量の
# オプションと詳細な説明があります。もしある行の目的又は必要性について
# 疑問がある場合はまず LINT をチェックして下さい。
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $
以下は すべての カーネルの構築に
必須のキーワードです:
+
+ カーネル オプション
+ machine
+
machine i386
マシンのアーキテクチャです。
これは i386, alpha,
pc98 のいずれかでなければなりません。
+
+ カーネル オプション
+ cpu
+
cpu I386_CPU
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
上記はあなたのシステムの CPU タイプを指定します。
複数の行を書いても構いません。
(例: I586_CPU とすべきか
I686_CPU とすべきかはっきり分からない場合。
しかしながら、カスタムカーネルを作る場合、あなたの持つ CPU
だけを指定するのがベストです。
もしあなたがどのタイプの CPU を使っているか分からない場合、
dmesg を使って起動メッセージを
調べるとよいでしょう。
+
+ カーネル オプション
+ cpu type
+
Alpha アーキテクチャの場合は、
cpu_type に異なった値を用います。
cpu EV4
cpu EV5
もしあなたが Alpha マシンを使っている場合、
上記の内のどれかを指定して下さい。
+
+ カーネル オプション
+ ident
+
ident GENERIC
ここはカーネルの識別名を書きます。
あなたがカーネルに付けたい名前に書き換えて下さい
(MYKERNELのように)。
ident に書いた名前はカーネルを起動する時に
表示されるので、
普段使っているカーネルと区別したいときは違う名前を付けると
良いでしょう(例: 実験的なカーネルを構築する場合)。
+
+ カーネル オプション
+ maxusers
+
maxusers 32
maxusers オプションは重要なシステムテーブルの
サイズを決定します。
この数字はあなたのマシンを同時に使うと思われるユーザー数と
おおよそ等しくするのが良いでしょう。
しかしながら、通常は X ウインドウシステムを使ったり、
ソフトウエアをコンパイルするでしょうから、その場合は
maxusers は最低 4 にして下さい。
その理由は、maxusers によって計算される最も
重要なテーブルがプロセスの最大数で、それは
20 + 16 * maxusers となります。
もし、maxusers を 1 にすると、
同時に 36 プロセスしか利用できなくなりますが、
システムは起動時に 18 ほどのプロセスを立ち上げ、
X ウインドウシステムは 15 ほどのプロセスを立ち上げるので、
man コマンドのような単純な仕事でさえフィルタ、展開、表示に 9
個のプロセスを利用するために、プロセス数不足になります。
maxusers を 64 に設定すると、
1044 個のプロセスを同時に利用することができるので、
殆どのユーザには充分でしょう。
もしあなたが別のプログラムを立ち上げる時、
恐れられている proc table full エラーが
発生する場合や、ftp.FreeBSD.org
のように多数のユーザにより
同時に利用されるサーバを動かしている場合には、
この数字を増やしてカーネルを再構築することができます。
maxusers はあなたのマシンにログインする
ユーザ数を制限するものでは ありません。
それは単に、あなたのシステムを使うであろうユーザの最大数や
それぞれのユーザがどれくらいのプロセスを走らせるかに
合わせて各種テーブルの大きさを設定するだけです。
同時にリモートログインする最大ユーザ数を制限するキーワードは
pseudo-device pty 16 です。
以下に続くすべては大体において追加設定項目です。
詳細は各項目の次に書かれている注意書きを参照して下さい。
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options MATH_EMULATE #Support for x87 emulation
この行では、あなたのコンピュータが浮動小数点演算コプロセッサを
持たない場合(CPU が 386 又は 486SX)、
カーネルにシミュレートさせるよう設定します。
あなたが 486DX, 又は (387 や 487 チップを別途搭載した) 386, 486SX
又は更に上位 (Pentium, Pentium II 他) を持っている場合は
コメントアウトして下さい。
FreeBSD の浮動小数点エミュレーションルーチンはあまり正確では
ありません。
もしあなたが浮動小数点コプロセッサを持っておらず、
かつベストな演算精度が必要であれば、GNU の浮動小数点サポートを
利用する GPL_MATH_EMULATION を使ってみて下さい。
このオプションはライセンス上の理由によりデフォルトでは
含まれていません。
options INET #InterNETworking
ネットワークのサポート。
ネットワークに接続する予定がなくてもこのオプションは残して下さい。
殆どのプログラムは少なくともループバックネットワーク
(あなたの PC の中でのネットワーク接続) を必要としますので、
基本的にこの行は必須です。
options INET6 #IPv6 communications protocols
このオプションは IPv6 通信プロトコルを利用可能にします。
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
これは標準のハードドライブファイルシステムです。
ハードディスクから起動する場合は残して下さい。
options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device
これはメモリ上にマップされたファイルシステムです。
これは基本的に一時ファイルの高速格納用の RAM ディスクであり、
あなたが有効に利用したい大量のスワップスペースを持っている
場合には有用でしょう。
多くのプログラムが一時データをここに保存することから、
MFS パーティションをマウントする最適な場所は /tmp
ディレクトリです。
MFS RAM ディスクを /tmp にマウントするには
次の行を /etc/fstab に追加して下さい:
/dev/ad1s2b /tmp mfs rw 0 0
次に再起動するか、コマンド mount /tmp
を実行して下さい。
+
+ カーネル オプション
+ NFS
+
+
+ カーネル オプション
+ NFS_ROOT
+
options NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, NFS required
ネットワークファイルシステム。
UNIX ファイルサーバから TCP/IP を介してパーティションを
マウントするのでない限り、これらの行をコメントアウトして下さい。
+
+ カーネル オプション
+ MSDOSFS
+
options MSDOSFS #MSDOS Filesystem
MS-DOS ファイルシステム。
起動時に DOS でフォーマットされたハードドライブを
マウントするのでない限り、この行は安全にコメントアウトできます。
この機能は最初に DOS パーティションをマウントする時に自動的に
ロードされます。
又、優秀な mtools
(Ports コレクションにあります) を使ってもマウント、
アンマウントすることなしに DOS フロッピーにアクセスすることができます。
(MSDOSFS は必要としません)
options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required
CD-ROM 用の ISO 9660 ファイルシステム。
もしあなたが CD-ROM ドライブを持っていないか、
時々データ CD をマウントするだけならこの行をコメントアウトしても
大丈夫です (データ CD を最初にマウントする時、自動的にロードされます)。
音楽 CD はこのファイルシステムを必要としません。
options PROCFS #Process filesystem
プロセスファイルシステム。
これは /proc にマウントされる、
ファイルシステムの ふりをする
もので、
&man.ps.1; のようなプログラムに、どんなプロセスが走っているか
に関するより多くの情報を提供させる事ができます。
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
4.3BSD との互換機能です。
有効なままにして下さい。
この行をコメントアウトするとおかしな動きをするプログラムがあります。
options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
この行は、カーネルがそれぞれの SCSI 機器を検出する前に
15 秒間待つようにします。
あなたが IDE ドライブしか持たないなら無視して結構です。
そうでないなら、起動時間を短くするため、おそらく待つ時間を短く、
5 秒くらいにしたいでしょう。
勿論、そうした場合に FreeBSD が SCSI 機器を認識しなくなった場合は
時間を元に戻す必要があります。
options UCONSOLE #Allow users to grab the console
ユーザにコンソールを所有することを許可します。
X のユーザには役に立ちます。
たとえば xterm -C とコマンドを打つことにより、
コンソール xterm を起動することができます。
ここにはカーネルからのあらゆるコンソールメッセージとともに、
write, talk による
あらゆるメッセージを表示します。
options USERCONFIG #boot -c editor
このオプションは起動メニューからコンフィグレーションエディタ
を起動することができるようにします。
options VISUAL_USERCONFIG #visual boot -c editor
このオプションは起動メニューからビジュアルコンフィグレーション
エディタを起動できるようにします。
options KTRACE #ktrace(1) support
この行はデバッギングに役立つカーネルプロセスのトレースを
可能にします。
options SYSVSHM #SYSV-style shared memory
このオプションは System V 共有メモリを提供します。
この機能の最も一般的な使用方法は X における XSHM 拡張です。
多くのグラフィックス重視のプログラムではこの機能を自動的に
描画のスピードアップに利用します。
X を使っているなら、これを含めておいた方がいいでしょう。
options SYSVSEM #SYSV-style semaphores
System V セマフォのサポート。
あまり使われませんが、カーネルサイズは数百バイト大きくなるだけです。
options SYSVMSG #SYSV-style message queues
System V のメッセージのサポート。
これもカーネルサイズを数百バイト大きくするだけです。
&man.ipcs.1; コマンドを実行するとこれらの System V
機能を使っているプロセスのリストを表示します。
- options P1003_1B #Posix P1003_1B real-time extentions
+ options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
リアルタイム拡張が 1993 POSIX に追加されました。
Ports コレクションの内のいくつかのアプリケーション
(例えば Star Office) はこれを使っています。
+
+ カーネル オプション
+ ICMP_BANDLIM
+
options ICMP_BANDLIM #Rate limit bad replies
このオプションは ICMP エラー応答のバンド幅制限を可能にします。
サービス不能パケットによる攻撃からマシンを保護するために必要です。
+
+ カーネル オプション
+ SMP
+
# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O
上の行は両方とも SMP サポートのために必要です。
device isa
FreeBSD がサポートするすべての PC はこれらの内のひとつを
持っています。
あなたが IBM PS/2 (マイクロチャネルアーキテクチャ)
マシンを持っている場合、FreeBSD は現時点では動作しません
(サポートには取組中です)。
device eisa
あなたが EISA マザーボードを持っている場合、
この行を含めて下さい。これは EISA バスに接続されているすべての
デバイスの自動検出と設定を可能にします。
device pci
あなたが PCI マザーボードを持っている場合、この行を含めて下さい。
これは PCI カードの自動検出と PCI から ISA バスへのゲートウエイを
可能にします。
# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
これはフロッピーディスクコントローラです。
fd0 は A:
フロッピードライブ、fd1 は
B: ドライブです。
device ata
このドライバはすべての ATA と ATAPI デバイスをサポートします。
最近のマシンでは device ata 行を 1 行書くだけで
すべての PCI ATA/ATAPI デバイスを検出することができます。
device atadisk # ATA disk drives
ATAPI ディスクドライブには device ata
と共にこの行が必要です。
device atapicd # ATAPI CDROM drives
ATAPI CDROM ドライブには device ata
と共にこの行が必要です。
device atapifd # ATAPI floppy drives
ATAPI フロッピードライブには device ata
と共にこの行が必要です。
device atapist # ATAPI tape drives
ATAPI テープドライブには device ata
と共にこの行が必要です。
options ATA_STATIC_ID #Static device numbering
この行はコントローラ番号を (古いドライバのように) 静的に
割り当てます。そうでない場合、デバイス番号は動的に割り当てられます。
# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
上の行は古い、PCI ではないシステムの場合の形式です。
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device dpt # DPT Smartcache - See LINT for options!
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
SCSI コントローラです。
あなたのシステムにないデバイスはコメントアウトして下さい。
もし IDE しかないシステムならこれらすべてを削除できます。
# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI
access)
SCSI 周辺機器です。
あなたが持っていないデバイスはコメントアウトして下さい。
もし IDE しか持っていないならこれらを完全に削除できます。
# RAID controllers
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
サポートされる RAID コントローラです。
これらのどれも持っていない場合、すべてをコメントアウト又は
削除することができます。
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD
キーボードコントローラ (atkbdc)
は AT キーボード及び PS/2 スタイルポインティングデバイスの
I/O サービスを提供します。
キーボードドライバ (atkbd) と PS/2
ポインティングデバイスドライバ (psm)
はこのコントローラを必要とします。
device atkbd0 at atkbdc? irq 1
atkbd ドライバ。
atkbdc コントローラと協調して動作し、
AT キーボードコントローラに接続された AT 84 キーボードや
AT 拡張キーボードへのアクセスを提供します。
device psm0 at atkbdc? irq 12
あなたのマウスが PS/2 マウスポートに接続するタイプなら
このデバイスを使って下さい。
device vga0 at isa?
ビデオカードドライバです。
# splash screen/screen saver
pseudo-device splash
起動時に画面がはじけます。
スクリーンセーバもこのデバイスを必要とします。
# syscons is the default console driver, resembling an SCO console
device sc0 at isa?
sc0 はSCOに類似したデフォルトの
コンソールドライバです。
殆どのフルスクリーンのプログラムは termcap
のようなターミナルデータベールライブラリにアクセスするので、
sc0 を使うか VT220
互換のコンソールドライバである vt0
を使うかは重要ではありません。
ログイン時、このコンソールでフルスクリーンプログラムが動かないときは
TERM 変数を scoansi に設定して下さい。
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa?
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-std
これは VT220 互換のコンソールドライバで、
VT100/102 と後方互換性があります。
sc0 とハード的に互換性がないラップトップでも
問題なく動きます。
ここでもログイン時に TERM 変数を
vt100 又は vt220
と設定して下さい。
このドライバは、sc0 デバイス用の
termcap や terminfo
のエントリが無い、ネットワーク上の多くの異なったマシンに
接続する際にも有用です — vt100
は仮想的にすべてのプラットフォームで有効であるべきです。
# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13
npx0 は FreeBSD における
浮動小数点演算ユニットへのインタフェースで、それは実際には
コプロセッサ又はソフトウエアエミュレータです。
これはオプションではありません。
# Power management support (see LINT for more options)
device apm0 at nexus? disable flags 0x20 # Advanced Power Management
先進的な電源管理機能 (APM) のサポート。
ラップトップでは役に立つでしょう。
# PCCARD (PCMCIA) support
device card
device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable
PCMCIA サポート。ラップトップにインストールする時は必要です。
# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9
これらは MS-DOS/Windows の世界では COM1からCOM4 と呼ばれている
4 つのシリアルポートです。
もしあなたが内蔵モデムを COM4 に、シリアルポートを COM2
に設定している場合、FreeBSD からアクセスするには、
(IRQ2=IRQ9 という、不明瞭な技術的理由により) モデムの IRQ を 2
に変更する必要があります。
もしマルチポートシリアルカードを持っていてこれらの設定の正しい
数値に関する情報がほしい場合はマニュアルページ &man.sio.4;
を参照して下さい。
ビデオカードのいくつかは (S3 チップベースのものは特に) IO
アドレスを 0x*2e8 と言う形式で表現する一方、
多くの安価なシリアルカードは 16 ビットの IO アドレスを完全に
デコードしないので、これらのカードを使った場合衝突が起こり、
事実上 COM4 ポートを使用不可能にします。
各々のシリアルポートは (共有割り込み番号をサポートする
マルチポートカードを使っていない限り) 固有の IRQ を必要とします。
従って COM3 と COM4 用のデフォルト IRQ は利用できません。
# Parallel port
device ppc0 at isa? irq 7
ISA バスパラレルポートインタフェースです。
device ppbus # Parallel port bus (required)
パラレルポートバスのサポートを提供します。
device lpt # Printer
パラレルポートプリンタのサポートです。
上の 3 つはすべてパラレルプリンタを利用可能にするために
必要です。
device plip # TCP/IP over parallel
パラレルネットワークインタフェース用のドライバです。
device ppi # Parallel port interface device
汎用I/O (geek port
) + IEEE1284 I/O です。
#device vpo # Requires scbus and da
+ zip ドライブ
Iomega の Zip ドライブ用です。scbus
と da サポートが必要です。
EPP 1.9モードを使うと最高の性能が得られます。
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip
)
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device tx # SMC 9432TX (83c170 EPIC
)
device vx # 3Com 3c590, 3c595 (Vortex
)
device wx # Intel Gigabit Ethernet Card (Wiseman
)
PCI ネットワークカードのドライバです。あなたのシステムに
ないものはコメントアウトするか削除して下さい。
# PCI Ethernet NICs that use the common MII bus controller code.
device miibus # MII bus support
MII バスサポートはいくつかの PCI 10/100 イーサネット NIC、
すなわち MII に従うトランシーバや MII のようなトランシーバ制御
インタフェースを実装するもの、に必要となります。
カーネルコンフィギュレーションに device miibus
を追加することで、汎用 miibus API のサポートと、
特定のドライバを必要としない場合に利用される汎用のものを含む
すべての PHY ドライバが導入されます。
device dc # DEC/Intel 21143 and various workalikes
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire
)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang
, Cyclone
)
MII バスコントローラコードを利用するドライバです。
# ISA Ethernet NICs.
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
# WaveLAN/IEEE 802.11 ワイヤレス NIC。
# 注: WaveLAN/IEEE は PCMCIA デバイスとしてしか実在しません。
# なので ISAア タッチメントは必要なく、リソースは常に PC カードコードに
# より動的に割り当てられます。
device wi
# Aironet 4500/4800 802.11 ワイヤレス NIC。
# 注: 下の宣言は ISA PnP モード (工場出荷時設定) のISAカード、PCMCIA
# 及び PCI カードにのみ働きます。もし、ISA カードの I/O アドレスと IRQ
# を手動で設定している場合は、ここでそれらのパラメータを指定しなく
# てはいけません。
device an
# これらの検出順序は現在 i386/isa/isa_compat.c により決められます。
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
device fe0 at isa? port 0x300
device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device xe0 at isa?
ISA イーサネットドライバです。
どのカードがどのドライバによりサポートされているかは
/usr/src/sys/i386/conf/LINT を参照して下さい。
# Pseudo devices - the number indicates how many units to allocated.
pseudo-device loop # Network loopback
TCP/IP の汎用ループバックデバイスです。
localhost (すなわち
127.0.0.1) に対して telnet や FTP
を使う場合、この疑似デバイスを通して戻ってきます。
これは 必須 です。
pseudo-device ether # Ethernet support
ether はイーサネットカードを持っている場合に
のみ必要です。汎用イーサネットプロトコルコードを含みます。
pseudo-device sl 1 # Kernel SLIP
sl は SLIP サポートを行います。
SLIP は設定のより簡単な、モデム-モデム間の接続にはより適していて
より高機能な PPP に殆ど取って代わられています。
sl に続く 数字
には同時に持てる SLIP セッション数を指定します。
pseudo-device ppp 1 # Kernel PPP
これはダイアルアップ接続用のカーネル PPP サポートです。
他にも tun を利用し、デマンドダイアリングのような
柔軟性と機能を提供するユーザーランドのアプリケーションとして
実装された PPP が存在します。ppp に続く
数字 には同時に持てる PPP セッション数を
指定します。
pseudo-device tun # Packet tunnel.
これはユーザーランド PPP ソフトウエアにより利用されます。
tun に続く 数字
には同時に持てる PPP セッション数を指定します。
詳細はこの本の PPP セクションを
参照して下さい。
pseudo-device pty # Pseudo-ttys (telnet etc)
これは 疑似ターミナル
或いはシミュレートされた
ログインポートです。
これは入ってくる telnet と
rlogin セッション、xterm
やその他の emacs のような
アプリケーションにより利用されます。
数字 は生成される pty
の数を示します。もし同時にデフォルトの 16 より多くの
xterm ウィンドウやリモートログインが
必要な場合、必要に応じてこの数字を増やして下さい。
最大は 256 です。
pseudo-device md # Memory disks
メモリディスク疑似デバイス。
pseudo-device gif 4 # IPv6 and IPv4 tunneling
この行は IPv6 over IPv4 トンネル、IPv4 over IPv6 トンネル、
IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。
pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
この疑似デバイスは自分宛に送られたパケットを受け取り、
IPv4/IPv6 変換デーモンに渡します。
# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device bpf # Berkeley packet filter
これはバークレーパケットフィルタです。
この疑似デバイスはネットワークインタフェースを、イーサネットのような
ブロードキャストネットワーク上ですべてのパケットを拾うことのできる
promiscuous モードに設定できるようにします。
これらのパケットはディスクに取り込むこともできますし、
&man.tcpdump.1; を使ってチェックをすることもできます。
# USB support
#device uhci # UHCI PCI->USB interface
#device ohci # OHCI PCI->USB interface
#device usb # USB Bus (required)
#device ugen # Generic
#device uhid # Human Interface Devices
#device ukbd # Keyboard
#device ulpt # Printer
#device umass # Disks/Mass storage - Requires scbus and da
#device ums # Mouse
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernet
様々なUSBデバイスのサポートです。
より詳細な情報と、FreeBSD によりサポートされる他のデバイスに
ついては /usr/src/sys/i386/conf/LINT
を参照して下さい。
デバイスノードを作る
+ デバイス ノード
+ MAKEDEV
カーネル内のほとんどすべてのデバイスは対応する
node
エントリが /dev
ディレクトリにあります。これらのノードは普
通のファイルのように見えますが、実際にはプログラムがデバイスに
アクセスするのに用いるカーネル内への特別なエントリです。
シェルスクリプトである
/dev/MAKEDEVはオペレーティング
システムを最初にインストールする時に実行され、サポートされてい
る大部分のデバイスのノードを作ります。しかし、
すべての
ノードが作られるわけではありませんので
新しいデバイスのサポートを加える時は対応するエントリがこのディ
レクトリにあるかどうか確認してもしなければ、作ってください。
以下に例を示します。
IDE CD-ROMのサポートをカーネルに加えるとします。次の行
を加えます。
device acd0
これにしたがって、/devディレクトリに
acd0 で始まるエントリをさがしてください。
1文字が後ろにつくかもしれません。
後ろについた文字が c であるか、先頭に
r のつくエントリは raw
デバイスを示します。
それらのファイルがないことが明らかになったとします。そこで
/dev
ディレクトリに移動して次のようにタイプします。
+ MAKEDEV
&prompt.root; sh MAKEDEV acd0
スクリプトの実行が終ったら /devに
acd0c と racd0c
エントリがあることを確認してください。これによ
り正しく実行されたことがわかります。
サウンドカードの場合、以下のコマンドで対応する
エントリが作成されます:
&prompt.root; sh MAKEDEV snd0
サウンドカードのようなデバイスのノードを作る場合で、もし他
の人がマシンにアクセスするようであれば、そのデバイスを
/etc/fbtab
ファイルに追加して外部からのアクセスから
保護するのが望ましいでしょう。このファイルの詳細については
&man.fbtab.5; を参照してください。
GENERIC
に含まれていないデバイスはエントリがありませんから、以上
の簡単な手順をおこなうことになります。
すべての SCSI コントローラは同じ /dev
の エントリを使用しますのでノードを作る必要はありません。
またネッ トワークカードと SLIP/PPP 疑似デバイスは
/dev にはエント
リがありませんのでこれらについても作る必要がありません。
問題が起きた場合には
カスタムカーネルを作る場合に起きるトラブルは、
次の 4 種類に分けられます。
config コマンドの失敗
カーネルコンフィグレーションファイルに設定を行なってから
config コマンドが失敗したのであれば、
おそらくファイルのどこかに単純な間違いがあります。
さいわい、
config
はトラブルの起きた行番号を出力しますので
vi で素早く見つけることができます。
例えば、次のように出力された場合
config: line 17: syntax error
vi のコマンドモードで
17G とタイプすれば、
問題のところへ飛ぶことができます。
GENERIC カーネルのファイルや、
他のリファレンスと比較して注意深く修正してください。
make コマンドの失敗
make コマンドが失敗した場合には、
カーネル設定で config
がとらえられなかったような間違いをしていることが多いようです。
もう一度コンフィグレーションファイルを見直してください。
それでも問題を解決することができなければ、
&a.questions;
へあなたのカーネルコンフィグレーションファイルをつけてメールしてください。
誰かが素早く間違いを見つけてくれるでしょう。
カーネルが起動しない
新しいカーネルが起動しなかったり、
デバイスの認識をしない場合でもあわてないでください!
さいわい、BSDは 利用できないカーネルから復帰する
洗練されたメカニズムがあります。
それは、FreeBSD のブートローダで起動したいカーネルを選択する
(例えば boot kernel.old)
だけです。
カーネルの再設定をおこなう場合にはいつも、
確実に動くことが分かっているカーネルを用意しておくようにすると良いでしょう。
問題のないカーネルで起動した後に
あなたのコンフィグレー ションファイルを調べ、
再び構築を試みてください。
/var/log/messages
ファイルにはすべての成功した
起動時のカーネルメッセージやその他の記録があり、これ
は助けになる情報の一つでしょう。また、
&man.dmesg.8; コマンドは現在の起動時のカーネルメッ
セージを出力します。
カーネルの構築中にトラブルが起きた時に使うために
GENERICや他のカーネルを次の構築で消されない
ように異る名前で保存するようにしてください。kernel.old
は新しいカーネルをインストールする 時に、
その一つ前にインストールしたうまく動かないかもしれ
ないカーネルで上書きされてしまいますので当てにできませ
ん。またできる限り早く動作しているカーネルを本来の
kernelの位置に移動させてください。
そうしないと
&man.ps.1; のようなコマンドが正しく動きません。
make
でインストールされたカーネルのファイルを
(別のカーネルに戻すために)
アンロック
するための特別
のコマンドは
&prompt.root; chflags noschg /kernel
です。また、
新しい置き換えたカーネルあるいは重要ファイ
ルを動かしたり変更されないように
ロック
するには 次のようにします。
&prompt.root; chflags schg /kernel
カーネルは動くが
ps は動かない!
システムユーティリティと異る
バージョンのカーネルをインストールした場合、例えば
4.x のカーネルを 3.x
システム上にインストールするような場合、
&man.ps.1; や &man.vmstat.8; のような多くの
システムステータスコマンドは動かなくなります。
libkvm を再コンパイルして、
これらのユーティリティを作りなおす必要があります。
これは、カーネルとそれ以外で異なるバージョンを組み合わせて
オペレーティングシステムを使用することが推奨されない理由の
一つとなっています。
diff --git a/ja_JP.eucJP/books/handbook/l10n/chapter.sgml b/ja_JP.eucJP/books/handbook/l10n/chapter.sgml
index 88b4a298da..42ced0d593 100644
--- a/ja_JP.eucJP/books/handbook/l10n/chapter.sgml
+++ b/ja_JP.eucJP/books/handbook/l10n/chapter.sgml
@@ -1,1007 +1,1011 @@
Andrey A.
Chernov
寄稿:
Michael C.
Wu
改訂:
地域化 (localization) - I18N/L10N の利用と設定
この章では
FreeBSD は、ユーザーおよび貢献者が世界中にいる、非常に分散した
プロジェクトです。この章では、英語以外の言語を使うユーザーの実用に
耐えられるようにする FreeBSD の国際化 (internationalization) と
地域化 (localization) 機能について解説します。
システムレベルでもアプリケーションレベルでも、国際化の実装には
様々な側面があるので、必要に応じて読者に対してより専門的な文書情報を
示すことにします。
この章では、以下の分野について説明します。
近代的なオペレーティングシステムで、異なる言語および
ロケールがどのように符号化されているか。
ログインシェルでロケールを設定するには
どうするか。
コンソールを英語以外の言語用に設定するには
どうするか。
様々な言語で効率的に X Window System を使うには
どうすればよいか。
国際化されたアプリケーションを書くための
情報はどこにあるか。
この章を読む前に、以下のことを理解しておく必要があります。
サードパーティ製アプリケーションのインストール方法
()。
基礎知識
I18N/L10N とは?
国際化(internationalization)
地域化(localization)
開発者たちはしばしば、internationalization を縮めて I18N
と表記します。18 は internationalization の最初と最後の間の
文字数です。L10N も同じ命名法を用いて
localization
を縮めたものです。
これらを合わせて、I18N/L10N された (すなわち国際化/地域化された)
手法、プロトコル、アプリケーションは、自分達の好みの言語を
使うことを可能にしてくれます。
国際化されたアプリケーションはライブラリとして国際化キット
を用いてプログラミングされています。
これは開発者が単純なファイルを書いて、
表示されるメニューやテキストを各国語に翻訳できるようにしてくれます。
プログラマのみなさんには、
これらの方法を利用することを強く推奨します。
なぜ I18N/L10N を使わなければいけないの?
英語以外の言語を見たり、入力したり、処理したりする場合はいつでも、
I18N/L10N が使われます。
I18N で使えるようになる言語には何があるの?
I18N や L10N は FreeBSD に限った話題ではありません。
現在では、世界中の主要な言語のほとんどから選ぶことができます。
たとえば中国語、ドイツ語、日本語、韓国語、フランス語、ロシア語、
ベトナム語などがありますが、これらに限定されるわけではありません。
ロケール(locale)
地域化の利用
I18N は FreeBSD に特有のものではなく、一つの考え方です。
以下の慣習にしたがって FreeBSD を利用するようにしてください。
地域化の設定は言語コード、
国コード、エンコーディングという三つの用語を基本とします。
ロケール名はこれらから以下のように構成されます。
言語コード_国コード.エンコーディング
言語コードと国コード
言語コード
国コード
FreeBSD (やその他の国際化をサポートした &unix;-like なシステム)
を特定の言語に地域化するには、
国と言語を特定するためのコードを知る必要があります
(Country Code はアプリケーションに指定された言語のどの変種
(variation) を用いれば良いかを教えてくれます)。
加えて、ウェブブラウザ、SMTP/POP サーバ、
ウェブサーバなどもこれらを元に様々な選択を行います。
以下は言語/国コードの例です。
-
+
言語/国コード
説明
en_US
英語 (合衆国)
ru_RU
ロシア語 (ロシア)
zh_TW
繁体字中国語 (台湾)
エンコーディング
エンコーディング
ASCII
いくつかの言語では、8-bit やワイド文字、
多バイト文字など ASCII とは異なったエンコード法を用います
(&man.multibyte.3; 参照)。
古いアプリケーションはこれらを認識せず、
誤ってコントロール文字として認識してしまいます。
最近のアプリケーションは、大抵 8-bit 文字を認識します。
実装方法にも依りますが、アプリケーションのコンパイル時もしくは
configure 時に、ワイド/多バイト文字のサポートを指定する必要があるかも知れません。
ワイド/多バイト文字を入力したり処理したりすることを可能にするために、
FreeBSD Ports Collection
では各言語向けに異なったプログラムを提供しています。
各 FreeBSD port の国際化文書を参照してください。
特に、正しく configure したり、configure/Makefile/
コンパイラに適切な値を渡すために、アプリケーションの
文書を良く読む必要があります。
次のことを心に留めておいてください。
言語固有の、C 言語の char で表現できる
シングルバイトの文字セット
(&man.multibyte.3; を参照)、たとえば
ISO-8859-1, ISO-8859-15, KOI8-R, CP437。
ワイド、多バイトのエンコーディング、たとえば EUC, Big5。
現在有効な文字セットのリストに関しては
IANA Registry
をチェックしてください。
FreeBSD 4.5 以降では、
X11 互換のロケール符号を用いています。
国際化アプリケーション
FreeBSD の ports/packages システムでは、
それとひと目でわかるように国際化アプリケーションには名前に
I18N という文字が含まれています。
ただし、それらのアプリケーションが常にあなたの望む言語を
サポートしているとは限りません。
ロケールの設定
通常は、ログインシェルで環境変数 LANG に
ロケール名を設定し export すれば十分です。これは、ユーザーの
~/.login_conf ファイル、またはユーザーの
シェルの初期設定ファイル (~/.profile,
~/.bashrc, ~/.cshrc)
でできます。
LC_CTYPE や LC_CTIME のような
ロケールのサブセットを設定する必要はありません。
詳細に関しては、各言語向けの FreeBSD 文書を参照してください。
以下の二つの環境変数を設定ファイルで指定する必要があります。
POSIX
&posix; &man.setlocale.3; 関連の関数のための
LANG
MIME
アプリケーション用の MIME 文字セットのための
MM_CHARSET
これにはユーザのシェルの設定、アプリケーション固有の設定、
X11 の設定などが含まれます。
ロケールを設定する方法
ロケール (locale)
ログインクラス
ロケールを設定するには以下で説明するように、二つの方法があります。
一つは推奨される方法で、ログインクラス (login
class) において環境変数に割り当てる方法。
もう一つはシステムのシェル
初期化ファイル
において環境変数の指定を追加する方法です。
ログインクラスを用いる方法
この方法では、
各シェルの初期化ファイルに特定のシェル設定を追加する代わりに、
すべてのシェルにおいて一度に必要なロケール名と MIME
文字セットを環境変数に割り当てることができます。
ユーザの設定はユーザ自身で行なえますが、
管理者の設定にはスーパユーザの権限が必要となります。
ユーザの設定
ユーザのホームディレクトリの
.login_conf ファイルを用いて、
両方の変数に Latin-1 エンコーディングを設定する
簡単な例は次の通りです。
me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:
繁体字中国語 (Traditional Chinese)BIG-5 エンコーディング
これは、BIG-5 エンコーディングされた繁体字中国語用の環境変数を設定する
.login_conf の一例です。
中国語、日本語、韓国語用のロケール変数を
正しく認識しないソフトウェアに対処するため、
よりたくさんの変数を設定していることに注目してください。
#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
:lang=zh_TW.Big5:\
:lc_all=zh_TW.Big:\
:lc_collate=zh_TW.Big5:\
:lc_ctype=zh_TW.Big5:\
:lc_messages=zh_TW.Big5:\
:lc_monetary=zh_TW.Big5:\
:lc_numeric=zh_TW.Big5:\
:lc_time=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=xcin": #Setting the XIM Input Server
詳細に関しては
管理者の設定 と
&man.login.conf.5; を参照してください。
管理者の設定
/etc/login.conf において、
正しい言語がユーザのクラスに指定されていることを確認してください。
/etc/login.conf は、このようになります。
language_name:accounts_title:\
:charset=MIME_charset:\
:lang=locale_name:\
:tc=default:
先ほどの例のように Latin-1
での設定はこのようになります。
german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:
ログインクラスを &man.vipw.8; で変更する
vipw
新しいユーザを追加するために vipw
を用います。そして以下のようなエントリを作成します。
user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh
ログインクラスを &man.adduser.8; で変更する
adduser
ログインクラス
新しいユーザを追加するために adduser
を用います。そして以下の手順を踏みます。
/etc/adduser.conf で
defaultclass = language
と設定します。
この場合、他の言語のユーザには
default クラスを指定することを
忘れないでください。
もうひとつの方法は、&man.adduser.8; が
Enter login class: default []:
と聞いてきたときに、毎回言語を指定するやり方です。
さらに別の方法は、異なる言語を利用するユーザを
追加する際に、以下のようにするやり方です。
&prompt.root; adduser -class language
ログインクラスを &man.pw.8; で変更する
pw
新しいユーザを追加するために &man.pw.8; を
用いる場合、以下の形式で実行します。
&prompt.root; pw useradd user_name -L language
シェルの初期化ファイルによる方法
シェルごとに異なった設定が必要なため、
この方法は推奨されません。
代わりに ログインクラスを用いる方法を使ってください。
MIME
ロケール(locale)
ロケール名と MIME 文字コードを追加するには、
/etc/profile や
/etc/csh.login などのシェル初期化ファイル
に以下の二つの環境変数を設定します。
以下に示す例は、ドイツ語の設定です。
/etc/profile では
次のように設定します。
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
また /etc/csh.login では
次のように設定します。
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
もしくは、上記のやり方を
/usr/share/skel/dot.profile
(/etc/profile と同形式) や
/usr/share/skel/dot.login
(/etc/csh.login と同形式)
に追加することもできます。
X11 では、
$HOME/.xinitrc に
使用しているシェルに合った形式で
LANG=de_DE.ISO8859-1; export LANG
もしくは、
setenv LANG de_DE.ISO8859-1
と指定します。
コンソールの設定
C 言語の char で表現できるシングルバイトの文字セット用に、
/etc/rc.conf
でその言語に対応した適切なコンソールフォントを指定してください。
font8x16=フォント名
font8x14=フォント名
font8x8=フォント名
ここで フォント名
は /usr/share/syscons/fonts ディレクトリ
にあるフォントファイルから .fnt
という拡張子を除いたものです。
sysinstall
keymap
screenmap
- また、/stand/sysinstall
+ また、sysinstall (&os; バージョンが 5.2
+ よりも古い場合は /stand/sysinstall)
を使って、C 言語の char で表現できるシングルバイトの文字セット用の正しい
キーマップとスクリーンマップを指定するようにしてください。
sysinstall では、Configure
を選択し、Console を選択します。
もしくは、/etc/rc.conf
に以下の行を加えてください。
scrnmap=スクリーンマップ名
keymap=キーマップ名
keychange="ファンクションキー番号の並び"
ここで スクリーンマップ名
は /usr/share/syscons/scrnmaps ディレクトリ
にあるマップファイルから .scm
という拡張子を除いたものです。
VGA アダプタが疑似グラフィクス領域のフォント文字マトリクスで
bit 8 を bit 9 に拡張することに対処するために
(例えばスクリーンフォントが
bit 8 列を使っている時に文字をその領域から外に移動する場合)、
フォントに適切にマップされたスクリーンマップが必要となります。
もし、/etc/rc.conf を以下のように設定して、
moused デーモンを有効化している場合は、
次の段落に書かれているマウスカーソルに関する情報を確認してください。
moused_enable="YES"
moused
設定省略時には、&man.syscons.4; ドライバのマウスカーソルは
キャラクタセット中の 0xd0-0xd3 の範囲を占めています。そのため、
利用している言語がこの範囲のキャラクタセットを使っている場合、
カーソルの占める範囲を重ならないように移動させなければなりません。
5.0 より前のバージョンの FreeBSD では、
次の行をカーネルコンフィグレーションファイルに追加することで対処できます。
options SC_MOUSE_CHAR=0x03
FreeBSD 4.4 以降の場合は、/etc/rc.conf
に次の行を追加してください。
mousechar_start=3
キーマップ名 は
/usr/share/syscons/keymaps
ディレクトリにあるキーマップファイルから .kbd
という拡張子を除いたものです。
どのキーマップを使うかよくわからないなら、&man.kbdmap.1;
で再起動せずにキーマップを試すことができます。
ファンクションキーの並びはキーマップにより定義されてはいないため、
端末タイプに合わせたファンクションキーを設定するために
keychange が必要となります。
また、/etc/ttys の中のすべての
ttyv* において、
正しいコンソール端末タイプを設定するようにしてください。
現在の定義済の値は以下の通りです。
-
+
文字セット
端末タイプ
ISO-8859-1 もしくは ISO-8859-15
cons25l1
ISO-8859-2
cons25l2
ISO-8859-7
cons25l7
KOI8-R
cons25r
KOI8-U
cons25u
CP437 (VGA のデフォルト)
cons25
US-ASCII
cons25w
ワイド/多バイト文字の言語については、
/usr/ports/language
内の適切な FreeBSD port を利用してください。
いくつかの ports はシステムからシリアルの vtty
のように見えるようにコンソールとして振る舞います。
したがって、X11 と疑似シリアルコンソール用に充分な
vtty を確保しておかなければなりません。
コンソールで他の言語を使うためのアプリケーションのリストの
一部です。
-
+
言語
ports の位置
繁体字中国語 (BIG-5)
chinese/big5con
日本語
japanese/kon2-16dot または
japanese/mule-freewnn
韓国語
korean/han
X11 の設定
X11 は FreeBSD プロジェクトの一部ではありませんが、
FreeBSD ユーザのための情報を記しておきます。
- 詳細に関しては、&xfree86;
+ 詳細に関しては、&xorg;
ウェブサイトや、あなたの使っている
X11 サーバのサイトを参照してください。
~/.Xresources を使うことで、
アプリケーション固有の国際化の設定 (フォント、メニューなど)
を追加することができます。
フォントの表示
X11 True Type フォントサーバ
&xorg; サーバ
(x11-servers/xorg-server) か
&xfree86; サーバ
(x11-servers/XFree86-4-Server)
をインストールし、言語の &truetype; フォントをインストールします。
ロケールを正しく設定すれば、
選んだ言語がメニューなどに表示されるはずです。
非英語の文字を入力する
X11 Input Method (XIM)
X11 Input Method (XIM) プロトコルはすべての X11
クライアント用の新たな標準規格です。
すべての X11 アプリケーションは XIM 入力サーバからの入力を受け取る
XIM クライアントとして書かれるべきです。
様々な言語用の XIM サーバが存在します。
プリンタの設定
プリンタにはいくつかの C 言語の char で表現できる
シングルバイトの文字セットがハードウェアに組み込まれています。
ワイド/多バイトの文字セットでは特殊な設定が必要であり、
apsfilter を使うことをお勧めします。
言語固有のコンバータを用いて、&postscript; か PDF フォーマット
に文書をコンバートする場合もあるでしょう。
カーネルとファイルシステム
FreeBSD の高速ファイルシステム (FFS) は 8-bit 透過であり、
C 言語の char で表現できるいかなる文字セットも使うことが
できます (&man.multibyte.3; を参照)。
しかし、ファイルシステム中には文字セットの名前は記録されていません。
したがって、これは単なる 8-bit であり、
エンコーディングに関しては何の情報もないのです。
公式には、FFS
はまだいかなるワイド/マルチバイトの文字セットもサポートしていません。
しかし FFS でそのようなサポートを行うためのパッチが、
多くのワイド/マルチバイトの文字セットに存在します。
それらは単に一時的で汎用性のない解決策であり、
わたしたちはそれらをソースツリーに含めないことを決めています。
これらのパッチに関しては、各言語のウェブサイトを参照してください。
DOS
Unicode
FreeBSD の &ms-dos; ファイルシステムでは、
&ms-dos;, Unicode 文字セット、FreeBSD ファイルシステムの
文字セットの間で変換を行うことが可能です。
詳細は &man.mount.msdos.8; を参照してください。
国際化に対応したプログラムのコンパイル
FreeBSD ports の多くはすでに国際化されています。
いくつかには port の名前に -I18N と付いています。
これらはもちろんのこと、他のプログラムも国際化への対応を組み込んだものがあり、
コンパイルに際して特別な注意を払う必要はありません。
MySQL
しかし、MySQL のようなアプリケーションでは、
特定の文字セットを使うように Makefile
を設定する必要があります。
これは大抵 Makefile の中で
対処されているか、ソース中の configure
に値を渡すことで対応しています。
FreeBSD を特定の言語に地域化する
Andrey A.
Chernov
原作:
ロシア語 (KOI8-R エンコーディング)
地域化
ロシア語
KOI8-R エンコーディングの詳細については、
KOI8-R References
(Russian Net Character Set) を参照してください。
ロケールの設定
以下の行を
~/.login_conf に追加してください。
me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:
ロケール を
設定する際の例については、この章の前の方を参照してください。
コンソールの設定
FreeBSD 5.0 より前のバージョンの場合は、
次の行をカーネルコンフィグファイルに追加します。
options SC_MOUSE_CHAR=0x03
FreeBSD 4.4 以降のバージョンの場合は、
/etc/rc.conf に次の行を追加します。
mousechar_start=3
/etc/rc.conf で以下のように
設定してください。
keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
/etc/ttys の各
ttyv* エントリにおいて、
端末タイプとして cons25r
を指定してください。
コンソールを設定する際の例については、この章の前の方を参照してください。
プリンタの設定
プリンタ
ロシア語用の文字を搭載したプリンタはほとんど
ハードウェアコードページ CP866 を使っているため、
KOI8-R を CP866 に変換する専用の出力フィルタが必要となります。
このフィルタはデフォルトで
/usr/libexec/lpr/ru/koi2alt に
インストールされています。
ロシア語用のプリンタの /etc/printcap
エントリは以下のようになります。
lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
記述の詳細については &man.printcap.5;
を参照してください。
&ms-dos; ファイルシステムとロシア語ファイル名
以下の &man.fstab.5; エントリの例は、マウントされた
&ms-dos; ファイルシステムにおいてロシア語ファイル名を
使えるようにします。
/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
オプションは利用するロケール名を選択し、
オプションは文字変換表を設定します。
オプションを使う時は、変換表が
/usr/libdata/msdosfs にあるので、
/usr を &ms-dos; パーティションより前に
マウントするようにしてください。詳しくは、
&man.mount.msdos.8; のマニュアルを参照してください。
X11 の設定
まず X 以外のロケールの設定を行ってください。
ロシア語の KOI8-R
ロケールは古い &xfree86; のリリース (3.3 より前)
では動作しないかもしれません。
- 現在は &xfree86; 4.X が FreeBSD の
+ 現在は &xorg; が FreeBSD の
デフォルトの X Window System です。
これは古いバージョンの FreeBSD を使っていない限り
起こり得ないことです。
russian/X.language
ディレクトリに移動し、
以下のコマンドを実行してください。
&prompt.root; make install
上記の port は最新版の KOI8-R フォントをインストール
- します。&xfree86; 3.3 には
- 既に KOI8-R フォントが含まれていますが、
+ します。&xorg;
+ (および &xfree86; バージョン 3.3 以上)
+ には既に KOI8-R フォントが含まれていますが、
こちらの方がより良く拡縮されます。
/etc/XF86Config ファイルの
"Files"
セクションをチェックしてください。
既存の FontPath
エントリの前に以下の行を追加しなければなりません。
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
もし高解像度のビデオモードを使っている場合には、
75 dpi と 100 dpi の行を入れ替えてください。
ロシア語のキーボードを使えるようにするには、
以下の行を XF86Config ファイルの
"Keyboard" セクションに追加します。
&xfree86; 3.X の場合:
XkbLayout "ru"
XkbOptions "grp:caps_toggle"
- &xfree86; 4.X の場合:
+ &xorg; (または
+ &xfree86; 4.X) の場合:
Option "XkbLayout" "ru"
Option "XkbOptions" "grp:caps_toggle"
また、XkbDisable が無効
(コメントアウト) になっていることを確認してください。
ロシア語/ラテン文字の切り替えは CapsLock
で行います。従来の CapsLock
の機能は ShiftCapsLock
で使うことができます (ラテン文字モードの時のみ)。
キーボードに &windows;
キーがあり、
ロシア語モードでそのキーにいくつかの非英字キーが
割り当てられているようなら、XF86Config
ファイルに以下の行を追加してください。
&xfree86; 3.X の場合:
XkbVariant "winkeys"
- &xfree86; 4.X の場合:
+ &xorg; (または
+ &xfree86; 4.X) の場合:
Option "XkbVariant" "winkeys"
ロシア語の XKB キーボードは古いバージョンの
&xfree86; ではうまく動かないかも知れません。
詳しくは前述の
注釈を参照してください。
ロシア語の XKB キーボードは、
地域化されていないアプリケーションでもうまく動かないかも知れません。
地域化されたアプリケーションは少なくともプログラムの最初の方で
XtSetLanguageProc (NULL, NULL, NULL);
を呼び出すべきです。
X11 アプリケーションを地域化する方法については、
KOI8-R for X Window
を参照してください。
台湾向けの繁体字中国語への地域化
地域化
繁体字中国語
FreeBSD-Taiwan プロジェクトは、多くの
中国語 ports を利用した、
FreeBSD を中国語化するための手引き
を提供しています。
FreeBSD Chinese HOWTO の現在の編集者は
Shen Chuan-Hsing statue@freebsd.sinica.edu.tw です。
Chuan-Hsing Shen statue@freebsd.sinica.edu.tw は
FreeBSD-Taiwan の zh-L10N-tut を使って
Chinese
FreeBSD Collection (CFC) を作成しました。
パッケージとスクリプトは
から入手できます。
ドイツ語への地域化 (すべての ISO 8859-1 言語向け)
地域化
ドイツ語
Slaven Rezic eserte@cs.tu-berlin.de は
FreeBSD マシン上でウムラウトを使うためのチュートリアルを書きました。
チュートリアルはドイツ語で書かれており、
から入手できます。
日本語/韓国語への地域化
地域化
日本語
地域化
韓国語
日本語に関しては
を、韓国語に関しては
を参照してください。
英語以外の FreeBSD ドキュメント
FreeBSD の一部を他の言語に翻訳してくれている人たちがいます。
これらは メインサイトのリンクを辿るか
/usr/share/doc
から入手できます。