zoukankan      html  css  js  c++  java
  • (一)系统启动流程

    系统启动流程

    • CPU初始化

      • CS:IP = 0xf000:fff0

      • 第一条指令是跳转指令

    • CPU初始状态为16位实模式

      • CS:IP是16位寄存器

      • 指令指针PC = 16*CS + IP

      • 最大地址空间是1MB

    • BIOS初始化过程

      • 硬件自检POST

      • 检测系统中内存显卡等关键部件的存在和工作

      • 查找并执行显卡等接口卡BIOS,进行设备初始化

      • 执行系统BIOS,进行系统检测;

        • 检测和配置系统中安装的即插即用设备

      • 更新CMOS中的拓展系统配置数据ESCD(能知道系统有什么设备,会变)

      • 按指定启动顺序软盘、硬盘或光驱启动。(读进到第一块扇区)

    • 主引导记录MBR格式

      • 启动代码:446字节

        • 检查分区表正确性

        • 加载并跳转到磁盘上的引导程序

      • 硬盘分区表:64字节

        • 描述分区状态和位置

        • 每个分区描述信息占据16字节(4个分区)

      • 结束标志字:2字节(55AA)

        • 主引导记录的有效标志

    • 分区引导扇区格式

      • 跳转指令: 跳转到启动代码 (jmp)

        • 与平台相关代码

      • 文件卷头 : 文件系统描述信息

      • 启动代码 : 跳转到加载程序

      • 结束标志: 55AA

    • 加载程序(bootloader)

      • 文件系统中读取启动配置信息 (加载程序)

      • 可选的操作系统内核列表和加载参数 (启动菜单) (加载时候内核或参数不同)

      • 依据配置加载指定内核并跳转到内核执行 (操作系统内核)

    • 系统启动规范

      • BIOS (启动流程标准)

        • 固化到计算机主板上的程序

        • 包括系统设置、自检程序和系统自启动程序

        • BIOS-MBR(主引导记录)、BIOS-GPT(全局唯一标识分区表)、PXE(网络系统, 从服务器上下载镜像)

      • UEFI

        • 接口标准

        • 所有平台上一致的操作系统启动服务

        • 可信启动流程,读磁盘上的引导记录时候,会对引导记录的可信性进行检查。可信这些代码在我的系统上运行。

  • 相关阅读:
    Leetcode Palindrome Linked List
    Leetcode Delete Node in a Linked List
    Leetcode Ugly Number
    Python 列表解析
    Python 生成器以及应用
    Python 迭代器协议以及可迭代对象、迭代器对象
    Python 装饰器
    Python 函数的嵌套
    Python 闭包函数
    Python 名称空间与作用域
  • 原文地址:https://www.cnblogs.com/douzujun/p/6431636.html
Copyright © 2011-2022 走看看