深入理解块设备驱动:原理、初始化与策略
1. 块设备概述
块设备驱动可处理多个块设备。例如,IDE 设备驱动能管理多个 IDE 磁盘,每个磁盘都是独立的块设备,并且磁盘通常会被分区,每个分区可视为一个逻辑块设备。块设备驱动需处理所有与对应块设备相关的块设备文件的 VFS 系统调用。
每个块设备由 block_device 描述符表示,其字段如下表所示:
| 类型 | 字段 | 描述 |
| ---- | ---- | ---- |
| dev_t | bd_dev | 块设备的主设备号和次设备号 |
| struct inode * | bd_inode | 指向 bdev 文件系统中与块设备关联的文件的索引节点的指针 |
| int | bd_openers | 块设备被打开的次数计数器 |
| struct semaphore | bd_sem | 保护块设备打开和关闭操作的信号量 |
| struct semaphore | bd_mount_sem | 用于禁止在块设备上进行新挂载的信号量 |
| struct list_head | bd_inodes | 此块设备已打开的块设备文件的索引节点列表的头指针 |
|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



