各々のネットワークセグメントにつき、通常一つのホストで、 以下の行のどれかをファイル /etc/inetd.conf に含めることにより、 あるいは bootpgw が inetd(8) から起動されるように設定されます:
bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab
bootps dgram udp wait root /usr/libexec/bootpgw bootpgw server
この動作モードは「inetd モード」と呼ばれ、 ブート要求が到着した時にだけ (あるいは bootpgw を開始します。 もし最後にパケットを受信してから 15 分以内に別のパケットを受信しないのなら、 システムの資源を浪費しないように終了します。 -t オプションがこのタイムアウト時間を制御します (オプション参照)。
他の通常のコマンドのように単にシェルから起動することで、 (あるいは bootpgw ) を「スタンドアローンモード」( inetd(8) なし) で実行することも可能です。 が大きなコンフィギュレーションデータベースのもとで使われる時には、 inetd モードでの起動時の遅延が クライアントの要求に対する素早い応答を妨げるので、 スタンドアローンモードは特に役に立ちます。 (例えば /etc/rc.local から を呼びだすことによって、 スタンドアローンモードで自動的に起動することができます。) bootpgw は設定ファイルを読まないので、 起動時の遅延はかなり小さく、 スタンドアローンモードはあまり役に立ちません。
どちらのプログラムも、inetd から呼び出されたかシェルから呼び出されたかを 自動的に検出し、自動的に適当なモードを選択します。 -s と -i オプションは各々、スタンドアローンモードと inetd モードを強制するのに 使います (オプション参照)
bootpgw は動作開始時に、コマンド行パラメータとして名前を与えられた BOOTP サーバのアドレスを決めます。 bootpgw が BOOTREQUEST パケットを受信したとき、 パケットの「ゲートウェイアドレス」と「ホップ数」フィールドを設定し、 パケットを前に決めたアドレスの BOOT サーバへ転送します。 要求パケットは、 クライアントが少なくとも 3 秒は待っているとパケットが示している時にだけ 転送されます。
は動作開始時に設定ファイル (通常 /etc/bootptab を読みこみます。 これで、あらかじめ知っているクライアントと クライアントのオプションに関する内部データベースを初期化します。 この内部データベースは、 が回線切断シグナル (SIGHUP) を受信したとき、 または設定ファイルが変更されたことを 発見したときに、再読み込みが行なわれます。
が BOOTREQUEST パケットを受信したとき、 クライアントの要求に一致するデータベースエントリを探します。 もしそのクライアントをあらかじめ知っていれば は前に見付けたデータベースエントリを使って BOOTREPLY パケットを構成し、 (ひょっとしたらゲートウェイを使って) クライアントに返答を送ります。 もしクライアントが未知ならば、(debug > 0 のときは注意を出して) 要求は捨てられます。
が -DDEBUG オプションでコンパイルされていれば、 SIGUSR1 シグナルを送ると内部データベースをファイル /tmp/bootpd.dump か、コマンド行パラメータで指定されたダンプファイルに ダンプします。
初期化の時どちらのプログラムも、 (普通は /etc/services を使う) getservbyname(3) を呼ぶことで UDP ポート番号を決定します。 二つのサービス名 (とポート番号) が使われます:
bootps - BOOTP サーバ待機ポート
bootpc - BOOTP クライアント届け先ポート
もしポート番号が getservbyname(3) を使って決定できないときには、 デフォルト値は bootps=67 と bootpc=68 です。
オリジナルの BOOTP サーバは スタンフォード大学の An Bill Croft によって 1986 年 1 月に作成されました。
現在のバージョンの は第一に、Carnegie Mellon University の An David Kovar , An Drew D. Perkins , An Walter L. Wimer の仕事によるものです。
機能拡張とバグフィクスは以下の方の貢献によります: (アルファベット順)
An -split An Danny Backx Aq db@sunbim.be , An John Brezak Aq brezak@ch.hp.com , An Frank da Cruz Aq fdc@cc.columbia.edu , An David R. Linn Aq drl@vuse.vanderbilt.edu , An Jim McKim Aq mckim@lerc.nasa.gov , An Gordon W. Ross Aq gwr@mc.com , An Jason Zions Aq jazz@hal.com .
DARPA Internet Request For Comments: