技术开发 频道

Linux驱动开发必看:详解神秘内核

  2.1.1 BIOS-provided physical RAM map

  内核会解析从BIOS中读取到的系统内存映射,并率先将以下信息打印出来:

  BIOS-provided physical RAM map:

  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)

  ...

  BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved)

  实模式下的初始化代码通过使用BIOS的int 0x15服务并执行0xe820号函数(即上面的BIOS-e820字符串)来获得系统的内存映射信息。内存映射信息中包含了预留的和可用的内存,内核将随后使用这些信息创建其可用的内存池。在附录B的B.1节,我们会对BIOS提供的内存映射问题进行更深入的讲解。

图2-2 内核启动信息

  2.1.2 758MB LOWMEM available

  896 MB以内的常规的可被寻址的内存区域被称作低端内存。内存分配函数kmalloc()就是从该区域分配内存的。高于896 MB的内存区域被称为高端内存,只有在采用特殊的方式进行映射后才能被访问。

  在启动过程中,内核会计算并显示这些内存区内总的页数。

0
相关文章