課程介紹:
Linux Drivers的開發(fā)重點(diǎn)在于架構(gòu)設(shè)計而不是語法細(xì)節(jié),如何使用Linux已有的API來設(shè)計和實(shí)現(xiàn)機(jī)制良好的Linux Drivers是其重點(diǎn)所在。
對Linux Driver Developer而言,要做的工作主要分為2個層面:
1,Virtual Device Driver: 往上層支持 Linux kernel 所提供的 Virtual File System 層,并實(shí)作 system calls。使用者可透過 system call interface 與 device driver 溝通;
2,Physical Device Driver: 往下層使用 Linux kernel 所提供的 device interface 操作硬件。 Virtual device driver 的主題的重要性大于 physical device driver,如何善用 Linux 所提供的介面 (interface) 來設(shè)計Drivers,并配合 user application 來設(shè)計應(yīng)用程序是重點(diǎn);
與 user application 如何互動動,是編寫Driver非常重要的一個環(huán)節(jié),正確理解和處理user-space 與 kernel-space 的關(guān)系,尤其的對當(dāng)今最為火爆的智能平臺Android而言,這一點(diǎn)尤為重要。
課程目標(biāo):
本課程旨在協(xié)助工程師在掌握驅(qū)動程序設(shè)計和編寫最佳實(shí)踐的前提下,完整的編寫出【好】的驅(qū)動程序,并以Android最核心的驅(qū)動Binder驅(qū)動為案例,讓學(xué)習(xí)者一方面徹底掌握嵌入式Linux一個商業(yè)級別驅(qū)動的完整實(shí)現(xiàn),另一方面也為掌握Android框架打下最堅實(shí)的基礎(chǔ);
課程長度:
3天
課程對象:
能看懂C語言代碼;最好是對Linux內(nèi)核有所了解;
課程大綱:
1:搭建嵌入式Linux Driver開發(fā)環(huán)境
1,1 虛擬機(jī)和Linux
1,2 source insight
2:第一個嵌入式Linux Driver程序開發(fā)實(shí)戰(zhàn)
2,1 Helloworld驅(qū)動程序;
2.2 模塊參數(shù)和模塊之間的通信;
2.3 將模塊加入到內(nèi)核;
3:Linux驅(qū)動架構(gòu)和設(shè)計流程
3.1 通過案例反思linux驅(qū)動的架構(gòu);
3.2 Linux驅(qū)動程序的最佳設(shè)計流程;
4:I/O
4.1 I/O端口的訪問與讀寫函數(shù);
4.2 I/O內(nèi)存讀寫;
5:read/write與wait queue
5.1? read/write;
5.2? wait queue;
6: Kernel Timer、Task Queue 與 Work Queue
6.1 Kernel Timer;
6.2 Task Queue;
6.3 Work Queue
7:中斷處理(Interrupt handling) 與 Bottom Half
7.1 Interrupt handling;
7.2 Bottom Half;
8:Memory Mapped I/O 與 User-space driver
8.1 Memory Mapped I/O;
8.2 User-space driver;
9: Virtual File System
9.1 Subsystem (分層架構(gòu)) 架構(gòu)解析;
9.2 Sysfs架構(gòu)與實(shí)戰(zhàn);
9.3 Sysfs Class Driver;
10:Android & Linux Device Driver
10.1? Android 與Linux 整合: HAL 架構(gòu) ;
10.2? Kernel Space與User space;
11:次主題的內(nèi)容是以Android最核心的驅(qū)動Binder驅(qū)動為案例,讓學(xué)習(xí)者一方面徹底掌握嵌入式Linux一個商業(yè)級別驅(qū)動的完整實(shí)現(xiàn),另一方面也為掌握Android框架打下最堅實(shí)的基礎(chǔ),具體內(nèi)容如下:
- Service Manager是如何成為一個守護(hù)進(jìn)程的?即Service Manager是如何告知Binder驅(qū)動程序它是Binder機(jī)制的上下文管理者。
- Server和Client是如何獲得Service Manager接口的?即defaultServiceManager接口是如何實(shí)現(xiàn)的。
- Server是如何把自己的服務(wù)啟動起來的?Service Manager在Server啟動的過程中是如何為Server提供服務(wù)的?即IServiceManager::addService接口是如何實(shí)現(xiàn)的。
- Service Manager是如何為Client提供服務(wù)的?即IServiceManager::getService接口是如何實(shí)現(xiàn)的。
- Android系統(tǒng)進(jìn)程間通信Binder機(jī)制在應(yīng)用程序框架層的Java接口源代碼分析。
關(guān)于艾威
源于美國 始于1998 艾威(AVTECH)是北美著名的培訓(xùn)機(jī)構(gòu),總部位于美國新澤西州,2000 年進(jìn)入中國,以培養(yǎng)國際化的中高端信息人才為己任,專注于國際前沿的新技術(shù)研發(fā)與教育,艾威主要的業(yè)務(wù)為培訓(xùn)與咨詢兩大類,目前培訓(xùn)的主要產(chǎn)品有:項(xiàng)目管理培訓(xùn)、IT 管理培訓(xùn)、IT 技術(shù)培訓(xùn)、云計算大數(shù)據(jù)培訓(xùn)、需求管理培訓(xùn)、產(chǎn)品管理培訓(xùn),信息安全類,AI 人工智能等....近十類上幾百門的課程的培訓(xùn)與咨詢服務(wù)。
艾威(中國)秉承總部“誠信為本、品質(zhì)為先”的理念,憑借美國艾威科學(xué)的課程體系和多年積累的豐富教學(xué)經(jīng)驗(yàn),結(jié)合中國本土企業(yè)文化、實(shí)際需求,為企業(yè)、個人提供定制化的培訓(xùn)解決方案。艾威進(jìn)入中國這十八年來已經(jīng)服務(wù)了超過 10000 多家客戶,獲得了良好的口碑!已被眾多 500強(qiáng)企業(yè)納入培訓(xùn)供應(yīng)商,如 HP,NOKIA,CISCO,INTEL,GE,華為,寶馬,德電,通用,大陸汽車,中國銀行,交行,工行,羅氏,賽諾菲,埃森哲……等。
- 艾威是 Prometric,VUE,PSI……等眾多國際認(rèn)證中心授權(quán)的考點(diǎn)
- 艾威是PMI國際項(xiàng)目管理協(xié)會PMP、PGMP、PFMP、PMI-ACP、PMI-PBA授權(quán)培訓(xùn)機(jī)構(gòu)
- 艾威是IIBA(國際商業(yè)分析師行業(yè)協(xié)會)授權(quán)的EECBA、CCBA、CBAP、CDBA、IIBA-AAC、IIBA-CCA授權(quán)培訓(xùn)機(jī)構(gòu)
- 艾威是 IT 服務(wù)管理官方 EXIN 授權(quán)的 ITIL,ITIL EXPERT,Prince2,EXIN Agile Scrum Master 教育機(jī)構(gòu),同時也是此系列課程的認(rèn)證考試中心。
- 艾威是ISACA國際信息系統(tǒng)審計師行業(yè)協(xié)會授權(quán)的CISA、COBIT、CDPSE、CRISC、CISM認(rèn)證培訓(xùn)考試機(jī)構(gòu)。
- 艾威是The Open Group 授權(quán)的 TOGAF 企業(yè)架構(gòu)的官方培訓(xùn)機(jī)構(gòu)。
- 艾威是 EPI 授權(quán)的數(shù)據(jù)中心 CDCP 培訓(xùn)機(jī)構(gòu),華東地區(qū)唯一 CDCP 授權(quán)培訓(xùn)機(jī)構(gòu),同時也是 CDCP 認(rèn)證考試考場。
- 艾威是國際外包專業(yè)協(xié)會(IAOP)獨(dú)家授權(quán)外包治理國際認(rèn)證 SGF(Sourcing Governance Foundation)
- 艾威是Peoplecert授權(quán)的ITIL、Prince2、MSP、P3O、MOP、DevOps、Alige Scrum Master認(rèn)證培訓(xùn)考試機(jī)構(gòu)