1. 程式人生 > >linux驅動工程面試

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:字串中的第一個和最後一個元素交換(字串反轉)? 如果還有朋友,遇到過其他知識點。留言給我,我整理到一起,與面試官為敵! 所以在時間允許的條件下,最近把上面的問題整理一下,自己學習一下,其他朋友看到,也就不再到處找知識點。