Linux启动过程的示例剖析

这篇文章主要为你们展示了“Linux启动过程的示例剖析”,内容简而易懂,条理清晰,希望还能帮助你们解决疑问,下边让小编率领你们一起研究并学习一下“Linux启动过程的示例剖析”这篇文章吧。

Linux启动过程详尽介绍

启动第一步--加载BIOS

当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是这么的重要,以至于计算机必须在最开始就找到它。这是由于BIOS中包含了CPU的相关信息、设备启动次序信息、硬盘信息、内存信息、时钟信息、PnP特点等等。在此以后,计算机心中就有谱了,晓得应当去读取那个硬件设备了。

启动第二步--读取MBR

Linux启动过程详解_BIOS到内核的详细步骤_linux开机启动流程

众所周知,硬碟上第0扇区第一个磁道被称为MBR,也就是MasterBootRecord,即主引导记录,它的大小是512字节,别看地方不大,可上面却储存了预启动信息、分区表信息。

系统找到BIOS所指定的硬碟的MBR后,都会将其复制到0×7c00地址所在的数学显存中。虽然被复制到化学显存的内容就是BootLoader,而具体到你的笔记本,那就是lilo或则grub了。

启动第三步--BootLoader

BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立显存空间的映射图,因而将系统的软硬件环境带到一个合适的状态,便于为最终调用操作系统内核做好一切打算。

BootLoader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

我们以Grub为例来讲解吧,虽然用lilo和spfdisk的人并不多。

系统读取显存中的grub配置信息(通常为menu.lst或grub.lst),并根据此配置信息来启动不同的操作系统。

启动第四步--加载内核

linux开机启动流程_BIOS到内核的详细步骤_Linux启动过程详解

按照grub设定的内核映像所在路径linux操作系统论文,系统读取显存映像,并进行解压缩操作。此时,屏幕通常会输出“UncompressingLinux”的提示。当解压缩内核完成后,屏幕输出“OK,bootingthekernel”。

系统将解压后的内核放置在显存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各类设备,完成Linux核心环境的构建。至此,Linux内核早已构建上去了,基于Linux的程序应当可以正常运行了。

启动第五步--用户层init根据inittab文件来设定运行等级

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并根据此文件来进行初始化工作。

虽然/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定方式是“:id:5:initdefault:”,这就表明Linux须要运行在等级5上。Linux的运行等级设定如下:

0:死机

1:单用户模式

2:无网路支持的多用户模式

Linux启动过程详解_linux开机启动流程_BIOS到内核的详细步骤

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文件,上面的脚本够你看几天的

启动第七步--启动内核模块

Linux启动过程详解_linux开机启动流程_BIOS到内核的详细步骤

具体是根据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

启动第八步--执行不同运行级别的脚本程序

按照运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

启动第九步--执行/etc/rc.d/rc.local

你若果打开了此文件,上面有一句话,读过以后linux系统官网,你都会对此命令的作用一目了然:

#Thisscriptwillbeexecuted*after*alltheotherinitscripts.

#Youcanputyourowninitializationstuffinhereifyoudon't

#wanttodothefullSysVstyleinitstuff.

linux开机启动流程_BIOS到内核的详细步骤_Linux启动过程详解

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放在这儿。

启动第十步--执行/bin/login程序,步入登入状态

此时,系统早已步入到了等待用户输入username和password的时侯了,你已然可以用自己的账号登录系统了。:)

===

漫长的启动过程结束了,一切都清净了…

虽然在这背后linux开机启动流程,还有着愈加复杂的底层函数调用,等待着你去研究…本文即使抛砖引玉了:)

以上是“Linux启动过程的示例剖析”这篇文章的所有内容,谢谢诸位的阅读!相信你们都有了一定的了解,希望分享的内容对你们有所帮助linux开机启动流程,假如还想学习更多知识,欢迎关注亿速云行业资讯频道!

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复