编译
编译的实质:
1.头文件和c文件--》产生对象文件(.o文件);2.将所有对象文件链接起来,生成可执行文件
Makefile文件与kconfig文件很重要
最终的头文件/include/linux/autoconf.h
双向链表list_head list_add_tail/list_del/list_empty
container_of根据结构体成员地址算结构体地址,list_entry跟它一回事
list遍历:list_for_each/list_for_each_safe/list_for_each_entry
hash链表hlist_head不懂啥意思
红黑树,实质是自平衡二叉树,定义在rbtree.c 内存管理/io调度算法等等使用了红黑树
radix树 空间换时间 page cache的管理使用了radix树
内核基础层同步机制
自旋锁 spin_lock spin_unlock 用在轻量级场景 信号量 semaphore和mutex会引起睡眠,不能用在中断中
原子变量atomic_add/atomic_sub/atomic_set/atomic_read
completion提供一种等待完成机制,这个完全不懂没见过