Sysfs:修订间差异
维基化 - 移除过度链接 |
小 机器人:移除6个跨语言链接,现在由维基数据的d:q1932562提供。 |
||
第34行: | 第34行: | ||
[[Category:Linux file systems]] |
[[Category:Linux file systems]] |
||
[[Category:Linux kernel features]] |
[[Category:Linux kernel features]] |
||
[[cs:Sysfs]] |
|||
[[en:Sysfs]] |
|||
[[es:Sysfs]] |
|||
[[fr:Sysfs]] |
|||
[[ja:Sysfs]] |
|||
[[ru:Sysfs]] |
2013年3月13日 (三) 02:59的版本
Sysfs 是 Linux 2.6 所提供的一種虛擬檔案系統。這個檔案系統不僅可以把裝置(devices)和驅動程式(drivers) 的資訊從内核輸出到 用户空间,也可以用來對裝置和驅動程式做設定。
歷史
Linux内核開發團隊在 Linux 2.5 的開發過程中,引入了『Linux 驅動程式模型』(Linux driver model),以解決 2.4 核心所遭遇的底下問題:
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 檔案系統中以一個目錄呈現。
外部連結
- The sysfs Filesystem(pdf), by Patrick Mochel
- Driver model overview from the LWN porting to 2.6 series
- kobjects and sysfs from the LWN porting to 2.6 series
- Ramfs