Linux下获取虚拟地址对应的物理地址的方法

Linux系统用户态根据虚拟地址获取物理地址的方式 之前做项目的时候,也会遇到过根据页表,由虚拟地址翻译物理地址的需求,一般的做法是HACK内核,在内核中加入HACK代码,思路无非就是通过页表进行转换,但是现在有了一种新的方式,这种方式下,不需要HACK内核,也不需要重新编译内核,便能够根据进程的虚拟地址,得到它的物理地址,下面展开介绍。 阅读详情

首先摘录如下URL对pagemap的描述。

https://www.kernel.org/doc/Documentation/vm/pagemap.txt


 * /proc/pid/pagemap.  This file lets a userspace process find out which
   physical frame each virtual page is mapped to.  It contains one 64-bit
   value for each virtual page, containing the following data (from
   fs/proc/task_mmu.c, above pagemap_read):


    * Bits 0-54  page frame number (PFN) if present
    * Bits 0-4   swap type if swapped
    * Bits 5-54  swap offset if swapped
    * Bit  55    pte is soft-dirty (see Documentation/vm/soft-dirty.txt)
    * Bits 56-60 zero
    * Bit  61    page is file-page or shared-anon
    * Bit  62  

用户空间的虚拟地址如何转换得到实际的物理地址 思路: 进程号是一个进程在用户空间的唯一标示,所以,根据pid可以从内核中得到一个进程的所有信息, 另外就是知道虚拟地址就可以通过内核物理地址映射到虚拟地址的逆运算就可以还原他的实际物理地址 以上便是虚拟地址转换成所对应的实际物理地址的思路。 大致的代码编写流程: 首先根据pid我们可以得到这个进程的task_struct,进而通过task_struct得到mm,通过mm得到pgd。 阅读详情

相关推荐

Linux下如何在进程中获取虚拟地址对应的物理地址

linux的/proc目录下记录了进程内存信息的映射,称其为虚拟目录。在/proc目录下有一个链接目录名为self,哪一个进程打开了它,它存储的信息就是该进程的。self中有一个pagemap文件,用来记录所链接进程的物理页号信息。pagemap是linux中一组新的接口集合,他通过读取/proc中的文件允许用户态的程序检查页表以及相关的信息。 /proc/pid/pagemap:这个文件允许一个

颖豆豆啦 3266

Linux内核学习3——虚拟地址转换成物理地址

这里,我们讲解一下Linux是如何将虚拟地址转换成物理地址的 一、地址转换 在进程中,我们不直接对物理地址进行操作,CPU在运行时,指定的地址要经过MMU转换后才能访问到真正的物理内存。 地址转换的过程分为两部分,分段和分页。 分段机制简单的来说是将进程的代码、数据、栈分在不同的虚拟地址段上,从而避免进程间的互相影响。分段之前的地址我们称之为逻辑地址,它有两部分组成,高位的段选择符和低位的段内偏移。在分段时先用段选择符在相应的段描述符表中找到段描述符,也就是某一个段的基地址,再加上段内偏移量就得到了对应的

weixin_45730790的博客 1万+

FPGA实现PI控制

FPGA实现PI控制

m0_57319166的博客 3897

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3126

tiny4412用 usb 连接计算机显示sec s5pc210 test b/d 解决方法

当我用USB线连接tiny4412的microUSB端口的时候,出现了驱动没有正常安装,显示“sec s5pc210 test b/d” 出现这种问题的原因有: 1、没有安装到正确的USB驱动; 2、SD卡没有插好 我出现问题的原因属于第二种,插入SD卡后,上电后,LCD屏亮了,但没有任何显示   解决方法是:     更换一张SD卡,重新插入开发板卡槽,上电开

karaskass的博客 3232

第1章 环境准备

本章是 Kubernetes 高可用集群部署的前置基础环境配置,所有节点必须严格按顺序执行。主要内容包括:节点规划(IP、角色、配置要求)、VMware 克隆节点环境清理(解决 MAC 地址和主机名冲突)、统一工作目录创建、主机名与 hosts 解析配置、系统基础升级、防火墙与 swap 关闭、内核模块加载(overlay、br_netfilter、ip_vs)、网络参数优化(IP 转发、桥接过滤)、时间同步配置等。Ubuntu 24.04 内核 6.8+ 原生支持 eBPF 和 IPVS,无需手动升级内核

幸福街--linux技术分享 211

PCIe协议之 Equalization篇 之 谈谈几种模式

对于两端有能力最高支持 32 GT/s 及以上速率的设备,如果把目标速度设置为 8 GT/s 或 16 GT/s 速率,是不建议采用 Bypass-Equalization-to-Highest-Rate 模式的,即便采用了,也不会针对 8 GT/s 或 16 GT/s 的目标速率进行 EQ。对于支持 32 GT/s 及以上速率的设备,其可能根本无需工作在 8 GT/s 或 16 GT/s 速率,这时再针对 8 GT/s 或 16 GT/s 速率进行 EQ,多少有点浪费。

那么菜的博客 567

订餐平台餐厅信息抓取:使用Python爬虫获取商家信息和用户评价

在这篇博客中,我们展示了如何使用Python爬虫抓取订餐平台上的餐厅信息和用户评价数据。通过使用requests和Selenium,我们能够有效地从静态和动态网页中提取数据,并使用pandas和matplotlib对数据进行存储和分析。未来,您可以根据需求进一步扩展功能,例如增加错误处理、增加抓取多个页面的能力,或者使用高级技术如分布式爬虫来抓取更大规模的数据。

2201_76125261的博客 1651

华为OD机试 - 报文响应时间 - 贪心算法、位运算(Python/JS/C/C++ 2024 E卷 200分)

贪心算法是在每一步选择中都做出当前最优的选择,期望通过局部最优解推导出全局最优解的算法。

学Java,找哪吒 1758

编程助手:CLAUDE.md 与 AGENTS.md 完全指南

AI编程助手配置文件指南 为解决AI编程助手在陌生项目中面临的运行、规范、架构等问题,本文提出两种配置文件: CLAUDE.md(根目录): 面向通用AI(如ClaudeCode) 包含项目命令、代码风格、架构说明等结构化信息 示例:启动命令:npm run dev,代码规范:TypeScript禁用any AGENTS.md(任意目录): 面向智能编码工具(如Cursor) 支持模块级配置(如微前端子应用) 示例:前端测试命令:npm test:web,API请求规范 与传统README.md的区别: 人

分享AI、区块链技术及应用,未来已来 1255

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: SIGSEGV异常时打印函数调用链
下一篇: 如何编写支持命令行选项的程序
无忧老猪
博客等级 码龄18年 200粉丝 112原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值