之前懿巨给我推荐了字节跳动的基础研发,感觉非常对口,上周三就去投了简历。字节的效率非常高,周四就约了面试的时间。我说能不能下周,于是就把时间约在了29号(周二)。今天连着面了一二面,简直吐血。这里稍微整理一下面经,以后再写回答。
一面
你先简单介绍一下自己。
说了一点自我介绍,然后说了我的两篇paper,都是和qemu有关的。我这里似乎说的不是很好,他问了一点问题,然后我卡住了。他说呆会儿再问我的项目, 就这样过去了。
你了解qemu吗,能不能用个例子说明一下qemu的工作原理
我大概说了tcg先翻译,然后跳转过去执行,大概说了一下code cache吧。他说我说的他都知道???我说的太抽象了。好吧,那还得说的多具体呀,他要我用arm->x86举个例子,就比如一条i++吧,怎么从arm->x86。他好像想问怎么翻译,我好像没有get到点上。这里纠缠了很久。
你了解linux的内存管理吗
就是页表,伙伴算法啥的,把虚拟地址到物理地址的翻译讲了一遍。问伙伴算法的时候他又要我讲细节,我以为把页面分成2的幂次方大小已经足够细节了,他还觉得不够,好吧。然后他问我linux里面伙伴系统页面最大是多大,这我哪知道啊,就过去了。
进程和线程调度有啥区别
进程有什么状态
动态二进制的翻译原理
好吧,刚刚没答好,现在又来了。他还是说我回答的太抽象了。
你了解ebpf吗
现在才想起来,以前听说过,是一个内核相关的玩意。
硬中断和软中断
一个硬件触发一个软件触发? 我举了时钟中断和系统调用,不知道对不对。
然后问了中断的详细过程。
中断什么地方用的比较多,我说系统调用。然后又要我讲了系统调用的过程。
好像还讲了page fault的过程。
RDMA的原理
我简历上写了RDMA,暑假参加了一次RDMA的比赛,遗憾都忘记了。他问了一下RDMA的模型,没说上来,就过去了。
编程 一个有序矩阵,判断一个整数是否在里面
每行二分查找,好像这样不是特别好,其实应该可以手写一个二分查找的。
你有什么要问我的吗
你们是做什么的
有网络,内核,存储三个部门。然后说我跟他们很match 2333
啥时候知道结果
三点二面,准备一下。吐了
二面
二面感觉就温和很多了
开始问那个ABA的项目
问了一下项目具体的结构,然后ABA是什么,有什么危害。然后我介绍了两种我们的解决方法,他从里面问了开销之类的问题。感觉挺懂行的,一下就问出了项目的关键了。
DQEMU那个项目
好像我说到MSI模型的时候,他说你了解MESI吗,我说不了解。。。。太难过了。
又问了RDMA
我表示不会,后悔在简历上面写了。
问了操作系统作业JOS
问我什么映像最深刻,我说大概是了解了系统调用的过程吧。
编程:设计循环队列,解决生产者消费者问题
出了好多个bug,有点尴尬。说我的锁设计的不合理,判断不了满和空之类的,挑了一大堆错。
你有什么问题吗
还是之前那两个问题
他说的没之前那个人那么具体了,然后让我等HR的通知,就这样吧,留下了太菜的泪水。