当前位置:网站首页>虚拟地址空间布局
虚拟地址空间布局
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
边栏推荐
猜你喜欢

自监督论文阅读笔记 DetCo: Unsupervised Contrastive Learning for Object Detection

Qlik Sense 字符串截取和拼接详解(Left、Right、&)
![[frp intranet penetration]](/img/5c/ca18bef3e5fec279c19825ee93b34b.png)
[frp intranet penetration]

自监督论文阅读笔记 Self-supervised Learning in Remote Sensing: A Review

【Arduino】关于“&”和“|” 运算-----多个参数运算结果异常的问题解决

Qlik Sense 聚合函数及范围详解(Sum、Count、All、ToTaL、{1})

Let small program development into ` tailwind jit ` era

Sqli-labs-master shooting range 1-23 customs clearance detailed tutorial (basic)

边缘辅助无人机网络的分层联邦学习

自监督论文阅读笔记Efficient Self-supervised Vision Pretraining with Local Masked Reconstruction
随机推荐
SAP HANA 新增一列时报错详解
3559. 围圈报数
中国生物反应器行业市场投资分析及前景预测报告2022~2028年
用iPhone前摄3D人像建模,Meta:我看行
MySQL 慢查询
动漫 吞噬星空
MySQL 安装报错的解决方法
Delightful Nuxt3 Tutorial (1): Application Creation and Configuration
【第四周】MobileNet和HybridSN
Let small program development into ` tailwind jit ` era
Oracle null 有哪些注意事项【面试题】
该描述怎么写成SQL语句
嵌入式实验二注意点
中国人力资源服务行业投资建议与前景战略规划研究报告2022~2028年
深度学习理论课程第四、五章总结
深度学习理论课程第八、九、十章总结
UPC-Longest X
自监督论文阅读笔记 Self-Supervised Visual Representation Learning with Semantic Grouping
new / malloc / delete / free之间的区别
HoloLens联合发明人:打造理想的全天AR需要解决这些问题