[linux device driver] Chapter 03:以scull_load为例,详解mknod命令

scull_load脚本里有一系列mknod的调用,如下:

mknod /dev/${device}0 c $major 0
mknod /dev/${device}1 c $major 1
mknod /dev/${device}2 c $major 2
mknod /dev/${device}3 c $major 3

从这里我们讨论下mknod的使用。

mknod的使用场景:

向系统增加一个驱动程序意味着要赋一个主设备号,通常使用register_chrdev 获得。一旦设备驱动程序注册到内核表中,内核调用file_operations的回调函数。

接下来的问题是如何给程序一个名字以被它们用来请求你的设备驱动程序,这个名字必须插入到/dev目录中,并与驱动程序的主设备号和次设备号相连。

在文件系统上创建一个设备节点的命令是mknod,而且操作用户必须是超级用户。

mknod的语法:

mknod语法

scull_load说明:mknod用法

背景知识:

linux的设备管理是和文件系统紧密结合的,各种设备都以文件形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。

为了管理这些设备,系统为设备编号,每个设备编号包含主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。

linux为所有的设备文件都提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open(),close(),read()和write()等,但由于外设的种类较多,操作方式各不相同。struct file_operations结构体中的成员为一系列的接口函数,比如用于读/写的read/write函数和用于控制的ioctl等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值