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