「Arch ブートプロセス」の版間の差分
(英語版と同期してディスプレイマネージャを翻訳して追加) |
(英語版と同期してログインを翻訳して追加) |
||
54行目: | 54行目: | ||
起動後にディスプレイマネージャを自動的に初期化するには、 [[systemd]] からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、[[systemd#ユニットを使う]] を参照してください。 |
起動後にディスプレイマネージャを自動的に初期化するには、 [[systemd]] からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、[[systemd#ユニットを使う]] を参照してください。 |
||
+ | |||
+ | == ログイン == |
||
+ | |||
+ | ''ログイン'' プログラムは、環境変数を設定し、{{ic|/etc/passwd}} に基づいてユーザーのシェルを起動することによって、ユーザーのセッションを開始します。 |
||
+ | |||
+ | ''ログイン'' プログラムは、ログインに成功するとログインシェルを実行する直前に [[Wikipedia:motd (Unix) |/etc/motd]] (message of the day) の内容を表示します。利用規約を表示してユーザーに地域のポリシーや伝えたいことを思い出させるのに適した場所です。 |
||
== 参照 == |
== 参照 == |
2020年8月29日 (土) 02:06時点における版
関連記事
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 を使っています。
getty
init は virtual terminal (典型的には6つ) ごとに getty を1回呼び出し、各ttyを初期化してユーザ名とパスワードを要求します。ユーザ名とパスワードが与えられると、getty はそれらを /etc/passwd
と /etc/shadow
と照合し、 login を呼び出します。あるいは、システム上にディスプレイマネージャがあれば、getty はそれを起動します。
ディスプレイマネージャ
ディスプレイマネージャ は、tty の getty ログインプロンプトを置き換えるように設定できます。
起動後にディスプレイマネージャを自動的に初期化するには、 systemd からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、systemd#ユニットを使う を参照してください。
ログイン
ログイン プログラムは、環境変数を設定し、/etc/passwd
に基づいてユーザーのシェルを起動することによって、ユーザーのセッションを開始します。
ログイン プログラムは、ログインに成功するとログインシェルを実行する直前に /etc/motd (message of the day) の内容を表示します。利用規約を表示してユーザーに地域のポリシーや伝えたいことを思い出させるのに適した場所です。