Linux学习笔记---RHEL系统启动过程
简单描述一下Linux启动的过程,在这里抛砖引玉,如有错漏之处,望各位网友给予指正,谢谢!
Linux的启动过程,主要包括四个阶段: 阶段一:BIOS 阶段二:引导加载程序Boot Loader 阶段三:内核Kernel 阶段四:/sbin/init和运行级别 ============================================================================ 一、BIOS 1.系统上电开机后,主板上的BIOS运行POST加电自检,检测系统上的关键设备. 2.BIOS根据主板的引导设备配置信息,选择正确的引导设备.(一般是硬盘) 3.BIOS读取引导设备第一个扇区上的信息(也就是MBR,512Bytes),把它装入内存,并将系统引导控制权移交给MBR中的Boot Loader.
二、引导加载程序Boot Loader 引导加载程序被设计为两个阶段 1.stage1:定位、装载并把引导控制权传递给stage2. 2.stage2:第二阶段通常就是引导程序本身,stage2执行GRUB引导程序. 3.GRUB解压并装载内核镜像,装载initrd初始化虚拟磁盘到内存. 4.GRUB把引导控制权传递给内核.
三、内核Kernel 1.初始化系统设备. 2.挂载根分区为ro状态. 3.运行/sbin/init程序,/sbin/init是内核启动的第一个进程,也是今后系统所有进程的父进程,其PID=1.
四、/sbin/init和运行级别 4./sbin/init读取/etc/inittab文件. 5./sbin/init根据/etc/inittab配置信息执行/etc/rc.d/rc.sysinit脚本. 6./etc/rc.d/rc.sysinit对系统进行初始化工作,如图所示 包括设置hostname、启动LVM逻辑卷管理、重新挂载根文件系统为rw状态、挂载其他文件系统…… 7./etc/rc.d/rc.sysinit执行完初始化工作退出脚本,/sbin/init进程继续读取/etc/inittab的内容,从而从相应的run level启动系统. 8.从上图知,INIT进程读取到run level 5,执行/etc/rc.d/rc5.d目录下的脚本.下图为/etc/rc.d/rc5.d目录内容 rc5.d目录里面存放着run level-5需要启动的服务的脚本文件,都是以K或S开头.K表示关闭的服务,S表示启动的服务. 值得注意的是,/etc/rc.d/rcX.d目录里面的脚本文件都是符号链接文件,全部指向/etc/rc.d/init.d目录下的脚本文件 9.init按照rc5.d目录里面脚本的位置顺序逐一启动相应的服务,如图 10.init进程会执行一个脚本文件/etc/rc.d/rc.local(有必要时),这个脚本文件是让用户自定义系统启动后需要执行的工作. 11.系统启动虚拟终端/sbin/mingetty、运行run level-5上的X服务(X Window) 12.至此,Linux系统顺利启动完毕! 本文出自 “Linux技术爱好者” 博客,请务必保留此出处http://haobo.blog.51cto.com/2893071/589479
|
|||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |