实验四 获取C程序中一个逻辑地址对应的物理地址

目录

  • 实验四 获取C程序中一个逻辑地址对应的物理地址
    • 实验环境
    • 一.实验目的
    • 二.实验内容
    • 三.实验步骤
    • 四.实验总结

实验环境

操作系统版本:ubuntu-14.04.1-desktop-i386
下载连接:http://old-releases.ubuntu.com/releases/trusty/ubuntu-14.04.1-desktop-i386.iso
实验课件及源码:https://wwe.lanzouw.com/ilBQnyrwffi

一.实验目的

1、了解IA32架构中的逻辑地址映射机制,包括分段和分页
2、了解Linux的分段机制及其特色
3、理解并掌握Linux从线性地址到物理地址的映射机制

二.实验内容

1、通过添加内核模块来获取一个应用程序变量的物理地址,验证Linux中分页机制的设置和实现方法

三.实验步骤

1、logadd2phyadd_test.c为测试程序即应用程序,按普通方式编译和执行。

2、Logadd2phyadd.c为LKM内核模块,需要编译后通过insmod命令添加到系统中。

3、执行logadd2phyadd_test程序时,其中write语句会把要查找的虚拟地址addr发送给Logadd2phyadd模块;Logadd2phyadd将根据页表映射机制查找器物理地址,并返回给应用程序。

四.实验总结

此次实验的目的是了解IA32架构中的逻辑地址映射机制,包括分段和分页,了解Linux的分段机制及其特色,理解并掌握Linux从线性地址到物理地址的映射机制。
首先需要根据传入的参数pid进行find_get_pid调用,然后再调用pid_task获得该进程的task结构体指针。一个虚拟地址只有在进程自己的地址空间中才是有意义的。其次,根据进程的任务描述符进行地址映射。Linux内核3.13.0使用的是四级映射机制。在IA32架构上,PUD实际上不起作用。
然后,在四级页表映射完成之后计算该线性地址对应的物理地址,paddr = (pte_val(*pte_tmp) & PAGE_MASK) | (vaddr & ~PAGE_MASK);其中pte_val(*pte_tmp) & PAGE_MASK获得的是物理帧号,而vaddr & ~PAGE_MASK获得的则是在该物理帧内的偏移量。二者进行或操作后就得到了完整的物理地址。最后输出物理帧号、帧内偏移量等信息
需要特别注意的是,如果要输出实际物理地址包含的内容,不能直接使用该物理地址,正确的方式是进行地址变换后再获取指针所执的内存单元的内容。
通过这次实验使我了解了怎样通过添加内核模块来获取一个应用程序变量的物理地址,并且验证了Linux中分页机制的设置和实现方法,让我学到了很多。

实验四 获取C程序中一个逻辑地址对应的物理地址相关推荐

  1. 计算机系统实验四:二进制程序逆向工程

    参考教材:计算机系统基础 第二版 袁春风 机械工业出版社 参考慕课:计算机系统基础(四):编程与调试实践 https://www.icourse163.org/learn/NJU-1449521162 ...

  2. 实验6 在应用程序中播放音频和视频

    课程名称 基于Android平台移动互联网开发 实验日期 2016年4月15日 实验项目名称 数独游戏界面设计 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 一. ...

  3. 实验6 在应用程序中播放音频和视频

    实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年4月15日 实验项目名称 设计一个简单登陆界面 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 ...

  4. java获取小程序中用户的unionId的三种方式

    前提条件: 想要获取unionId,必须几个小程序或者公众号在同一个主体之下,要不然没有unionId,只会生成用户的openid,可登陆下面这个微信官方平台查看 https://open.weixi ...

  5. 实验四 lr0分析程序的设计与实现_试验机海外直播丨实现高精度CAE分析实验的材料评价案例技术介绍...

    什么是复合材料? 复合材料是指由两种或两种以上具有不同物理.化学性质的材料,以微观.细观或宏观等不同的结构尺度与层次,经过复杂的空间组合而形成的一个材料系统.复合材料具有高比强度和高比刚度,可设计性强 ...

  6. C# 实验四 获取系统时间、点击加一秒功能

    题目要求 运行效果 有60秒进位,60分钟进位,24小时进位(清零)功能 代码 Form1.cs using System; using System.Collections.Generic; usi ...

  7. 微信小程序中一个div块内进行内容滚动

    使用scroll-view标签

  8. 实验四 201771010101 白玛次仁

    实验四 类与对象的定义及 第一部分:理论部分 Java类库中的LocalDate类位于Java.Time包中 1.用户自定义类: 2.静态域与静态方法: 3.方法参数 4.对象构造 5.包 6.类路径 ...

  9. 小程序中神秘的用户数据

    前面 上一篇文章手把手教会你小程序登录鉴权介绍了小程序如何进行登录鉴权,那么一般小程序的用户标识可以使用上文所述微信提供的jscode2session接口来换取,小程序还提供了一个getUserInf ...

最新文章

  1. 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法
  2. 龙格库塔法基本C程序
  3. GIS栅格数据集学习
  4. OCR算法识别率怎么评估?
  5. uva1331三角剖分
  6. 企业内部网的IP解析问题
  7. 剑指 Offer 10- I. 斐波那契数列/剑指 Offer 10- II. 青蛙跳台阶问题
  8. 视觉、语音、NLP、ML、AI安全,一家金融科技公司等你来
  9. java in查询无法查询到数据(mybatis字符#与字符$的区别)
  10. 车牌识别算法库EasyPR的编译实战
  11. 机器学习基础:极大似然估计(Machine Learning Fundamentals: Maximum Likelihood Estimation)
  12. Webpack 学习笔记
  13. r语言worldclim数据_arcgis中如何提取气候数据
  14. openwrt修改默认网关地址_修改宇视摄像机IP地址的方法
  15. python音频 降噪_python降噪_python音频降噪_python图片降噪 - 云+社区 - 腾讯云
  16. 阿里巴巴集团去IOE运动的思考与总结
  17. 找金币问题/只秤一次找出真假金币在哪个箱子
  18. java ecb加密_AES(Rijndael)算法ECB模式加密
  19. 二维码的生成(qrcode.js)
  20. STM32使用串口1配合DMA接收不定长数据,大大减轻CPU载荷

热门文章

  1. 测试ip丢包率分析shell脚本
  2. 基于java(springboot框架)在线考试系统 毕业论文(1)前端
  3. C#接口与抽象类学习笔记
  4. C primer plus(第六版)第十一章源代码
  5. 【调剂】北京信息科技大学2022年接收硕士研究生调剂公告
  6. Jinja2常用模板语言(条件判断if,循环遍历for,过滤器)
  7. PTA计算机网络第六章题目及答案
  8. 无线振弦自动化采集系统岩土工程监测
  9. jdb2 mysql io_CentOS 6.4系统中jdb2进程占用io过高的解决方法
  10. 申宝股票-股指再次冲高发力