当RAM小于896MB时,初始化主内核页全局目录表--最终内核页表
void __init paging_init(void)
{
#ifdef CONFIG_X86_PAE
set_nx();
if (nx_enabled)
printk("NX (Execute Disable) protection: active/n");
#endif
初始化页目录表的高256项及其所对应的页表
|----------------------|
| pagetable_init(); |
|----------------------|
将页目录表的首地址转换成为物理地址,并将写入控制寄存器%%cr3中
|-----------------------------|
| load_cr3(swapper_pg_dir); |
|-----------------------------|
#ifdef CONFIG_X86_PAE
if (cpu_has_pae)
set_in_cr4(X86_CR4_PAE);
#endif
使TLB的所有项无效
|----------------------|
| __flush_tlb_all(); |
|----------------------|
kmap_init();
}
void __init paging_init(void)
{
#ifdef CONFIG_X86_PAE
set_nx();
if (nx_enabled)
printk("NX (Execute Disable) protection: active/n");
#endif
初始化页目录表的高256项及其所对应的页表
|----------------------|
| pagetable_init(); |
|----------------------|
将页目录表的首地址转换成为物理地址,并将写入控制寄存器%%cr3中
|-----------------------------|
| load_cr3(swapper_pg_dir); |
|-----------------------------|
#ifdef CONFIG_X86_PAE
if (cpu_has_pae)
set_in_cr4(X86_CR4_PAE);
#endif
使TLB的所有项无效
|----------------------|
| __flush_tlb_all(); |
|----------------------|
kmap_init();
}