boot()
関数は、システムの最終的なシステムシャットダウンと、
停止または再起動を取り扱います。
行なわれる正確な動作は、
howto
で渡されるフラグと、
システムが自動コンフィギュレーションを既に終えているかどうか、
によって決定されます。
システムが自動コンフィギュレーションを既に終えている場合には、
boot()
は次の動作をします。
- これが最初の
boot()
の実施の場合で、
howto
に
RB_NOSYNC
フラグがセットされていなければ、
vfs_unmountall(9)
を呼び出すことにより、ディスクの同期とアンマウントを行ないます。
- 割り込みを無効にします。
- クラッシュの後の再起動の場合 (すなわち
howto
に
RB_DUMP
がセットされているが
RB_HALT
がセットされていない) は、
システムクラッシュダンプを保存します。
- 以前に登録されたあらゆるシャットダウンフックを実行します。
- システムが停止させられているのか、
再起動させられているのかを示すメッセージを表示します。
- howto
に
RB_HALT
がセットされている場合には、システムを停止します。
そうでなければ、システムを再起動します。
システムが自動コンフィギュレーションをまだ終えていない場合には、
boot()
は
以前に登録されたあらゆるシャットダウンフックを実行し、
メッセージを表示し、システムを停止します。