diff options
| author | fukachan <fukachan> | 2001-04-23 14:14:01 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-04-23 14:14:01 +0000 |
| commit | d1924da8fb827d37c620f6884360b7716e507611 (patch) | |
| tree | feaf2d5fd56a2486f8b8f95d55f23b6d649801cc | |
| parent | 3a07e7d200014ae5c95158bbdc6255e47da3877a (diff) | |
| download | fml8-d1924da8fb827d37c620f6884360b7716e507611.tar.gz fml8-d1924da8fb827d37c620f6884360b7716e507611.tar.bz2 fml8-d1924da8fb827d37c620f6884360b7716e507611.zip | |
merge fml/libexec/boot.ja.html on how fml boots
| -rw-r--r-- | fml/doc/ja/tutorial/bootloader.sgml | 149 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/fml-devel.sgml | 6 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/include.sgml | 1 |
3 files changed, 155 insertions, 1 deletions
diff --git a/fml/doc/ja/tutorial/bootloader.sgml b/fml/doc/ja/tutorial/bootloader.sgml new file mode 100644 index 00000000..c90e5f8d --- /dev/null +++ b/fml/doc/ja/tutorial/bootloader.sgml @@ -0,0 +1,149 @@ +<!-- + $FML$ +--> + +<title> バージョン依存性を解決するための fml ブートローダ </title> + +<para> + +fml 5.0 にはインストールされている fml のバージョン依存性を考慮するた +めに、実行時には本章で述べるようなブートストラップの過程があります。 + +<programlisting> +boot していくイメージ + +libexec/loader -> + FML::Process::Switch -> + FML::Process::Flow -> + FML::Process::それぞれのプログラムのモジュール +</programlisting> +</para> + + +<sect1> +<title> 例: 配送の場合 </title> + +<para> +loader から次々と呼ばれていく様子は、例えば配送処理の場合、次のよう +になる。 + +<programlisting> +libexec/loader は FML::Process::Switch をロードし、 +FML::Process::Distribute を実行すると決める。 + +FML::Process::Flow::ProcessStart() は引数として +FML::Process::Distribute を渡され、 +FML::Process::Distribute を実行していく。 +</programlisting> +</para> +</sect1> + + +<sect1> +<title> FML::Process:: クラスの階層構造 </title> + +<para> +<programlisting> +FML::Process::Distribute >-| +FML::Process::Command >-|-- FML::Process::Kernel +FML::Process::Mead >-| | + |-use-a FML::Parse + |-use-a FML::Config + |-use-a FML::Log + |-use-a ... その他 ... +</programlisting> + +=> +<ulink url="../../../fml/lib/FML/Process/programs.ja.html"> +FML::Process::それぞれのプログラムのモジュールについて +</ulink> + +</para> +</sect1> + + +<sect1> +<title> ブートしていく順番について </title> + +<itemizedlist> + + <listitem> + <para> + libexec/loader (wrapper) + Bootstrap() を実行する。 + fml.pl などはこの loader へのシンボリックリンクです。 + /usr/local/libexec/fml/ を参照して下さい。 + </para> + </listitem> + + <listitem> + <itemizedlist> + <listitem> + <para> + /etc/fml/main.cf を読み込む。 + 読み込むと fml のバージョンが分かる。 + default_config.cf はバージョン依存であるので、 + ここでまずバージョンを評価しなければいけないことに注意。 + </para> + </listitem> + + <listitem> + <para> + ( fml.pl を例にとると) + @ARGV を評価し、 + どのMLの config.cf 群をロードすればいいのかを準備する。 + 変数の評価と展開には libexec/Standalone.pm を用います。 + + これはあまりよくないような気がします。 + libexec/ を @INC に加えないといけないこと、 + libexec/loader と libexec/Standalone.pm の2つが + 入れ換えないといけないものになってしまうので。 + </para> + </listitem> + + <listitem> + <para> + 次に + FML::Process::Switch + ( バージョン依存 )ファイルを + ロードします。 + </para> + + <itemizedlist> + <listitem> + <para> + Bootstrap2() および ProcessSwitch() を実行し、 + 配送用、コマンドモード用などの各 + プログラム/プロセスなどへ制御を移します(分岐する)。 + この時は $0 から自分の名前を知り、 + どのプロセスへ分岐すればいいのかを判断しています。 + </para> + </listitem> + + <listitem> + <para> + (ポリモーフィズムの例) + モジュールをダイナミックバインディングし、 + 該当するプロセスオブジェクトを生成する。 + そして、プロセスをスタートさせます。 + + FML::Process::Flow の中に、 + どのように fml プロセスを実行するかが + 定義されています。 +<programlisting> +$process = new FML::Process::なにか; +$process->prepare($args); +$process->run($args); +$process->finish($args); +</programlisting> + のように実行されています。 + 各プロセスは、それぞれについて適当な関数を + 用意してください。 + </para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + </listitem> +</itemizedlist> +</sect1> diff --git a/fml/doc/ja/tutorial/fml-devel.sgml b/fml/doc/ja/tutorial/fml-devel.sgml index 974415ef..333de248 100644 --- a/fml/doc/ja/tutorial/fml-devel.sgml +++ b/fml/doc/ja/tutorial/fml-devel.sgml @@ -6,7 +6,7 @@ This is an sgml using DocBook dtd. Use sgmltools version 2.0.x or above to generate various output formats. -$FML: fml-devel.sgml,v 1.1.1.1 2001/04/22 16:17:17 fukachan Exp $ +$FML: fml-devel.sgml,v 1.2 2001/04/23 11:41:49 fukachan Exp $ --> <book> @@ -54,6 +54,10 @@ $FML: fml-devel.sgml,v 1.1.1.1 2001/04/22 16:17:17 fukachan Exp $ &intro; </chapter> + <chapter id="bootloader"> + &bootloader; + </chapter> + <!-- 〜ここから後は付録〜 --> <appendix id="terms"> &terms; </appendix> diff --git a/fml/doc/ja/tutorial/include.sgml b/fml/doc/ja/tutorial/include.sgml index cc11df93..e4c23675 100644 --- a/fml/doc/ja/tutorial/include.sgml +++ b/fml/doc/ja/tutorial/include.sgml @@ -6,6 +6,7 @@ <!entity terms SYSTEM "terms.sgml"> <!entity intro SYSTEM "intro.sgml"> <!entity install SYSTEM "install.sgml"> +<!entity bootloader SYSTEM "bootloader.sgml"> <!entity reference SYSTEM "reference.sgml"> <!-- 画像 --> |
