Sysfs

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

外部連結

  • 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(页面存档备份,存于互联网档案馆

磁盘
  • ADFS英语Advanced Disc Filing System
  • AdvFS
  • Amiga FFS英语Amiga Fast File System
  • Amiga OFS英语Amiga Old File System
  • APFS
  • AthFS英语AtheOS File System
  • Bcachefs
  • BFS
    • Be文件系统英语Be File System
    • 启动文件系统英语Boot File System
  • Btrfs
  • DFS英语Disc Filing System
  • EFS
  • Episode英语Episode filesystem
  • ext
  • FAT
  • Files-11英语Files-11
  • Fossil
  • HAMMER英语HAMMER
  • HFS
  • HFS+
  • HPFS
  • HTFS英语High Throughput File System
  • IBM通用并行文件系统英语IBM General Parallel File System
  • JFS
  • LFS英语Log-structured File System (BSD)
  • MFS
    • Macintosh文件系统英语Macintosh File System
    • Tivo媒体文件系统英语Tivo Media File System
  • MINIX
  • NetWare文件系统英语NetWare File System
  • Next3英语Next3
  • NILFS英语NILFS
    • NILFS2英语NILFS2
  • NSS英语Novell Storage Services
  • NTFS
  • OneFS英语OneFS distributed file system
  • PFS英语Professional File System
  • QFS英语QFS
  • QNX4FS英语QNX4FS
  • ReFS
  • ReiserFS
    • Reiser4英语Reiser4
  • Reliance英语Reliance (file system)
  • Reliance Nitro英语Reliance Nitro
  • RFS
  • SFS英语Smart File System
  • Soup英语Soup (Apple)
  • Tux3英语Tux3
  • UBIFS
  • UFS
  • VxFS英语Veritas File System
  • WAFL英语Write Anywhere File Layout
  • Xiafs英语Xiafs
  • XFS
  • Xsan英语Xsan
  • zFS英语zFS (z/OS file system)
  • ZFS
  • HSF英语High Sierra Format
  • ISO 9660
  • ISO 13490英语ISO 13490
  • UDF
  • CXFS英语CXFS
  • GFS2英语GFS2
  • Google檔案系統
  • OCFS2英语OCFS2
  • OrangeFS英语OrangeFS
  • PVFS英语Parallel Virtual File System
  • QFS英语Quantcast File System
  • Xsan英语Xsan
  • 更多...
NAS
特殊
  • Aufs
  • AXFS英语AXFS
  • 启动文件系统英语Boot File System
  • CDfs英语CDfs
  • 光盘文件系统英语Compact Disc File System
  • Cramfs
  • Davfs2英语Davfs2
  • EROFS
  • FTPFS
  • FUSE
  • GmailFS
  • Lnfs
  • LTFS英语Linear Tape File System
  • MVFS英语Rational MultiVersion File System
  • SquashFS
  • UMSDOS英语FAT filesystem and Linux
  • OverlayFS
  • UnionFS英语UnionFS
  • WBFS英语WBFS
  • configfs英语configfs
  • devfs英语Device file
  • debugfs英语debugfs
  • kernfs英语kernfs (BSD)
  • procfs
  • specfs
  • sysfs
  • tmpfs
  • WinFS
加密英语Filesystem-level encryption
类型
  • 集群
    • 全局英语Global file system
    • 网格英语Grid File System
    • 自我认证英语Self-certifying File System
  • 闪存
  • 日志
  • 日志结构英语Log-structured file system
  • 对象
  • 面向记录英语Record-oriented filesystem
  • 语义英语Semantic file system
  • 隐写英语Steganographic file system
  • 合成英语Synthetic file system
  • 版本英语Versioning file system
特性
访问控制英语Computer access control
接口
组织
内核
支持
技术
调试
  • CRIU英语CRIU
  • ftrace英语ftrace
  • kdump
  • Linux内核oops
  • SystemTap英语SystemTap
启动过程
ABI
API
用户空间
FS守护进程
封装库
内核部分
系统调用接口
内核内
  • ALSA
  • DRI
  • Video4Linux
  • New API英语New API
  • Crypto API英语Crypto API (Linux)
内核组件
  • 内核模块
  • BlueZ英语BlueZ
  • cgroups
  • 控制台
  • bcache英语bcache
  • 设备映射器
  • dm-cache英语dm-cache
  • dm-crypt
  • DRM
  • EDAC
  • evdev英语evdev
  • 内核同页合并(KSM)
  • LIO
  • 帧缓冲区(Framebuffer)
  • LVM
  • KMS驱动
  • Netfilter
  • Netlink
  • nftables英语nftables
  • 网络调度器
  • perf英语perf (Linux)
  • SLUB
  • zram
  • zswap
  • 安全模块AppArmor
  • Exec Shield英语Exec Shield
  • grsecurity英语grsecurity
    • PaX英语PaX
  • seccomp英语seccomp
  • SELinux
  • Smack
  • TOMOYO Linux英语TOMOYO Linux
  • Linux PAM英语Linux PAM
  • initramfs
  • kexec
  • kGraft英语kGraft
  • kpatch英语kpatch
  • Ksplice
变种
虛擬化
采用
使用范围
采用者
  • Linux采用者列表
  • GENIVI联盟
  • Linux专有软件
人物
  • 分类 分类
  • 共享资源页面 共享资源
  • 维基百科图书 教科书
  • 维基学院页面 学院
  • 主题 主题