当前位置: 首页 > news >正文

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)

相关文章:

  • 为何数据仓库需要“分层次”?
  • 常见排序算法,快排,希尔,归并,堆排
  • 免费插件集-illustrator插件-Ai插件-文本对象合并
  • Python爬虫要掌握哪些东西
  • 《手把手教你》系列练习篇之12-python+ selenium自动化测试(详细教程)
  • pottery,一个超酷的 Python 库!
  • 足球俱乐部管理系统的设计
  • 【TS】进阶
  • 19、Go Gin框架集成Swagger
  • 解决 iOS 端小程序「saveVideoToPhotosAlbum:fail invalid video」问题
  • 机器学习-支持向量机
  • web刷题记录(4)
  • 集成学习笔记
  • Python-GEE遥感云大数据分析、管理与可视化及多领域案例教程
  • 2020年09月C语言二级真题
  • 收藏网友的 源程序下载网
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • ES2017异步函数现已正式可用
  • HTML中设置input等文本框为不可操作
  • Javascript Math对象和Date对象常用方法详解
  • Redux 中间件分析
  • Spring-boot 启动时碰到的错误
  • supervisor 永不挂掉的进程 安装以及使用
  • vue.js框架原理浅析
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 对JS继承的一点思考
  • ------- 计算机网络基础
  • 简析gRPC client 连接管理
  • 普通函数和构造函数的区别
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 实习面试笔记
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • No resource identifier found for attribute,RxJava之zip操作符
  • 带你开发类似Pokemon Go的AR游戏
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #前后端分离# 头条发布系统
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (2)MFC+openGL单文档框架glFrame
  • (9)STL算法之逆转旋转
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (day 12)JavaScript学习笔记(数组3)
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (正则)提取页面里的img标签
  • .aanva
  • .naturalWidth 和naturalHeight属性,
  • .NET Core 通过 Ef Core 操作 Mysql
  • .Net Core和.Net Standard直观理解
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Micro Framework 4.2 beta 源码探析