幾個(gè)Linux驅(qū)動(dòng)面試題目
這幾天面試幾個(gè)想做安卓Linux驅(qū)動(dòng)的,總體感覺上驅(qū)動(dòng)基礎(chǔ)還是比較薄弱,大部分情況是雖然做過(guò)驅(qū)動(dòng),但是基本上都是采用內(nèi)核現(xiàn)成的,或者是開發(fā)板上已經(jīng)有的,單獨(dú)寫過(guò)模塊驅(qū)動(dòng)很少,驅(qū)動(dòng)機(jī)制理解不是很透徹.以下是幾個(gè)隨口問(wèn)過(guò)的基礎(chǔ)問(wèn)題,供參考.
1、字符型驅(qū)動(dòng)設(shè)備你是怎么創(chuàng)建設(shè)備文件的,就是/dev/下面的設(shè)備文件,供上層應(yīng)用程序打開使用的?
2、寫一個(gè)中斷服務(wù)需要注意哪些?如果中斷產(chǎn)生之后要做比較多的事情你是怎么做的?
3、自旋鎖和信號(hào)量在互斥使用時(shí)需要注意哪些?在中斷服務(wù)程序里面的互斥是使用自旋鎖還是信號(hào)量?還是兩者都能用?為什么?
4、原子操作你怎么理解?為了實(shí)現(xiàn)一個(gè)互斥,自己定義一個(gè)變量作為標(biāo)記來(lái)作為一個(gè)資源只有一個(gè)使用者行不行?
5、insmod 一個(gè)驅(qū)動(dòng)模塊,會(huì)執(zhí)行模塊中的哪個(gè)函數(shù)?rmmod呢?這兩個(gè)函數(shù)在設(shè)計(jì)上要注意哪些?遇到過(guò)卸載驅(qū)動(dòng)出現(xiàn)異常沒?是什么問(wèn)題引起的?
6、在驅(qū)動(dòng)調(diào)試過(guò)程中遇到國(guó)oops沒?你是怎么處理的?
7、ioctl和unlock_ioctl有什么區(qū)別?
8、設(shè)備驅(qū)動(dòng)模型三個(gè)重要成員是?platfoem總線的匹配規(guī)則是?在具體應(yīng)用上要不要先注冊(cè)驅(qū)動(dòng)再注冊(cè)設(shè)備?有先后順序沒?
這些應(yīng)該都是比較基礎(chǔ)的問(wèn)題吧,但是從實(shí)際情況上來(lái)看,回答的都不是很正確。
posted on 2014-07-25 13:22 順其自然EVO 閱讀(351) 評(píng)論(0) 編輯 收藏 所屬分類: linux