目录

前言

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

正文

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 里的第一个进程是systemdcentos6 的第一个进程是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个文件里

Linux系统启动流程(超详细)相关推荐

  1. Linux 系统启动流程及其介绍

    熟悉Linux系统启动流程可以更好的排除Linux系统在启动的过程中所遇到的错误,下面介绍Linux系统在启动过程. 开机,BIOS自检:检测外置设备,目的是为了把外围设备的信息提供给操作系统使用 寻 ...

  2. 图解Linux系统启动流程

    废话不多说,先上图 说明1:上图是Linux系统启动时的详细流程,其中黑色部分为主流程分支,蓝色部分为详细流程分支,绿色部分是注释部分.大家可点击查看大图. 说明2:增加了kernel和initrd间 ...

  3. Linux系统启动流程(4)制作自定义linux之一

    Linux系统启动流程(4)制作自定义linux之一 平时使用的服务器类型的linux系统一般都会装载各种软件与服务,而在某些情况下,并不能一直直接使用公司管理的系统,一是可能会出现故障,二是在处理一 ...

  4. arm linux系统启动流程

    ===================================================== arm linux系统启动相关文章列表: arm linux系统启动流程 http://bl ...

  5. linux 系统重启过程,linux 系统启动流程

    linux系统启动流程可以简单总结为以下几步 1)开机BIOS自检 2)读取MBR,进行MBR引导 3)启动bootloader 4)加载内核kernel 5)启动init进程,依据inittab文件 ...

  6. linux 打开设备 流程,Linux系统启动流程

    1.linux系统启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分.负责完成对CPU.主板.内存.硬盘子系统.显示 ...

  7. Arm linux系统启动流程简介

    文章目录 介绍 一.Bootloader 1.总体流程 二.Linux内核 1.总体流程 2.具体流程 总结 介绍 Arm Linux 系统启动流程可分为四个部分: 1.引导加载程序(bootload ...

  8. linux系统启动流程详解

    系统启动流程(CentOS6) Post加电自检: 开机检查cpu.内存.磁盘等是否存在 Boot Sequence: BIOS:Basic Input and Output System 按照BIO ...

  9. linux系统启动流程及常见问题的解决

    一.前言 计算机开机是一个神秘的过程.我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面.然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一 ...

最新文章

  1. SQLite入门与分析(二)---设计与概念
  2. JQ实现三个Select下拉框互斥
  3. adb linux 权限更改,使用命令chmod修改android文件权限
  4. 在企业内部使用openssl创建私有CA
  5. 数学公式、可视化图齐齐上阵,神经网络如何一步步走向最优化「看得见」!...
  6. puts遇到空格无法输出_ACM输出超限|puts与printf
  7. 【正则表达式】sql语句去掉注释代码
  8. 抖音为什么能让人上瘾?
  9. [Ubuntu] 查看内核和版本号
  10. medit 和 .mesh 文件
  11. Debian完全卸载清理MySQL服务器
  12. java模拟浏览器请求HttpUtils,可秒杀京东优惠券
  13. js html方法的区别吗,jquery append()方法与html()方法的区别及使用介绍
  14. 【HikariCP】HikariCP连接时间设置和连接数设置
  15. 我男友是个学霸,你们输给DOTA,我输给代码……
  16. wordcloud:利用fontawesome字体绘制图标词云图
  17. Qt之预览WPS的word文件
  18. FXS,FXO,EM区别
  19. 线性插值(双线性)(三线性)
  20. uniapp使用u-collapse的优化策略

热门文章

  1. IP(静态综合实验)
  2. 第二届“强国青年科学家”获奖者均有海外经历
  3. ThinkPHP6.0静态资源模板标签的使用
  4. 出纳通支票大小写不转换;或小写金额处显示全部为0;或者预置数据或票据查询等模块点击均没有反应如何修正?...
  5. webis个人主页设计_个人网页(个人主页)设计论文
  6. Oracle数据库第二课——使用PL/SQL进行初步编程,了解PL/SQL的相关知识
  7. VL02N、VL09交货单相关增强
  8. 20220726.学习记录
  9. 微博相互关注互粉mysql表实现_相互关注互粉mysql实现
  10. [Andriod]Andriod之HelloWorld