Linux(x86系)起動の流れ

serverLinux

概要

 状態:  閲覧数:1,682  投稿日:2008-08-22  更新日:2015-11-24
1.ブートローダ
・電源ONからliloやgrubといったブートローダソフトウェアが起動し,指定されたカーネルイメージをメモリに読み込む

2.カーネル
・メモリ上に読み込まれたカーネルが起動し,CPUやメモリ,周辺機器の認識や初期化を行う

3./sbin/init
・ハードウェアの初期化を終えたカーネルから処理を委ねられた/sbin/initが/etc/inittabの設定に従ってシステムの動作に必要な各種サービスを起動していく


1.ブートローダ


Ⅰ.PCの電源を入れると,まずマザーボード上のフラッシュメモリに書き込まれたBIOS(Basic Input/Output System)と呼ばれるソフトウェアが動き始める

Ⅱ.BIOSはマザーボード上のCPUやメモリ,接続されている各種拡張カードを認識,初期化していく

Ⅲ.接続されたハードウェアの初期化処理を完了すると,最初のHDDの先頭のセクタ(MBR:マスターブートレコード)に書き込まえたソフトウェアを起動して以後の処理を委ねる。このMBRの512バイトの部分に書き込まれているのが「ブートローダ」と呼ばれるソフトウェア

Ⅳ.ブートローダはOSごとに異なり,Linuxの中でもliloやgrubなどいくつかの種類があるが,最も広く使われているのはgrub。grubは起動するカーネルやカーネルパラメータを対話的なメニューから指定したり,さまざまな種類のファイルシステムを理解してカーネルをファイル名で読み出すことができるなど高機能なブートローダ

Ⅴ.一方,MBRは512バイト分しか使えないので大規模なソフトウェアを保存することはできない。そのためgrubでは機能を分割し,本来の機能はstage2と呼ばれる部分に置いてファイルシステム上に保存し,MBRにはstage2を読み込むだけの機能を持ったstage1と呼ばれる部分を置くようになっている


LINUXSTYLE



週間人気ページランキング / 7-31 → 8-6
順位 ページタイトル抜粋 アクセス数
1 開発 0 18
2 Twitter アカウント管理 | Twitter Developer(Twitter) 4
2 ソフトウェア カテゴリー 4
2 Bootstrap(デザイン) カテゴリー 4
3 Twitter API v1.1 | Twitter Developer(Twitter) 3
3 Twitter連携ログイン代替APIを探しています | Webサービス開発 3
3 「お問い合わせフォームの日本語」をどう書けば良いかが分からない | 言葉(Webサービス開発) 3
3 Git BASH 作業履歴 2022/10/21 / P28 site-ranking(4Th-Ranking-Service) / 他の「.git」ディレクトリが存在した状態のまま下記gitコマンドを実行したため、意図せず「submodule」化されてしまった例 | Git BASH(Git) 3
3 「Twitter Developers」でアプリケーションを新規作成するためには? SMS認証用コードを確認可能な電話番号の登録が必要 | Twitter Developer(Twitter) 3
3 Git 失敗履歴2。「$ git reset」→ ソースコード削除。※Git BASH 経由で Windows10 から GitHub へ PUSH しようとするも、誤ってソースコードを削除してしまう | Git BASH(Git) 3
3 コード管理 | プログラミング 3
3 Webサービス開発 カテゴリー 3
3 Webサービス | ブックマーク 3
3 GitHubリモートリポジトリ名には日本語を使用できない。使用すると、ハイフンへ自動置換されてしまう | GitHub(Git) 3
4 Git BASH 経由で、Windows10 から GitHub へ PUSH する | GitHub(Git) 2
4 User is not Authorized の闇 | Twitter Developer(Twitter) 2
4 感想履歴(技術エントリーを見返した際に不要だと感じた「当時の感想」をこのエントリーへ移動する) | Webサービス開発 2
4 ブックマーク カテゴリー 2
4 Twitter カテゴリー 2
4 GitHub(Git) カテゴリー 2
2026/8/7 5:05 更新