本博实时更新《Linux设备驱动开发详解(第3版)》的最新进展。
2014.6.30 目前初步完成4-9章,相对于第2版,这几章主要的变更。
[F]是修正或升级;[N]是新增知识点;[D]是删除的内容
第4章 《Linux内核模块》
[F]改正关于模块使用非GPL license的问题;
[F]修正关于__exit修饰函数的内存管理
第5章 《Linux文件系统与设备文件》
[F]修正关于文件系统与块设备驱动关系图;
[N]增加应用到驱动的file操作调用图;
[N]增加通过netlink接受内核uevent的范例;
[N]增加遍历sysfs的范例;
[N]增加为kingston U盘编写udev规则的范例;
[F]更新udev规则,以符合新版本;
[N]增加udevadm的讲解;
[N]高亮Android vold
第6章 《字符设备驱动》
[F]更新file_operations的定义,升级ioctl()原型;
[N]增加关于Linux access_ok()的讲解以及Linux内核安全漏洞的说明;
[F]修正globalmem的编码风格;
[F]在globalmem支持2个以上实例的时候,从直接2个实例,升级为支持N个实例;
第7章 《Linux设备驱动中的并发控制》
[N]绘图深入讲解单核和多核下的各种竞态;
[N]增加关于编译乱序,执行乱序,编译屏障和内存屏障的讲解;
[N]增加关于ARM LDREX/STREX指令的讲解;
[N]对spin_lock单核和多核的使用场景进行深入分析;
[F]重新整理RCU的讲解方法和实例;
[F]明确指明信号量已过时;
[F]将globalmem中使用的信号量换为mutex;
第8章 《Linux设备驱动中的阻塞与非阻塞I/O》
[N]新增阻塞和非组塞的时序图;
[F]修正globalfifo的编码风格;
[F]修正globalfifo可读可写的if判断为while判断;
[N]新增select的时序图;
[N]新增EPOLL的章节;
第9章 《Linux设备驱动中的异步通知与异步I/O》
[F]修正关于glibc AIO支持;
[F]修正关于内核AIO支持;
[F]修正驱动AIO接口;
[D]删除关于驱动AIO支持的错误实例;
[N]高亮C10K问题;
《Linux设备驱动开发详解(第3版)》进展同步更新