阿里云智能基础软件暑期实习一面
阿里云智能基础软件暑期实习一面
自己研究生主要做内核和虚拟化安全, 代码阅读相对多一点,业余时间写了点KVM模块,内核模块练手,挑战一下自己投一个开发岗!
总面试时长1h30min, 因为投的是基础平台开发工程师,是内核与虚拟化相关的,所以也只问了操作系统相关的问题
1. 介绍论文和项目,这一块主要是一直在聊论文,包括论文的细节,实现的过程中遇到什么难点, 有没有什么印象比较深刻的bug, 聊了三十多分钟论文。
2. 我阅读过KVM模块的那部分代码
3. KVM内存虚拟化是怎么是怎么实现的?
追问:EPT页表如何实现
追问:Guest通过EPT页表访问要经过多少次访存
追问:SPT和EPT的优缺点,什么场合适合使用SPT或者EPT
4. KVM中CPU虚拟化是如何实现的
5. 当调用malloc函数时,用户态和内核态分别进行了哪些操作
6. 了解内核的进程调度吗? CFS调度器如何实现?
7. 内核内存不足时,会进行什么操作?
追问: 内存回收的slow_path和fast_path回收哪部分内存
追问:page_cache什么时候会用到, 为什么优先回收page_cache
后面好像就没有问题啦!
算法题:
C语言实现strcpy
第二天下午收到电话约二面啦!许愿许愿!