内核维护着一组自己使用的页表,驻留在所谓主内核页全局目录(master kernel page global directory)中。系统初始化后,这组页表永远不会被任何进程或者任何内核线程直接使用;更确切第说,主内核页全局目录的最高目录项部分作为参考模 型,为系统中每个普通进程对应的页全局目录项提供模板。
0x2ff |--------------------|
| |
| |
| |
|--------------------|
| | Provisional kernel Page Tables
|--------------------|_end
| |
| |Uninitialized kernel data
| |
|--------------------|_edata
| |
| |
| |Initialized kernel data
| |
|--------------------|_etext
&nb
0x2ff |--------------------|
| |
| |
| |
|--------------------|
| | Provisional kernel Page Tables
|--------------------|_end
| |
| |Uninitialized kernel data
| |
|--------------------|_edata
| |
| |
| |Initialized kernel data
| |
|--------------------|_etext
&nb

本文介绍了如何初始化主内核页全局目录,包括设置页表项的物理地址、权限标志,并阐述内核页表的作用,确保从0xc0000000开始的内核线性地址能映射到物理地址0。此外,还提到了宏_pa和宏_va在地址转换中的应用,以及主内核页全局目录在swapper_pg_dir变量中的存储和paging_init()函数的初始化过程。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



