前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核 内存管理】内存映射相关数据结构 ⑥ ( 文件映射 虚拟内存区域 | vm_area_struct | vm_operations_struct | 匿名映射 虚拟内存区域 )

【Linux 内核 内存管理】内存映射相关数据结构 ⑥ ( 文件映射 虚拟内存区域 | vm_area_struct | vm_operations_struct | 匿名映射 虚拟内存区域 )

作者头像
韩曙亮
发布2023-03-30 14:30:04
1K0
发布2023-03-30 14:30:04
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、文件映射 虚拟内存区域


" 文件映射 " 的 " 虚拟内存区域 " vm_area_struct 结构体 的 数据结构表示形式如下 ;

1、文件映射 虚拟内存区域 的 vm_ops 成员

vm_area_struct 结构体 中的 const struct vm_operations_struct *vm_ops; 成员 , 指向 虚拟内存操作集合 vm_operations_struct 类型的实例 ;

vm_ops 成员是 " 虚拟内存操作集合 " , 该 vm_operations_struct 结构体中封装了大量的虚拟内存操作 ;

代码语言:javascript
复制
	/* Function pointers to deal with this struct. */
	const struct vm_operations_struct *vm_ops;

参考 【Linux 内核 内存管理】内存映射相关数据结构 ④ ( vm_area_struct 结构体成员分析 | vm_ops 成员 | vm_operations_struct 结构体成员分析 ) 博客 ;

2、文件映射 虚拟内存区域 的 vm_file 成员

vm_area_struct 结构体 中的 struct file * vm_file; 成员 , 指向 文件 file 类型的实例 , file 结构体中的 struct inode *f_inode; 成员 指向 文件索引节点 inode 实例 ;

vm_area_struct 结构体 中的 vm_file 成员 是 " 内存映射 “ 中的 ” 文件映射 " 类型中 被映射的 文件 , 如果是 " 匿名映射 " 类型的 " 内存映射 " , 该成员为 NULL ;

代码语言:javascript
复制
	struct file * vm_file;		/* File we map to (can be NULL). */

参考 【Linux 内核 内存管理】内存映射相关数据结构 ⑤ ( vm_area_struct 结构体成员分析 | vm_pgoff 成员 | vm_file 成员 | vm_private_data ) 博客 ;

3、文件映射 虚拟内存区域 图示

在这里插入图片描述
在这里插入图片描述

二、匿名映射 虚拟内存区域


在 " 匿名映射 " 虚拟内存区域 中 , 与 " 文件映射 " 不同之处是 struct file * vm_file; 成员为空 ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、文件映射 虚拟内存区域
    • 1、文件映射 虚拟内存区域 的 vm_ops 成员
      • 2、文件映射 虚拟内存区域 的 vm_file 成员
        • 3、文件映射 虚拟内存区域 图示
        • 二、匿名映射 虚拟内存区域
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档