Linux系统启动流程(超详细) 您所在的位置:网站首页 linux系统开机界面 Linux系统启动流程(超详细)

Linux系统启动流程(超详细)

2023-09-30 21:23| 来源: 网络整理| 查看: 265

目录

前言

为什么要了解系统启动流程?

正文

linux开机启动流程图

1. 开机自检 (POST, Power On Self Test)

2. 启动顺序

3、主引导记录 MBR( master boot record)

4、启动管理器 Grub

5、 操作系统

6、 运行级别 runlevel

7、用户登录

三、自己做好的程序怎么开机自启呢?

前言 为什么要了解系统启动流程?

主动让软件开机自启

电脑不能正常启动,排查出错的环节

排查黑客植入木马程序,到底将木马放到了哪里

正文 linux开机启动流程图

1. 开机自检 (POST, Power On Self Test)

电脑通电之后,首先加载BIOS(basic input output system,基本输入输出系统)。而BIOS程序首先检查计算机能否满足运行的基本条件,这个叫做“硬件自检(Power On Self Test)”。

主要检查:主板,CPU,内存,磁盘,网卡,声卡,显卡,鼠标,键盘,显示器等

2. 启动顺序

硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。这是,BIOS需要知道,“下一阶段的启动程序”具体存放在哪个设备里(磁盘,光盘,移动硬盘等)。也就是说,BIOS需要有一个外部存储设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做“启动顺序”(Boot Sequence)

3、主引导记录 MBR( master boot record)

主引导记录只有512个字节,位于0柱面,0磁道,1扇区,放不了太多东西。它的主要作用是,告诉计算机到硬盘的那一个位置去找操作系统

4、启动管理器 Grub

在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的”启动管理器”(boot loader),由用户选择启动哪一个操作系统。

Linux环境中,目前最流行的启动管理器是Grub

在centos7中的启动管理是grub2

[root@fruit boot]# ll 总用量 112548 -rw-r--r--. 1 root root   153591 10月 20 2020 config-3.10.0-1160.el7.x86_64 drwxr-xr-x. 3 root root       17 5月  19 22:06 efi drwxr-xr-x. 2 root root       27 5月  19 22:08 grub drwx------. 5 root root       97 5月  19 22:11 grub2 -rw-------. 1 root root 62118628 5月  19 22:10 initramfs-0-rescue-dfc787c8ebab403c82f14b33d3c1b96c.img -rw-------. 1 root root 21714935 5月  19 22:11 initramfs-3.10.0-1160.el7.x86_64.img -rw-------. 1 root root 13773260 5月  19 22:13 initramfs-3.10.0-1160.el7.x86_64kdump.img -rw-r--r--. 1 root root   320648 10月 20 2020 symvers-3.10.0-1160.el7.x86_64.gz -rw-------. 1 root root  3616707 10月 20 2020 System.map-3.10.0-1160.el7.x86_64 -rwxr-xr-x. 1 root root  6769256 5月  19 22:10 vmlinuz-0-rescue-dfc787c8ebab403c82f14b33d3c1b96c -rwxr-xr-x. 1 root root  6769256 10月 20 2020 vmlinuz-3.10.0-1160.el7.x86_64 [root@fruit boot]# 5、 操作系统

控制权转交给操作系统后,操作系统的内核首先被载入内存。开始运行第一个程序systemd,执行默认target配置文件/etc/systemd/system/default.target

# 可以看出systemd启动用户进程, kthreadd 启动内核进程 ​ [root@fruit default.target.wants]# ps -ef UID         PID   PPID C STIME TTY         TIME CMD root          1      0  0 09:31 ?        00:00:10 /usr/lib/systemd/systemd --switched-root --system --des root          2      0  0 09:31 ?        00:00:00 [kthreadd] root          4      2  0 09:31 ?        00:00:00 [kworker/0:0H] root          6      2  0 09:31 ?        00:00:01 [ksoftirqd/0] root          7      2  0 09:31 ?        00:00:00 [migration/0] centos7/8 里的第一个进程是systemd centos6 的第一个进程是init 6、 运行级别 runlevel [root@localhost test]# runlevel # 查看当前的运行级别 N 3 ​ N 代表最开始进入的模式, 如果是N表示没有进行模式切换 3 5 代表最开始进入运行级别3 , 后面切换到运行级别5 centos 6 中的叫法 0 关机 1 单用户模式 2 多用户模式,不能使用 nfs 3 完全多用户模式 4 保留,没有使用 5 图形界面 6 重启 7、用户登录

登录shell

首先读取/etc/profile配置文件,加载/etc/profile.d/*.sh,再去用户的家目录,读取~/.bash_profile,然后去~/.bashrc,最后读取/etc/bashrc。进行初始环境变量

非登录shell

首先读取~/.bashrc文件,再读取/etc/bashrc

三、自己做好的程序怎么开机自启呢?

放入/etc/rc.local文件中

bash初始化的4个文件里



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有