博客
关于我
PC机引导程序之——BOIS
阅读量:618 次
发布时间:2019-03-13

本文共 1106 字,大约阅读时间需要 3 分钟。

PC引导程序的核心——BOIS

PC启动时,系统会自动启动引导程序进行初始化和操作系统的启动,这个引导程序被称为BIOS(Basic Input/Output System)。与Linux系统的启动流程类似,BIOS对于PC的初始化起到了至关重要的作用。在缺乏操作系统的情况下,BIOS能够启动系统,确保硬件正常运行并为后续的操作系统加载做好准备。

BOIS的功能

  • 硬件初始化与测试

    BOIS首先会初始化和测试系统的硬件设备,包括CPU、内存、存储器等,确保每个设备都处于正常工作状态。

  • 存储设备检测与引导程序加载

    BOIS会从系统的存储设备(如硬盘、SSD等)中扫描并找到引导程序(通常是MBR,Master Boot Record,主启动记录)。这一步骤是系统启动的关键环节。

  • 硬件控制与中断支持

    BOIS为显示器、键盘、鼠标、打印机等输入输出设备提供中断处理功能,确保这些设备能够正常工作。

  • 支持存储型BIOS

    随着技术的发展,传统的ROM存储的BIOS已逐渐被闪存(Flash)取代,闪存不仅支持读取还允许重写,这极大地提升了维护和更新的便利性。

  • 系统启动流程

  • POST自检(Power-On Self-Test)

    计算机首次上电时,会执行POST检查,确保各项硬件和软件配置都正常。具体包括:

    • 验证CPU寄存器和BIOS代码的完整性
    • 初始化和验证主内存
    • 检查和配置系统总线、显卡、 DMA 控制器等重要组件
  • 复位向量的作用

    在PC设备上电启动时,CPU会尝试执行复位向量指向的代码。复位向量位于NVRAM中,地址为FFFF:0。
    在冷启动模式下,BOIS存储在闪存中,北桥会将复位向量指向闪存中的引导程序;而在热启动模式下,BOIS会被加载到RAM中,复位向量也会被指向RAM中的引导程序地址。

  • 引导程序的执行

    COMS位(传统的EL Case)中的BIOS代码会被加载到内存中并执行。引导程序的主要任务是将控制权转移到操作系统的引导扇区。

  • 引导扇区的重要性

  • MBR的作用

    主启动记录(MBR)是引导扇区的核心组件,包含以下信息:

    • 引导程序本身
    • 磁盘的分区表信息
    • 分隔符标识
  • 引导扇区的加载过程

    引导程序会将控制权转移到目标操作系统的引导扇区。引导扇区正常运行后,会对自身硬件进行测试并注册中断向量,以供后续程序使用。

  • GRUB引导程序的作用

  • 扇区检测与签名验证

    引导扇区会扫描磁盘,寻找可引导的扇区,并检查扇区签名(通常为0x55 0xAA)。一旦找到符合签名的扇区,引导程序会将控制权转移到该扇区。

  • 系统环境配置

    引导扇区不仅仅是引导程序的容器,它还会初始化系统环境,为后续的操作系统加载做好准备。

  • 转载地址:http://njkaz.baihongyu.com/

    你可能感兴趣的文章
    npm install CERT_HAS_EXPIRED解决方法
    查看>>
    npm install digital envelope routines::unsupported解决方法
    查看>>
    npm install 卡着不动的解决方法
    查看>>
    npm install 报错 EEXIST File exists 的解决方法
    查看>>
    npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
    查看>>
    npm install 报错 Failed to connect to github.com port 443 的解决方法
    查看>>
    npm install 报错 fatal: unable to connect to github.com 的解决方法
    查看>>
    npm install 报错 no such file or directory 的解决方法
    查看>>
    npm install 权限问题
    查看>>
    npm install报错,证书验证失败unable to get local issuer certificate
    查看>>
    npm install无法生成node_modules的解决方法
    查看>>
    npm install的--save和--save-dev使用说明
    查看>>
    npm node pm2相关问题
    查看>>
    npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
    查看>>
    npm run build报Cannot find module错误的解决方法
    查看>>
    npm run build部署到云服务器中的Nginx(图文配置)
    查看>>
    npm run dev 和npm dev、npm run start和npm start、npm run serve和npm serve等的区别
    查看>>
    npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
    查看>>
    npm scripts 使用指南
    查看>>
    npm should be run outside of the node repl, in your normal shell
    查看>>