内核与设备驱动开发基础:源码、中断及相关机制解析
1. 内核源码位置与关键结构
在深入内核开发的过程中,了解关键内核线程和函数的源码位置至关重要。以下是一些重要内核元素的所在文件:
- 内核线程 :ksoftirqd、pdflush 和 khubd 内核线程分别位于 kernel/softirq.c、mm/pdflush.c 和 drivers/usb/core/hub.c。
- 关键函数 :daemonize() 函数在 kernel/exit.c 中;用户模式辅助程序的实现可查看 kernel/kmod.c。
- 库例程 :列表和 hlist 库例程存于 include/linux/list.h,该库在整个内核中广泛使用,例如 include/linux/blkdev.h 中定义的 request_queue 结构就使用了链表来管理磁盘 I/O 请求。
此外,还可以访问 www.ussg.iu.edu/hypermail/linux/kernel/0007.3/0805.html 查看 Linus Torvalds 和 Andi Kleen 关于使用 hlist 辅助例程补充列表库优缺点的有趣讨论。
2. 内核数据结构与编程接口
以下是一些重要内核数据结构及其定义位置和描述:
| 数据结构 | 位置 | 描述 |
| —
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



