Linux 内核文件系统

    sysfs 产生了一个包含所有系统硬件的层次视图,把连接在系统上的设备和总线组织成
为一个分级的文件,向用户空间导出内核数据结构和以及它们的属性。 sysfs 清晰的展示了
设备驱动模型中各组件的关系,顶层目录包括 block、 device、 bus、 drivers、 class、 power
和 firmware 等。

/sys/devices
这是内核对系统中所有设备的分层次表达模型,也是/sys 文件系统管理设备的最重要
的目录结构
/sys/dev
这个目录下维护一个按字符设备和块设备的主次号码( major:minor)链接到真实的设
备( /sys/devices 下)的符号链接文件
/sys/bus
这是内核设备按总线类型分层放置的目录结构, devices 中的所有设备都是连接于某
种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它
也是构成 Linux 统一设备模型的一部分
/sys/class
这是按照设备功能分类的设备模型,如系统所有输入设备都会出现在/sys/class/input
之下,而不论它们是以何种总线连接到系统。它也是构成 Linux 统一设备模型的一部

/sys/kernel
这里是内核所有可调整参数的位置,目前只有 uevent_helper、 kexec_loaded、 mm 和新
式的 slab 分配器等几项较新的设计在使用它,其它内核可调整参数仍然位于
sysctl(/proc/sys/kernel) 接口中
/sys/module
这里有系统中所有模块的信息,不论这些模块是以内联(inlined)方式编译到内核映像
文件(vmlinuz)中还是编译为外部模块( ko 文件),都可能会出现在/sys/module 中:
编译为外部模块(ko 文件)在加载后会出现对应的/sys/module/<module_name>/,并且在
这个目录下会出现一些属性文件和属性目录来表示此外部模块的一些信息,如版本
号、加载状态、所提供的驱动程序等
编译为内联方式的模块则只在当它有非 0 属性的模块参数时会出现对应的
/sys/module/<module_name> , 这 些 模 块 的 可 用 参 数 会 出 现 在
/sys/modules/<modname>/parameters/<param_name>中:
如/sys/module/printk/parameters/time 这个可读写参数控制着内联模块 printk 在打印内
核消息时是否加上时间前缀
/sys/module
所有内联模块的参数也可以由“ <module_name>.<param_name>=<value>”的形式写在
内 核 启 动 参 数 上 , 如 启 动 内 核 时 加 上 参 数 "printk.time=1" 与 向

 

posted @ 2015-10-30 14:27  求隐  阅读(102)  评论(0编辑  收藏  举报