linux 目录/sys 解析

今天搞树莓派,遇到/sys这个目录,不太清楚,先对/sys目录知识进行一个整理linux

首先,对 /sys目录下的各个子目录进行具体说明:spa

/sys下的子目录开放源代码

内容设计

 

 

 

 

/sys/devicesorm

该目录下是全局设备结构体系,包含全部被发现的注册在各类总线上的各类物理设备。通常来讲,全部的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system devices。platform devices通常是挂在芯片内部的高速或者低速总线上的各类控制器和外设,它们能被CPU直接寻址;system devices不是外设,而是芯片内部的核心结构,好比CPU,timer等,它们通常没有相关的驱动,可是会有一些体系结构相关的代码来配置它们。视频

(sys/devices是内核对系统中全部设备的分层次表达模型,也是/sys文件系统管理设备的最重要的目录结构)xml

 

sys/dev对象

该目录下维护一个按照字符设备和块设备的主次号码(major:minor)连接到真是设备(/sys/devices)的符号连接文件。blog

 

 

 

/sys/class接口

该目录下包含全部注册在kernel里面的设备类型,这是按照设备功能分类的设备模型,每一个设备类型表达具备一种功能的设备。每一个设备类型子目录下都是这种哦哦那个设备类型的各类具体设备的符号连接,这些连接指向/sys/devices/name下的具体设备。设备类型和设备并无一一对应的关系,一个物理设备可能具有多种设备类型;一个设备类型只表达具备一种功能的设备,好比:系统全部输入设备都会出如今/sys/class/input之下,而不论它们是以何种总线链接到系统的。(/sys/class也是构成linux统一设备模型的一部分)

 

 

 

/sys/block

该目录下的全部子目录表明着系统中当前被发现的全部块设备。按照功能来讲防止在/sys/class下会更合适,但因为历史遗留因素而一直存在于/sys/block,但从linux2.6.22内核开始这部分就已经标记为过去时,只有打开了CONFIG_SYSFS_DEPRECATED配置编译才会有这个目录存在,而且其中的内容在从linux2.6.26版本开始已经正式移到了/sys/class/block,旧的接口/sys/block为了向后兼容而保留存在,但其中的内容已经变为了指向它们在/sys/devices/中真实设备的符号连接文件。

 

 

 

 

/sys/bus

该目录下的每一个子目录都是kernel支持而且已经注册了的总线类型。这是内核设备按照总线类型分层放置的目录结构,/sys/devices中的全部设备都是链接于某种总线之下的,bus子目录下的每种具体总线之下能够找到每一个具体设备的符号连接,

通常来讲每一个子目录(总线类型)下包含两个子目录,一个是devices,另外一个是drivers;其中devices下是这个总线类型下的全部设备,这些设备都是符号连接,它们分别指向真正的设备(/sys/devices/name/下);而drivers下是全部注册在这个总线上的驱动,每一个driver子目录下 是一些能够观察和修改的driver参数。

(它也是构成linux统一设备模型的一部分)

/sys/fs

按照设计,该目录使用来描述系统中全部的文件系统,包括文件系统自己和按照文件系统分类存放的已挂载点。

/sys/kernel

这个目录下存放的是内核中全部可调整的参数

/sys/firmware

该目录下包含对固件对象(firmware object)和属性进行操做和观察的接口,即这里是系统加载固件机制的对用户空间的接口.(关于固件有专用于固件加载的一套API)

/sys/hypervisor

该目录是与虚拟化Xen相关的装置。(Xen是一个开放源代码的虚拟机监视器)

 

/sys/module

该目录下有系统中全部的模块信息,不论这些模块是之内联(inlined)方式编译到内核映像文件中仍是编译为外模块(.ko文件),均可能出如今/sys/module中。即module目录下包含了全部的被载入kernel的模块。

 

/sys/power

该目录是系统中的电源选项,对正在使用的power子系统的描述。这个目录下有几个属性文件能够用于控制整个机器的电源状态,如能够向其中写入控制命令让机器关机/重启等等。

 

  能够看到 sys 下的目录结构是通过精心设计的:在/sys/devices 下是全部设备的真实对象,包括如视频卡和以太网卡等真实的设备,也包括ACPI 等不那么显而易见的真实设备、还有tty, bonding 等纯粹虚拟的设备;在其它目录如 class, bus 等中则在分类的目录中含有大量对 devices 中真实对象引用的符号连接文件;

相关文章
相关标签/搜索