1. ptrace的底层实现,操作系统是怎么做的2. 拷打和操作系统相关的一个项目3. Linux是怎么检测死锁的(内核源码)4. Linux的内存管理5. 让你自己实现一个malloc和free怎么做,怎么实现一个内存分配器(简单讲了下ptmalloc,但没讲好bins干脆说成伙伴系统了)6. 自己实现的内存分配器怎么检测内存泄漏(我说用引用计数,面试官说是多线程环境下,类似线程局部内存块,要加pid)7. 手撕: 1. 实现一个memcpy 2. 用宏判断一个数是否为2的n次 3. 实现container_of 4. 实现链表删除中的一个节点(很简单,链表是双向链表,不用free操作,不用判空,默认前后都存在) 5. 输入一行字符,统计其中有多少个单词。 6. \#include int main() { int a[5][5]; int(*p)[4]; p = a; printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]); return 0; }这段代码的输出 7. int main() { char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; }这段代码有什么问题。8. 反问:哪个部门的,小米RTOS操作系统(面试官一看就是大佬)因为是用第三方平台手撕的,所以结束了还能看题目。我就写了一句“熟悉内存管理”,就一直问我怎么实现一个内存分配器,讨论了半个多小时。手撕太简单了,不知道是不是KPI,但又聊了一个半小时,面试官不会这么有时间吧。