注册 登录
LUPA开源社区 返回首页

wuting_linux的个人空间 http://www.lupaworld.com/?296848 [收藏] [复制] [分享] [RSS]

我的博客

sysfs虚拟文件系统

已有 7649 次阅读2009-12-8 17:53

sysfs虚拟文件系统

        sysfs是Linux 2.6 内核的特征之一,它允许内核代码通过虚拟文件系统(存在于内存中)导出信息给用户程序。该文件系统目录层次组织非常严谨,是基于内核数据结构内在的组织方式。在该文件系统中创建的文件(几乎)都是ASCII文件,并且(通常)只有一个值。这些特征确保导出的信息是准确且易访问的,同时使得sysfs成为2.6内核中最直观和最有用的特征之一。

      sysfs是一种表示内核对象、对象的属性、以及对象之间关系的机制。它提供了两个组件:一个内核程序接口,用来通过sysfs导出这些条目(内核对象、对象的属性、以及对象之间关系),另一个是用户接口,用来查看和操作内核对象映射到用户空间的条目。下表表示了内部(内核)结构和它们外部(用户空间)sysfs之间的映射关系。

          sysfs是内核构成的主要部分之一,这意味着它为完成一个简单的任务提供了一个相对简单的接口。sysfs很少有代码过于复杂,或缺少描述的情况。然而,和其他核心组件一样,它太抽象和遥远,以至于很难跟踪。为了有助于缓和这些不足,这篇文章在了解sysfs本质细节之前,先采用渐进的方式来了解它。

         首先,通过了解它的历史来简短的描述它的来源。然后,是一些关于安装和访问sysfs的具体内容;接下来,描述sysfs系统中目录的组织和子系统的布局。尽管由于时间和篇幅限制,不能对每个对象及其属性进行描述,但是这已经为用户理解通过sysfs导出信息的组织形式和包含内容,提供了足够的信息。

        本文的主要目标是对sysfs内部接口——数据结构和用于导出内核构成到用户空间的函数,做一个技术上的概述。本文分节描述了上述三个概念(Kernel Objects, Object Attributes, and Object Relationships)的作用,另外,分别用一节的篇幅来描述两个附加的普通文件接口,它们用于简化一些通用操作(属性组和二进制属性)。

    sysfs是内核和用户空间之间的信息通道。用户空间的应用程序有很多机会可以改变这些信息。现有的应用是I/O调度参数和udev程序。最后一节描述了sysfs目前的简单应用,试图触发更多的灵感,使sysfs这个领域得到更多的应用。

    由于sysfs是一个简单、 但是很抽象的接口,因此要用很长时间来描述使用它的每个子系统与它的交互作用。尤其是内核对象(kobject)和驱动模型(driver models),它们不仅是2.6内核的新特征,而且与sysfs有紧密的关系。仅在这样一个媒介上讨论这些话题是不可能的,剩下的话题只能放到其他文档上。对此话题及相关话题感兴趣的读者,可以参阅[4]。

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部