一、Linux开机流程:

BIOS:

(Basic Input Output System)基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片 上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息。

MBR: Master Boot Record,主要引导记录区。

Boot Loader:启动引导程序。

二、详细流程

第一步:加载BIOS

打开计算机电源,计算机硬件会自动加载BIOS,读取BIOS内相关硬件信息及进行硬件系统的自检,随后根据BIOS配置找到第一个有引导程序的的设备。

第二步:读取MBR

硬盘上第0磁道第一个扇区被称为MBR,即主引导记录,大小是512字节,存放了预启动信息、分区表信息。系统找到BIOS所指定的硬盘的MBR后,就会将其复制到物理内存中,被复制到物理内存的内容就是Boot Loader(lilo或者grub)。

第三步:启动Boot Loader

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。Boot Loader有若干种,其中Grub、Lilo是常见的Loader。本文以Grub为例讲解,grub功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,解压、展开。

系统读取内存中的grub配置信息(一般为menu.lst或grub.conf),并依照此配置信息来加载指定内核。

第四步:加载内核

grub把系统控制权移交给内核,内核开始探测可识别到的所有硬件设备及尝试挂载根目录以获取其驱动程序。此时就需要首先加载磁盘驱动程序以便读取磁盘,而磁盘驱动程序又保存在磁盘内,这样就会导致linux无法启动。此时需要通过伪文件系统来解决这一问题。

虚拟文件系统 (Initial RAM Disk) 即/boot/initramfs-release.img ,这个文件的特色是,能够通过boot loader 来加载到内存中, 然后这个文件会被解压缩并且在内存当中模拟成一个根目录,且此模拟在内存当中的文件系统能够提供一支可运行的程序,透过该程序来加载启动过程中所最需要的核心模块,通常这些模块就是 U盘, RAID, LVM, SCSI 等文件系统与磁盘的驱动程序。等加载完成后, 会帮助核心重新呼叫 /sbin/init 来开始后续的正常启动流程。

注:RamDisk是辅助性文件,并非必须,取决于内核是否能直接驱动根文件系统所在的设备。

第五步:运行/sbin/init程序,设定linux的运行等级

内核加载完毕后,运行用户空间内第一个应用程序就是/sbin/init,然后读取/etc/inttab文件,依据文件配置设定系统运行等级;

第六步:init进程执行rc.sysinit

设定了运行等级后,Linux系统执行/etc/rc.d/rc.sysinit系统初始化脚本程序。初始化包括:设置主机名、设置欢迎信息、激活Udex和seliux、挂载/etc/fstab文件中定义的所有文件系统、检测根文件系统、设置系统时钟、根据/etc/sysctl.conf文件来设置内核参数、激活LVM及软RAID设备、激活swap设备、加载额外设备的驱动程序、执行清理操作。

第七步:启动内核模块

具体是依据/etc/sysconfig/modules文件目录下的文件来装载内核模块。第八步:执行 run-level 的各个服务启动 (script 方式)

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

第九步:执行/etc/rc.d/rc.local

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

第十步:执行/bin/login程序,进入登录状态

Linux 就会启动终端机或者是 X Window 来等待使用者登陆。

作者:zpgood

原文:https://blog.51cto.com/zhangpenglinux/1760206

end

最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MongoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。只需在「 民工哥技术之路」微信公众号对话框回复关键字:1024 即可获取全部资料。 

精彩文章推荐:


为什么中国开发不出流行的操作系统和编程语言?

华为狼文化被喷,任正非回应:华为没有996,更没有007!

卧槽!牛皮了,头一次见有大佬把TCP三次握手四次挥手解释的这么明白

介绍一款免费好用的可视化数据库管理工具

总结:被MySQL UTF8编码坑的惨痛教训...

历害了!教你自己搭建一个私人网盘..

好文章,朕在看」❤️↓↓↓

ubuntu linux开机启动自动加载ko驱动程序_一文讲透 CentOS 开机流程相关推荐

  1. 一文讲透 CentOS 开机流程

    一.Linux开机流程: BIOS: (Basic Input Output System)基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片 上的程序,保存着计算机最重要的基本输入输出的程 ...

  2. 让Windows系统自动加载SATA驱动程序(转)

    以前在安装Windows的时候老是要借软驱插软盘,遇到软驱软盘坏了就麻烦了,一直都想把驱动做到光盘或者硬盘上并让Windows安装程序自动加载,经过查资料和摸索,得出下面的方法: 安装Windows ...

  3. 让Windows系统自动加载SATA驱动程序

    以前在安装Windows的时候老是要借软驱插软盘,遇到软驱软盘坏了就麻烦了,一直都想把驱动做到光盘或者硬盘上并让Windows安装程序自动加载,经过查资料和摸索,得出下面的方法: 安装Windows ...

  4. pe如何自动加载外置工具_如何自动加载网站的深色模式?

    深色模式时代已经来临 现在有一种新的趋势 - 把东西变黑.过去,你必须决定你的网站的风格(亮或暗)或者必须保存用户自己定义的主题风格. Safari 12.1 ( macOS 10.14.4自带) 增 ...

  5. 如何把抖音粉丝加到微信里?一文讲透其中的秘密

    现在抖音的影响力越来越大,用户也是越来越多:一个流量这么聚集的地方,企业商家怎么可能会放弃这么个好的流量池:纷纷出动,只为在这快"肥地"分的一羮. 认真看完就可以上手实操,绝对的干 ...

  6. Ubuntu开机自动加载驱动模块

    目前我知道有两种方式来实现开机自动加载驱动模块,一种是将驱动模块放到 /lib/modules/uname -r/ 中,然后在修改 /etc 下的 modules 等文件:另一种是编写开启自启脚本,将 ...

  7. linux 自启动iptable_保存iptable规则并开机自动加载

    iptables-save 利用iptables-save命令可以将iptable规则保存到一个持久化存储的目录中,不同的系统保存的目录也有所不同(IPv4): Debian/Ubuntu: ipta ...

  8. ubuntu:自动加载第三方设备驱动

    背景 有时,我们需要让Ubuntu系统加载第三方的内核模块,但是重新编译内核显然太繁琐,因此可以使用某些手段来手动加载或者自动加载这些模块. 本文介绍几种方法,用来设置开机加载这些模块. 方法一 该方 ...

  9. Linux内核模块自动加载机制 .

    标题http://www.osplay.org/modules/article/view.article.php?7 思考 如果想让内核启动过程中自动加载某个模块该怎么做呢?最容易想到的方法就是到/e ...

最新文章

  1. BCH双花成功率极低——零确认交易安全性高达99.9%
  2. Centos系统搭建LAMP
  3. BugKuCTF WEB web2
  4. PHP一个比较完善的树形结构代码
  5. 动态规划(冬令营课堂笔记)
  6. Beats发布Beats Fit Pro耳机 停产Powerbeats等三款旧耳机
  7. 计算机在职研究生网络班,在职研究生网络班是什么意思
  8. 【OpenFOAM】用VS Code调试OpenFOAM
  9. 基于PaddleOCR史上最全车牌号识别实现(二)
  10. 如何准确的定级_等保三级与等保二级
  11. TFS2010安装图解
  12. 【STMT】等价类划分法
  13. python如何写简历_用Python写简历
  14. tensorflow 学习笔记使用CNN做英文文本分类任务
  15. 2021年秋招【凯捷咨询笔试题】
  16. HTTP 常用的方法是什么,各自含义是什么?
  17. thinkpad e470偶尔不识别外接显示器
  18. 回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC
  19. 矩形法求定积分通用函数
  20. 中国青年女科学家奖公布:付巧妹等20人、风云卫星高精度定标与定位技术等5个团队获奖 | 美通社头条...

热门文章

  1. 数据分析师 vs 算法工程师,Python 出身的程序员如何抉择?
  2. 开源字体不香吗?五款 GitHub 上的爆红字体任君选
  3. 微软斥资 260 亿美元收购了 LinkedIn 后却无所作为?
  4. 腾讯回应 QQ 被工信部通报;由微软老兵领导,Facebook 开发新操作系统;Node.js 13.4.0 发布 | 极客头条...
  5. Vim 激荡 30 年发展史
  6. 三次技术转型,程序员的北漂奋斗史
  7. 你们这些程序员,真得每天都在读代码吗?
  8. Java面试必问!2020-08-28(1)
  9. 第 1 章 MybatisPlus 快速入门
  10. linux版本信息i686,Linux下如何查看版本信息