美文网首页
BIOS 物理内存布局图

BIOS 物理内存布局图

作者: GTMYang | 来源:发表于2025-04-17 14:08 被阅读0次

BIOS(Basic Input/Output System)的物理内存布局是计算机启动和运行时关键的低层内存分配结构。以下是典型的 x86架构 的物理内存布局(以传统 16MB 以下的区域为例):


物理内存布局图(Legacy x86)

+----------------------- 0xFFFFFFFF (4GB) -----------------------+
| 保留给硬件(如PCI设备、BIOS ROM等)                             |
+----------------------- 0xC0000000 (3GB) -----------------------+
| 高端内存(内核动态映射区域,具体布局由操作系统决定)              |
+----------------------- 0x100000 (1MB) -------------------------+
| **Extended Memory** (操作系统和应用程序使用)                    |
| 0x100000 (1MB) - 0x9FFFFF (16MB以下)                           |
+----------------------- 0xA0000 (640KB) ------------------------+
| **Video RAM** (显卡显存)                                       |
| 0xA0000 - 0xBFFFF (128KB)                                      |
|   - 0xA0000: VGA 图形模式帧缓冲区                              |
|   - 0xB8000: 文本模式字符缓冲区(彩色文本)                     |
+----------------------- 0x9FFFF (640KB) ------------------------+
| **Conventional Memory** (传统内存,BIOS和DOS使用)               |
| 0x00000 - 0x9FFFF (640KB)                                      |
|   - 0x00000: **Interrupt Vector Table (IVT)**                  |
|   - 0x00400: **BIOS Data Area (BDA)**                          |
|   - 0x00500: **DOS 暂存区**(可选)                            |
|   - 0x07C00: **Bootloader** (MBR被加载到此处)                   |
|   - 0x07E00: Bootloader 后续代码                               |
+----------------------- 0x00000 --------------------------------+

关键区域说明

  1. 0x00000 - 0x003FF

    • 中断向量表 (IVT):256个中断服务例程的地址(实模式使用)。
  2. 0x00400 - 0x004FF

    • BIOS 数据区 (BDA):硬件状态信息(如串口端口、内存大小等)。
  3. 0x00500 - 0x07BFF

    • 自由空间:DOS或Bootloader可用的临时内存。
  4. 0x07C00 - 0x07DFF

    • MBR 加载地址:BIOS将引导扇区(512字节)加载到此执行。
  5. 0xA0000 - 0xBFFFF

    • 显卡内存映射
      • 0xA0000-0xAFFFF:VGA图形模式。
      • 0xB8000-0xBFFFF:文本模式(80x25彩色文本)。
  6. 0xC0000 - 0xFFFFF

    • BIOS ROM 映射
      • 0xC0000-0xC7FFF:Video BIOS(显卡固件)。
      • 0xF0000-0xFFFFF:主板BIOS代码(启动时执行)。
  7. 0x100000 (1MB) 以上

    • 扩展内存:由操作系统管理(如Linux的ZONE_NORMAL)。

现代系统的变化

  • UEFI:不再依赖传统内存布局,直接调用UEFI运行时服务。
  • 保护模式/长模式:操作系统启用分页后,物理地址被重新映射。
  • Reserved Regions:ACPI表、TPM、PCIe配置空间等可能占用其他区域。

注意事项

  • 实模式(Real Mode)只能访问 1MB 以下内存
  • 保护模式(Protected Mode)可访问全部物理内存,但需通过分页机制管理。
  • 内存布局可能因硬件(如ARM架构)或固件(如Coreboot)而异。

相关文章

  • iOS内存布局

    内存布局图内存布局图 代码演示

  • 浅析malloc()

    1 介绍 2 内存管理2.1 内存地址2.1.1 虚拟内存地址与物理内存地址2.1.2 内存布局2.1.3 堆内存...

  • 2019-12-07 LINUX内存布局原理

    C语言最难的地方 内存和指针 接下将学习:数据类型,数组,内存布局,物理内存,虚拟内存 从硬件角度:内存是计算...

  • centos 6.x开机启动流程

    centos 6.x开机启动流程 BIOS(COMS)检查加载Bios,bios包含所有硬件信息(CPU,内存,硬...

  • 第二章笔记简单MBR程序

    软件接力的第一棒,BIOS 实模式下的1MB内存布局 由低地址看,0~0x9FFFF处是DRAM(Dynamic ...

  • Linux 内存管理 应用篇

    1、物理内存和虚拟内存 物理内存:物理内存就是系统硬件提供的内存大小,是真正的内存 虚拟内存:为了满足物理内存的不...

  • linux io与zero copy

    1. 物理内存与虚拟内存 1.1 物理内存 物理内存指通过物理内存条而获得的内存空间。 1.2 虚拟内存 虚拟内存...

  • 探测内存

    本文介绍三种探测内存的方法探测内存是通过调用 BIOS 中断 0x15 实现的分别 是 BIOS 中断 0x15 ...

  • 对象在内存中的布局

    参考文章:一个objc对象如何进行内存布局?(考虑有父类的情况) Objective-C内存布局 参考如下的3张图...

  • iOS内存布局&内存管理方案&数据结构

    内存布局 上面的图代表一个内存区域,内存区域分为内核区的内存(最上边),程序加载的控件(中间),保留的内存空间(最...

网友评论

      本文标题:BIOS 物理内存布局图

      本文链接:https://www.haomeiwen.com/subject/mliybjtx.html