ブートプロセス
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/29 06:11 UTC 版)
「PS2 Linux」の記事における「ブートプロセス」の解説
インストール時にPS2用メモリーカードをフォーマットし、そこにLinuxカーネルと設定ファイルをインストールする。このメモリーカードとPS2 Linux Kit付属のDVD-ROMを挿入して電源を入れると、DVD-ROMから "Runtime Environment for PS2 Linux 1.0" というプログラムが起動する。ここからDVDとメモリーカード上のカーネルの二つを読み込み、起動する。カーネルをアップグレードする時は、PS2用メモリーカードにアップグレードしたいカーネルをコピーすると使用可能になる。
※この「ブートプロセス」の解説は、「PS2 Linux」の解説の一部です。
「ブートプロセス」を含む「PS2 Linux」の記事については、「PS2 Linux」の概要を参照ください。
ブートプロセス
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/24 16:01 UTC 版)
bzImageが開発された経緯の通り、アーキテクチャによってはブート開始直後のメモリ領域は非常に限られている。bzImageは限られたメモリ領域を有効活用するため、ジャンプ命令などを巧みに利用しており、その処理は一般には複雑である。x86システムのブートでは、BIOSから起動されたブートローダがカーネルイメージ(とinitrd)をメモリにロードする。このとき、カーネルイメージは前項の2セクションで分割した上でロードされる。"Setup"部分がブードローダの直後のメモリアドレスにBIOSなどの予約エリアを上書きしないようにロードされる。"System"はメモリアドレス0x100000(=1MB)から後方にロードされる(こちらはもとよりリアルモード下では原則アクセスできないはずなので、上書きの心配はない)。initrdは"System"より後方のメモリアドレスにロードされる。"Setup"はBIOS割り込みルーチンを駆使し、header.oなどの処理を経てhead_$(BITS).oコードに移行し、CPUをプロテクトモードに遷移する。続いて、head_$(BITS).oからmisc.oが呼び出されその後続のデータとなっているカーネル本体が伸長される。伸長後はより複雑な処理となる。以降の処理内容は順に述べるのみとし、必要ならばソースコードを参照して欲しい。伸長済みのカーネル本体に処理を移すと、 ハードウェアの低レベル初期化 仮想記憶の有効化などを含むメモリ管理の開始 CPU認識と特定の処理実行、SMP関連の処理実行 ここまでは(インラインアセンブラを含む)アセンブラコードが多く含まれている。以降はアーキテクチャ非依存となる。 init/main.oのstart_kernel()に処理が移り カーネルパラメータの解析 割り込み メモリ管理システムの残部の起動 カーネルスレッドの起動、マルチタスク処理とスケジューラ起動 デバイスドライバの初期化 initrdのマウントとファイルシステムの初期化 "真の"ルートディレクトリのマウント init起動準備 (以降の処理はユーザー空間) を行い、システムのブートアップが完了する。
※この「ブートプロセス」の解説は、「vmlinux」の解説の一部です。
「ブートプロセス」を含む「vmlinux」の記事については、「vmlinux」の概要を参照ください。
ブートプロセス
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/24 16:09 UTC 版)
以下の説明はx86(80x86, x86-64)システムを対象としている。その他のシステムには当てはまらないかもしれない。 コンピュータの電源を入れると、BIOSは設定されたプライマリブートデバイス(大抵はコンピュータのハードディスクである)を探し出し、ディスクの先頭512バイトに位置するマスターブートレコード(MBR)から初期ブートストラッププログラムをロードする。この後制御はこのコードに移る。
※この「ブートプロセス」の解説は、「GNU GRUB」の解説の一部です。
「ブートプロセス」を含む「GNU GRUB」の記事については、「GNU GRUB」の概要を参照ください。
- ブートプロセスのページへのリンク