「Arch ブートプロセス」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://www.linuxjournal.com/」を「https://www.linuxjournal.com/」に置換) |
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://www.ibm.com/」を「https://www.ibm.com/」に置換) |
||
48行目: | 48行目: | ||
== 参照 == |
== 参照 == |
||
* [http://archlinux.me/brain0/2010/02/13/early-userspace-in-arch-linux/ Early Userspace in Arch Linux] |
* [http://archlinux.me/brain0/2010/02/13/early-userspace-in-arch-linux/ Early Userspace in Arch Linux] |
||
− | * [ |
+ | * [https://www.ibm.com/developerworks/linux/library/l-linuxboot/ Inside the Linux boot process] |
* [https://www.linuxjournal.com/article/4622 Boot with GRUB] |
* [https://www.linuxjournal.com/article/4622 Boot with GRUB] |
||
* [[Wikipedia:Linux startup process]] |
* [[Wikipedia:Linux startup process]] |
2018年2月6日 (火) 23:41時点における版
関連記事
Arch Linux を起動するためには、GRUB や Syslinux などの Linux 対応のブートローダを、Master Boot Record もしくは GUID Partition Table にインストールする必要があります。ブートローダは、ブートプロセスが始まる前にカーネルや初期 RAM ディスクをロードする仕事を行います。BIOS と UEFI で起動の流れはかなり異なっています。このページや関連するページに詳しい説明があります。
ブートプロセス
BIOS
- システムの電源が入れられ POST が実行される
- BIOS がブートに必要なシステムハードウェア (ディスクやキーボードコントローラなど) を初期化する
- (BIOS のディスク順で) 最初のディスクの最初の440バイト (Master Boot Record) が BIOS によって実行される
- BIOS から MBR ブートコードにコントロールが移り、次のステージのコードが起動する (通常はブートローダーのコード)
- 起動した(2番目の)コード(ブートローダー)はサポートと設定ファイルを読み込む
- 設定ファイルのデータに基づき、ブートローダーはカーネルと initramfs をシステムメモリ (RAM) にロードしてカーネルを起動する
UEFI
次のページを参照してください: Unified Extensible Firmware Interface#UEFI のブートプロセス
カーネル
カーネルはオペレーティングシステムのコアです。ローレベル (カーネル空間) で、マシンのハードウェアとハードウェアを使って実行されるプログラムを橋渡しします。CPU を効率的に利用するために、カーネルはスケジューラーを使ってどのタスクが優先的に実行されるかを決定し、多くのタスクが同時に実行されるのを可能にしています。
initramfs
カーネルがロードされた後、カーネルは initramfs (initial RAM ファイルシステム) を解凍して、initial root ファイルシステムにします。カーネルは最初のプロセスとして /init
を起動します。初期ユーザー空間の始まりです。
initramfs の目的は root ファイルシステムにアクセスできる位置にシステムをブートストラップすることです (詳しくは FHS を見て下さい)。これは IDE, SCSI, SATA, USB/FW (外部ハードウェアから起動する場合) などのデバイスのために必要なモジュールがカーネルに入っていない場合 initramfs からモジュールをロードできなくてはならないということを意味しています; (プログラムやスクリプトから明示的に指定されるか udev を通すかして) 正しいモジュールがロードされると、ブートプロセスが再開されます。従って、initramfs に含めなくてはならないのは root ファイルシステムにアクセスするために必要なモジュールだけで、使用する全てのモジュールを入れる必要はありません。ほとんどのモジュールは後の init プロセス中に、udev によってロードされます。
Init プロセス
初期ユーザー空間の最終段階として、本当の root がマウントされ、initial root ファイルシステムを置き換えます。/sbin/init
が実行され、/init
プロセスを置き換えます。Arch は init プロセスとして systemd を使っています。