LPIC101 起動の仕組み
SysVinit
「SysVinit」という起動の仕組みが従来のLinux
SysVinitを採用しているLinuxマシンが起動するときの流れ
1.ハードウェア起動
2.BIOS/UEFI起動
3.OSのカーネル起動
4.initプロセス起動
5.ユーザープロセス起動
ユーザプロセスは順番に一つずつ起動するので起動に時間がかかる
Upstart
Upstartはイベント駆動型の仕組み
1.ハードウェア起動
2.BIOS/UEFI起動
3.OSのカーネル起動
4.initプロセス起動
5.ユーザープロセス起動
基本的な順番は同じだが、ユーザープロセスは並列でプロセスを起動するのでSysVinitより高速で起動できる
Upstartはイベント駆動であるため、プロセスが起動するためのイベント(条件)を設定ファイルに記述する必要がある
指定したイベントがそろってしまうとジョブは無条件で起動、停止をしてしまうので無駄にジョブが起動してしまう可能性がある
Upstartではジョブの依存関係をイベントに書き換えて記述しなおさないといけないため、SysVinitからの移行には手間がかかってしまう
Systemd
現在主流となっているSystemd
Systemdもユーザープロセスを並列起動できる
Upstartとの違いは必要なプロセスのみを起動するのでUpstartよりもさらに起動が高速
Upstartは最初に条件が揃ってトリガーとなったイベントから連鎖的にジョブを起動させるのでシステムに不必要なジョブまで起動してしまう
Systemdはジョブではなくユニットという単位で管理している
プロセスを管理しており、起動したいユニットに必要なユニットだけを起動することで改善されている
Unit
Unitは設定ファイルであり、Unitの設定に従ってSystemdが処理を実行
Unitには各機能ごとに拡張子が割り当てられていて、拡張子を見ればどんな機能のためのUnitかわかるようにできている
Unitの拡張子と機能
device 各種デバイスを管理
mount ファイルシステムのマウントを管理
service サービスを制御する
swap スワップ領域を管理
target 複数のサービスを一つのグループにするためのUnit