在Linux系统中,/dev和/sys/dev目录分别存放的是不同类型的设备文件。以及关于Linux目录说明

本文详细解释了Linux系统中/dev目录用于设备文件交互,应用程序通过这些文件访问硬件,而/sys/dev则作为系统设备的符号链接,包含sysfs文件系统,用于设备属性管理和操控。应用层操控硬件可通过设备文件或属性文件,具体取决于设备类型和驱动实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux系统中,/dev和/sys/dev目录分别存放的是不同类型的设备文件。

/dev目录下存放的是设备文件,这些文件是应用程序和内核之间的交互文件。应用程序通过读写这些文件(如open、write、poll等操作),可以访问实际的设备。这些设备文件是由应用层通过mknod函数创建的,如果底层驱动对mknod的设备号有对应的驱动,那么应用程序在open "/dev/**"时,就会调用到底层的驱动。

举例说明:

而/sys/dev目录是一个符号链接,指向/sys/devices中的实际设备。这个目录存放的是系统的所有设备,按照设备挂载的总线类型,组织成层次结构,保存了系统所有的设备。这个目录是文件系统管理设备的重要目录,也是Linux统一设备模型的一部分。

举例说明:

总的来说,/dev目录存放的是应用程序与内核交互的设备文件,而/sys/dev目录存放的是系统的所有设备,这些设备由文件系统进行管理。

系统中所有的设备(对象)都会在 /sys/devices 体现出来,是 sysfs 文件系统中最重要的目录结构;而
/sys/bus /sys/class /sys/dev 分别将设备按照挂载的总线类型、功能分类以及设备号的形式将设备组织存放 在这些目录中,这些目录下的文件都是链接到了/sys/devices 中。
设备的一些属性、数据通常会通过设备目录下的文件体现出来,也就是说设备的数据、属性会导出到用户空间,以文件形式为用户空间提供对这些数据、属性的访问支持,可以把这些文件称为属性文件;读这些属性文件就表示读取设备的属性信息,相反写属性文件就表示对设备的属性进行设置、以控制设备的状态。

这里给大家进行一个总结,应用层想要对底层硬件进行操控,通常可以通过两种方式:
/dev/ 目录下的设备文件(设备节点);
/sys/ 目录下设备的属性文件。
具体使用哪种方式需要根据不同功能类型设备进行选择,有些设备只能通过设备节点进行操控,而有些设备只能通过 sysfs 方式进行操控;当然跟设备驱动具体的实现方式有关,通常情况下,一般简单地设备会 使用 sysfs 方式操控,其设备驱动在实现时会将设备的一些属性导出到用户空间 sysfs 文件系统,以属性文件的形式为用户空间提供对这些数据、属性的访问支持,譬如 LED GPIO 等。但对于一些较复杂的设备通常会使用设备节点的方式,譬如 LCD 等、触摸屏、摄像头等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值