linux驱动工程面试必问知识点

一:说明

一看就知道,找工作用的,主要想从事驱动方面的开发工作,当然追求linux的道路还很漫长,先说说面试,面试了4家跟驱动相关的公司,只有一家(深圳中微电科技有限公司)让我佩服(还是通过电话面试的),工程师问的问题其实也不难,平时看书的朋友都大概知道(只是不能全面的回答罢了,所以写这个原因就是把它尽量搞清楚,下次在碰到类似的问题,就可以滔滔不绝了),其他3家的工程师,没有问一个驱动的方面的问题,我也不知道人家是做啥的?提问同样能反应一个人的专业知识的深度。做驱动确实有点难度,我会依然风雨前行!

二:linux内核原理面试必问(由易到难)

简单型

1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?
2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念?
3:linux中中断的实现机制,tasklet与workqueue的区别及底层实现区别?为什么要区分上半部和下半部?

4:linux中断的响应执行流程?中断的申请及何时执行(何时执行中断处理函数)?
5:linux中的同步机制?spinlock与信号量的区别?

6:linux中RCU原理?

7:  linux中软中断的实现原理?(2014.03.11)

8:linux系统实现原子操作有哪些方法? (2014.03.22)

9:MIPS Cpu中空间地址是怎么划分的?如在uboot中如何操作设备的特定的寄存器? (2014.03.22)

最近(离职)真的事情有点多,不然 我肯定总结的差不多了。

工作也定了,等我总结了,以后谁再问我这些问题我直接鄙视!!!!!!!!!!!!!!!!!!这些东西是工作中的理论指导,有了理论在做代码的时候才能考虑到什么改用,什么不该用!

 

 


复杂型:


1:linux中netfilter的实现机制?是如何实现对特定数据包进行处理(如过滤,NAT之类的)及HOOK点的注册?
2:linux中系统调用过程?如:应用程序中read()在linux中执行过程即从用户空间到内核空间?
3:linux内核的启动过程(源代码级)?

4:linux调度原理?

5:linux网络子系统的认识?

三: 笔试

1:二分法查找

2:大小端转化及判断

3:  二维数组最外边个元素之和?

4:特定比特位置0和1

5:字符串中的第一个和最后一个元素交换(字符串反转)?


如果还有朋友,遇到过其他知识点。留言给我,我整理到一起,与面试官为敌!

所以在时间允许的条件下,最近把上面的问题整理一下,自己学习一下,其他朋友看到,也就不再到处找知识点。


你可能感兴趣的:(驱动面试)