Linux的内存管理采用分页管理的方式。其核心是“虚拟地址->物理地址的映射翻译”。就像国家管理一样,省、市、县都是虚拟地址,物理地址则是实际的经纬度坐标。

再进一步解释,进程用独立虚拟地址空间,内核通过多级页表,将虚拟页拆分成页表项,匹配物理内存页框。结合按需分页,只在访问时加载物理页,页缓存加速文件读写,既实现内存隔离,又提升利用率和访问效率。

什么是页表和页表项?

页表,是内核维护的虚拟页->物理页框的映射表。

页表项:页表中的最小单位。通常是4字节或8字节。存储单个页表对应的关键信息。

为什么要用多级页表,而不是单级页表?

单级页表就像一个标记全国人的超级大字典,每个人的名字和联系方式都平铺。想查数据非常麻烦。而多级页表,就像按照省、市、县、村做好分类,方便定位。多级页面的优势是,用不到的地图就不用带。如果只去北京,就不用带上海、广州的地图册。这也是多级页表的核心目的:只为进程实际使用的虚拟地址创建页表项,未使用的地址不占用内存。