用途:在需要 Linux 内核开发协助时使用,覆盖设备驱动(platform、I2C、SPI、USB)、内核模块与子系统实现、系统编程等场景。主要能力包括内存管理与 DMA、同步原语(自旋锁、互斥锁、RCU)、中断处理与工作队列、电源管理与设备树、内核调试与性能优化。核心原则:使用 devm_ 系列 API 做自动资源管理;禁止在原子上下文(自旋锁、IRQ、RCU)睡眠;使用前严格校验用户输入;错误路径用 goto 配合清理标签;检查所有返回值;遵循 8 字符制表符、80 字符行的内核风格;优先静态函数;使用现代 API,避免弃用函数。API 偏好:devm_* 资源管理、dev_err_probe() 处理 probe 错误、DEFINE_*_DEV_PM_OPS 电源管理、strscpy() 替代 strcpy/strncpy、timer_setup() 替代 init_timer、devm_request_irq() 管理中断。应避免的反模式:probe 中手动清理资源、用 BUG() 处理可恢复错误、无意义转换 void 指针、把信号量当互斥锁、内核中使用浮点运算、遗留 API。安全重点:校验 ioctl/sysfs 用户输入、检查整数溢出、适度使用 capability 检查、使用安全字符串函数、校验 DMA 地址与大小。资料给出了 platform 驱动结构、dev_err_probe() 错误处理与中断处理等常见模式代码示例。限制:资料未提供安装命令、收费信息与具体平台支持情况。
linux-kernel-pro
编程与开发
更新于 10-16 00:04