Busybox ---------- init進程解析

Busybox ---------- init進程解析

1、/sbin/init /bin/busybox的符號鏈接,所以busybox是目標板上執行的第一個應用程序。

2、當busybox知道調用它的目的是init,它會立即跳轉到init進程

3、busybox init 進程會依次執行以下工作:

a) 爲init設置信號處理進程

b) 初始化控制檯

c) 剖析inittab文件、/etc/inittab文件

d) 執行系統初始化命令。busybox在缺省情況下會使用/etc/init.d/rcS命令行。

e) 執行所有會導致init暫停的inittab命令(動作類型:wait

f) 執行所有僅執行一次的inittab命令(動作類型:once

 

 

一旦完成以上工作:init進程便會循環執行以下工作:

g) init進程便會從新啓動Inittab命令(動作類型:respawn

h) 執行所有終止時必須重啓但啓動前必須先詢問用戶的inittab命令(動作類型:askfirst

 

在控制檯初始化器件,busybox會判斷系統是否被設置成在串行端口上執行控制檯(console=ttyS0作爲內核引導參數)

控制檯初始化之後,busybox會檢查/etc/inittab文件是否存在,如果此文件不存在,busybox會使用缺省的inittab配置。它主要爲系統引導,系統掛起以及init重啓動設置缺省的動作。如果存在則busybox會自動剖析/etc/inittab文件

 

4、/etc/inittab 文件格式

 

inittab文件中每一行的格式如下:

id:runlevel:action:process

 

id:用來指定所啓動進程的控制tty;如果啓動的進程並不是一個可以交互的shell,這個字段可以空,可以交互的shell,應該會有一個控制tty

 

runlevel: busybox會忽略此字段,可以不填

 

process:用來指明程序的路徑

 

action字段用來表示應用到process的動作,該字段有:

 

sysinit :init提供初始化命令行的路徑

respwn:每當相應的進程終止執行便從新啓動

askfirst:

wait:

once:

ctrlaltdel:按下組合件ctrl+alt+del執行相應的進程

shutdown:系統關機執行相應的程序

restart:init從新啓動時,執行相應的進程

 

簡單的模板:

 

::sysinit:/etc/init.d/rcS /*設置系統初始化文件*/

::respawn:/sbin/getty 115200 ttyS0 /*115200bps 的串行端口啓動一個登陸會話*/

::respawn:/control-module/bin/init  /*控制模塊初始化命令行*/

::restart:/sbin/init

::shutdown:/bin/umount -a -r

 

/*控制模塊初始化命令行具體內容*/

#!/bin/sh

#以讀寫模式從新安裝(掛載)根文件系統(需要 /etc/fstab

mount -n -o remount,rw /

#掛載/proc文件系統

mount /proc

#啓動網絡接口

/sbin/ifconfig eth0 192.168.1.12

 

5、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章