IA-32E分页示例

时间:2015-11-12 05:22:16

标签: c operating-system kernel

在尝试设置虚拟内存时,我对将某个虚拟地址映射到物理地址的位置感到困惑。使用x86架构并使用IA-32E模式时,我有一个映射新虚拟页面的功能

    int allocate_page(page_table_entry* p)
{
    //Get Physical Block for this page table entry to point to
    void* phys = getFreeBlock();
    //Here I need to map the virtual entry to this physical page frame

}

根据Intel Manual对于4级页表,虚拟地址的前4位应该给出页面目录表指针,接下来的9位应该给页面目录,接下来的9位用于找到页表,最后12位用于页框中的偏移,总共52位。有没有人有任何资源或建议我如何开始实现这个功能的其余部分,以便我可以获取给定的虚拟地址并将其映射到一个免费的页面框架?

0 个答案:

没有答案