解析Linux系统启动的引导流程

2016-03-31 15:14 18 1 收藏

下面是个解析Linux系统启动的引导流程教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 服务器 】

解析Linux系统启动的引导流程

   LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.

  使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.

  下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:

2016216120312292.png (500×367)

  下面详细介绍每一步:

  1)第一步firmware固件自检,主要是进行CMOS/BIOS对硬件进行POST加电自检,在物理层次上对硬件进行检测是否正常。例如检查硬盘是否插好等。

  2)第二步读取硬盘中MBR的BootLoader,自启动程序,Linux下常用的自启动程序是GRUB。这一步主要的功能是载入内核。内核存放在/boot目录下

  3)第三步就是载入的内核Kernel的过程,

  主要功能是:1、驱动硬件,Kernel中含有大量驱动程序。2、启动init进程。

  4)init进程,主要是读取/etc/inittab文件,执行缺省运行级别,从而继续引导。需要注意的是init京城的PID恒为1,是所有进程的父进程,而init进程的负景程是0,为内核调度器Kernel scheduler。

  5)/etc/inittab 定义了初始化的操作。

2016216120335483.png (538×238)

  命令主要格式是:id: runlevels : action : process

  其中,如上图红框中所示

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  1、run-levels运行级别有7个,06分别如下:

  0 halt 关机

  1 Single user mode 单用户模式

  2 Multiuser,withoutNFS 多用户模式但不带网络(text模式)

  3 Full multiuser mode 完整功能的多用户模式(text模式)

  4 unused 预留

  5 X11 图形化多用户模式

  6 reboot 重启

  可以根据这7个运行级别来进行切换

  命令为:查看当前运行级别 #runlevel、 切换运行级别 #init[0 |1 |2 |3 |4 |5 |6]

  2、而acion中也有几个比较重要的取值:

  1 initdefault:指定系统缺省启动的运行级别,如上图中标出,通常用于修复,比如我们要进入单用户模式,则可以将其设置为1,不可将默认设置为0或6,否则无法启动.

  2sysinit:系统启动执行process中指定的命令

2016216120358904.png (316×35)

  由inittab文件内容可以看出,没有设置运行级别,即为无论是哪个运行级别,都会执行/etc/rc.d/rc.sysinit

  6)initdefault,如第五步所说到的,主要是读取/etc/inittab中的信息,判断缺省的运行级别是什么。

  7)/etc/rc.d/rc.sysinit

  在inittab文件中运行到第21行,变是启动这个脚本。完成系统服务程序的启动,如系统环境变量的设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。由于是基础服务,因为其run-level设置为空::即任何级别,action设置为sysinit。即该脚本在任何运行级别下都要启动,以完成基础服务的启动

  8)基础服务启动后,会执行/etc/rc.d/rc这个脚本

  加载完基础服务后,就要根据不同的运行级别去启动相对应的下的目录,它的工作原理是先去判断系统的默认运行级别即第6步中的东西,然后再执行相应的rcN.d目录下的服务启动脚本如图

2016216120419054.png (341×144)

  9)执行/etc/rc.d/rcN.d目录下的服务启动脚本

  看下该目录下的内容:

2016216120437630.png (671×247)

  其中S表示要启动的脚本,K表示要关闭的脚本

  数字表示启动顺序,数值小的优先.主要是对一些服务的管理

  在这一步里,需要说明一下/etc/rc.d/init.d这个目录,这个目录里放的脚本是真正的脚本,而rcN.d里放置的都是init.d目录里的软连接,也就是说所有rcN.d里的文件最终都需要来init.d里找真正的脚本

  看一下具体细节:

2016216120456913.png (613×180)
2016216120516144.png (474×272)

  执行到这一步,界面就会提示输入用户名和密码了,也就是说系统已经起来了,输入用户名和密码的过程后面再说,这次的引导流程就结束了

  最后需要说明的是,LINUX的引导流程的思想大致相同,但细节因为版本的问题,在配置文件的名字或者是位置都不尽相同,此次我用的是CentOS版本,而Ubuntu版本是没有inittab文件和grup.conf文件的,所以如果有兴趣,大家可以按照这种思路去探索探索.

  PS:关于GRUB

  GNU GRUB(简称GRUB)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  GNU GRUB的前身为Grand Unified Bootloader。它主要用于类Unix系统;同大多Linux发行版一样,GNU系统也采用GNU GRUB作为它的启动器。Solaris从10 1/06版开始在x86系统上也采用GNU GRUB作为启动器。

  GRUB可动态配置;它在启动时加载配置信息,并允许在启动时修改,如选择不同的内核和initrd。为此目的,GRUB提供了一个简单的类似Bash的命令行界面,它允许用户编写新的启动顺序。

  GRUB非常轻便。它支持多种可执行格式;它除了可适用于支持多启动的操作系统外,还通过链式启动功能支持诸如Windows和OS/2之类的不支持多启动的操作系统。GRUB支持所有的Unix文件系统,也支持Windows适用的FAT和NTFS文件系统,还支持LBA模式。GRUB允许用户查看它支持的文件系统里文件的内容。

  GRUB具有多种用户界面。多数Linux发行版利用GRUB对图形界面的支持,提供了定制的带有背景图案的启动菜单,有时也支持鼠标。通过对GRUB的文字界面的设定,可以通过串口实现远程终端启动。

  GRUB可以从网络上下载操作系统镜像,因此可以支持无盘系统。GRUB支持在启动操作系统前解压它的镜像。

  与其它启动器不同,GRUB可以通过GRUB提示符直接与用户进行交互。载入操作系统前,在GRUB文本模式屏幕下键入c键可以进入GRUB命令行。在没有作业系统或者有作业系统而没有"menu.lst"文件的系统上,同样可以进入GRUB提示符。通过类似bash的命令,GRUB提示符允许用户手工启动任何操作系统。把合适的命令记录在"menu.lst"文件里,可以自动启动一个操作系统。

  GRUB拥有丰富的终端命令,在命令行下使用这些命令,用户可以查看硬盘分区的细节,修改分区设置,临时重新映射磁盘顺序,从任何用户定义的配置文件启动,以及查看GRUB所支持的文件系统上的其它启动器的配置。因此,即便不知道一台电脑上安装了什么,也可以从外部设备启动一个操作系统。

  GRUB采用滚动屏幕选择想要启动的操作系统。通过向"menu.lst"文件中添加相关信息,GRUB可以控制150或者更多的启动选项,在启动时用方向键进行选择。

  通过链式启动,一个启动器可以启动另一个启动器。GRUB通过2到3行的命令就可以从DOS、Windows、Linux、BSD和Solaris系统启动。

  尽管GRUB为类Unix系统进行了编译和打包,但也有供DOS和Windows使用的GRUB。GRUB也可以不附带任何操作系统而作为孤立系统安装。从CD上启动时运用GRUB需要1个文件,而从软盘、硬盘和USB设备上启动时需要2个文件。这些文件可以在任何支持GRUB的Linux CD上找到,用户可以很容易的找到它们。

来源:http://www.tulaoshi.com/n/20160331/2050255.html

延伸阅读
标签: 电脑入门
根据不同的电脑类型,选择热键,直接启动一键U盘装系统工具( 重要提醒:选择热键前,请先插入U盘 ) 组装机主板品牌笔记本品牌台式机主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键华硕主板F8联想笔记本F12联想台式机F12技嘉主板F12宏基笔记本F12惠普台式机F12微星主板F11华硕笔记本ESC宏基台式机F12映泰主板F9惠普笔记本F9戴尔台...
标签: 电脑入门
1,要选择NERO刻录程序中的Nero Burning ROM 2,弹出对话框 3,选择刻录器 同上 4,选择刻录映像文件 5,选择系统镜像 6,进行设置 点击刻录 ok
标签: 电脑入门
1、先来说说系统启动项的命令系统开机命令是在开始运行上运行命令即可打开系统配置的窗口了。如图所示: 2、如何设置一些开机启动项目的话也是通过系统配置的启动项来设置。一般我们电脑的开机启动项目只需要输入法ctfmon程序即可,如果有需要的话可以开启一个360安全卫士,其实的程序比如qq、酷狗等程序图老师小编建议还是在开机启动项关...
标签: windows 操作系统
甲方:我的操作系统是Windows XP,在刚开始使用时,感觉启动速度很快,启动画面中的进度条只要转几圈便可进入到系统桌面中。可是在使用了Windows XP一段时间后,便会看到启动画面中进度条的转动圈数增多了,而进入到桌面的时间也相应地变得较长。我可不打算让时间白白地浪费掉,请问有何妙招能提高Windows XP的启动速度吗? 乙方:关...
标签: 电脑入门
当你的Windows系统运行速度减慢时,减少开机启动程序和后台运行程序未尝不是一个好方法。方法很简单,只需在运行窗口中输入msconfig.exe,点击确定后就会弹出下面的窗口。 但是在实际操作中,这种方法就并不那么试用了。当面对一些程序条目时,普通用户很难判断程序的具体作用,因而可能会出现关闭系统程序的情况。 当然,用户可以借助搜索引...

经验教程

732

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部