主设备号与次设备号

Linux系统通过设备文件访问设备,主设备号标识驱动程序,次设备号区分同一驱动下的不同设备。dev_t类型存储设备编号,通过宏进行转换。驱动程序需先分配设备编号,如使用register_chrdev_region,然后在不再使用时释放,通常在模块清除函数中调用unregister_chrdev_region。

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

主设备号与次设备号

驱动对应了设备,Linux系统中对于设备的访问是通过文件系统内的设备名称进行的。那些名称被称为特殊文件、设备文件,它们通常位于/dev目录下。

进入该目录,通过ls -l命令可以输出目录中的设备文件,其中第一列的'c'表示字符设备。

crw------- 1 root      root         254,   0 2019-01-21 05:34 BOOT
crw-rw---- 1 system    camera       240,   0 2019-01-21 05:34 MAINAF
crw-rw---- 1 media     media        246,   0 2019-01-21 05:34 MTK_SMI
crw------- 1 root      root         233,   0 2019-01-21 05:34 MT_pmic_adc_cali
crw------- 1 root      root          10,  57 2019-01-21 05:34 RT_Monitor
crw-rw---- 1 media     system       160,   0 2019-01-21 05:34 Vcodec
drwx--x--x 2 root      root             6000 2019-01-21 05:34 __properties__
crw------- 1 root      root         237,   0 2019-01-21 05:34 accdet
crw------- 1 root      root          10,  59 2019-01-21 05:34 aed0
crw------- 1 root      root          10,  58 2019-01-21 05:34 aed1
crw-rw-r-- 1 system    radio         10,  51 2019-01-21 05:34 alarm
### 设备号、主设备号次设备号 #### 设备号定义 在Linux操作系统中,每个硬件设备都被视为一个特殊类型的文件——设备文件。这些文件用于表示连接到系统的物理或虚拟设备。设备号是识别特定设备的关键标识符。 #### 主设备号定义 主设备号用来区不同种类的设备驱动程序。它指定了哪个模块负责处理该类别的所有请求。对于字符设备而言,其主设备号可以通过静态方式自行配或是由系统动态配[^1]。而杂项设备则有一个固定的主设备号10,并能自动创建对应的设备节点。 #### 次设备号定义 次设备号用于在同一类别下进一步细具体的实例。当多个相同类型的设备存在时(比如多张网卡),它们会共享同一个主设备号但是具有不同的次设备号以便于单独寻址。 #### 区别联系 - **区别** - 主要在于功能定位上有所不同;前者决定了调用哪一个驱动程序去管理这个设备,后者则是同一类型里边更细致化的编号。 - **联系** - 这两者共同构成了完整的设备号码,在访问某个具体外设的时候二者缺一不可。 #### 使用场景 - 对于开发者来说,在编写内核模块或者用户空间应用程序时需要用到这两个参数来进行正确的资源绑定。 - 当管理员需要手动建立新的设备节点时也需要指定这两者的信息。例如,如果想要添加一个新的字符型磁带备份装置,则可能涉及到为其设置合适的主次设备号组合。 ```bash mknod /dev/mytape c MAJOR MINOR ``` 在这个例子中`c`代表这是一个字符设备,MAJOR MINOR别对应着所选设备应有的主次设备号数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值