嵌入式 Linux內核開發培訓
嵌入式 Linux內核開發培訓????????????
?????????????????
培訓對象:對Linux內核感興趣,期望從事Linux內核和Linux驅動開發的工程師。期望從事Android底層開發的工程師。
???????????????
?????????????????????????
???????????????????????
培訓目標:
??????????????????????? 通過本課程的學習, 學員可以學習有關嵌入式Linux內核的以下原理和實踐:
?????????????????????????
內核發展演變與開發模式
?????????????????????????
內核進程調度
?????????????????????????
內核內存管理
?????????????????????????
內核文件系統
?????????????????????????
內核系統調用
?????????????????????????
內核網絡協議棧
?????????????????????????
內核編程
?????????????????????????
內核模開發
?????????????????????????
內核調試方法
?????????????????????????
BSP 構建
?????????????????????
培訓大綱:
?????????????????????????????
Linux 內核發展演變與開發模式
?????????????????????????????
patch 和郵件列表
?????????????????????????????
官方源代碼演進
?????????????????????????????
商業發行版版本維護
?????????????????????????????
源代碼與項目管理工具
?????????????????????????????
內核代碼檢查和check-in
?????????????????????????????
Linux 內核進程調度
?????????????????????????????
內核總體結構
?????????????????????????????
進程調度
?????????????????????????????
Linux 進程調度機制分析
?????????????????????????????
調度時機與搶占調度
?????????????????????????????
Linux 實時性與實時Linux
?????????????????????????????
Linux 內核內存管理
?????????????????????????????
Linux 進程0~4GB 內存的整體分布
?????????????????????????????
進程內核空間(3GB 以上)內存分布
?????????????????????????????
進程用戶空間(3GB 以下)內存分布
?????????????????????????????
page、zone、slab、kmalloc、vmalloc、mmap
?????????????????????????????
slab
?????????????????????????????
DMA 緩沖區
?????????????????????????????
page cache
?????????????????????????????
page fault
?????????????????????????????
Linux 內核文件系統
?????????????????????????????
虛擬文件系統
?????????????????????????????
磁盤與Flash 文件系統
?????????????????????????????
superblock, inode, dentry 和file
?????????????????????????????
EXT2 和EXT3 文件系統
?????????????????????????????
Flash 文件系統與MTD
?????????????????????????????
Linux 內核系統調用
?????????????????????????????
Linux 系統調用的工作原理
?????????????????????????????
系統調用的進入和退出
?????????????????????????????
新增一個系統調用
?????????????????????????????
Linux 內核網絡協議棧
?????????????????????????????
Linux 網絡協議棧的實現原理
?????????????????????????????
Socket 層
?????????????????????????????
系統調用層面
?????????????????????????????
網卡數據收發流程
?????????????????????????????
Linux 內核編程
???????????????????????????????
內核編程主要API
???????????????????????????????
同步與并發
???????????????????????????????
等待隊列
???????????????????????????????
內核延時
???????????????????????????????
內存申請和釋放
???????????????????????????????
定時器
???????????????????????????????
中斷頂底半部
???????????????????????????????
軟中斷
???????????????????????????????
tasklet
???????????????????????????????
工作隊列
???????????????????????????????
threaded_irq
???????????????????????????????
Linux 內核線程
???????????????????????????????
IO 與內存訪問
???????????????????????????????
DMA 與cache 一致性
?????????????????????????????
Linux 內核模塊開發
?????????????????????????????
內核模塊組成
?????????????????????????????
編寫一個內核模塊
?????????????????????????????
加載和卸載內核模塊
?????????????????????????????
內核模塊進入文件系統
?????????????????????????????
Linux 內核調試方法
?????????????????????????????
printk
?????????????????????????????
Oops 和panic
?????????????????????????????
內核debug 選項
?????????????????????????????
gdb、kgdb 和kdb
?????????????????????????????
使用仿真器
?????????????????????????????
Linux BSP 構建
???????????????????????????????
BSP 的組成部分
???????????????????????????????
plat/mach 各組件的實現
???????????????????????????????
內核節拍
???????????????????????????????
中斷管理
???????????????????????????????
時鐘
???????????????????????????????
GPIO
???????????????????????????????
DMA
???????????????????????????????
IO 內存映射
???????????????????????????????
設備與資源
???????????????????????????????
platform device、resource 和plarform data
???????????????????????????????
uart/spi/i2c 等設備板級resource
???????????????????????????????
device tree
?
?
?
?