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

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

Apache2-XXE vulnerability penetration

磁盘空间管理

The ` monorepo ` ` hoist ` mechanism lead to the change of the loading configuration file path

Qlik Sense 判空详解(IsNull)

自监督论文阅读笔记 Multi-motion and Appearance Self-Supervised Moving Object Detection

Execute the mysql script file in the docker mysql container and solve the garbled characters

IPC 通信 - IPC

docker mysql 容器中执行mysql脚本文件并解决乱码

MySQL 下载和安装详解
随机推荐
中国人造金刚石行业投资战略规划及发展前景预测报告2022~2028年
自监督论文阅读笔记 SimCLRV2 Big Self-Supervised Models are Strong Semi-Supervised Learners
当奈飞的NFT忘记了web2的业务安全
用户登录验证程序的实现
自监督论文阅读笔记 Ship Detection in Sentinel 2 Multi-Spectral Images with Self-Supervised Learning
C# Base64加密
Execute the mysql script file in the docker mysql container and solve the garbled characters
Sqli-labs-master shooting range 1-23 customs clearance detailed tutorial (basic)
Oracle 密码策略详解
opencv
中国磷化铟晶圆行业发展前景与投资规划分析报告2022~2028年
Router-view
自监督论文阅读笔记 Multi-motion and Appearance Self-Supervised Moving Object Detection
Leetcode刷题——128. 最长连续序列
中国水环境治理行业投融资分析及“十四五”规划建议报告2022~2028年
ASP.NET MVC:自定义 Route
编程软件配备
自监督论文阅读笔记 DenseCL:Dense Contrastive Learning for Self-Supervised Visual Pre-Training
中国生活服务O2O行业发展现状与市场规模预测报告2022~2028年
MySQL 排序