作为核心线程的kernel_init()函数继续完成一些设置,并在最后调用同文件下的init_post()函数,而该函数挂在根文件系统,打开/dev/console设备,重定向stdin、stdout和stderr到控制台。之后,它搜索文件系统中的init程序(也可以由“init=”命令行参数指定init程序),并使用run_init_process()函数执行init程序。(事实上,run_init_process()函数又调用了kernel_execve()来实际执行程序)。搜索init程序的顺序为/sbin/init、/etc/init、/bin/init、和/bin/sh。在嵌入式系统中,多数情况下,可以给内核传入一个简单的shell脚本来启动必需的嵌入式应用程序。 |
|