Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
FreeBSDFreeBSD のブートプロセスのブートプロセス
USP 友の会 BSD 担当
今泉光之
@bsdhack
http://bsdhack.org
FreeBSDのブートプロセス 2
講師講師
● 今泉光之
 UNIX/Linux環境でのプログラミングを中心に、ネットワークや
インフラなども含め20年以上に渡る経験だけは積んできました。
 当初はC言語でコンパイラ、Xサーバ、ドライバ、TC...
FreeBSDのブートプロセス 3
ブートプロセスブートプロセス
● 最近は UEFI→grub→systemd の流れが主流(?)
●
でも私は BSDHACK だ
● 空気を読まずに FreeBSD のブートプロセス
FreeBSDのブートプロセス 4
ブートとはブートとは
● コンピュータを起動する事、またはそのための一連の動作
● ブートストラップローダに由来する
● ブートストラップとはブーツの後ろについてる輪っか
● 底なし沼に落ちた時にブートストラ...
FreeBSDのブートプロセス 5
BIOSBIOS
● Basic Input Output System
● マザーボード上の ROM に格納されているプログラム
● コンピュータの電源投入時に最初に動作する
● キーボードやディスプレイな...
FreeBSDのブートプロセス 6
CPUCPU のモードのモード
● Intel の CPU には 2 種類のモードがある
● リアルモード (Real Mode / Real Address Mode)
● プロテクトモード (Protec...
FreeBSDのブートプロセス 7
リアルモードリアルモード
● Intel の 80x86 プロセッサの動作モード
● 8086 互換の動作をするモード
● BIOS は互換性のためにこのモードで動作している
● アクセス保護機能がない
● ...
FreeBSDのブートプロセス 8
プロテクトモードプロテクトモード
● Intel の 80286 プロセッサ以降の動作モードの一つ
● メモリや I/O の保護機能がある
● ページングとアドレス変換機能がある
● 32 ビット
● 仮想メ...
FreeBSDのブートプロセス 9
電源投入電源投入
● PC の電源 ON
● POST(Power On Self Test)
● BIOS
● ブートデバイスの先頭の 1 セクタ (512 バイト ) を読む
● 制御を移す
● ブートロ...
FreeBSDのブートプロセス 10
ブートローダブートローダ
● ハードディスクの第 1 セクタを MBR と呼ぶ
● Master Boot Record
● プログラム領域 :446 バイト
● パーティションテーブル :64 バイト (...
FreeBSDのブートプロセス 11
boot0boot0
● FreeBSD 付属のブートローダ
● パーティションテーブルのエントリにアクセスし OS の名前
を表示して起動する OS を選択
– F1 DOS
– F2 FreeBSD
●...
FreeBSDのブートプロセス 12
boot1boot1
● FreeBSD パーティションのブートローダ
● boot2 をロードする
● boot2 で利用するサブルーチンも提供
FreeBSDのブートプロセス 13
boot2boot2
● カーネルや loader をメモリにロードする
● ファイルシステムにアクセス可能
● BTX(BooT eXtender) を内蔵
● プロテクトモードに移行
● /boot.c...
FreeBSDのブートプロセス 14
loaderloader
● /boot/loader.rc
● /boot/defaults/loader.conf
● /boot/loader.conf
● カーネルに起動時オプションを指定
– -a...
FreeBSDのブートプロセス 15
kernelkernel
● メモリアロケータの初期化
● swapper の生成 (pid=0)
● init プロセスの生成 (pid=1)
FreeBSDのブートプロセス 16
initinit
● シングルユーザーモード
● マルチユーザーモード
● /etc/rc を実行
FreeBSDのブートプロセス 17
/etc/rc/etc/rc
● /etc/rc.initdiskless
● /etc/rc.subr
● /etc/defaults/rc.conf
● /etc/rc.conf
● rcorder で...
Upcoming SlideShare
Loading in …5
×

FreeBSDのブートプロセス

1,876 views

Published on

『jus共催、第5回初心者向けとは言うものの午前のシェル勉強会/第23回梅雨でモワッとしたシェル芸勉強会』で使用した資料です。

Published in: Engineering
  • Be the first to comment

FreeBSDのブートプロセス

  1. 1. FreeBSDFreeBSD のブートプロセスのブートプロセス USP 友の会 BSD 担当 今泉光之 @bsdhack http://bsdhack.org
  2. 2. FreeBSDのブートプロセス 2 講師講師 ● 今泉光之  UNIX/Linux環境でのプログラミングを中心に、ネットワークや インフラなども含め20年以上に渡る経験だけは積んできました。  当初はC言語でコンパイラ、Xサーバ、ドライバ、TCP/IPによる 通信などシステム系のプログラミングが主でしたが、最近はPerl やPHPなどのWeb向けのLLも使っています。
  3. 3. FreeBSDのブートプロセス 3 ブートプロセスブートプロセス ● 最近は UEFI→grub→systemd の流れが主流(?) ● でも私は BSDHACK だ ● 空気を読まずに FreeBSD のブートプロセス
  4. 4. FreeBSDのブートプロセス 4 ブートとはブートとは ● コンピュータを起動する事、またはそのための一連の動作 ● ブートストラップローダに由来する ● ブートストラップとはブーツの後ろについてる輪っか ● 底なし沼に落ちた時にブートストラップを自分で引っ張って沼 から逃げ出したという古いジョークが元ネタ ( 諸説有り) ● 笑ってあげましょう
  5. 5. FreeBSDのブートプロセス 5 BIOSBIOS ● Basic Input Output System ● マザーボード上の ROM に格納されているプログラム ● コンピュータの電源投入時に最初に動作する ● キーボードやディスプレイなどへのアクセスインタ フェイスなどを提供する ● PC が起動できるのは BIOS のおかげ
  6. 6. FreeBSDのブートプロセス 6 CPUCPU のモードのモード ● Intel の CPU には 2 種類のモードがある ● リアルモード (Real Mode / Real Address Mode) ● プロテクトモード (Protected Virtual Address Mode)
  7. 7. FreeBSDのブートプロセス 7 リアルモードリアルモード ● Intel の 80x86 プロセッサの動作モード ● 8086 互換の動作をするモード ● BIOS は互換性のためにこのモードで動作している ● アクセス保護機能がない ● 16 ビット ● メモリの実アドレスを指定する
  8. 8. FreeBSDのブートプロセス 8 プロテクトモードプロテクトモード ● Intel の 80286 プロセッサ以降の動作モードの一つ ● メモリや I/O の保護機能がある ● ページングとアドレス変換機能がある ● 32 ビット ● 仮想メモリ機能のサポート ● 近代的な OS の機能が実現可能になる
  9. 9. FreeBSDのブートプロセス 9 電源投入電源投入 ● PC の電源 ON ● POST(Power On Self Test) ● BIOS ● ブートデバイスの先頭の 1 セクタ (512 バイト ) を読む ● 制御を移す ● ブートローダ
  10. 10. FreeBSDのブートプロセス 10 ブートローダブートローダ ● ハードディスクの第 1 セクタを MBR と呼ぶ ● Master Boot Record ● プログラム領域 :446 バイト ● パーティションテーブル :64 バイト (16 バイト x4) ● マジックナンバー :2 バイト ● MS-DOS の fdisk には /mbr というオプション
  11. 11. FreeBSDのブートプロセス 11 boot0boot0 ● FreeBSD 付属のブートローダ ● パーティションテーブルのエントリにアクセスし OS の名前 を表示して起動する OS を選択 – F1 DOS – F2 FreeBSD ● 次回の起動のために MBR を更新 ● 選択されたパーティションの 1 セクタ目に制御を移す
  12. 12. FreeBSDのブートプロセス 12 boot1boot1 ● FreeBSD パーティションのブートローダ ● boot2 をロードする ● boot2 で利用するサブルーチンも提供
  13. 13. FreeBSDのブートプロセス 13 boot2boot2 ● カーネルや loader をメモリにロードする ● ファイルシステムにアクセス可能 ● BTX(BooT eXtender) を内蔵 ● プロテクトモードに移行 ● /boot.config
  14. 14. FreeBSDのブートプロセス 14 loaderloader ● /boot/loader.rc ● /boot/defaults/loader.conf ● /boot/loader.conf ● カーネルに起動時オプションを指定 – -a 起動中にルートファイルシステムを指定可能 – -s シングルユーザモードで起動 – -v 冗長な出力
  15. 15. FreeBSDのブートプロセス 15 kernelkernel ● メモリアロケータの初期化 ● swapper の生成 (pid=0) ● init プロセスの生成 (pid=1)
  16. 16. FreeBSDのブートプロセス 16 initinit ● シングルユーザーモード ● マルチユーザーモード ● /etc/rc を実行
  17. 17. FreeBSDのブートプロセス 17 /etc/rc/etc/rc ● /etc/rc.initdiskless ● /etc/rc.subr ● /etc/defaults/rc.conf ● /etc/rc.conf ● rcorder で起動順序を決定 ● システム起動ファイル (/etc/rc.d/) の実行 ● ローカル起動ファイル( /usr/local/etc/rc.d/) の実行

×