勉強前イメージ
systemdの勉強したくて調べてたらSysvinit出てきた。
initと何が違うのか?
カーネルの後に起動する各プロセスを立ち上げるなにかってイメージ
最近はsystemdに変わった
調査
SysVinitとは
- SysVinitの概略
Unix系OSで広く使われてきたOS起動の仕組み。
最近のOSではUpstartやsystemdに変わっている。
- SysVinitとは起動の順番でいうとどこか
下記の順番でいくと、5番目のプロセス実行の際に稼働するのがSysVinitになります。
- 電源を入れる
- BIOS/UEFIの起動
- ブートローダーの読み込み
- カーネルの読み込み
- プロセス実行 ←ココ!!!
- ログイン可能
SysVinitについて中身を見ていく
特徴
SysVinitでは、一番最初に initプロセス を開始します
initプロセスは プロセスIDが1番を持っています。
実際にCentOS5で確認してみると init が PID(プロセスID)が1になっています。
[root@localhost ~]# ps aux | grep [i]nit
root         1  0.1  0.0  10372   732 ?        Ss   20:48   0:00 init [3]    
initプロセスは、 /etc/inittab に書かれたプロセスを順番に起動しますが、
並列ではなく直列でしか起動できないので、時間がかかるというデメリットがありました。
SysVinitの実行順序
- 
initプロセスが開始される(pid=1) 
- 
/etc/inittabファイルを読み込む 
 1.システムの初期化のシェルを起動/etc/rc.d/rc.sysinitは
 ホスト名や、ネットワークの設定をしたり起動に必要な初期化処理を行います。/etc/inittab# System initialization. si::sysinit:/etc/rc.d/rc.sysinit2.rcスクリプトの実行 デフォルトランレベル確認。 
 下記だったら デフォルトランレベル3
 ランレベルについては こちら/etc/inittab# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:デフォルトランレベルに合わせたスクリプトの実行 /etc/inittabl0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 ← これ! l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6
そもそもinitプロセスって何よ?
initプロセス は他のプロセスを起動させる、親プロセス。
Linuxカーネルの起動後一番最初に起動されるので、↑で書いたとおりPIDは1が付与される
[root@localhost ~]# pstree
init─┬─acpid
     ├─anacron
     ├─atd
     ├─auditd─┬─audispd───{audispd}
     │        └─{auditd}
     ├─automount───4*[{automount}]
     ├─crond
     ├─dbus-daemon───{dbus-daemon}
     ├─dhclient
     ├─events/0
     ├─gam_server
     ├─gpm
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─2*[hald-addon-keyb]
     │                    └─hald-addon-stor
     ├─hcid
     ├─hidd
     ├─2*[iscsid]
     ├─iscsiuio───2*[{iscsiuio}]
     ├─khelper
     ├─klogd
     ├─...
     ├─...
勉強後イメージ
initが起動していく順序とかを決めたようなやつって感じか...
systemdだったら並列になってるし
イメージはなんとなく合ってたけど、ちゃんと分かったかも
/etc/inittabの中身見るためにCentOS5をインストールしたけど、インストール画面おしゃんだった