linux字符设备驱动 /proc/devices 和/dev 两个目录的区别

本文将从 内容 用途 产生时间三个维度分析不同

1内容不同

/proc/devices 包含两个主要部分:字符设备(char devices)和块设备(block devices)。每个部分列出了设备的主设备号和设备类型的名称。

/dev目录中的每一个文件代表一个设备。这些设备文件分为字符设备文件和块设备文件,分别用于不同类型的设备访问。例如,硬盘通常表示为块设备,而串口则表示为字符设备。

2用途不同

/proc/devices主要被用于诊断和系统管理目的,帮助管理员和开发者快速查看哪些设备已被系统识别,并确认设备的主设备号。这对于设备驱动开发和调试非常有用。

/dev 用户或者应用程序通过读写这些设备文件来与硬件进行交互。例如,一个程序可能会读取 /dev/mem 来访问物理内存,或者写入 /dev/sda 来向硬盘写数据

总的来说,/proc/devices 主要用于查看设备注册信息,而 /dev 用于实际的设备交互,其中的设备文件则是可以被操作的接口,支持如读写等系统调用。

3产生时间不同

一旦驱动通过在驱动入口函数中调用register_chrdev()cdev_add()来注册设备,相应的设备和它的主设备号会立即出现在 /proc/devices 文件中。这表明内核已经识别并注册了这个设备。

虽然设备已注册,但用户空间程序通常还需要一个设备文件来与之交互。这个设备文件需要在 /dev 目录下创建。有两种创建方式,手动创建和自动创建。

手动:使用 mknod 命令手动创建设备文件。例如:mknod /dev/mychardev c [major] [minor]

自动(推荐):使用 udev 系统,它会自动检测到由 cdev_add() 创建的设备并生成相应的 /dev 下的设备节点。这是现代Linux系统中推荐的方式,因为它动态管理设备文件并可以应用复杂的规则来命名设备文件。

总结:开发新的字符设备驱动并加载到系统后,/proc/devices 会在设备注册时更新,而 /dev 目录下的设备文件需要在设备注册后手动创建或通过 udev 自动创建。这两个步骤保证了设备在系统中的完整注册和可访问性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值