$ Linux学习路线
1. C, C++, Shell-Bash编程
2. Makefile
3. CMake
https://github.com/ShieldQiQi/cmake-examples
4. 汇编基础
5. 《程序员的自我修养-链接、装载与库》 《Linux内核设计与实现》 《深入理解Linux内核》 《Linux设备驱动程序》
6. Linux数据结构
7. 刷题Leetcode
$ 学习总结-持续更新
1.为什么Linux
不在链表结构体中放数据,而是在数据结构体中放链表结构体struct list_head
?
如果使用前一种方法,对于每一个数据结构都需要定义专门的链表,而后一种方法,只需要在新的数据结构体中放入统一的双向链表list_head即可,然后通过list_entry
获取该链表指针指向的数据结构体
2.为什么list_entry(ptr, type, member)
中member
使用的是sibling
而不是children
?
这是因为task_struct->children->next指向的是下一个进程的sibling
成员而不是children
成员