Linux启动过程的示例剖析
这篇文章主要为你们展示了“Linux启动过程的示例剖析”,内容简而易懂,条理清晰,希望还能帮助你们解决疑问,下边让小编率领你们一起研究并学习一下“Linux启动过程的示例剖析”这篇文章吧。
Linux启动过程详尽介绍
启动第一步--加载BIOS
当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是这么的重要,以至于计算机必须在最开始就找到它。这是由于BIOS中包含了CPU的相关信息、设备启动次序信息、硬盘信息、内存信息、时钟信息、PnP特点等等。在此以后,计算机心中就有谱了,晓得应当去读取那个硬件设备了。
启动第二步--读取MBR

众所周知,硬碟上第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),并根据此配置信息来启动不同的操作系统。
启动第四步--加载内核

按照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:无网路支持的多用户模式

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
你若果打开了此文件,上面有一句话,读过以后linux系统官网,你都会对此命令的作用一目了然:
#Thisscriptwillbeexecuted*after*alltheotherinitscripts.
#Youcanputyourowninitializationstuffinhereifyoudon't
#wanttodothefullSysVstyleinitstuff.

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放在这儿。
启动第十步--执行/bin/login程序,步入登入状态
此时,系统早已步入到了等待用户输入username和password的时侯了,你已然可以用自己的账号登录系统了。:)
===
漫长的启动过程结束了,一切都清净了…
虽然在这背后linux开机启动流程,还有着愈加复杂的底层函数调用,等待着你去研究…本文即使抛砖引玉了:)
以上是“Linux启动过程的示例剖析”这篇文章的所有内容,谢谢诸位的阅读!相信你们都有了一定的了解,希望分享的内容对你们有所帮助linux开机启动流程,假如还想学习更多知识,欢迎关注亿速云行业资讯频道!
