使用 sysfs 文件系统访问 linux 内核

使用 sysfs 文件系统访问 linux 内核

ID:14901986

大小:188.00 KB

页数:22页

时间:2018-07-30

使用 sysfs 文件系统访问 linux 内核_第1页
使用 sysfs 文件系统访问 linux 内核_第2页
使用 sysfs 文件系统访问 linux 内核_第3页
使用 sysfs 文件系统访问 linux 内核_第4页
使用 sysfs 文件系统访问 linux 内核_第5页
资源描述:

《使用 sysfs 文件系统访问 linux 内核》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用sysfs文件系统访问Linux内核简介: sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与proc有些类似,但除了与proc相同的具有查看和设定内核参数功能之外,还有为Linux统一设备模型作为管理之用。相比于proc文件系统,使用sysfs导出内核数据的方式更为统一,并且组织的方式更好,它的设计从proc中吸取了很多教训。本文就sysfs的挂载点/sys目录结构、其与Linux统一设备模型的关系、常见属性文件的用法等方面对sysfs作入门介绍,并且就内核编程方面,以具体的例子来展示如何添加sysfs支持sysfs与

2、/syssysfs文件系统总是被挂载在/sys挂载点上。虽然在较早期的2.6内核系统上并没有规定sysfs的标准挂载位置,可以把sysfs挂载在任何位置,但较近的2.6内核修正了这一规则,要求sysfs总是挂载在/sys目录上;针对以前的sysfs挂载位置不固定或没有标准被挂载,有些程序从/proc/mounts中解析出sysfs是否被挂载以及具体的挂载点,这个步骤现在已经不需要了。请参考附录给出的sysfs-rules.txt文件链接。sysfs与procsysfs与proc相比有很多优点,最重要的莫过于设计上的清晰。一个proc虚拟文件可能有内部格

3、式,如/proc/scsi/scsi,它是可读可写的,(其文件权限被错误地标记为了0444!,这是内核的一个BUG),并且读写格式不一样,代表不同的操作,应用程序中读到了这个文件的内容一般还需要进行字符串解析,而在写入时需要先用字符串格式化按指定的格式写入字符串进行操作;相比而言,sysfs的设计原则是一个属性文件只做一件事情,sysfs属性文件一般只有一个值,直接读取或写入。整个/proc/scsi目录在2.6内核中已被标记为过时(LEGACY),它的功能已经被相应的/sys属性文件所完全取代。新设计的内核机制应该尽量使用sysfs机制,而将proc

4、保留给纯净的“进程文件系统”。回页首初识/sys清单1.与/sys文件系统的一次交互(视内核版本号和外接设备的不同,在您的系统上执行这些命令的结果可能与此有所不同)$ls-F/sysblock/bus/class/dev/devices/firmware/fs/kernel/module/power/$ls-F/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/broken_parity_statusenablemodaliasresource0romueventclassirqmsi_busresour

5、ce0_wcsubsystem@vendorconfiglocal_cpulistpower/resource1subsystem_devicedevicelocal_cpusresourceresource2subsystem_vendor这是在Fedora10的2.6.27.5-117.fc10.i686的内核上,可以看到在/sys目录下有block,bus,class,dev,devices,firmware,fs,kernel,module,power这些子目录,本文将分别介绍这些目录存在的含义。第二个ls命令展示了在一个pci设备目录下的文件

6、,"ls"命令的"-F"命令为所列出的每个文件使用后缀来显示文件的类型,后缀"/"表示列出的是目录,后缀"@"表示列出的是符号链接文件。可以看到第二个目录下包含有普通文件(regularfile)和符号链接文件(symboliclinkfile),本文也将以这个具体的设备为例说明其中每一个普通文件的用途。回页首/sys文件系统下的目录结构/sys下的目录结构是经过精心设计的:在/sys/devices下是所有设备的真实对象,包括如视频卡和以太网卡等真实的设备,也包括ACPI等不那么显而易见的真实设备、还有tty,bonding等纯粹虚拟的设备;在其它目

7、录如class,bus等中则在分类的目录中含有大量对devices中真实对象引用的符号链接文件;清单1中在/sys根目录下顶层目录的意义如下:表1./sys下的目录结构/sys下的子目录所包含的内容/sys/devices这是内核对系统中所有设备的分层次表达模型,也是/sys文件系统管理设备的最重要的目录结构,下文会对它的内部结构作进一步分析;/sys/dev这个目录下维护一个按字符设备和块设备的主次号码(major:minor)链接到真实的设备(/sys/devices下)的符号链接文件,它是在内核2.6.26首次引入;/sys/bus这是内核设备按

8、总线类型分层放置的目录结构,devices中的所有设备都是连接于某种总线之下,在这里的每一种具

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。