美文网首页
linux系统启动流程

linux系统启动流程

作者: 与诗小睡 | 来源:发表于2021-02-23 14:25 被阅读0次

    启动流程:

    1 . 加载BIOS的硬件信息与进行自我测试,并取得启动设备(如硬盘、光盘、闪存)

    2 . 读取并执行启动设备内MBR的boot loader(如grub等)

    3 . 依据boot loader的设定加载kernel,kernel开始侦测硬件并加在驱动程序

    4 . 硬件驱动成功后,kernel会主动呼叫init程序,而init会取得run-level信息

    5 . init执行/etc/init.d/rc脚本来准备软件执行的工作环境(如网络、时区等)

    6 . init执行run-level的各个服务之启动(scipt方式)

    7 . init执行/etc/rc.d/rc.local文件

    8 . init执行终端机启动login程序,等待用户登录

    boot loader

    1 每个硬盘的MBR只有一个

    2 每个文件系统(filesystem,或者是partition)都会保留一块启动扇区(boot sector)

    3 每个操作系统默认会安装boot loader到他自己的文件系统的boot sector中

    4 boot loader可以安装在MBR中,boot loader也可以安装在boot sector中

    5 boot loader可以将管理权转交给其他的boot loader

    init初始程序及其配置文件/etc/inittab

    1. /sbin/init最主要的功能就是准备软件执行的环境,包括系统主机名、网络设定、语系处理、文件系统格式即其他服务的启动

    2. /etc/inittab是/sbin/init的配置文件,此配置文件类似script,需要一步一步执行

    init处理流程:

    image.png

    步骤解释:

    1 上表第2步调用rsS其实是调用/etc/init.d/rc S,

    上表第3步也是同样调用/etc/init.d/rc 2

    2 查看/etc/init.d/rc脚本,此脚本根据参数runlevel调用相应runlevel的脚本

    相应runlevel的脚本的路径为/etc/rc$runlevel.d/

    3 /etc/rc$runlevel.d/路径下脚本被依次执行,启动或关闭相应的服务

    /etc/rc$runlevel.d/S* 需要开启的服务

    /etc/rc$runlevel.d/K* 需要关闭的服务

    4 /etc/init.d/rc.local脚本在/etc/rc$runlevel.d/路径下最后执行

    /etc/init.d/rc.local脚本为用户自定义系统启动脚本

    etc/inittab主要语法:

    1 id。最多4个字符,代表init的主要工作,只是简单说明

    2 runlevel。代表该初始化动作在哪些runlevel下运行

    3 action。代表初始化的特别动作

    4 process。代表需要进行的命令,通常是一些script

    image.png

    相关文章

      网友评论

          本文标题:linux系统启动流程

          本文链接:https://www.haomeiwen.com/subject/ohvrfltx.html