1. sysfs
1.1 前言
在linux系统中,用户空间访问驱动程序一般是以“设备文件”的方式通过“read/write/ioctl”
访问,但这种方式有几个明显的缺点。
- read/write接口功能单一
- ioctl虽然可以根据cmd参数实现多重功能,但它们都无法直接在shell/mash脚本中被调用,必须通过C语言方式访问
- ioctl二进制数据接口存在大小端问题,不同平台CPU(32/64)不方便移植
除了“设备文件”方式,驱动程序还可以实现procfs虚拟文件系统接口,提供给用户访问。procfs访问驱动程序,同样使用的是"read/open/ioctl"
接口,因此也存在“设备文件”方式中的类似问题。
因此,linux系统从2.6版本内核开始引入一个独立的抽象接口来描述设备和驱动信息,即是sysfs虚拟文件系统。
1.2 什么是sysfs
sysfs是linux系统下一个基于内存的文件系统,主要功能是将设备(device)和驱动(driver)内容通过文件的