第九章:I/O设备管理# 引言 本章导读 以往操作系统对设备的访问 实践体验 裸机设备驱动程序 侏罗猎龙操作系统 本章代码树 本章代码导读 设计设备驱动程序的总体思路 裸机设备驱动程序 操作系统设备驱动程序 I/O设备 本节导读 I/O设备概述 I/O设备的发展 简单设备 基于总线的多设备 支持中断的设备 高吞吐量设备 I/O传输方式 Programmed I/O Interrupt based I/O Direct Memory Access I/O设备抽象 I/O接口的交互协议 基于文件的I/O设备抽象 基于流的I/O设备抽象 基于virtio的I/O设备抽象 I/O执行模型 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 信号驱动IO(signal driven I/O) 异步IO(Asynchronous I/O) 五种IO执行模型对比 外设平台 本节导读 驱动程序概述 硬件系统架构 设备树 传递设备树信息 解析设备树信息 平台级中断控制器 串口驱动程序 本节导读 串口驱动程序 串口设备初始化 串口设备输入输出操作 virtio设备驱动程序 本节导读 virtio设备 virtio概述 virtio架构 I/O设备基本组成结构 virtio设备基本组成要素 virtio设备呈现模式 virtio设备特征描述 virtio设备状态表示 virtio设备交互机制 virtqueue虚拟队列 基于MMIO方式的virtio设备 virtio驱动程序 设备的初始化 驱动程序与设备之间的交互 发出I/O请求的过程 接收设备I/O响应的操作 virtio_blk块设备驱动程序 本节导读 virtio-blk驱动程序 virtio-blk设备的关键数据结构 初始化virtio-blk设备 操作系统对接virtio-blk设备初始化过程 virtio-blk设备的I/O操作 操作系统对接virtio-blk设备I/O处理 virtio_gpu设备驱动程序 本节导读 virtio-gpu驱动程序 virtio-gpu设备的关键数据结构 初始化virtio-gpu设备 virtio-gpu设备的I/O操作 操作系统对接virtio-gpu设备初始化 操作系统对接virtio-gpu设备I/O处理 图形化应用程序设计 移植 embedded-graphics 嵌入式图形库 实现贪吃蛇游戏图形应用 练习 课后练习 编程题 问答题 实验练习 实践作业 支持图形显示的应用 实验要求 问答作业 实验练习的提交报告要求 练习参考答案 课后练习 编程题 问答题