Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

嵌入式 Linux 內核工程師必知的 30 道核心面試題

編輯:Linux 教學

整理嵌入式 Linux 內核開發崗位高頻考察的 30 個核心知識點,涵蓋內存管理、進程調度、文件系統、驅動模型、中斷機制等模塊。每道題直擊核心原理,適合面試複習與技術自查。

  1. Linux 主要內核鎖有哪些? 自旋鎖、互斥鎖、信號量、rwlock、RCU、seqlock、percpu 變量等
  2. 用戶態 vs 內核態含義? 特權級 3 vs 0,內存訪問權限、指令集、系統調用入口差異
  3. 大塊內核內存申請方式? vmalloc、alloc_pages、dma_alloc_coherent、CMA 區域
  4. 用戶進程 IPC 主要方式? 管道、FIFO、消息隊列、共享內存、信號量、Socket、信號
  5. 伙伴系統分配函數? alloc_pages、__get_free_pages、kmalloc(小塊走 slab)
  6. Slab 分配器函數? kmem_cache_alloc、kmalloc、kzalloc、krealloc
  7. 32 位系統內核/用戶空間劃分? 3G/1G(默認),可配置 2G/2G、1G/3G;PAGE_OFFSET=0xC0000000
  8. vmalloc 內存特點? 虛擬地址連續、物理地址不連續、需建立頁表映射、有 TLB 刷新開銷
  9. malloc 返回地址範圍? 用戶空間堆區(brk~mmap 基址),受 RLIMIT_AS 限制
  10. MMU 系統下內核/用戶運行模式? 均運行在虛擬地址模式,內核空間映射全局,用戶空間進程隔離
  11. ARM 多級頁表映射? ARMv7 兩級(L1 Section/Page Table + L2 Page Table),ARMv8 四級(PGD/PUD/PMD/PTE)
  12. VFS 實現多文件系統核心組件? 超級塊、索引節點、目錄項、文件對象、文件系統類型、掛載點
  13. VFS 關鍵數據結構(≥4)? super_block、inode、dentry、file、vfsmount、file_system_type
  14. 文件操作函數保存結構? struct file_operations,掛載在 inode->i_fop 或 file->f_op
  15. Linux 文件類型? 普通文件、目錄、字符設備、塊設備、管道、Socket、符號鏈接
  16. 創建進程系統調用? fork、vfork、clone、execve 族、posix_spawn
  17. 調用 schedule() 切換方式? 主動調度(睡眠、等待)、搶佔調度(時間片用盡、中斷返回)、實時調度策略
  18. 調度依據動態還是靜態優先級? CFS 使用虛擬運行時間(vruntime)動態調度;實時類使用靜態優先級
  19. 進程調度核心數據結構? task_struct、rq (runqueue)、cfs_rq、sched_entity
  20. 模塊加載/卸載命令? insmod/rmmod、modprobe/modprobe -r;內核 init_module/delete_module
  21. 模塊 vs 應用程序運行空間? 模塊:內核空間;應用:用戶空間
  22. 浮點運算由誰實現? 用戶態:應用+庫+硬件;內核態:默認禁用,需 kernel_fpu_begin/end 保護上下文
  23. 模塊能用可鏈接庫函數? 不能,只能使用內核導出符號(EXPORT_SYMBOL)
  24. TLB 緩存內容? 虛擬地址→物理地址映射(頁表項部分內容),含 ASID/PCID 標識
  25. Linux 設備分類? 字符設備、塊設備、網絡設備、其他
  26. 字符設備驅動關鍵結構? struct cdev、struct file_operations、struct class、device
  27. 驅動功能函數? open/release、read/write、ioctl/unlocked_ioctl、mmap、poll、llseek
  28. 唯一標識設備? 主設備號 + 次設備號(dev_t = MAJOR:MINOR)
  29. 系統調用實現方式? x86: int 0x80 / syscall / sysenter;ARM: SVC 指令
  30. 軟中斷 vs 工作隊列作用? 軟中斷:中斷上下文、高優先級、不可睡眠;工作隊列:進程上下文、可睡眠、延遲執行

備考建議

  • 每道題展開可講 5-10 分鐘,重點掌握數據結構關係、關鍵函數調用鏈、併發保護邏輯
  • 結合內核源碼(kernel/sched、mm、fs、drivers/base)閱讀核心路徑
  • 實機驗證:ftrace、perf、/proc、/sys 觀察運行時行為
Copyright © Windows教程網 All Rights Reserved