一、虚拟内存核心概念

虚拟内存是Linux内核最基础也最关键的功能之一。它为每个进程提供统一的虚拟地址空间抽象,使得每个进程都认为自己独占整个物理内存。这种抽象隔离了应用程序基于物理地址的关心,显著提升了安全性和稳定性。

在64位x86_64架构上,进程的虚拟地址空间达到128TB(用户空间),但物理内存通常仅为GB级别。内核通过页式内存管理实现了从虚拟地址到物理地址的映射,而缺页中断(Page Fault)是这个映射过程中最必要的机制之一。

二、多级页表与地址映射机制

x86_64架构使用4级页表(新一代5级页表支持57位虚拟地址)。地址转换过程如下:

  • 页全局目录(PML4/PGD):最高层,CR3寄存器指向
  • 页目录元组(PUD):第2级,可直接映射1GB大页
  • 页中间目录(PMD):第3级,可直接映射2MB大页
  • 页表(PTE):最底层,映射4KB标准页

每一级页表都在内存中占据一个页面(4096字节),包含512个8字节的页表项。新型架构引入5级页表(PML5),将虚拟地址空间扩展至256TB。

三、缺页中断(Page Fault)处理流程

当CPU诿问一个未映射或访问

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部