Linux系统启动流程(超详细)
目录
前言
为什么要了解系统启动流程?
正文
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系统启动流程(超详细)相关推荐
- Linux 系统启动流程及其介绍
熟悉Linux系统启动流程可以更好的排除Linux系统在启动的过程中所遇到的错误,下面介绍Linux系统在启动过程. 开机,BIOS自检:检测外置设备,目的是为了把外围设备的信息提供给操作系统使用 寻 ...
- 图解Linux系统启动流程
废话不多说,先上图 说明1:上图是Linux系统启动时的详细流程,其中黑色部分为主流程分支,蓝色部分为详细流程分支,绿色部分是注释部分.大家可点击查看大图. 说明2:增加了kernel和initrd间 ...
- Linux系统启动流程(4)制作自定义linux之一
Linux系统启动流程(4)制作自定义linux之一 平时使用的服务器类型的linux系统一般都会装载各种软件与服务,而在某些情况下,并不能一直直接使用公司管理的系统,一是可能会出现故障,二是在处理一 ...
- arm linux系统启动流程
===================================================== arm linux系统启动相关文章列表: arm linux系统启动流程 http://bl ...
- linux 系统重启过程,linux 系统启动流程
linux系统启动流程可以简单总结为以下几步 1)开机BIOS自检 2)读取MBR,进行MBR引导 3)启动bootloader 4)加载内核kernel 5)启动init进程,依据inittab文件 ...
- linux 打开设备 流程,Linux系统启动流程
1.linux系统启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分.负责完成对CPU.主板.内存.硬盘子系统.显示 ...
- Arm linux系统启动流程简介
文章目录 介绍 一.Bootloader 1.总体流程 二.Linux内核 1.总体流程 2.具体流程 总结 介绍 Arm Linux 系统启动流程可分为四个部分: 1.引导加载程序(bootload ...
- linux系统启动流程详解
系统启动流程(CentOS6) Post加电自检: 开机检查cpu.内存.磁盘等是否存在 Boot Sequence: BIOS:Basic Input and Output System 按照BIO ...
- linux系统启动流程及常见问题的解决
一.前言 计算机开机是一个神秘的过程.我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面.然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一 ...
最新文章
- SQLite入门与分析(二)---设计与概念
- JQ实现三个Select下拉框互斥
- adb linux 权限更改,使用命令chmod修改android文件权限
- 在企业内部使用openssl创建私有CA
- 数学公式、可视化图齐齐上阵,神经网络如何一步步走向最优化「看得见」!...
- puts遇到空格无法输出_ACM输出超限|puts与printf
- 【正则表达式】sql语句去掉注释代码
- 抖音为什么能让人上瘾?
- [Ubuntu] 查看内核和版本号
- medit 和 .mesh 文件
- Debian完全卸载清理MySQL服务器
- java模拟浏览器请求HttpUtils,可秒杀京东优惠券
- js html方法的区别吗,jquery append()方法与html()方法的区别及使用介绍
- 【HikariCP】HikariCP连接时间设置和连接数设置
- 我男友是个学霸,你们输给DOTA,我输给代码……
- wordcloud:利用fontawesome字体绘制图标词云图
- Qt之预览WPS的word文件
- FXS,FXO,EM区别
- 线性插值(双线性)(三线性)
- uniapp使用u-collapse的优化策略
热门文章
- IP(静态综合实验)
- 第二届“强国青年科学家”获奖者均有海外经历
- ThinkPHP6.0静态资源模板标签的使用
- 出纳通支票大小写不转换;或小写金额处显示全部为0;或者预置数据或票据查询等模块点击均没有反应如何修正?...
- webis个人主页设计_个人网页(个人主页)设计论文
- Oracle数据库第二课——使用PL/SQL进行初步编程,了解PL/SQL的相关知识
- VL02N、VL09交货单相关增强
- 20220726.学习记录
- 微博相互关注互粉mysql表实现_相互关注互粉mysql实现
- [Andriod]Andriod之HelloWorld