Linux系统启动流程

芝士年糕
• 阅读 708

为什么要了解系统启动流程? 主动让软件开机自启 电脑不能正常启动,排查出错的环节 排查黑客植入木马程序,到底将木马放到了哪里 正文 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 ``` language [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
``` language
  # 可以看出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个文件里 强烈建议整个服务器搭建Linux耍耍,还可以搭网站,我用的是3A的服务器

点赞
收藏
评论区
推荐文章
GoCoding GoCoding
3年前
Supervisor 开始
Supervisor是Linux/Unix操作系统上的进程管理工具。本文介绍了于Ubuntu18上如何使用Supervisor开机启动、保活守护自己的服务进程。安装建议系统方式安装,可开机启动。bashsudoaptinstallsupervisorySystemd查看服务状态:bash$sudosystemctlstatu
Irene181 Irene181
3年前
使用Python一键删除全盘文件自动关机并留后门
/1前言/今天我们要做的案例是怎样利用Python做一个hacker软件。众所周知,一般的Hacker对于黑操作系统一般常用手法莫过于发送木马客户端,修改系统注册表。组策略,获得开机启动权限,入侵电脑然后对电脑的文件进行修改来达到不可告人的目的。今天我们要讲的就是最基础的,怎样获得开机启动,先给大家讲最基础添加文件到系统启动项的文件夹中,当然更加高端点也可
胖大海 胖大海
2年前
Linux系统启动流程
开机启动流程图1\.开机自检电脑通电之后,首先加载BIOS(basicinputoutputsystem,基本输入输出系统)。而BIOS程序首先检查计算机能否满足运行的基本条件,这个叫做“硬件自检(PowerOnSelfTest)”。主要检查:主板,CPU,内存,磁盘,网卡,声卡,显卡,鼠标,键盘,显示器等2\.启动顺序硬件自检完成后,B
Stella981 Stella981
3年前
Dell服务器安装
Dell服务器安装设备系统的配置开机键入F2进入系统启动设置!(https://oscimg.oschina.net/oscnet/up0fda47cb21e93f7978cafb78bece67ef67e.png)进入SystemBIOS,!(https://oscimg.oschina.ne
Stella981 Stella981
3年前
Linux系统开机启动流程(简述)
1)开机自检,加载BIOS信息    CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等2)MBR引导    硬盘的0柱面0磁道1扇区被称为MBR(MasterBootReord)主引导记录,大小为512字节,里面存放预启动信息、分区表信息及分区标志等;分为两部分:第
Stella981 Stella981
3年前
Linux下inittab文件详解
/etc/inittab文件详解Linux系统的启动过程为:加电自检根据BIOS中的设置从指定的设备启动找到设备MBR中的bootloader引导启动系统启动kernel启动init进程我们看到,Linux系统启动的最后是启动init进程,而init进程是怎么工作的呢?init进程就是根据/etc/inittab
Stella981 Stella981
3年前
Linux启动过程
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中
Stella981 Stella981
3年前
C#客户端(WinForm)开机自动启动实现
///<summary///修改程序在注册表中的键值///</summary///<paramname"isAuto"true:开机启动,false:不开机自启</paramprivatevoid
Stella981 Stella981
3年前
Linux下微服务系统开机自启(非docker版)——解决异常、常规断电后等待人工运维问题
解决的问题:异常/常规断电或者操作系统重启后,研发的系统需要等待人工启动服务,否则无法使用Linux下微服务系统开机自启实现方式是将自定义的sh脚本命令加入开机启动项实现,这样有助于操作系统重启时不需要人为启动相关服务,实现无人值守下的异常重启,实现步骤分为三步:编写子脚本,用于启动各类jar包、war包、软件等编写启动脚本
如来佛祖 如来佛祖
4个月前
李术铜-从0手写自己的Linux X86操作系统|完结无密
李术铜从0手写自己的LinuxX86操作系统|完结无密Linuxx86操作系统启动流程详解概述Linuxx86操作系统的启动流程是一个复杂的过程,涉及硬件自检、BIOS引导、加载引导装载程序、内核加载、文件系统挂载等一系列步骤。这个过程对于理解Linux操