Chinaunix

标题: 关于临时内核页表 [打印本页]

作者: stuman    时间: 2013-08-10 15:57
标题: 关于临时内核页表
临时内核映射需要建立两张临时的页表,将0x00000000-0x007FFFFF和0xC0000000-0xC07FFFFF的线性地址同时映射到0x00000000-0x007FFFFF的物理地址上。

将我们需要映射的线性地址按照10/10/12个bit位展开,就可以知道我们需要的是哪4项了。

0x00000000 -> 0x000 / 0x000 / 0x000

0x007FFFFF -> 0x001 / 0x3FF / 0xFFF

0xC0000000 -> 0x300 / 0x000 / 0x000

0xC07FFFFF -> 0x301 / 0x3FF / 0xFFF

取出对应页目录项的前10bit,可以知道我们需要初始化的4个页目录项为0x0、0x1、0x300、0x301。其中0x0和0x300对应pg0,0x1和0x301对应pg1。

那么为什么0x0和0x300对应pg0,0x1和0x301对应pg1呢?
0x0与0x1仅差1,0x300与0x301也仅差1,为什么不是0x0与0x1对应一张页表,而0x300与0x301对应一张页表呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2