使用设备号的一个基本需求就是根据设备号索引能够找到设备,而在Linux设备模型中,所有的设备最后都归结到kobject,所以问题也就转变成 dev_t到kobject实例的mapping问题,内核中使用kobj_map来描述这种映射,具体地,内核创建了两个实例cdev_map和bdev_map来分别管理字符设备和块设备及其设备号的映射关系, 二者都是kobj_map类型, 可以用下图简要表示
本文主要讨论如下问题:
- kobj_map是如何实现这种映射的。
- kobj_map实现的这种映射是如何被使用的。