内核中有三个常用的伪文件系统: 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