diff options
| author | fukachan <fukachan> | 2001-05-01 15:16:24 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-05-01 15:16:24 +0000 |
| commit | be46650e24f5e2ec272d55cbede8b6ab5069d794 (patch) | |
| tree | 9fbdac5f5a758b988cd2ac35a8a521a8f9e2f020 /fml/doc/ja/tutorial/bootloader.sgml | |
| parent | 4bb9aaf8949fa030babd96318840aec38e8cfc41 (diff) | |
| download | fml8-be46650e24f5e2ec272d55cbede8b6ab5069d794.tar.gz fml8-be46650e24f5e2ec272d55cbede8b6ab5069d794.tar.bz2 fml8-be46650e24f5e2ec272d55cbede8b6ab5069d794.zip | |
modified to fit with created subdirectories: programs/, install/,
delivery/, internals/, devel/ and include/.
Diffstat (limited to 'fml/doc/ja/tutorial/bootloader.sgml')
| -rw-r--r-- | fml/doc/ja/tutorial/bootloader.sgml | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/fml/doc/ja/tutorial/bootloader.sgml b/fml/doc/ja/tutorial/bootloader.sgml deleted file mode 100644 index 69a6632f..00000000 --- a/fml/doc/ja/tutorial/bootloader.sgml +++ /dev/null @@ -1,153 +0,0 @@ -<!-- - $FML: bootloader.sgml,v 1.1 2001/04/23 14:14:01 fukachan Exp $ ---> - -<chapter id="bootloader"> - -<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> - -</chapter> |
