嵌入式Linux面经

[嵌入式技术栈一部分是C/C++,一部分是linux(kernel)。若是以系统学习为目的,请移步CSDN,从《C++ primer》开始到《effictive C++》,从《Unix 环境高级编程》到《深入理解linux内核》。
本推荐书目用于应付面试官(面试无形装逼)

  1. 《后台开发 核心技术与应用实践》
    这本书在论坛上贬大于褒。但是里面的知识点涵盖了C++、STL的面试常见问题,以及linux环境user space编程的知识点,例如:多线程同步、进程通信、网络Io模型等。
  2. 《奔跑吧Linux内核》
    嵌入式linux的面试,面试官兴趣起来了是十分可怕的,他会从内存管理、进程调度、IO驱动这些方面对你进行详细的拷问。(满头大汗)
    内存管理常规面试题:
    内存映射规则;
    讲讲MMU的工作过程;
    buddy算法(alloc_page)和slab分配器(kmalloc)的分配释放过程;
    userspace和kernelspace的内存分配区别(讲不清就会被揪着质疑)
    userspace和kernelspace的权限是通过什么实现的。
    ...
    进程调度常见面试题:
    cpu1的task往cpu2调度的过程;
    ...
  3. 周立功的《嵌入式Linux开发教程》
    推荐这本书看一下linux驱动的开发过程(对于没有写过驱动的小白)
    常见面试题:
    讲讲驱动开发的一般套路;(include啥头文件,调用啥函数init,用insmode打驱动)
    ioctrl 使用的注意事项;
    kernel space和user space的通信方法。
    三、简单经验总结
  4. 面试也要多练习,面多了就摸熟了套路。所以建议早准备,春招实习时期就可以投一些试试水深,发现自己的疏漏多补补,后面自然offer多多。
  5. 面试难度
    面试难度其实取决于运气,有些人匹配到的面试官比较随意也就不强挖。下面整理一下笔者在秋招期间的一部分面试,也折射出公司对技术的要求。
    (1)高通——地狱难度
    面试过程一直都在linux的kernel space死磕,由于介绍实习经历误将工作路径/system/写成了/sys/,问了四五个问题关于sysfs,心态炸裂满头大汗。第二天才敢回想,sys是虚拟文件系统,怎么可能可以用adb push config进去呢。犯二。
    (2)dji——困难
    大疆的面试聊了很久,问的问题十分广泛,十分喜欢问:你在做xxx的时候,遇到的困难是啥?讲讲xxx和xxx的区别?如果不是真的做过xxx(驱动开发)的话,或者对于一些知识点没有深入理解对比比较的话,完全不知道该怎么说。所以一面凉。
    (3)趋势科技——困难
    面试过程体验很好,面试官也从linux的user space到kernel space的一些简要知识点过了一遍,对于明确不知道的领域也就不细挖,也手撕代码,但是难度不大。
    面试难度源于公司对技术的追求,总算有offer。
    ](https://www.nowcoder.com/discuss/288062?type=post&order=time&pos=&page=1)
全部评论

相关推荐

26牛牛不会梦到感谢信:羡慕离职了还能吃吗现在就赶回去
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务