网站大量收购独家精品文档,联系QQ:2885784924

proc文件系统 国防科大操作系统教材.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档