【问题标题】:how does the OS know the real size of the physical memory?操作系统如何知道物理内存的实际大小?
【发布时间】:2012-05-07 09:49:39
【问题描述】:

在启动计算机的那一刻加载操作系统,操作系统如何知道硬件信息,是否有一些io指令或引导程序从bios获取信息。??

【问题讨论】:

    标签: linux memory-management operating-system kernel


    【解决方案1】:

    主板固件(也称为 BIOS、ACPI 接口或 EFI)允许操作系统找出系统中 RAM 和 ROM 的物理映射。

    例如,这是启动 Linux 的输出:

    [    0.000000] BIOS-provided physical RAM map:
    [    0.000000]  BIOS-e820: 0000000000000000 - 0000000000098c00 (usable)
    [    0.000000]  BIOS-e820: 0000000000098c00 - 00000000000a0000 (reserved)
    [    0.000000]  BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
    [    0.000000]  BIOS-e820: 0000000000100000 - 00000000bfea0000 (usable)
    [    0.000000]  BIOS-e820: 00000000bfeae000 - 00000000bfeb0000 type 9
    [    0.000000]  BIOS-e820: 00000000bfeb0000 - 00000000bfec0000 (ACPI data)
    [    0.000000]  BIOS-e820: 00000000bfec0000 - 00000000bfef0000 (ACPI NVS)
    [    0.000000]  BIOS-e820: 00000000bfef0000 - 00000000c0000000 (reserved)
    [    0.000000]  BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved)
    [    0.000000]  BIOS-e820: 0000000100000000 - 0000000c40000000 (usable)
    

    【讨论】:

      【解决方案2】:

      从基于 BIOS 的系统启动的操作系统使用 INT 0x15, AX=0xE820 查询 Query System Address Map 函数。

      基于 UEFI 的操作系统通常会使用 GetMemoryMap() 接口获取物理内存映射。

      【讨论】:

        【解决方案3】:

        在台式机或笔记本电脑等机器上,内存量由BIOSUEFI 分配给操作系统

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-19
          • 1970-01-01
          • 1970-01-01
          • 2016-07-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多