Linux启动流程

  1. 载入BIOS的硬件信息与自我检测,找到第一个可开机设备;

  2. 读取并执行第一个开机设备中MBR的boot Loader;
    执行Boot loader主程序
    主程序载入配置文件(包括文件系统定义与主要配置文件grub.cfg)

  3. 根据boot loader载入Kernel,kernel会开始侦测硬件并载入驱动;
    在这一步Kernel(核心文件为/boot/vmlinuz)接管开机流程,以自己的功能重新侦测一边硬件,不一定使用BIOS侦测到的。之后挂载虚拟文件系统(/boot/initramfs),加载开机过程中所需的重要模块。

  4. 硬件驱动成功后,kennel主动调用systemd程序,并以default.target启动。
    systemd负责准备软件执行的环境,包含系统的主机名称,网络设置,语系处理、文件系统格式等。default.target位于/etc/systemd/system/,其中包含启动的目标态(对应老版本的runlevel)与默认启动服务单元集合。

cat /etc/systemd/system/default.target
    #  This file is part of systemd.
    #
    #  systemd is free software; you can redistribute it and/or modify it
    #  under the terms of the GNU Lesser General Public License as published by
    #  the Free Software Foundation; either version 2.1 of the License, or
    #  (at your option) any later version.

    [Unit]
    Description=Multi-User System
    Documentation=man:systemd.special(7)
    Requires=basic.target
    Conflicts=rescue.service rescue.target
    After=basic.target rescue.service rescue.target
    AllowIsolate=yes

可以使用systemctl list-dependencies查看服务启动的服务,实验机结果如下:

systemctl list-dependencies
    default.target
    ● ├─auditd.service
    ● ├─chronyd.service
    ● ├─crond.service
    ● ├─dbus.service
	...
  1. 执行sysinit.target,初始化系统,加载基本的核心驱动,文件系统和驱动等。
  2. 执行basic.target加载更多功能,执行完之后,系统就已经启动完毕。
  3. 执行mutli-user.target载入用户服务,如果目标态为图形界面,则继续加载graphical.target。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值