Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》(4) devicefile 设备号相关

视频资料:https://www.bilibili.com/video/BV18SE26cEjn?spm_id_from=333.788.videopod.sections&vd_source=92b7efa4daa5bb4fdcdc9f2db97c307b&p=4

There is no C files in lesson4.

查看 Linux 系统的 /dev/ 文件夹,查看设备文件和文本文件的不同。实际上 /dev/ 下的设备文件大多都是虚拟文件,关闭树莓派之后,PC 查 SD 卡可以看到 /dev/ 文件夹大多是空的。

ls -lh 查看文件属性,第一个 d/c/b 代表不同意思。

c 代表字符设备文件,b 代表块设备文件,d 则是文件夹。在 Linux 中一切设备都是文件,系统用文件的开关读写抽象了设备的操作,所以 <linux/fs.h> 中的 file_operation 至关重要。

然后设备号,包括主设备号和次设备号。举例 /dev/gpiochip0 的主设备号 254,次设备号 0。cat /proc/devices 可以查看系统所有的设备的设备号。

Linux 内核驱动和设备是通过设备号来联系的,不是通过设备的名字。实际上也可以通过设备树 probe 来联系。

mknod 生成设备节点,

mknod 实际上是较早版本的设备文件的方法,现在已经不推荐了。故而个人建议了解即可。

整个视频涉及的都是 Linux 的基本概念,不复杂,但是要记住概念。

相关推荐
迪康Defender2 小时前
政企内网终端安全建设:资产‑管控‑防护‑审计闭环能力拆解
运维·网络·安全·web安全·终端安全管理
Neighbor_OldY2 小时前
【实战复盘】文件上传漏洞检测与应急处置:校验绕过、图片马与WebShell的排查修复指南
运维·前端·web安全
米糕闯编程3 小时前
鱼香ros2(一)在ubuntu中安装ros2
linux·运维·ubuntu·机器学习
数字孪生视频孪生3 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构
Huangjin007_3 小时前
【Linux 系统篇(十八)】进程(六) :环境变量
linux·运维·服务器
ShineWinsu3 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作
cnnews3 小时前
Ubuntu 编译 postmarketOS
linux·运维·arm开发·ubuntu·github·音视频
w01_02_033 小时前
linux, 桌面, 自启动。
linux·运维·服务器
(Charon)3 小时前
【C++】网络缓冲区设计(三):Chain Buffer链式缓冲区、动态扩容与跨节点读写
服务器·c++
云飞云共享云桌面3 小时前
SolidWorks+AutoCAD,多并发。可以多人共享一台设计服务器吗
运维·服务器·3d·自动化·制造