linux kernel 6.x 用户态地址空间探究

最近做个项目需要研究用户态虚拟地址划分情况,找到多个app的共有未使用区间。偶然发现6.1.49和6.8的kernel用户态虚拟地址划分似乎有些不一样。下面使用数据进行分析。

大家都知道linux应用空间的地址划分是:

  • stack高地址开始,向下生长。
  • mmap区域/库加载区域/匿名映射区,介于stack和heap之间,中间隔多少?文档说是随机。
  • heap区,向上生长。
  • 代码段,BSS...

写了个测试程序然后每个程序运行100次来看看这些区域的起始地址在哪里,先是6.1.49kernel,文件系统用的是ubuntu22:

如上图所示:

stack: 起始地址最稳定,基本一条直线,同时也是最高地址。

mmap:地址在stack之下,但是不同程序的起始地址会有波动。

heap:在最下边,起始地址同样有波动。

地址空间波动:

mmap和heap的波动在1TB,mmap起始到heap起始有41TB的空间,中间有很大的冗余。

接下来看下6.8kernel,文件系统同样是ubuntu22:

明显可以看到在最新的6.8kernel中,mmap和heap区的起始地址波动变大:

波动均在16TB,并且是类似正弦曲线的波动。这也导致了heap和mmap中间的空白冗余变小。

总结:6.8的mmap和heap起始地址波动变大,所以如果要对多个app找到相同的未使用虚拟地址区间,6.8要比6.1.49更难,并且要分配不同的策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

换脸动漫转真人:ComfyUI无实物Cosplay

在数字艺术领域,将动漫角色转换为真人形象一直是艺术家的追求。现在,ComfyUI推出了无实物Cosplay功能,让你轻松实现换脸动漫转真人,开启你的二次元冒险之旅! ComfyUI无实物Cosplay:换脸动漫转真人&#xf…

代码静态分析工具

静态分析工具(如 Coverity、Lint),如果代码工程大常用的工具是啥,原理是啥? 常用的静态分析工具: Coverity:一种商用静态分析工具,广泛用于C、C、Java等语言的代码分析。它能够发现…

Elasticsearch 向量数据库本地部署 及操作方法

elasticsearch是个分布式向量数据库,支持多种查找模式。此外还拥有 Metadata、Filtering、Hybrid Search、Delete、Store Documents、Async等能力。本文仅是记录本地测试途中遇到的问题。 一,环境部署 下载软件 首先去官网,选择适合平台下…

黑龙江等保测评:保障数据安全的最佳选择,助力企业无忧发展!

在数字化时代,数据安全已成为企业发展的重中之重。尤其是在黑龙江,随着信息技术的快速发展,数据泄露和网络攻击的风险日益增加。为了帮助企业提升数据安全防护能力,黑龙江等保测评应运而生,成为保障数据安全的有力工具…

Jackson注解屏蔽某些字段读取权限

问题 Java Bean中某些成员变量,不想被前端读取到。 解决 使用Jackson如下注释: JsonProperty(access JsonProperty.Access.WRITE_ONLY) private String password;就可以在Java Bean序列化的时候,不会序列化这个password字段。 总结 Sp…

libwebsockets之日志系统

libwebsockets日志系统也是分等级的&#xff0c;如下: #define LLL_ERR (1 << 0)#define LLL_WARN (1 << 1)#define LLL_NOTICE (1 << 2)#define LLL_INFO (1 << 3)#define LLL_DEBUG (1 << 4)#define LLL_PARSER (1 << 5)#…

git-repo使用

即使用 XML 格式文件&#xff08;manifest 清单文件&#xff09;定义一个项目的多仓库关联&#xff0c;然后用 repo 客户端工具操作多仓库 git repo命令行格式&#xff1a; git repo <子命令> <参数>创建一个空目录&#xff0c;作为工作区。 $ mkdir workspace$ …

在代码平台怎么拉取对应分支的项目,并且创建属于自己的分支

1.找到对应的代码平台比如gitee,gogs 我这里是gogs 这里有一个网址,把他复制下来 2.打开你想放到的idea路径 输入cmd 输入 这是网上找的项目 git clone http://192.168.150.101:10880/tjxt/tianji.git -b lesson-init 这里的git clone是克隆,这里的-b是分隔符,lesson-ini…

论文120:Giga-SSL: Self-supervised learning for gigapixel images (2023, CVPR, 开源)

文章目录 1 要点2 方法2.1 算法设计2.2 设计选择 1 要点 题目&#xff1a;用于千兆像素图像的自监督学习 (Giga-SSL: Self-Supervised Learning for Gigapixel Images) 代码&#xff1a;https://github.com/trislaz/gigassl 研究目的&#xff1a; 现有的WSI分类方法依赖于有…

探索Go语言中的随机数生成、矩阵运算与数独验证

1. Go中的随机数生成 在许多编程任务中&#xff0c;随机数的生成是不可或缺的。Go语言通过 math/rand 包提供了伪随机数生成方式。伪随机数由种子(seed)决定&#xff0c;如果种子相同&#xff0c;生成的数列也会相同。为了确保每次程序运行时产生不同的随机数&#xff0c;我们…

内容传递媒介如何影响广告测量

你有两个广告活动正在进行中。它们同时启动&#xff0c;并且目标受众相同。 以下是你目前看到的结果&#xff1a; 广告活动1&#xff1a; → 0.67%的点击率 (CTR) → 每次点击成本 $1.88 (CPC) 广告活动2&#xff1a; → 3.50%的点击率 (CTR) → 每次点击成本 $0.33 (CP…

【Proteus51单片机仿真】YL-69湿度检测和继电器电机自启动

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于AT89C51单片机&#xff0c;湿度检测模块通过ADC0832数模转换器&#xff0c;将模拟信号转换为数字信号给单片机&#xff0c;然后通过LCD1602显示屏显示出当前的湿度值&#xff0c;并判断当前湿度值是…

laravel 11 区分多模块的token

数据表&#xff1a;用户表&#xff08;users&#xff09;、管理员表&#xff08;admin_user&#xff09;&#xff0c; 配置bootstrap/app.php guards > [web > [driver > session,provider > admin_users,],home > [driver > sanctum,provider > users,]…

CSS 常用元素属性

CSS 属性有很多, 可以参考文档 CSS 参考手册 1. 字体属性 设置字体 多个字体之间使用逗号分隔. (从左到右查找字体, 如果都找不到, 会使用默认字体. )如果字体名有空格, 使用引号包裹.建议使用常见字体, 否则兼容性不好. <style>.one {font-family:"Microsoft Ya…

Machine Learning: A Probabilistic Perspective 机器学习:概率视角 PDF免费分享

下载链接在博客最底部&#xff01;&#xff01; 之前需要参考这本书&#xff0c;但是大多数博客都是收费才能下载本书。 在网上找了好久才找到免费的资源&#xff0c;浪费了不少时间&#xff0c;在此分享以节约大家的时间。 链接: https://pan.baidu.com/s/1erFsMcVR0A_xT4fx…

无人机遂行编队飞行中的纯方位无源定位(2022数模国赛B题)

文章目录 论文项目地址 数模国赛前的练手题&#xff0c;实力不够&#xff0c;参考了好多论文才写出来&#xff0c;个人感觉思路应该没什么大问题&#xff0c;供大家参考 论文 项目地址 github&#xff1a;UAVFormationFlight gitee&#xff1a;UAVFormationFlight 项目包含 完…

指针式仪表识别

源码下载&#xff1a;小宅博客网 效果如下&#xff1a; 工程结构&#xff1a; 说明&#xff1a; 源码是针对下面这种刻度&#xff0c;并且单个指针的仪表的 如果是下面这种&#xff0c;刻度线被连接起来的&#xff0c;目前不支持转换成仪表单位&#xff0c;只能输出指针角度&…

探索自动化的魔法:Python中的pyautogui库

文章目录 探索自动化的魔法&#xff1a;Python中的 pyautogui 库背景&#xff1a;为什么选择pyautogui&#xff1f;pyautogui是什么&#xff1f;如何安装pyautogui&#xff1f;五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索自动化的魔法&#xff1a;Python中的 …

【Linux】 LTG:移动硬盘部署Ubuntu24.04

Ubuntu To Go 是一种便携式的 Ubuntu 操作系统解决方案&#xff0c;允许用户将 Ubuntu 系统安装在 USB 驱动器或其他可移动存储设备上。这样&#xff0c;用户可以在任何支持 USB 启动的计算机上运行 Ubuntu&#xff0c;而无需在本地硬盘上进行安装。 准备工作 移动硬盘&#x…

C++初阶:string类的模拟实现

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 前面已经对string类进行了…