跳转到内容

Sysfs:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Joeinwiki留言 | 贡献
无编辑摘要
增加简繁转化机制
 
(未显示6个用户的9个中间版本)
第1行: 第1行:
{{noteTA
{{noteTA
|G1=IT
|G1=IT
|1=zh-cn:进程; zh-tw:行程;
}}
}}
'''Sysfs''' 是 Linux 2.6 所提供的一種[[虛擬檔案系統]]。這個[[檔案系統]]不僅可以把[[裝置]](devices)和[[驅動程式]](drivers) 的資訊從内核輸出到 [[用户空间]],也可以用來對裝置和驅動程式做設定。
'''Sysfs''' 是Linux 2.6所提供的一種[[虛擬檔案系統]]。這個[[檔案系統]]不僅可以把[[裝置]](devices)和[[驅動程式]](drivers)的資訊從内核輸出到[[用户空间]],也可以用來對裝置和驅動程式做設定。


== 歷史 ==
== 歷史 ==
[[Linux内核]]開發團隊在 Linux 2.5 的開發過程中引入了『[[Linux 驅動程式模型]]』(Linux driver model),以解決 [[2.4 核心]]所遭遇的以下問題:
[[Linux内核]]開發團隊在Linux 2.5的開發過程中引入了『[[Linux驅動程式模型]]』(Linux driver model),以解決2.4核心遭遇的以下問題:
* 沒有統一的機制表達驅動程式和裝置的關係。
* 沒有統一的機制表達驅動程式和裝置的關係。
* 不存在一般的[[熱插拔]](hotplug)機制。
* 不存在一般的[[熱插拔]](hotplug)機制。
* [[procfs]] 檔案系統過度混亂,包含了許多不是[[行程]](process)的資訊。
* [[procfs]]檔案系統過度混亂,包含了許多不是[[行程]](process)的資訊。


sysfs 的目的是把一些原本在 procfs 中的,關於裝置的部份,獨立出來,以『裝置階層架構』(device tree)的形式呈現。這個檔案系統由 [[Patrick Mochel]] 所寫,稍後 [[Maneesh Soni]] 撰寫 "sysfs backing store path",以降低在大型系統中對記憶體的需求量。
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一開始[[ramfs]]為基礎,也是一個只存在於記憶體中的檔案系統。ramfs是在2.4核心處於穩定階段時加入的。ramfs是一個優雅的實做,證明了要在當時仍很新的[[虛擬檔案]]下寫一個簡單的檔案系統是多麼容易的一件事。由於ramfs的簡潔以及使用了VFS,稍後的一些記憶體形式的檔案系統都以它作為開發基礎。


sysfs 剛開始被命名成 ddfs (Device Driver Filesystem),當初只是為了要對新的驅動程式模型除錯而開發出來的。它在除錯時,會把裝置架構(device tree)的資訊輸出到 procfs 檔案系統中。但在 [[Linus Torvalds]] 的急切督促下,ddfs 被轉型成一個以 ramfs 為基礎的檔案系統。在新的驅動程式模型被整合進 2.5.1 核心時,ddfs 被改名成 driverfs,以更確切描述它的用途。
sysfs剛開始被命名成ddfs(Device Driver Filesystem),當初只是為了要對新的驅動程式模型除錯而開發出來的。它在除錯時,會把裝置架構(device tree)的資訊輸出到procfs檔案系統中。但在[[Linus Torvalds]]的急切督促下,ddfs被轉型成一個以ramfs為基礎的檔案系統。在新的驅動程式模型被整合進2.5.1核心時,ddfs被改名成driverfs,以更確切描述它的用途。


2.5 核心開發的次年,新的“驅動程式模型”和 "driverfs" 證明了對核心中的其他子系統也有用處。kobjects 被開發出來,作為核心物件的中央管理機制,而此時 driverfs 也被改名成 sysfs。
在2.5核心開發的次年,新的“驅動程式模型”和"driverfs"證明了對核心中的其他子系統也有用處。kobjects被開發出來,作為核心物件的中央管理機制,而此時driverfs也被改名成sysfs。


== 技術概觀 ==
== 技術概觀 ==


每個被加入 driver model tree 內的物件,包括驅動程式、裝置以及 class 裝置,都會在 sysfs 檔案系統中以一個目錄呈現。
每個被加入driver model tree內的对象,包括驅動程式、裝置以及class裝置,都會在sysfs檔案系統中以一個目錄呈現。对象的属性作为文件出现。符号链接代表对象间的关系。通常安装在/sys目录下:
mount -t sysfs sysfs /sys



== 外部連結 ==
== 外部連結 ==
*[http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf The sysfs Filesystem(pdf), by Patrick Mochel]
*[https://web.archive.org/web/20151208165134/https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf The sysfs Filesystem(pdf), by Patrick Mochel]
*[http://lwn.net/Articles/31185/ Driver model overview from the LWN porting to 2.6 series]
*[http://lwn.net/Articles/31185/ Driver model overview from the LWN porting to 2.6 series]{{Wayback|url=http://lwn.net/Articles/31185/ |date=20080424081606 }}
*[http://lwn.net/Articles/54651/ kobjects and sysfs from the LWN porting to 2.6 series]
*[http://lwn.net/Articles/54651/ kobjects and sysfs from the LWN porting to 2.6 series]{{Wayback|url=http://lwn.net/Articles/54651/ |date=20080424081628 }}
*[http://wiki.debian.org/ramfs Ramfs]
*[http://wiki.debian.org/ramfs Ramfs]{{Wayback|url=http://wiki.debian.org/ramfs |date=20080615162649 }}


{{Filesystem}}
{{Filesystem}}
{{Linux内核}}


[[Category:Free special purpose file systems]]
[[Category:特殊目的自由文件系统]]
[[Category:Linux file systems]]
[[Category:Linux内核功能]]
[[Category:Linux内核的功能]]
[[Category:Linux内核接口]]

2023年10月21日 (六) 01:45的最新版本

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是一個優雅的實做,證明了要在當時仍很新的虛擬檔案系統下寫一個簡單的檔案系統是多麼容易的一件事。由於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檔案系統中以一個目錄呈現。对象的属性作为文件出现。符号链接代表对象间的关系。通常安装在/sys目录下:

mount -t sysfs sysfs /sys

外部連結

[编辑]