首页
›
Linux内核与驱动
›
093-Linux驱动开发
›
《Linux驱动项目实战:ioctl接口与并发控制案例》
VIP10
本课程属于:093-Linux驱动开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux驱动项目实战:ioctl接口与并发控制案例
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
Linux驱动开发概述
内核模块基础 · 字符设备驱动框架 · 驱动与应用程序的交互方式
Linux
驱动开发概述
02
开发环境搭建
交叉编译工具链配置 · 内核源码树构建 · QEMU模拟器与树莓派真实硬件环境搭…
开发环境搭建
交叉编译工具链配…
03
第一个字符设备驱动
模块加载/卸载 · file_operations结构体 · 设备号注册与注销
第一个字符设备驱…
模块加载
04
ioctl接口原理
ioctl系统调用流程 · 命令码编码规范(_IO/_IOR/_… · 用户态与内核态数据拷贝(copy_f…
ioctl
接口原理
05
ioctl命令码设计
命令码的type/nr/size/d… · 自定义命令码示例 · 命令码冲突避免策略
ioctl
命令码设计
06
ioctl驱动实现(上)
实现ioctl函数 · switch-case命令分发 · 支持GET/SET类型命令
ioctl
驱动实现
07
ioctl驱动实现(下)
传递复杂结构体 · 指针参数校验 · 访问权限检查(CAP_SYS_ADM…
ioctl
驱动实现
08
用户态ioctl测试程序
打开设备 · 构造命令码 · 调用ioctl函数
ioctl
用户态
09
并发控制基础
竞态条件概念 · 临界区与共享资源 · 内核抢占与SMP环境下的并发来源
并发控制基础
竞态条件概念
10
原子操作
atomic_t类型 · atomic_inc/atomic_… · 原子位操作(set_bit/clea…
原子操作
atomic
11
自旋锁(上)
spinlock_t定义与初始化 · spin_lock/spin_unl… · 自旋锁的原子性要求
自旋锁
spinlock
12
自旋锁(下)
spin_lock_irqsave/… · 读写自旋锁(rwlock_t) · 自旋锁与性能权衡
自旋锁
spin
13
信号量
semaphore结构体 · down_interruptible… · 信号量与自旋锁的适用场景对比
信号量
semaphore
14
互斥体(mutex)
mutex结构体 · mutex_lock/mutex_u… · mutex与信号量的区别
mutex
互斥体
15
完成量(completion)
completion结构体 · wait_for_completio… · 内核线程同步场景
completion
完成量
16
读写锁
rcu_read_lock/rcu_… · rcu_assign_pointer… · RCU在驱动中的典型用法
读写锁
rcu
17
并发控制综合案例设计
需求分析——多进程同时访问共享缓冲区 · 设计ioctl命令集(读/写/清空/…
并发控制综合案例…
需求分析
18
共享缓冲区驱动实现
使用kzalloc分配内核缓冲区 · 自旋锁保护缓冲区元数据 · 互斥体保护数据操作
共享缓冲区驱动实…
kzalloc
19
ioctl命令实现(并发版)
实现READ_CMD/WRITE_C… · 在临界区加锁/解锁
ioctl
命令实现
20
用户态多线程测试
使用pthread创建多个读写线程 · 验证并发安全性 · 检测数据一致性与死锁
用户态多线程测试
pthread
21
调试与性能分析
使用printk与dmesg调试 · 开启内核锁调试选项(CONFIG_D… · 使用perf分析锁竞争
调试
性能分析
22
中断上下文中的并发控制
tasklet与workqueue中… · 中断下半部与进程上下文共享数据的保护
断上下文
并发控制
23
ioctl与阻塞I/O结合
等待队列(wait_queue_he… · wait_event_interru… · 实现阻塞读
ioctl
I/O
24
非阻塞I/O与poll接口
实现poll函数 · 使用poll_wait · 用户态select/poll/epo…
I/O
poll
25
ioctl与mmap结合
mmap原理 · remap_pfn_range · 在驱动中映射物理地址或内核缓冲区到用…
ioctl
mmap
26
设备树与平台驱动
设备树节点添加 · platform_driver注册 · 在probe中初始化ioctl与并发…
设备树
平台驱动
27
驱动热插拔与动态设备管理
udev规则 · 设备文件的自动创建(mdev/ude… · 驱动卸载时的资源清理
驱动热插拔
动态设备管理
28
驱动安全与健壮性
用户态指针校验 · 缓冲区溢出防护 · ioctl权限控制(CAP_SYS_…
驱动安全
健壮性
29
项目实战
多设备并发控制框架 · 每个设备独立锁 · ioctl命令支持设备选择
项目实战
多设备并发控制框…
30
项目总结与进阶
常见并发控制模式总结 · ioctl最佳实践 · 内核社区提交补丁流程
项目总结
进阶
所属VIP或分类
同VIP:Linux字符设备驱动:阻塞与非阻塞IO与poll机制
同VIP:Linux设备树实战:GPIO与中断控制器节点编写
同VIP:Linux驱动开发:I2C总线设备驱动编写实战