Ubuntu的启动过程

尽管通常情况下Ubuntu的启动并不需要用户过多地参与,但是Ubuntu系统的启动本身是一个非常复杂的过程。在这个过程中,有硬件的检测、系统内核的准备以及各种系统服务的启动等。作为系统管理员,需要深入了解其中所经历的阶段,才能在系统无法启动时准备判断问题所在。

按照Linux系统从打开电源到进入系统的顺序,整个启动过程可分为以下阶段。

  • BIOS阶段
  • 引导程序阶段
  • 内核阶段
  • 进入系统

本节将重点介绍BIOS阶段,其他阶段后续分别在其他博文介绍。

7.1.1 BIOS阶段

BIOS又称为基本输入输出系统,是计算机中非常重要的一个软件系统。BIOS有着悠久的历史,诞生于1975年。在PC引导的过程中,BIOS担负着初始化硬件、检测硬件功能以及引导操作系统的责任。

即使计算机断电之后,BIOS也不会丢失。早期的BIOS存储在主板上的只读存储器中,用户不可以修改其内容。随着BIOS功能越来越多以及硬件更新的速度越来越快,BIOS也需要不断地更新以及支持新的硬件。所以,BIOS的存储设备改为EEPROM或者闪存,这样方便用户更新BIOS。

BIOS是用户打开计算机后运行的第一个程序。当用户按下计算机的电源按钮,接通电源,存储在闪存等介质上的BIOS就开始执行。首先完成芯片组和内存的初始化,然后把自身加载到计算机的主存中,继续完成下面三个任务:

(1)加电自检。加电自检是指计算机刚接通电源时对硬件部分的检测,主要目的是检查计算机的硬件是否良好。检查的硬件主要包括CPU、内存、主板、CMOS存储器、串并口、显卡、磁盘以及键盘等,一旦发现问题,系统将给出相应的提示信息或者声音报警。对于严重故障,则停止启动;对于非严重故障,则给出提示等待用户处理。

(2)初始化。初始化包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是读取CMOS中保存的配置信息,并和实际硬件设置进行比较,如果不符合,就会影响系统的启动。

(3)加载引导程序。当BIOS检查到硬件正常并且与CMOS中的设置相符后,按照CMOS中对启动设备的设置顺序检测可用的启动设备,例如硬盘或者U盘等。BIOS将相应启动设备的第一个扇区,也就是主引导记录扇区读入内存,根据主引导记录中的引导代码启动引导程序。

本文节选自《Ubuntu Linux系统管理与运维实战》,获出版社和作者授权发布。

《Ubuntu Linux系统管理与运维实战(Linux技术丛书)》(张春晓,肖志健)【摘要 书评 试读】- 京东图书 (jd.com)

相关推荐
mounter62510 分钟前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
动恰客流统计14 分钟前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
名字还没想好☜29 分钟前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
啊啊啊迈 旋棍3 小时前
【译】TypeScript 7 测试版已在 Visual Studio 2026 18.6 Insiders 3 中默认启用
ubuntu·typescript·visual studio
ziguo11223 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤3 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆4 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
△曉風殘月〆5 小时前
如何在Linux中安装Qt开发环境
linux·运维·qt
不会就选b6 小时前
Linux之文件--fd,重定向
linux
三十岁老牛再出发6 小时前
07.26每日总结
linux·c语言·mysql