Linux內(nèi)核與驅(qū)動開發(fā)培訓
?
課程介紹:
驅(qū)動程序?qū)儆贚inux內(nèi)核的一部分,開發(fā)驅(qū)動程序是嵌入式Linux項目中很重要的一部分內(nèi)容。開發(fā)出高質(zhì)量、高性能的驅(qū)動程序是項目成敗的關(guān)鍵。隨著?市場上對嵌入式產(chǎn)品的需求越來越大,從而對驅(qū)動程序開發(fā)人員的需求也在飛速增加。本課程的最大特點是以項目為培訓目標,培養(yǎng)出真正具有實際開發(fā)能力的專業(yè)?人才。
用戶態(tài)進程和內(nèi)核的通信方法;Char,block設備驅(qū)動的編寫;中斷處理和I/O調(diào)度;內(nèi)核時鐘;內(nèi)核同步;網(wǎng)絡驅(qū)動程序的編寫;內(nèi)核的設備管理模?型;USB,PCI驅(qū)動接口;Linux?TCP/IP棧結(jié)構(gòu);LinuxIP協(xié)議棧主要數(shù)據(jù)結(jié)構(gòu);Netfilter的框架;內(nèi)核調(diào)試方法。
?
課程對象:
針對Linux驅(qū)動開發(fā)和Linux內(nèi)核開發(fā)及嵌入式開發(fā)系統(tǒng)開發(fā)技術(shù)人員。
具備Linux應用和開發(fā)經(jīng)驗,欲從事Linux平臺驅(qū)動程序開發(fā)或嵌入式開發(fā)者。
?
課程大綱:
1.Linux內(nèi)核簡介
?
?Linux系統(tǒng)架構(gòu)
?
?內(nèi)核的啟動原理
2.Linux內(nèi)核編譯
?
?Linux內(nèi)核編譯環(huán)境
?
?內(nèi)核裁減
?
?使用自定義內(nèi)核
3.內(nèi)核模塊簡介
?
?內(nèi)核模塊管理
?
4.內(nèi)核模塊編譯
?
?內(nèi)核模塊開發(fā)環(huán)境
?
?hello?world
5.字符設備驅(qū)動
?
?認識linux的字符設備
?
?字符設備驅(qū)動框架
?
?字符設備驅(qū)動解析
?
?定制字符設備驅(qū)動
6.內(nèi)核代碼的調(diào)試
?
?內(nèi)核的調(diào)試開關(guān)
?
?打印調(diào)試
?
?查詢調(diào)試
?
?kdump
7.并發(fā)機制和臨界區(qū)
?
?多進程模型
?
?臨界區(qū)
?
?信號量和互斥鎖
?
?自旋鎖
8.高級字符設備操作
?
?ioctl
?
?I/O阻塞
???
?poll和select
9.時間和延時
??
?時間的計算
??
?當前時間
??
?延時
??
?內(nèi)核定時器
??
?tasklets
10.內(nèi)存分配
?
?kmalloc工作原理
?
?cache管理
?
?vmalloc及類似函數(shù)
?
?CPU相關(guān)變量
?
?大緩沖區(qū)
11.與硬件的通信
?
?I/O端口和I/O內(nèi)存
?
?訪問I/O端口
12.內(nèi)存映射和DMA
?
?內(nèi)存管理和mmap
?
?Direct?I/O
?
?直接內(nèi)存訪問
13.中斷處理
?
?中斷處理程序
?
?中斷的頂半部和低辦部
?
?中斷共享
?中斷驅(qū)動的I/O
14.內(nèi)核的數(shù)據(jù)類型
?
?接口特定的數(shù)據(jù)類型
?
?List
15.PCI設備驅(qū)動
?
?PCI總線
?
?PC/104
?
?其他PC總線
16.USB設備驅(qū)動
?USB設備和主機
?USB和sysfs
?USB?urbs
?USB驅(qū)動框架
17.Linux設備驅(qū)動模型
?Kobjects,Ksets和內(nèi)核子系統(tǒng)
?地層Sysfs操作
?熱插拔事件
?總線,設備和驅(qū)動
?類
18.文件系統(tǒng)驅(qū)動
?vfs驅(qū)動框架
?ext3文件系統(tǒng)
19.塊設備驅(qū)動
?塊設備操作
?請求隊列
20.網(wǎng)絡設備驅(qū)動
?網(wǎng)絡設備驅(qū)動框架
?
?數(shù)據(jù)的收發(fā)和ioctl
?中斷處理
?Socket緩沖區(qū)
?流量統(tǒng)計
?
?
?
?