当前位置:网站首页>虚拟地址空间布局
虚拟地址空间布局
2022-08-03 05:23:00 【SEVENTHD7】
VMEMMAP_SIZE
内核使用page结构体描述一个物理页,内存的所有物理页对应一个page结构体数组。如果内存的物理地址空间不连续,存在很多空洞,称为稀疏内存。vmemmap区域是稀疏内存的page结构体数组的虚拟地址空间。
根据注释:这个区域的大小可以存放所有的 struct page 对象数组,这个数组可以覆盖 整个 线性映射区域。
#define VMEMMAP_SIZE \(UL(1) << (VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT))
(内核虚拟空间大小/4096/2=内核线性映射地址空间的page数量(P),对应page 结构体占用的总虚拟内存=P*BITS(STRUCT_PAGE_MAX_SHIFT)=2^6*P.)
举例:sizeof struct page 为44个字节。 2^5 = 32 < 44 ; 2^6 = 64 > 44; 则 STRUCT_PAGE_MAX_SHIFT 为 6 。 shift 是移位, max 是最大。这么大的空间中,肯定可以存放的下一个 struct page 对象。
2 modules
如果定义了CONFIG_MODULES功能,则需要在用户空间开辟一段空间给insmod插入的模块。
这部分空间是动态映射的,在定义CONFIG_HIGHMEM情况下为16MB-2MB=14MB,从0xbf00000 - 0xbfe00000。
在 AARCH64 里是128M
边栏推荐
- The ` monorepo ` ` hoist ` mechanism lead to the change of the loading configuration file path
- 损失函数(第五周)
- 神经网络基础
- 关于梯度下降法的一些优化方法
- 交叉熵(第六周)
- HoloLens联合发明人:打造理想的全天AR需要解决这些问题
- Convolutional Nerual Nertwork(CNN)
- spark sql 报错 Can‘t zip RDDs with unequal numbers of partitions
- 自监督论文阅读笔记 Self-supervised Learning in Remote Sensing: A Review
- UPC-Longest X
猜你喜欢
随机推荐
opencv目标检测
Execute the mysql script file in the docker mysql container and solve the garbled characters
用iPhone前摄3D人像建模,Meta:我看行
当我们在看Etherscan的时候,到底在看什么?
new / malloc / delete / free之间的区别
arm64麒麟安装paddlehub(国产化)注意事项
自监督论文阅读笔记 Ship Detection in Sentinel 2 Multi-Spectral Images with Self-Supervised Learning
自监督论文阅读笔记Index Your Position: A Novel Self-Supervised Learning Method for Remote Sensing Images Sema
【 Nmap and Metasploit common commands 】
自我监督学习和BERT模型
自监督论文阅读笔记 TASK-RELATED SELF-SUPERVISED LEARNING FOR REMOTE SENSING IMAGE CHANGE DETECTION
中国生活垃圾处理行业十四五规划与投融资模式分析报告2022~2028年
自监督论文阅读笔记 Self-supervised Learning in Remote Sensing: A Review
ASP.NET MVC3的伪静态实现
编程软件配备
中国生物降解塑料行业市场运营态势及发展趋势研究报告2022~2028年
【IDEA】字体修改-护眼主题-文件注释头设置
二叉树常见的问题和解决思路
MySQL 慢查询
IPC通信 - 管道