Linux系统启动过程
1.BIOS:基本输入输出系统,记录主板芯片集和相关设置,比如cpu与接口的通信频率,启动设备的搜索顺序,中断信息等. 当机器上电后,系统开始读取BIOS,当获取到BIOS的相关设置值,系统进行开机自检.当获取到硬件信息的完后,主机开始尝试由存储媒体加载操作系统,然后由BIOS引导读取硬盘的MBR读取,MBR上记录的是引导加载操作系统的grub加载程序,为什么不直接引导加载操作系统呢?MBR的存储是有限的,最多只有512KB的空间.之后由grub或者LILO引导程序加载操作系统.要想引导程序能够加载操作系统,引导程序要能够具有识别核心的功能. 引导程序除了可以直接指定核心文件夹来启动外,也可以指定某个超级块的引导加载程序接管启动的核心加载流程,这同时说明引导程序可以存在在MBR与超级块中,这也就多重系统能够存在的原因.Window的引导程序强制安装在MBR与超级块中,linux可以选择安装在MBR或者超级块中,因此要装window与linux两个系统的时候,需要先装好Window然后再装Linux,或者window的引导程序无法识别到linux的核心文件. 引导程序引导开始读取核心文件(/boot/vmlinuz)后,Linux将核心解压到主存储器中,利用核心的功能以及相应的驱动程序,开始测试与驱动相应的硬件设备.在加载核心时,系统只会载入根目录,是以只读的方式载入,此外,为了某些功能可以用文件的方式读取,系统在启动的时候,会建立虚拟盘(RAM DISK),这就需要使用initrd以及linuxrc,协同启动的过程. 核心加载完毕后,系统就绪,程序开始执行.运行第一个程序/sbin/init(PID=1),该程序从/etc/inittab中获取到运行等级(runlevel)之后,执行/etc/rc.d/rc.sysinit脚本来设置系统的环境,在执行sysinit脚本中,默认调用/etc/sysconfig中的文件来进行设置系统的环境,若想看系统加载的信息可以利用dmesg来查看.若想要加载自定的模块,则将整个模块写入到etc/sysconfig/modules/*.modules中,该目录下,只要文件以.modules结尾即可.若新加了硬件,但是系统不支持需要做的事情:1.重新编译核心,并加入最新的硬件驱动程序源码. 2.将该硬件的驱动程序编译为模块,在启动时加载该模块. 当上述步骤完成后,系统顺利运行,需要启动系统相关的服务与网络服务了,这时利用由/etc/inittab获取到的运行等级来加载相应的系统与网络服务,每个等级都对应一个启动目录,对应于/etc/rc.d/rc.n中,这些启动目录存放的是一些链接文件,链接到init.d的脚本文件中去.该目录下的文件都以K、S字母开头的,S表示启动时需要的文件,K则表示关闭时需要的文件. /etc/init.d目录放的是服务的启动脚本,而/etc/sysconfig则是系统设置的启动脚本,用来设置系统环境的. 因此当要切换不同的运行等级的时候,用init runlevel就可以切换,不同的运行等级加载的服务是不一样的.若你随系统的启动执行自定义的命令,可以利用/etc/rc.d/rc.local这个文件来执行,该文件相当于window下的autoexec.bat文件. 开机启动过程: BIOS-àMBR---àKernel code-à/sbin/init--àsysinit(期间用到/etc/sysconfig)-à/etc/rc.d/rc.n(用到/etc/initd.d)--à/etc/rc.d/rc.local 其中服务的启动在/etc/rc.d/rc.n以及/etc/rc.d/rc.local这两个过程中.
核心模块: 核心:/boot/vmlinuz 核心解压缩所需的RAM DISK:/boot/initrd 核心模块:/lib/modules/version/kernel 核心源码:/usr/src/linux 核心被加载到系统中,记录的信息. 核心版本:/proc/version 系统核心功能:/proc/sys/kernel
要想处理核心模块,自然要了解核心提供的模块之间的关联性,linux提供了一些模块依赖性的解决方案,/lib/modules/modules.dep文件记录着模块之间的关联性,利用depmod命令可以用来更新模块之间的依赖关系.利用lsmod可以查看所核心所加载的模块,modinfo可以查看模块的相应的信息,模块的手工加载与删除用insmod与rmmod,但是不解决依赖性关系,而才用modprobe可以加载依赖关系. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |