BIOS

系统的初始化代码在内存的ROM引导下开始执行
内存中有一段BIOS启动固件
cpu初始换完成之后处于实模式,地址总线只有20位地址可用
在BIOS中有基本的输入输出的程序,系统设置信息,开机自检程序,系统自启动程序等等

BIOS

会将加载程序从磁盘的引导扇区(512bytes)加载到0x7c00,然后跳转到CS:IP = 0000:7c00,此时控制权转到了从磁盘上读进的程序

加载程序

将操作系统的代码和数据从硬盘加载到内存中
跳转到操作系统的起始地址

BIOS系统调用

  • int 10h:字符显示
  • int 13h:磁盘扇区读写
  • int 15h:检测内存大小
  • int 16h:键盘输入
  • inter的cpu 只能在x86的实模式下访问

系统启动流程

加电->BIOS->主引导记录->活动分区->加载程序->内核镜像

CPU初始化

CPU加电稳定后从0xffff0读第一条指令

  • CS:IP = 0xf000:fff0
  • 第一条指令是跳转指令

CPU初始状态为16位实模式

  • CS:IP 为16位
  • 指令指针PC = 10h*CS+IP
  • 最大地址空间1mb(20位的地址总线)

BIOS初始化过程

  • 硬件自检POST
    检测系统关键部件
  • 执行系统BIOS 进行系统自检
  • 更新CMOS中的扩展系统配置数据ESCD

主引导记录MBR格式

  • 启动代码 446
    检查分区表正确性
    加载并跳转到磁盘上的引导程序
  • 硬盘分区表 64
    描述分区状态和位置
    每个分区描述信息占据16字节
  • 结束标志 2 55AA
    主引导记录的有效标志

分区引导扇区格式

  • 跳转指令 跳到启动代码
    与平台相关代码
  • 文件卷头 文件系统描述信息
  • 结束标志 55AA

加载程序(bootloader)

系统启动规范

BIOS

  • 固化到计算机主板上的程序
  • 包括系统设置,自检程序和系统启动程序
  • BIOS-MBR,BIOS-GPT(分区不再是四个),PXE

UEFI

  • 接口标准
  • 在所有平台上一致的操作系统启动服务
posted @ 2020-07-09 15:40  小哑师兄  阅读(271)  评论(0编辑  收藏  举报