• 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

    • 接口标准
    • 在所有平台上一致的操作系统启动服务
  • 相关阅读:
    linux inode索引节点使用率100% 解决
    Linux常用命令
    mongodb常用命令
    抓包工具简介:fiddler、charles
    博客园自定义更换背景
    ant+jmeter应用
    BeanShell断言
    jmeter 常用函数(一):__Random
    git常见错误解决方法
    react环境搭建
  • 原文地址:https://www.cnblogs.com/Alex3O/p/13274047.html
Copyright © 2020-2023  润新知