使用sys 文件系统访问 Linux 内核.docx
上传人:qw****27 上传时间:2024-09-12 格式:DOCX 页数:25 大小:89KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

使用sys 文件系统访问 Linux 内核.docx

使用sys文件系统访问Linux内核.docx

预览

免费试读已结束,剩余 15 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

使用/sys文件系统访问Linux内核sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径HYPERLINK"http://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/"\l"author1"程任全(HYPERLINK"mailto:crquan@gmail.com?subject=使用%20/sys%20文件系统访问%20Linux%20内核&cc=jincx@cn.ibm.com"crquan@gmail.com),Linux内核开发者、存储开发工程师,UIT(创新科存储技术有限公司)程任全是一名中国的Linux内核开发者,2005年从国防科学技术大学(N.U.D.T.)获得空间工程学士学位,现任UIT(创新科存储技术有限公司)存储开发工程师,目前致力于高性能iSCSI/NAS存储设备的开发;而在业余时间里更喜欢的是与国际开源社区交流,和向Linux内核贡献代码。简介:sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与proc有些类似,但除了与proc相同的具有查看和设定内核参数功能之外,还有为Linux统一设备模型作为管理之用。相比于proc文件系统,使用sysfs导出内核数据的方式更为统一,并且组织的方式更好,它的设计从proc中吸取了很多教训。本文就sysfs的挂载点/sys目录结构、其与Linux统一设备模型的关系、常见属性文件的用法等方面对sysfs作入门介绍,并且就内核编程方面,以具体的例子来展示如何添加sysfs支持。本文的标签:HYPERLINK"javascript:launchTagWindow('/developerworks/mydeveloperworks/bookmarks/html?tag=file_systems')"file_systems,HYPERLINK"javascript:launchTagWindow('/developerworks/mydeveloperworks/bookmarks/html?tag=kernel')"kernel,HYPERLINK"javascript:launchTagWindow('/developerworks/mydeveloperworks/bookmarks/html?tag=linux')"linux,HYPERLINK"javascript:launchTagWindow('/developerworks/mydeveloperworks/bookmarks/html?tag=linux%25E6%2596%2587%25E4%25BB%25B6%25E7%25B3%25BB%25E7%25BB%259F')"linux文件系统,HYPERLINK"javascript:launchTagWindow('/developerworks/mydeveloperworks/bookmarks/html?tag=%25E5%2586%2585%25E6%25A0%25B8')"内核sysfs的历史,其与proc的关系?sysfs本身并不是一项很新的技术,但笔者发现,虽然sysfs从2003年诞生至今已有5年,但人们对sysfs依然缺乏了解;一个很重要的原因可能是缺乏文档,Linux内核方面最重要的理论书籍“Linux设备驱动第3版”和“理解Linux内核第2版”都诞生于2003年前后,并且从那以后尚未有再版过,其它一些重要文章则多对sysfs与proc相提并论且举例常常只有proc,这导致了sysfs的很多重要概念至今仍鲜为人知,因此有必要对sysfs作更多介绍,这是写作本文的初衷。sysfs与/syssysfs文件系统总是被挂载在/sys挂载点上。虽然在较早期的2.6内核系统上并没有规定sysfs的标准挂载位置,可以把sysfs挂载在任何位置,但较近的2.6内核修正了这一规则,要求sysfs总是挂载在/sys目录上;针对以前的sysfs挂载位置不固定或没有标准被挂载,有些程序从/proc/mounts中解析出sysfs是否被挂载以及具体的挂载点,这个步骤现在已经不需要了。请参考附录给出的sysfs-rules.txt文件链接。sysfs与procsysfs与proc相比有很多优点,最重要的莫过于设计上的清晰。一个proc虚拟文件可能有内部格式,如/proc/scsi/scsi,它是可读可写的,(其文件权限被错误地标记为了0444!,这是内核的一个BUG),并且读写格式不一样,代表不同的操作,应用程序中读到了这个文件的内容一般还需要进行字符串解析,而在写入时需要先用字符串格