Linux的启动流程
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备(若这些设备比如文件系统所在[scsi | RAID | LVM |iscsi]的驱动程序不在内核中,则内核要借助initrd[ramfs,ramdisk]提供驱动,加载真正根文件系统所在设备上的分区,并读取根文件系统),完成Linux核心环境的建立.至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了. 启动第五步--用户层init依据inittab文件来设定运行等级 内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作(包括键盘映射,主机名设定,显示欢迎信息,挂载其他所需的额外文件系统,根文件系统自检,删除一些临时的或过期的文件系统等). 其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上.Linux的运行等级设定如下: 0:关机 1:单用户模式 2:无网络支持的多用户模式 3:有网络支持的多用户模式 4:保留,未使用 5:有网络支持有X-Window支持的多用户模式 6:重新引导系统,即重启 关于/etc/inittab文件的学问,其实还有很多,在后序文章中设计到的,卖个关子,敬请期待,呵呵 启动第六步--init进程执行rc.sysinit 在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等.如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的 启动第七步--启动内核模块 具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块. 启动第八步--执行不同运行级别的脚本程序 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务. 启动第九步--执行/etc/rc.d/rc.local 你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然: # This script will be executed *after* all the other init scripts. rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方.你可以把你想设置和启动的东西放到这里. 启动第十步--执行/bin/login程序,进入登录状态 此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了.
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |