笔记——设备文件、设备文件节点 、设备驱动的区别

本文介绍了Linux下设备的分类,包括字符设备、块设备和网络设备。详细解释了设备的主设备号、次设备号的概念及其作用。同时阐述了设备节点(设备文件)的概念及其创建方式,并介绍了设备驱动程序的作用。

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

设备文件、设备文件节点 、设备驱动 区别

(1).设备
Linux下的设备通常分为三类,字符设备,块设备和网络设备。
见的字符设备有鼠标、键盘、串口、控制台等。
常见的块设备有各种硬盘、flash磁盘、RAM磁盘等。
在Linux里一个网络设备也可以叫做一个网络接口,如eth0,应用程序是通过Socket而不是设备节点来访问网络设备,在系统里根本就不存在网络设备节点。
网络接口没有像字符设备和块设备一样的设备号,只有一个唯一的名字,如eth0、eth1等,而这个名字也不需要与设备文件节点对应
(2).主设备号
驱动程序在初始化时,会注册它的驱动及对应主设备号到系统中,这样当应用程序访问设备节点时,系统就知道它所访问的驱动程序了。你可以通过/proc/devices文件来驱动系统设备的主设备号。
(3).次设备号
驱动程序遍历设备时,每发现一个它能驱动的设备,就创建一个设备对象,并为其分配一个次设备号以区分不同的设备。这样当应用程序访问设备节点时驱动程序就可以根据次设备号知道它说访问的设备了。
(4).设备节点(设备文件)
Linux中设备节点是通过“mknod”命令来创建的。一个设备节点其实就是一个文件,Linux中称为设备文件。有一点必要说明的是,在Linux中,所有的设备访问都是通过文件的方式,一般的数据文件程序普通文件,设备节点称为设备文件。
(5).设备驱动
设备驱动程序(device driver),简称驱动程序(driver),是一个允许高级(High level)计算机软件(computer software)与硬件(hardware)交互的程序,这种程序建立了一个硬件与硬件,或硬件与软件沟通的界面,经由主板上的总线(bus)或其它沟通子系统(subsystem)与硬件形成连接的机制,这样的机制使得硬件设备(device)上的数据交换成为可能。
想象平时我们说的写驱动,例如点led灯的驱动,就是简单的io操作。

### 查找与3588设备树网络相关的配置或文档 对于特定型号如3588的设备树网络配置,通常这类信息会记录于官方提供的数据手册、应用笔记以及内核源码中的绑定说明文档里。由于具体到3588这一编号可能对应多个不同厂商的产品线,在此假设是指向某款具体的SoC或其他硬件平台。 #### 使用`fdtdump`反编译现有设备树二进制文件 为了查看现有的设备树中关于网络部分的内容,可以通过如下命令将`.dtb`转换成人类可读的形式并保存至`.dts`文件以便进一步分析: ```bash fdtdump devicetree.dtb > devicetree.dts ``` 这一步骤有助于理解当前系统的默认设置及其结构[^1]。 #### 设备树基本概念回顾 设备树采用树形结构表示系统内的各个组件,其中每个节点代表一个物理实体(比如网卡),而这些节点通过父子级联的方式构建起整个系统的拓扑图;每一个这样的节点内部则包含了若干个键值对用于定义该对象的具体参数。这种设计使得开发者能够灵活地调整外设初始化过程而不必修改底层驱动程序代码[^2]。 #### 文件系统映射 值得注意的是,在Linux操作系统运行期间,用户空间也可以访问由启动加载器传递给内核解析后的设备树副本。这部分资源被挂载到了`/sys/firmware/devicetree/base/`路径之下,并且存在一个名为`/proc/device-tree`的符号链接指向此处。因此如果想要动态获取有关已加载DTB的信息,则可以直接浏览上述位置下的相应子目录和文件[^3]。 针对3588系列产品的特殊需求,建议重点查阅以下几个方面: - **制造商官方网站**:寻找是否有专门面向开发者的资料库提供详细的DTS模板样例。 - **开源社区贡献者维护的相关项目仓库**:特别是那些专注于支持ARM架构处理器移植工作的团队所分享出来的补丁集或是讨论帖。 - **上游Linux Kernel Tree里的DeviceTree Bindings Documentation**:虽然提到Xilinx作为例子[^4],但对于其他品牌同样适用——即检查是否存在匹配的目标芯片组条目,从而得知其预期接受哪些属性声明。 最后提醒一点,因为涉及到版权保护等原因并非所有的商业产品都会公开完整的参考实现细节,所以当遇到困难时不妨尝试联系技术支持寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值