前4KB是第一个页帧,通常留给BIOS使用,接下来640KB原则是可用的,但是通常也不用于内核加载,原因是该区域之后紧邻的区域由系统保留
用于映射各种ROM(BIOS与显卡ROM),不可能向映像ROM里面写入数据。内核需要装载到一个连续的内存区中,如果从4KB处作为起始位置来装载内核映像,则要求内核必须要小于640KB
IA32内核采用0x100000作为起始地址。对应于内存中第二兆字节的开始处,从此处开始,有足够的连续内存区,可容纳整个内核
内核占据的内存分为几个段:
_text和_etext:代码段的起始和结束地址
_etext和_edata:保留大部分内核变量
_end:初始化数据在内核起始过程结束后不再需要
所有的地址都偏移0xC0000000,在用户和内核地址空间采用3:1划分时,内核段的起始地址是0xC0000000,该地址为虚拟地址,物理内存映射到虚拟地址空间的时候,采用了从该地址开始的线性映射方式,
减去0xC0000000,可获得对应的物理地址
阅读(920) | 评论(0) | 转发(0) |