作為核心線程的kernel_init()函數(shù)繼續(xù)完成一些設(shè)置,并在最后調(diào)用同文件下的init_post()函數(shù),而該函數(shù)掛在根文件系統(tǒng),打開/dev/console設(shè)備,重定向stdin、stdout和stderr到控制臺(tái)。之后,它搜索文件系統(tǒng)中的init程序(也可以由“init=”命令行參數(shù)指定init程序),并使用run_init_process()函數(shù)執(zhí)行init程序。(事實(shí)上,run_init_process()函數(shù)又調(diào)用了kernel_execve()來實(shí)際執(zhí)行程序)。搜索init程序的順序?yàn)?sbin/init、/etc/init、/bin/init、和/bin/sh。在嵌入式系統(tǒng)中,多數(shù)情況下,可以給內(nèi)核傳入一個(gè)簡單的shell腳本來啟動(dòng)必需的嵌入式應(yīng)用程序。 |
|