linux系统启动流程

按下系统的电源开关,过一会就可以看到Linux的登录界面了。

你是否曾经想过,从按下电源开关到登录界面出现,这后面到底发生了什么?


linux系统启动流程

Linux 系统在启动过程中,首先是固件(PC 上大多是 CMOS/BIOS)的物理检测,诸如检测系统的显卡、CPU 和硬盘等,可从系统按下电源后看到此检测信息;检测无问题,将读取硬盘的MBR(主引导记录)中的自举程序,Linux 中常用的自举程序GRUB。自举程序 GRUB 在系统启动期间只有一个作用,就是载入内核,内核在引导期间有两个主要的作用,一个是驱动系统硬件,另一个将启动系统进程 init;init 进程将读取其配置文件/etc/inittab 完成后续所有的引导。

linux系统启动流程
整个过程基本可以分为7个步骤:POST–>BIOS–>MBR(GRUB)–>Kernel–>Init–>Runlevel。下面会详细说明每个过程的作用。

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

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2022/10/06/linux%e7%b3%bb%e7%bb%9f%e5%90%af%e5%8a%a8%e6%b5%81%e7%a8%8b/

(0)
AIRFAIRF
上一篇 2022年10月5日
下一篇 2022年10月7日

相关推荐

  • VMware NAT模式将虚拟机IP设置为固定IP

    简介 第一种方式:使用DHCP协议自动获取;每次启动虚拟机都需要把网口UP一下,IP可能会变第二种方式:推荐使用这种,因为以后工作中需要让服务器具有固定IP,才能访问到,要是一直变…

    2023年9月15日
  • 服务器IO读写/下载测速脚本SuperBench

    前言 有的朋友想测试一下自己的服务器硬盘读写速度及各地到自己服务器的网速,所以就诞生了这款脚本SuperBench,这款脚本原作者已停止更新,此脚本为修复版,支持Centos8 介…

    Linux 2022年12月2日
  • UNIX系列之AIX克隆系统盘

    前景提示: 未曾有Nim环境,且网络环境原因无法使用Nim安装,故采取使用克隆盘的方式进行安装 首先使用光盘正常安装一台机器,并按照基线文档更新 完成后从其他机器拔新盘并插入,插入…

    C_C++_C# 2021年11月21日
  • Linux系统ssh连接无响应

    一.问题描述 某集群数据节点服务器频繁无法连接,服务器间出现可ping通但ssh无法连接的情况,使用带外地址登录后远程控制也无法显示正常界面,重启后会短暂恢复。 二.排查问题 重启…

    Linux 2021年11月21日
  • Python自动化Cc压测攻击脚本V2

    仅供压测自己服务器使用,不得用于非法攻击 CCATK-V1 使用socks4 / 5代理攻击http服务器的脚本。 删除了混合代理洪水 新特性: 快速套接字重用 改进的CC模式 随…

    2023年8月31日
  • 【Linux通用】Centos系列跳过首次登陆新建用户

    前言 在安装系统后,登录的时候总是让新建一个普通用户,很是烦人,于是想办法解决一下   方法一 在CentOS上,图形化登录(如GNOME)通常要求您创建一个用户来登录。…

    2023年6月21日
  • 什么是 Linux inode?用途是什么?

    1. 写在前面 Linux inode(index node),自 20 世纪 70 年代末推出第一个 UNIX 文件系统以来就一直存在。90 年代 Linux 引入了相同的概念,…

    2024年2月1日
  • 宝塔面板搭配雷池WAF防火墙实战

    背景 因近期总是受到CC攻击,所以就找到了这款免费WAF 雷池是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步…

    Linux 2023年8月29日
  • Linux系统华为昇腾910B NPU驱动安装教程

    安装驱动和固件下载链接 https://www.hiascend.com/hardware/firmware-drivers/community?product=4&mod…

    Linux 2025年2月14日
  • 探索与筑梦:我的博客网站进化传奇

    引言 在这片浩渺的数字宇宙里,每一个网站都是一个独特的星球,闪烁着创造者梦想的光芒。这不仅是一部技术探险的编年史,更是一段用热爱与坚韧书写的心灵之旅。让我们一同回溯,从一张空白的H…

    2024年6月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注