|
发表于 2004-12-25 20:43:08
|
显示全部楼层
1。内核空间从3G开始是映射的物理地址的前4M,从0开始(对2。2内核);对2。4是前8M,从0开始。这个是固定的,内核初始化期间映射的。
2。这个2G没听过啊,内核空间要求可以直接映射整个物理内存,因此会在896M有个限制(1G-128M),或者物理内存位于896M到4G之间,这时候896以上的部分会动态映射;大于4G,就要开启PAE支持了,这个支持36位了,这时候小于896M的内存还是可以直接映射,其余部分动态映射。
3。linux定义了4个段,内核代码和数据段,用户代码和数据段。中断处理的时候CPU会检查被中断进程的段描述府的DPL值;对于系统调用来说,最初LINUX不是定义了PAGE_OFFSET来当作用户和内核的界限的吗,只要用户态程序根据系统调用来访问某个地址,就会进行PAGE_OFFSET来进行检查,确保内核空间不被非法访问。
4。页表和页项不是都有一个present位的吗,这个可以确定是否在内存中。
5。这个不是很明白你说的意思,可以说得具体点吗,大家都可以讨论一下。 |
|