linux块设备驱动开发,linux块设备驱动开发.pdf

本文详细介绍了LINUX块设备驱动的工作原理,包括块设备的特点、驱动程序的请求队列机制和分层实现。块设备驱动程序在系统中扮演重要角色,其复杂性较高,对系统性能影响显著。驱动程序需要处理数据的随机访问,通常应用于如磁盘驱动器等设备。此外,文章还探讨了块设备与字符设备的区别,以及block_device_operations结构体在块设备驱动中的作用。
摘要由CSDN通过智能技术生成

The success's road

LINUX块设备驱动开发

LINUX块设备驱动开发

远见品质 知识点

知识点

v块设备驱动程序简介

v块设备驱动程序简介

v块设备特点及驱动程序工作原理

v块设备特点及驱动程序工作原理

v块设备驱动程序的请求队列机制

v块设备驱动程序的分层实现

远见品质 块设备驱动程序简介

v块设备驱动程序提供了面向数据

的设备的访问

v块设备一般以随机的方式传输数据

,并且数据总是具有固定大小的

v典型的 设备是磁盘驱动器类设备

远见品质 块设备驱动程序的特点

块设备驱动程序的特点

v块设备接口相对复杂,不如字符设

备明晰易用

v块设备驱动程序对整个系统的性能

影响较大,速度和效率是设计块设

备驱动程要重点考虑的问题

v系统中使用缓冲区与访问请求的优

化管理 (合并与重新排序)来提

系统性能

远见品质 块设备与字符设备的区别

块设备与字符设备的区别

属性\类别 块设备 字符设备

访问单位/次 有固定大小 无固定大小

随机访问 支持 不支持

(lseek )

用户直接访 不可 可以

驱动程序 复杂 相对简单

远见品质 block_device_operations结构体

v 在块设备驱动中,有1个类似于字符设备驱动中

file_operations结构体的block_device_operations结构体,它

是对 设备操作的集合

v struct block_device_operations

{

int(*open)(struct inode *, struct file*); //打开

int(*release)(struct inode *, struct file*); //释放

int(*ioctl)(struct inode *, struct file *, unsigned, unsigned

long); //ioctl

int(*media_changed)(struct gendisk*); //介质被改变?

int(*revalidate_disk)(struct gendisk*); //使介质有效

int(*getgeo)(struct block_device *, struc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值