• 热门搜索:
  • 装机系统
  • 雨林木风系统
  • 深度系统
  • 电脑公司系统
  • win7装机版
  • 教程分类
    当前位置:主页 > 教程咨询 > Linux教程

    Linux操作系统启动流程浅析

    来源:装机员┆发布时间:2017-10-12 22:06┆点击:

    装机员为您提供Linux操作系统启动流程浅析的文章咨询供您阅读,如何使用Linux操作系统启动流程浅析的方法对您有帮助也请您举手之劳分享给您身边的人。

      当电源键按下之后,BIOS(Basic nput Output System)就会由主板上的闪存来运行。BIOS程序会把自己解压缩到系统的内存之中,然后读取CMOS(Complementary Metal Oxide Semiconductor)内存储的信息(例如系统时间,启动设备顺序等)来对系统进行配置。同时进行自检(POST:Power-On Self Test)。检测系统的硬件是否存在问题,自检通过之后,BIOS会加载第一启动设备的MBR(Master Boot Record:主引导扇区)中的boot loader程序。

      需要说明的一点是,BIOS加载bootloader是通过硬件的INT 13中断功能来加载的。即,BIOS读取到了磁盘之后,win7装机版,通过INT 13这条通道来读取该磁盘的第一个扇区中的boot loader程序!

      下面是BIOS程序的几张截图:

    Linux操作系统启动流程浅析

      图1.1:BIOS程序的基本配置界面

      

    Linux操作系统启动流程浅析

      图1.2:BIOS程序调整设备启动顺序的界面

    启动Bootloader程序

      Linux下面的Bootloader有多种,比如早期默认使用LILO,还有目前主流的grub。下面以目前Linux系统上面主流的grub来说明一下bootloader主要干了哪些事情?

      Grub启动时会自动读取/boot/grub/grub.conf这个配置文件,然后执行其中的grub命令!图2.1是在CentOS6.5上面的一个grub.conf配置文件!Grub命令为红线框内的部分,它主要分为三个部分:

      

    Linux操作系统启动流程浅析

      图2.1

      1.设置启动的硬盘分区(root命令),传递给这个命令的参数是分区,这个命令会去分析并挂载这个分区,然后读取出其中的/boot文件夹下面的内容。比如图2.2所示,执行了命令之后,就能够读取出boot文件夹下面的内容了!

      

    Linux操作系统启动流程浅析

      图2.2

      2.选择引导的内核文件,并设置好内核参数(kernel命令)

      3.加载initrd文件,设置虚拟文件系统。(initrd命令)

      需要特别说明的是这个initrd文件,这个其实是一个虚拟文件系统(Initial RAM Disk)。在Linux系统中,有些磁盘的驱动程序并没有编译在内核中,而是被打包成了模块存放在了/lib/modules路径下面,而当内核启动了之后就需要加载磁盘的驱动程序。可是/lib/modules还没有被挂载,这时就产生矛盾了!为了解决这个矛盾,就产生了虚拟文件系统的这个概念。我们可以讲initrd文件加载到内存中(为了担心影响到磁盘上的文件系统,此时根路径的挂载是以只读的方式来挂载的),虚拟出一个根文件系统出来,然后读取虚拟根文件系统中的磁盘驱动程序,然后再从新挂载真正的根路径。

      如图2.3所示,这些文件就是initrd文件所解压出来的内容。

       

    Linux操作系统启动流程浅析

      图2.3

    加载系统内核与硬件驱动程序

      Grub程序运行完上面三个命令之后,内核文件(vmlinuz-$(uname -r))就会被解压到了内存之中开始运行了!此时,内核会自己再来从新检测一遍硬件并加载驱动程序!检查完成之后,内核就会调用Init程序,创建系统的第一个进程!

    Init进程进行系统的初始化

      Init程序启动之后,会首先去读取/etc/inittab这个文件来获取操作系统的Run Level(运行级别)。什么是运行级别呢,Linux下面系统根据有无网络和X Window来将

      系统分为了七个运行级别。它们的内容如图3.1所示:

      

    Linux操作系统启动流程浅析

      图3.1

      这是在Linux的/etc/inittab文件中关于这其中模式的说明。

      模式0代表了关机状态,模式1代表了单用户模式(维护模式),模式2代表了多用户的命令行模式,但是并没有网络。模式3代表了包含网络的多用户的命令行模式。模式4是系统保留的功能。模式5代表了图形界面模式。模式6代表了系统重启的状态。

      对应于每个运行级别,/etc路径下面分别设置的不同的路径,如图3.2所示:

      

      图3.2

      系统运行某个级别,就会去运行相应路径(/etc/rc[运行级别].d)内的脚本文件。这里那个rc代表的是run command,即开始时要运行的命令,那个.d代表directory,代表的是路径的意思!

      Inittab文件中出了能够设置系统的启动级别外,还有一些其他的功能,如图3.3所示:

      

    Linux操作系统启动流程浅析

      图3.3

      这个是在CentOS6.5上面inittab文件中关于其他配置的说明。

      总之,Init程序在获取完了系统的运行等级之后,会继续执行下面这几个功能:

      对系统进行初始化(执行/etc/init/rcS.conf这个脚本文件或者通过/etc/init/rc.conf来运行一些自定义的运行等级程序)

      加载系统服务项(运行/etc/rc[运行等级].d/中的脚本文件)

      设置好Ctrl + Alt + Del键的功能

      运行mingetty来设置好六个相应的终端机

    运行终端机并接受用户登陆
    以上就是装机员给大家介绍的如何使用Linux操作系统启动流程浅析的方法了,如何使用Linux操作系统启动流程浅析的方法到这里也全部结束了相信大家对如何使用Linux操作系统启动流程浅析的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击装机员系统官网吧。

    本文来自装机员www.zhuangjiyuan.com如需转载请注明!

    Tag标签| RSS订阅 | 网站地图
    装机员系统之家提供win7装机版xp系统下载win7系统下载、最新Windows10系统下载,专为装机修机员奉上最好的软件、系统、U盘pe、程等平台
    请勿发布违反国家法律法规的内容,会员观点不代表本站立场.本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,
    否则后果自负,请支持购买微软正版软件! 如侵犯到您的权益,请及时通知我们,我们会及时处理。 粤ICP备15116662号