- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
proc文件系统 国防科大操作系统教材.ppt
操作系统课程实验创建proc文件
2005.12
proc文件系统
当我查看/proc/meminfo文件时,看到的内容是什么?
proc文件系统的概念
proc文件系统是一种在用户态检查内核状态的机制。
如/proc/meminfo,可以读出当前的内存使用情况。
/proc/meminfo是磁盘文件吗?
如果是普通的磁盘文件,效率太低
它是一种特殊的文件,只有当用户读它的时候,才去准备有关内容
其他的proc文件
子目录/文件名
内容描述
apm
高级电源管理信息
bus
总线以及总线上的设备
devices
可用的设备信息
driver
已经启用的驱动程序
interrupts
中断信息
ioports
端口使用信息
version
内核版本
proc文件系统的特点
每个文件都规定了严格的权限
是否可读?是否可写?
哪个用户可读?哪个用户可写?
可以由任何文本编辑程序读取(more命令,cat命令,vi程序,自己编的读文件程序,等等)
不仅可以有文件,还可以有子目录(文件夹)。
可以自己写程序添加一个/proc目录下的文件。
一个例子
看看current文件的内容:
more current
看看current_too文件的内容:
可以看出这个文件的内容和current差不多,其实这个文件是一个链接,指向current。
看看hello文件的内容。
一个例子
试试写一下hello这个文件。
打开任意文本编辑器,如gedit,用编辑器打开/proc/proc_test/hello这个文件,然后清除里面的全部内容,再随便写一句话,保存。
再次看看hello文件的内容:
more hello
卸载模块: rmmod proc_test
创建proc文件
在上面的例子中,我们看到,通过编写一段程序,在/proc目录下创建了如下内容:
一个名叫proc_test的子目录。
一个名叫current的文件,只读,读出的内容是读它的进程的情况。
一个名叫current_too的链接,指向current。
一个名叫hello的文件,可读可写。读出的内容是上次写的内容前面加两句话。
分析这个程序
总体结构——五个函数
init_module (创建所有的proc文件)
cleanup_module (清除所有创建的内容)
proc_read_current (当需要读current文件的内容时,由内核调用这个函数)
proc_read_hello (和上面类似)
proc_write_hello (和上面类似)
程序工作流程 (1)
内核
init_module
我要加载模块proc_test
用户要加载你们这个模块了
可以加载,不过要给我创建一个叫hello的proc文件,到时候如果读写这个文件,你就找hello_read和hello_write
好吧,我同意创建文件。
程序工作流程 (2)
内核
我要写文件hello
hello_write
用户要写文件了,要写的内容是12345。怎么办?
知道了,我已经记下来了。
12345
程序工作流程 (3)
内核
hello_read
12345
我要读文件hello
用户要读文件了,老大,赶快准备一下撒!
就把我上次读到的内容前面加两句话,然后交给他。
这个文件可以读。读出的内容是:
hello message:
More write: 12345
创建proc文件
proc_mkdir函数:创建一个目录。
参数1:字符串,要创建的目录名。
参数2:在哪个目录下创建,一般用NULL表示在/proc下创建。
返回值:一个指向proc_dir_entry结构的指针。
注意,以下几个函数都要在调用后,对返回的proc_dir_entry结构进行设置。
创建proc文件
create_proc_read_entry函数:创建一个只读的proc文件。
参数1:字符串型,要创建的文件名。
参数2:整数型,文件的访问权限。
参数3:在哪个目录下创建。
参数4:读函数。告诉内核如果用户要读这个文件的时候应该找谁处理。
参数5:告诉内核在找读函数的时候,顺便给它一个指针,一般不用的话(或者你看不懂的话)就置NULL。
创建proc文件
create_proc_entry函数:创建一个普通的proc文件。
参数1:字符串型,要创建的文件名。
参数2:整数型,文件的访问权限。0666表示所有用户都可以访问。
参数3:在哪个目录下创建,可以用NULL表示在/proc下创建。
创建之后,还要设定读函数和写函数。
创建proc文件
proc_symlink函数:创建一个链接文件。
参数1:字符串型,要创建的链接文件名。
参数2:在哪个目录下创建,可以用NULL表示在/p
您可能关注的文档
- Part I and Part II The Literature of Colonial America 美国文学教材.ppt
- PART ONE 人力资本与 及劳动力市场 劳动经济学课件.ppt
- PART SIX 第六讲 工资的确定与 及报酬制度设计 劳动经济学课件.ppt
- PART THREE 第三讲 劳动供给分析 劳动经济学教材.ppt
- Part Two Note-taking in Reading 实用写作教学教案.ppt
- Particle Flow Code (PFC2D3D) Basic Training Course itasca相关软件(flac-flac3d-pfc-udec等)相关培训资料ppt.ppt
- PARTS OF SPEECH 英语写作 教材.ppt
- PayPal注册教程教学教案.ppt
- pbl呼吸困难 教材课程.ppt
- PCB+制造流程简介教学教案.ppt
- 革命题材小学语文教学中的学生自主学习能力培养研究教学研究课题报告.docx
- 《互联网金融风险监管体系构建与创新:以互联网金融保险为研究对象》教学研究课题报告.docx
- 人工智能赋能下的教育评价改革:区域教育利益相关者互动与协同机制研究教学研究课题报告.docx
- 《生态工业园区循环经济发展模式与区域生态环境治理能力建设研究》教学研究课题报告.docx
- 《基于多元评价的小学体育教学质量评价与体育教学评价机制改革研究》教学研究课题报告.docx
- 高中历史教学中STEM教育资源整合与历史研究能力培养研究教学研究课题报告.docx
- 广州商学院《综合素质训练》2023-2024学年第一学期期末试卷.doc
- 2025细胞治疗临床试验与审批流程监管政策与产业创新研究报告.docx
- 医疗美容行业2025年医疗美容行业市场拓展瓶颈突破效果评估与市场监管报告.docx
- 2025年全民健身设施补短板工程实施方案:全民健身设施与全民健身运动.docx
最近下载
- 小学副高个人专业技术总结.pptx
- GB 50300-2013 建筑工程施工质量验收统一标准.docx
- 抖音:短视频与直播运营PPT完整全套教学课件.pptx VIP
- 高级卫生专业技术资格考试病媒生物控制技术(096)(正高级)试卷与参考答案(2024年).docx VIP
- 高级卫生专业技术资格考试病媒生物控制技术(096)(副高级)自测试卷及解答参考.docx VIP
- 北海市-魅力北海,向海而生PPT模板.pptx
- 高级卫生专业技术资格考试病媒生物控制技术(096)(正高级)新考纲试题集精析.docx VIP
- 2025年高级卫生专业技术资格考试病媒生物控制技术(096)(副高级)知识点必刷题详解.docx VIP
- 2024年四川西华师范大学招聘辅导员真题.docx VIP
- 副食品供货配送项目投标方案(338).docx
文档评论(0)