Linux设备驱动层级解析中国饭店协会《2019中国餐饮业年度报告》

Linux 的软件架构分层挺有讲头的,是设备驱动这块,常被搞嵌入式或者内核开发的同学拿出来深挖。你想了解驱动程序到底处在整个系统的哪一层、是怎么和内核交互的,这份《2019 中国餐饮业年度报告》里居然有一章讲得还挺系统,图也画得清楚,有意思。

驱动程序的位置说白了,就是夹在内核硬件之间,像个“翻译”。readwriteioctl这些系统调用,最终都是通过驱动来跟设备打交道的。驱动本身是不会自己跑的,都是等应用程序来“点菜”,驱动才上菜。

讲驱动分类那块也挺清楚的,分成字符设备块设备网络接口设备三种。字符设备像串口、I2C 这种,一点一点读写的;块设备就是像 SD 卡、U 盘那类,按块读写;网络接口你懂的,搞通信的。

如果你刚开始接触 Linux 驱动开发,推荐先从字符设备入门,结构简单、响应也快,调试也方便。后面再上块设备和网口,节奏舒服点,不容易劝退。

哦对,文末我顺手贴了几个相关文章,像Linux 内核与设备驱动教程这种,讲得也比较细,适合对着实践。有时间的话可以顺着看看,会更清晰。

pdf 文件大小:4.82MB