- 论坛徽章:
- 8
|
本帖最后由 firocu 于 2015-11-01 22:18 编辑
在ULK v3的第二章 的Paging in linux 小节有一段想不通.
The objective of this first phase of paging is to allow these 8 MB of RAM to be easily addressed both in real mode and protected mode. Therefore, the kernel must create a mapping from both the linear addresses 0x00000000 through 0x007fffff and the linear addresses 0xc0000000 through 0xc07fffff into the physical addresses 0x00000000 through 0x007fffff. In other words, the kernel during its first phase of initialization can address the first 8 MB of RAM by either linear addresses identical to the physical ones or 8 MB worth of linear addresses, starting from 0xc0000000.
这句话中说为了让real mode 和protected mode都能访问 0~8MB的物理内存, 因此需要建立两组映射:
虚拟地址:0x00000000 through 0x007fffff 到 物理地址0~8MB.
虚拟地址:0xc0000000 through 0xc07fffff 到 物理地址0~8MB.
我不能理解为什么real mode需要建立0x00000000 through 0x007fffff 到 物理地址0~8MB,
real mode 不是连MMU都没有启用, 建立这个映射有什么意义?Real mode不是直接就能访问物理的0~8MB内存, 不需要地址映射吗?
总感觉哪里理解错了. 求助 |
|