Linux內(nèi)核開發(fā)工程師必須掌握的三十道題1) Linux中主要有哪幾種內(nèi)核鎖?
2) Linux中的用戶模式和內(nèi)核模式是什么含意? 3) 怎樣申請大塊內(nèi)核內(nèi)存? 4) 用戶進(jìn)程間通信主要哪幾種方式? 5) 通過伙伴系統(tǒng)申請內(nèi)核內(nèi)存的函數(shù)有哪些? 6) 通過slab分配器申請內(nèi)核內(nèi)存的函數(shù)有? 7) Linux的內(nèi)核空間和用戶空間是如何劃分的(以32位系統(tǒng)為例)? 8) vmalloc()申請的內(nèi)存有什么特點? 9) 用戶程序使用malloc()申請到的內(nèi)存空間在什么范圍? 10) 在支持并使能MMU的系統(tǒng)中,Linux內(nèi)核和用戶程序分別運行在物理地址模式還是虛擬地址模式? 11) ARM處理器是通過幾級也表進(jìn)行存儲空間映射的? 12) Linux是通過什么組件來實現(xiàn)支持多種文件系通的? 13) Linux虛擬文件系統(tǒng)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)有哪些?(至少寫出四個) 14) 對文件或設(shè)備的操作函數(shù)保存在那個數(shù)據(jù)結(jié)構(gòu)中? 15) Linux中的文件包括哪些? 16) 創(chuàng)建進(jìn)程的系統(tǒng)調(diào)用有那些? 17) 調(diào)用schedule()進(jìn)行進(jìn)程切換的方式有幾種? 18) Linux調(diào)度程序是根據(jù)進(jìn)程的動態(tài)優(yōu)先級還是靜態(tài)優(yōu)先級來調(diào)度進(jìn)程的? 19) 進(jìn)程調(diào)度的核心數(shù)據(jù)結(jié)構(gòu)是哪個? 20) 如何加載、卸載一個模塊? 21) 模塊和應(yīng)用程序分別運行在什么空間? 22) Linux中的浮點運算由應(yīng)用程序?qū)崿F(xiàn)還是內(nèi)核實現(xiàn)? 23) 模塊程序能否使用可鏈接的庫函數(shù)? 24) TLB中緩存的是什么內(nèi)容? 25) Linux中有哪幾種設(shè)備? 26) 字符設(shè)備驅(qū)動程序的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)是哪個? 27) 設(shè)備驅(qū)動程序包括哪些功能函數(shù)? 28) 如何唯一標(biāo)識一個設(shè)備? 29) Linux通過什么方式實現(xiàn)系統(tǒng)調(diào)用? 30) Linux軟中斷和工作隊列的作用是什么? |
|
|