You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux 5.13中,匿名内存页对应的struct address_space及device mapping是什么?

Linux 5.13 匿名内存页的 struct address_space 与 Device Mapping 解析

支撑匿名内存页的 struct address_space

匿名内存页(如用户进程的栈、堆内存)在未被换出到swap时,其struct page的mapping字段并不指向常规的struct address_space。内核通过设置mapping字段的PAGE_MAPPING_ANON标记位,将该字段的低地址部分指向该页所属的struct vm_area_struct(VMA),用于内存反向映射等管理操作。

只有当匿名页被换出到swap设备后,mapping字段才会指向swap设备对应的struct address_space,同时page->index会记录该页在swap分区中的偏移位置。

匿名内存页对应的 Device Mapping

  • 未换出状态:此时匿名页完全驻留在物理内存中,没有关联的块设备,因此不存在对应的device mapping。page->mapping的作用仅关联到所属VMA,用于内存管理逻辑。
  • 换出状态:当匿名页被交换到swap设备时,其对应的device mapping就是swap设备本身。swap设备的struct address_space由内核swap子系统维护,负责管理swap分区上的页数据读写。

是否属于特殊设备

匿名页在未换出时不属于任何设备;只有在被换出到swap设备后,才与swap这种特殊块设备关联。swap设备是专门用于存储被换出内存页的块设备(可以是磁盘分区、swap文件等),是内核内存管理子系统用于扩展系统可用内存的核心组件。


内容的提问来源于stack exchange,提问作者Lingfeng Xiang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:01:23