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

22、Linux系统启动与模块管理全解析

Linux系统启动与模块管理全解析

一、系统启动流程

1.1 BIOS阶段

计算机开机后,由于RAM中包含随机数据且没有操作系统运行,此时计算机几乎无法使用。为了启动,一个特殊的硬件电路会拉高CPU的RESET引脚的逻辑值。RESET被触发后,处理器的一些寄存器(包括cs和eip)会被设置为固定值,然后执行物理地址0xfffffff0处的代码。这个地址被硬件映射到一个通常称为只读存储器(ROM)的只读、持久存储芯片上。存储在ROM中的一组程序传统上被称为基本输入/输出系统(BIOS),因为它包含了一些由包括微软的MS - DOS在内的操作系统使用的中断驱动的低级程序,用于处理构成计算机的硬件设备。

Linux在初始化后不使用BIOS,而是为计算机上的每个硬件设备提供自己的设备驱动程序。实际上,BIOS程序必须在实模式下执行,而内核在保护模式下执行,所以即使这样做有好处,它们也不能共享功能。

BIOS使用实模式地址,因为这是计算机开机时唯一可用的地址。实模式地址由段(seg)和偏移量(off)组成,对应的物理地址由seg * 16 + off给出。因此,CPU寻址电路在将逻辑地址转换为物理地址时不需要全局描述符表(GDT)、局部描述符表(LDT)或页表。显然,初始化GDT、LDT和页表的代码必须在实模式下运行。

Linux在引导阶段不得不使用BIOS,因为它必须从磁盘或其他外部设备中获取内核映像。BIOS引导过程主要执行以下四个操作:
1. 对计算机硬件执行一系列测试,以确定哪些设备存在以及它们是否正常工作。这个阶段通常称为加电自检(POST)。在此阶段,会显示一些消息,如BIOS版本横幅。
2. 初始化硬件设备。在基

http://www.cnnetsun.cn/news/2940.html

相关文章:

  • 23、深入探索Linux技术核心:从源码结构到系统运行机制
  • 19、Linux网络编程:数据结构、系统调用与网络交互详解
  • 基础详细链表定点插入
  • 轻松时刻--文生图在AIGC中的应用
  • 单手接电话手忙脚乱?华为新机“智感握姿”懂你心,直接在你拇指旁边生成接挂按钮!
  • 35、深入理解套接字地址
  • 36、网络与套接字:Socket选项及简单套接字接口详解
  • 37、套接字编程:SMI 实现与无连接套接字详解
  • 38、网络编程中的带外数据与网络数据库函数详解
  • 39、网络与信号系统调用详解
  • 40、Linux 信号处理系统调用详解
  • 41、实时信号扩展(RTS)详解
  • 42、信号与定时器编程指南:从全局跳转到底层时钟操作
  • 43、UNIX系统编程:进程属性、封装工具与函数列表详解
  • 44、UNIX编程技术综合解析
  • 24、实用命令与脚本操作指南
  • 25、Shell命令详解:功能、用法与示例
  • 26、常见 Unix/Linux 命令详解
  • 27、UNIX/Linux命令与vi编辑器使用指南
  • 28、Vi编辑器使用指南:从基础到高级操作
  • 29、编程与脚本操作实用指南
  • Docker服务发布全过程:从代码到生产环境
  • GoZero微服务架构
  • Gin框架
  • MongoDB
  • 刘洋洋《时间旅人》上线愿每一个匆忙赶路的人 找到自己的人生步调
  • 17 . 爬楼梯
  • 18 . 杨辉三角
  • # 非对称(PKC)与对称(SBK)加密算法全指南
  • Jetson Secure Boot:从 PKC/SBK 密钥到熔丝烧录与安全刷机