设备驱动程序
本次课的主要内容
- 什么是设备驱动程序
- Linux设备抽象
设备驱动程序原理
- 设备其实是一组寄存器和一组协议,一个设备,一个协议
设备可以分为两种
- 字符设备:字节流,例如键盘
- 块设备:字节数组,例如磁盘
操作系统:设备=支持各类操作的对象(文件)
- read: 从设备某个指定的位置读出数据
- write:向设备某个位置写入数据
- ioctl: 读取/设置设备的状态, ioctl是一个系统调用
上面为设备建立一个模型也就是说,把上面这三个系统调用,也就是通用的API,经过设备驱动程序,翻译成设备能够听得懂的语言, 这段代码就是设备驱动程序。
设备驱动程序
把系统调用“翻译”成与设备寄存器的交互
- 就是一段普通的内核代码
- 有可能这个设备驱动程序后面就是一个真实的设备,有可能没有设备,就是用设备驱动程序来模拟这个设备
例如:/dev/中的对象
- /dev/null null设备
- /dev/random 随机数生成器
Linux设备驱动
我们希望实现一个最简单的“软件定义核弹”
设备驱动程序
http://example.com/2023/08/02/操作系统/jyy操作系统/设备驱动程序/