這幾天面試幾個想做安卓linux驅動的,總體感覺上驅動基礎還是比較薄弱,大部分情況是雖然做過驅動,但是基本上都是採用核心現成的,或者是開發板上已經有的,單獨寫過模組驅動很少,驅動機制理解不是很透徹.以下是幾個隨口問過的基礎問題,供參考.
1、字元型驅動裝置你是怎麼建立裝置檔案的,就是/dev/下面的裝置檔案,供上層應用程式開啟使用的?
2、寫乙個中斷服務需要注意哪些?如果中斷產生之後要做比較多的事情你是怎麼做的?
3、自旋鎖和訊號量在互斥使用時需要注意哪些?在中斷服務程式裡面的互斥是使用自旋鎖還是訊號量?還是兩者都能用?為什麼?
4、原子操作你怎麼理解?為了實現乙個互斥,自己定義乙個變數作為標記來作為乙個資源只有乙個使用者行不行?
5、insmod 乙個驅動模組,會執行模組中的哪個函式?rmmod呢?這兩個函式在設計上要注意哪些?遇到過解除安裝驅動出現異常沒?是什麼問題引起的?
6、在驅動除錯過程中遇到國oops沒?你是怎麼處理的?
7、ioctl和unlock_ioctl有什麼區別?
8、裝置驅動模型三個重要成員是?platfoem匯流排的匹配規則是?在具體應用上要不要先註冊驅動再註冊裝置?有先後順序沒?
這些應該都是比較基礎的問題吧,但是從實際情況上來看,回答的都不是很正確。
幾個fork面試題目的驗證
第一題,計算下面 理論上總共列印了多少行 網易2011筆試題 int main 問題解答 問題的答案為62,基本方法為2 4 8 16 32 62,可以認為是每次程序數目加倍,輸出的數目實際對應程序的數目,另外原文提出了另一種解決此問題的方法,可以參考原文。但是如果用程式驗證,就不可能得到正確的答案...
幾個面試題
1 公司裡面有1001個員工,現在要在公司裡面找到最好的羽毛球選手,也就是第一名,每個人都必須參賽,問至少要比賽多少次才能夠找到最好的羽毛球員工 2 現在有100個燈泡,每個燈泡都是關著的,第一趟把所有的燈泡燈泡開啟,第二趟把偶數字的燈泡制反 也就是開了的關掉,關了的開啟 第三趟讓第3,6,9.的燈...
幾個面試題
面試的時候被問到的幾個c 的題目 1.空類的大小 答 0 2.空類自帶幾個函式 答 1.建構函式 2.析構函式 3.拷貝構造 4.賦值操作符 5.取位址操作符 6.const取位址 3.父類的析構函式為什麼要是虛函式 父類指標指向乙個子類物件,析構這個父類指標時,如析構函式不是虛函式,將不會析構子物...