首页
›
嵌入式与底层系统
›
005-Linux内核接口与用户态通信
›
《Linux内核驱动非阻塞IO与poll机制实现工程》
VIP21
本课程属于:005-Linux内核接口与用户态通信
嵌入式与底层系统 · 共 21 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux内核驱动非阻塞IO与poll机制实现
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
IO模型概述
阻塞IO · 非阻塞IO · IO多路复用
IO
模型概述
02
Linux内核文件操作结构
struct file · struct inode · file_operations结构体…
Linux
内核文件操作结构
03
阻塞IO在内核中的实现原理
等待队列(wait_queue)机制 · schedule()与wake_up…
IO
阻塞
04
非阻塞IO在内核中的实现
O_NONBLOCK标志 · 驱动中如何检查并返回-EAGAIN
IO
非阻塞
05
poll机制概述
select/poll/epoll系…
poll
机制概述
06
struct poll_table_struct 结构体分析
poll_table · poll_queue_proc · 等待队列的注册
struct
poll
07
驱动中poll函数的实现模板
返回掩码(POLLIN/POLLOU…
poll
驱动
08
等待队列头初始化与等待队列项添加
init_waitqueue_hea… · poll_wait()函数详解
等待队列头初始化
等待队列项添加
09
内核事件通知机制
wake_up_interrupti…
内核事件通知机制
wake
10
驱动中实现非阻塞读操作
从硬件FIFO读取数据 · 无数据时返回-EAGAIN
驱动
实现非阻塞读操作
11
驱动中实现非阻塞写操作
缓冲区满时返回-EAGAIN · 并设置POLLOUT标志
驱动
实现非阻塞写操作
12
驱动中实现poll的读就绪条件
数据可用时设置POLLIN | PO…
poll
驱动
13
驱动中实现poll的写就绪条件
缓冲区有空闲时设置POLLOUT |…
poll
驱动
14
驱动中实现poll的错误/挂起条件
设备异常时设置POLLERR/POL…
poll
驱动
15
用户空间select系统调用与驱动poll的交互流程
从select到驱动poll的完整调…
select
poll
16
用户空间poll系统调用与驱动poll的交互流程
pollfd结构体与内核的映射
poll
用户空间
17
用户空间epoll系统调用与驱动poll的交互
epoll的LT与ET模式对驱动的影…
epoll
poll
18
驱动中支持epoll的边缘触发(ET)模式
如何避免丢失事件 · 返回掩码的注意事项
epoll
ET
19
驱动中支持epoll的水平触发(LT)模式
与默认poll行为的一致性
epoll
LT
20
多设备poll支持
一个驱动管理多个子设备时poll的实…
poll
多设备
21
驱动中poll与中断处理程序的协作
中断中唤醒等待队列 · 驱动poll返回正确掩码
poll
驱动
22
驱动中poll与定时器的协作
定时器到期后唤醒等待队列 · 实现超时poll
poll
驱动
23
驱动中poll与内核工作队列的协作
workqueue中处理数据后唤醒p…
poll
驱动
24
驱动中poll与内核线程的协作
kthread中持续监控硬件状态并唤…
poll
驱动
25
驱动中poll的并发与同步
自旋锁 · 互斥锁保护等待队列与数据缓冲区
poll
驱动
26
驱动中poll的调试技巧
使用ftrace跟踪poll调用 · 使用printk打印掩码变化
poll
驱动
27
驱动中poll的性能优化
减少不必要的唤醒 · 批量处理数据 · 使用原子操作
poll
驱动
28
驱动中poll与mmap的交互
mmap映射的缓冲区如何影响poll…
poll
mmap
29
驱动中poll与splice/tee系统调用的交互
零拷贝场景下poll的实现
poll
splice/tee
30
完整实战案例
一个字符设备驱动 · 支持非阻塞读写与poll/selec… · 包含Makefile与测试程序
完整实战案例
一个字符设备驱动
所属VIP或分类
同VIP:Android驱动开发-i2c-dev与用户态驱动设计
同VIP:Binder性能优化-从驱动参数到用户态调用链
同VIP:ioctl接口设计与用户态内核态数据传输实战工程