linux驅動工程面試必問知識點
一:說明
一看就知道,找工作用的,主要想從事驅動方面的開發工作,當然追求linux的道路還很漫長,先說說面試,面試了4家跟驅動相關的公司,只有一家(深圳中微電科技有限公司)讓我佩服(還是通過電話面試的),工程師問的問題其實也不難,平時看書的朋友都大概知道(只是不能全面的回答罷了,所以寫這個原因就是把它儘量搞清楚,下次在碰到類似的問題,就可以滔滔不絕了),其他3家的工程師,沒有問一個驅動的方面的問題,我也不知道人家是做啥的?提問同樣能反應一個人的專業知識的深度。做驅動確實有點難度,我會依然風雨前行!
二:linux核心原理面試必問(由易到難)
1:linux中核心空間及使用者空間的區別?使用者空間與核心通訊方式有哪些?
2:linux中記憶體劃分及如何使用?虛擬地址及實體地址的概念及彼此之間的轉化,高階記憶體概念?
3:linux中中斷的實現機制,tasklet與workqueue的區別及底層實現區別?為什麼要區分上半部和下半部?
4:linux中斷的響應執行流程?中斷的申請及何時執行(何時執行中斷處理函式)?
5:linux中的同步機制?spinlock與訊號量的區別?
6:linux中netfilter的實現機制?是如何實現對特定資料包進行處理(如過濾,NAT之類的)及HOOK點的註冊?
7:linux中系統呼叫過程?如:應用程式中read()在linux中執行過程即從使用者空間到核心空間?
8:linux核心的啟動過程(原始碼級)?
9:linux排程原理?
10:linux網路子系統的認識?
三: 筆試
1:二分法查詢
2:大小端轉化及判斷
3: 二維陣列最外邊個元素之和?
4:特定位元位置0和1
5:字串中的第一個和最後一個元素交換(字串反轉)?
如果還有朋友,遇到過其他知識點。留言給我,我整理到一起,與面試官為敵!
所以在時間允許的條件下,最近把上面的問題整理一下,自己學習一下,其他朋友看到,也就不再到處找知識點。