内核中有三个常用的伪文件系统: procfs
, debugfs
和 sysfs
procfs
— The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures.sysfs
— The filesystem for exporting kernel objects.debugfs
— Debugfs exists as a simple way for kernel developers to make information available to user space.
Introduction
都用于 Linux 内核
和 用户空间
的数据交换,但是适用的场景有所差异:
procfs
历史最早,最初就是用来跟内核交互的唯一方式,用来获取处理器、内存、设备驱动、进程等各种信息sysfs
跟kobject
框架紧密联系,而kobject
是为设备驱动模型而存在的,所以sysfs
是为设备驱动服务的debugfs
从名字来看就是为debug
而生,所以更加灵活
挂载方式
$ sudo mount -t proc nondev /proc/
$ sudo mount -t sys nondev /sys/
$ sudo mount -t debugfs nondev /sys/kernel/debug/
内核文档路径
procfs
— Documentation/filesystems/proc.txtsysfs
— Documentation/filesystems/sysfs.txtdebugfs
— Documentation/filesystems/debugfs.txt
debugfs
procfs
其目的是反映进程的状态信息,而 sysfs
主要用于 Linux 设备模型
,使用 debugfs
来调试内核,把我们需要关心的数据映射到用户空间
挂载命令
mount -t debugfs none /sys/kernel/debug
内核选项
Kernelhacking --->
[*]Debug Filesystem