見出し画像

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



この記事が気に入ったらサポートをしてみませんか?