zoukankan      html  css  js  c++  java
  • CentOS6启动流程

    CentOS6启动流程

    1.加载BIOS的硬件信息,获取第一个启动设备

    在通电之后,CentOS6会进行加电自检(Power On Self Test),这个过程主要是由BIOS完成的。在自检完毕,会检查启动设备。

    2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

    在检测到启动设置之后,会读取第一个可启动设备MBR(Main Boot Record)中grub的启动信息。 主引导扇区,由MBR(主引导记录,占446byte)、磁盘分区表(DPT,占64Byte)和结束标志(占2Byte)三部分构成。在这一过程中就是读取grub中的启动信息。

    3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

        加载grub程序,从而初始化硬件设备、建立内存空间的映射图。为最终调用操作系统内核做好一切准备。

      grub属于Boot Loader中的一种, 其他的loader还有Lilo和spfdisk等。

    4.核心执行init程序,并获取默认的运行信息

    根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。

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

    5.init程序执行/etc/rc.d/rc.sysinit文件

    内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
    其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

    0:关机
    1:单用户模式
    2:默认不支持NFS的多用户模式
    3:多用户模式
    4:保留,未使用
    5:有网络支持有X-Window支持的多用户模式
    6:重新引导系统,即重启

    除了设置运行等级之外,在该脚本中,还做了一下操作:

    (1) 设置主机名
    (2) 设置欢迎信息
    (3) 激活udev和selinux
    (4) 挂载/etc/fstab文件中定义的文件系统
    (5) 检测根文件系统,并以读写方式重新挂载根文件系统
    (6) 设置系统时钟
    (7) 激活swap设备
    (8) 根据/etc/sysctl.conf文件设置内核参数
    (9) 激活lvm及software raid设备
    (10) 加载额外设备的驱动程序
    (11) 清理操作

    6.启动核心的外挂模块

    依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

    7.init执行运行的各个批处理文件(scripts)

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

    8.init执行/etc/rc.d/rc.local

      在一切初始化工作后,执行该脚本。Linux留给用户进行个性化的地方,需要进行初始化的文件可以放在此处。 


    9.执行/bin/login程序,等待用户登录

      在该阶段,用户可以使用用户名和密码登录。

    10.登录之后开始以Shell控制主机

  • 相关阅读:
    [LeetCode] Rotate Image
    [LeetCode] Generate Parentheses
    pandas 使用总结
    ConfigParser 读写配置文件
    Cheat Sheet pyspark RDD(PySpark 速查表)
    python随机生成字符
    grep 命令
    hadoop 日常使用记录
    python 2 计算字符串 余弦相似度
    screen命令
  • 原文地址:https://www.cnblogs.com/vathe/p/6838002.html
Copyright © 2011-2022 走看看