玄幻小说女主少的:linux内核关键文件系统概述Sysfs procfs devfs

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 14:50:04

Sysfs 是 Linux 2.6 所提供的一种虚拟文件系统。这个文件系统不仅可以把设备(devices)和驱动程序(drivers) 的信息从内核输出到 用户空间,也可以用来对设备和驱动程序做设置。

[编辑]历史

Linux内核开发团队在 Linux 2.5 的开发过程中,引入了‘Linux 驱动程序模型’(Linux driver model),以解决 2.4 核心所遭遇的底下问题:

  • 没有统一的机制表达驱动程序和设备的关系。
  • 不存在一般的热插拔(hotplug)机制。
  • procfs 文件系统过度混乱,包含了许多不是进程(process)的信息。

sysfs 的目的是把一些原本在 procfs 中的,关于设备的部份,独立出来,以‘设备层次结构架构’(device tree)的形式体现。这个文件系统由 Patrick Mochel 所写,稍后Maneesh Soni 撰写 "sysfs backing store path",以降低在大型系统中对存储器的需求量。

sysfs 一开始以 ramfs 为基础,也是一个只存在于存储器中的文件系统。ramfs 是在 2.4 核心处于稳定阶段时加入的。ramfs 是一个优雅的实做,证明了要在当时仍很新的 VFS (虚拟文件系统)(en:Virtual file system)下写一个简单的文件系统是多么容易的一件事。由于 ramfs 的简洁以及使用了 VFS,稍后的一些存储器形式的文件系统都以它作为开发基础。

sysfs 刚开始被命名成 ddfs (Device Driver Filesystem),当初只是为了要对新的驱动程序模型除错而开发出来的。它在除错时,会把设备架构(device tree)的信息输出到 procfs 文件系统中。但在 Linus Torvalds 的急切督促下,ddfs 被转型成一个以 ramfs 为基础的文件系统。在新的驱动程序模型被集成进 2.5.1 核心时,ddfs 被改名成 driverfs,以更确切描述它的用途。

在 2.5 核心开发的次年,新的“驱动程序模型”和 "driverfs" 证明了对核心中的其他子系统也有用处。kobjects 被开发出来,作为核心对象的中央管理机制,而此时 driverfs 也被改名成 sysfs。

[编辑]技术概观

每个被加入 driver model tree 内的对象,包括驱动程序、设备以及 class 设备,都会在 sysfs 文件系统中以一个目录体现。