- 0
- 0
- 约4.1千字
- 约 20页
- 2018-07-18 发布于湖北
- 举报
Linux操作系统分析与实践实验二:内存管理 《Linux操作系统分析与实践》课程建设小组 北京大学 二零零八年春季 *致谢:感谢Intel对本课程项目的资助 实验目的 1.理解Linux虚拟内存管理的机制。 2.学习模块编程的基本技能。 实验内容 1.模块 编写一个内核模块,分别实现如下几个函数: static void mtest_dump_vma_list(void): 依次列出当前进程各段的读、写或执行权限。 static void mtest_find_vma(unsigned long addr): 找到虚地址addr所在的vma,通过printk打印该段的起始地址、 终止地址、段标志等信息。 static void mtest_find_page(unsigned long addr): 找到虚拟地址addr,显示出其对应的物理地址。 为了测试和使用以上函数,在内核模块的初始化函数中创建一个名为mtest的/proc文件。mtest文件绑定的写函数mtest_write允许用户程序写入一串字符串,指定要使用以上的那个内核函数及其参数。mtest_write函数的定义为: static ssize_t mtest_write(struct file *file, const char __user * buffer,size_t count, loff_t * data) 2.测试程序 为了测试以上模块的正确性,要求编写一个称为test的应用程序,它通过打开/proc文件mtest,调用模块内的相关函数并给出相应的测试信息。 Linux内核模块 Linux操作系统的内核是单一体系结构(monolithic kernel) 有了模块机制后,提高Linux操作系统的可扩充性,内核编程不再是一个恶梦 什么是模块呢? 模块的全称是“动态可加载内核模块”(Loadable Kernel Module,LKM) 模块在内核空间运行 模块实际上是一种目标对象文件 没有链接,不能独立运行,但是其代码可以在运行时链接到系统中作为内核的一部分运行或从内核中取下,从而可以动态扩充内核的功能 这种目标代码通常由一组函数和数据结构组成 Linux内核模块的优点与缺点 优点 使得内核更加紧凑和灵活 修改内核时,不必全部重新编译整个内核。系统如果需要使用新模块,只要编译相应的模块,然后使用insmod将模块装载即可 模块的目标代码一旦被链接到内核,它的作用域和静态链接的内核目标代码完全等价 缺点 由于内核所占用的内存是不会被换出的,所以链接进内核的模块会给整个系统带来一定的性能和内存利用方面的损失; 装入内核的模块就成为内核的一部分,可以修改内核中的其他部分,因此,模块的使用不当会导致系统崩溃; 为了让内核模块能访问所有内核资源,内核必须维护符号表,并在装入和卸载模块时修改符号表; 模块会要求利用其它模块的功能,所以,内核要维护模块之间的依赖性. Linux内核模块与应用程序的区别 C语言程序 Linux内核模块 运行 用户空间 内核空间 入口 main() module_init()指定; 出口 无 module_exit()指定; 编译 gcc –c Makefile 连接 ld insmod 运行 直接运行 insmod 调试 gdb kdbug, kdb, kgdb等 模块相关命令 insmod module.ko [module parameters] Load the module 注意,只有超级用户才能使用这个命令 Rmmod Unload the module lsmod List all modules loaded into the kernel 这个命令和cat /proc/modules等价 modprobe [-r] module name – Load the module specified and modules it depends 模块依赖 一个模块A引用另一个模块B所导出的符号,我们就说模块B被模块A引用。 如果要装载模块A,必须先要装载模块B。否则,模块B所导出的那些符号的引用就不可能被链接到模块A中。这种模块间的相互关系就叫做模块依赖。 最简单的内核模块例子 static int __init hello_init(void) static void __exit hello_exi
您可能关注的文档
- 建设工程施工图设计审查知识.doc
- 竹子脚手架施工方案 2.doc
- 饲料厂生产节能降耗作业要点-附件.doc
- 快排函数调用.doc
- 耗热量计算公式指南.doc
- 浅谈银行案件防控试题.doc
- 常用课堂用语50句详解.doc
- 地球物理勘查施工方案教材.doc
- 电梯紧急救援程序与相关制度.doc
- 俄语惯用语4介绍.doc
- 2018年全年真题(上午+下午).docx
- 中级信息系统管理工程师2009下半年上午试题.doc
- 2026年郑州新高考历史全程复习规划与备考指南(一轮+二轮+三轮)含易考题、常考题、易错题.docx
- 2026年珠海新高考历史学科全程复习规划与备考指南(一轮+二轮+三轮)含易考题、常考题、易错题.docx
- 辽宁省点石联考2025-2026学年高一上学期11月期中考试物理试题(解析版).docx
- 清单11 记叙文阅读之朗读设计 表达技巧 主旨情感 开放探究(知识 方法 能力清单)(原卷版)-2026年中考语文二轮复习讲练(全国通用).docx
- 热点11 《中华人民共和国治安管理处罚法》(热点专练)(解析版)(全国通用) 2026年中考道德与法治一轮复习讲练.docx
- 专题02 常用地理计算(讲义)(全国通用)(解析版)-2026年中考地理二轮复习讲练.docx
- 小说易错02 重点情节理解偏差(选择题)(易错专练)(全国通用)(解析版)-2026年高考语文二轮复习讲练.docx
- 热点08 新质生产力与科技强国之路——从DeepSeek到锂电池技术突破(热点专练)(全国通用)(原卷版)-2026年高考历史二轮复习讲练.docx
最近下载
- 三下语文阅读理解与答题模板 .pdf VIP
- 人教版二年级下册数学全册新素养教学课件(配2026年春改版教材).pptx
- 智能座舱系统调试与测试课件 2人机交互系统.pptx VIP
- 2025年初中数学教师基本功大赛试题.docx VIP
- 无人机基础理论培训课件.pptx
- 符号建构与身份表演:符号互动论框架下趣缘群体社交机制研究--基于豆瓣MBTI小组的数字民族志.pdf
- T∕ZZB 1653-2020 一次性细胞冻存管(聚丙烯).pdf VIP
- 无障碍设施建设图集.pdf VIP
- 大学英语自我介绍课件.pptx VIP
- (正式版)S-H-T 1844-2024 工业用乙烯、丙烯中痕量氢气、一氧化碳、二氧化碳的测定 气相色谱-氦离子化检测法.docx VIP
原创力文档

文档评论(0)