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
第1页:启动过程第2页:BIOS-provided physical RAM map第3页:Kernel command line: ro root=/dev/hda1第4页:Calibrating delay...1197.46 BogoMIPS第5页:Checking HLT instruction第6页:Setting up standard PCI resources第7页:INIT: version 2.85 booting第8页:内核模式和用户模式第9页:长延时第10页:短延时第11页:实时钟&内核中的并发第12页:自旋锁和互斥体第13页:旧的信号量接口第14页:信号量接口案例第15页:原子操作第16页:调试&proc文件系统第17页:内存分配第18页:查看源代码
相关文章