LinuxDriver/README.md

203 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

2025-07-14 02:15:33 +08:00
# Linux 内核笔记
## 嵌入式基础能力
### Linux系统编程
- [x] 文件IO和标准IO
- [x] 目录IO
- [x] 库的制作与使用
- [ ] 进程基础
- [ ] 进程间通信
### 驱动开发篇
- [ ] Linux驱动初探
- [ ] Linux内核模块
- [ ] 驱动模块编译进内核
- [ ] Linux Misc驱动
- [ ] Linux用户层和内核层
- [ ] 物理地址与虚拟地址
- [ ] 驱动传参
- [ ] 注册字符设备号
- [ ] 注册字符类设备
- [ ] 自动创建设备节点
## Linux模块化编程
- [ ] Linux内核源码初识
- [ ] Helloworld驱动实验
- [ ] 向系统添加一个系统调用
- [ ] 内核模块实验
- [ ] 驱动模块传参
- [ ] 内核模块符号的导出
- [ ] 驱动模块的交互
- [ ] menuconfig实验
- [ ] 内核空间和用户空间的交互
- [ ] 文件私有数据实验
- [ ] 一个驱动兼容多个实验设备
- [ ] 内核模块详细加载/卸载过程
- [ ] modulde_init的优先级
- [ ] 驱动的加载过程
- [ ] 自动创建设备节点
- [ ] 内核模块符号的导出
- [ ] kmod内核模块管理工具
- [ ] Linux热拔插机制mdev的使能
- [ ] udv内核是如何发送事件到用户空间
## 中断及异常
- [ ] 什么是中断
- [ ] Linux中断API函数
- [ ] 中断的申请流程
- [ ] 中断下半部——tasklet实验
- [ ] 中断下半部——softirq软中断
- [ ] 中断下半部——tasklet原理
- [ ] 中断下半部——共享工作队列的使用
- [ ] 中断下半部——自定义工作队列的使用
- [ ] 中断下半部——延迟工作实验
- [ ] 并发管理工作队列实验
- [ ] 中断下半部——中断线程化
- [ ] 按键中断实验
- [ ] 应用读取按键
- [ ] 中断共享(全局中断)
- [ ] Linux内核异常处理过程
- [ ] 中断子系统框架
- [ ] Linux中断系统中的重要数据结构
- [ ] 获取中断
- [ ] 异常
- [ ] 中断亲和性
- [ ] 中断控制器
- [ ] 禁止/开启中断
- [ ] 中断高频面试题
- [ ] 中断知识点总结
- [ ] 中断子系统框架
- [ ] 中断函数的编写
- [ ] ARM64底层中断处理
- [ ] 注册中断
- [ ] 工作队列详解
- [ ] 工作队列的四种形态
## 内核互斥技术
- [ ] 并发与竞争场景
- [ ] 原子操作
- [ ] 经典自旋锁的使用
- [ ] 自旋锁死锁情况
- [ ] 信号量的使用
- [ ] 互斥锁的使用
- [ ] 掌握信号处理
- [ ] 中断屏蔽
- [ ] Linux内核抢占
- [ ] Read-copy updateRCU
- [ ] 读写锁rwlock
- [ ] 内存屏障(核心代码)
- [ ] 死锁监测工具 lockdep
- [ ] 并发与同步高频面试题
- [ ] 内联汇编(核心代码)
- [ ] 同步与互斥失败的例子
## 字符设备驱动模型
- [ ] Linux设备分类
- [ ] 图解字符驱动模块设计思路
- [ ] 主次设备号
- [ ] 注册字符设备
- [ ] 创建设备节点实验
- [ ] 文件操作表
- [ ] 杂项设备
- [ ] 用户空间和内核空间数据交换
- [ ] 文件私有数据实验
- [ ] Linux错误处理实验
## 高级字符设备进阶
- [ ] IO模型引入实验
- [ ] 阻塞IO实验
- [ ] 非阻塞IO实验
- [ ] IO多路复用实验
- [ ] 信号驱动IO实验
- [ ] 定时器实验
- [ ] llseek定位设备驱动实验
- [ ] IOCTL驱动传参实验
- [ ] IOCTL地址传参实验
## Linux驱动相关子系统
### Linux设备模型
### 设备树
### 设备树overlay
### platform虚拟总线驱动
### GPIO子系统
### Pintctrl子系统
### LED子系统
### DMA子系统
### Input子系统
### SPI子系统
### I2C子系统
### UART、TTY子系统
### PWM子系统
### IIO框架
## Linux复杂设备外设驱动
### SDIO
### 以太网
### HDMI屏幕驱动
### 音频
### USB
### 摄像头
### MIPI DSI屏幕驱动
### 多点电容触摸屏
### WIFI
### PCI/PCIE
## Linux进程管理
## Linux进程间通信
## Linux内存管理
## 块设备驱动系统
## Linux文件系统
## Linux网络系统
## Linux系统调优&调试
## 硬件工具&知识
## 音视频编解码
## Linux基础通用知识
## 常用外设及硬件介绍
## 平台系统功能