Architecture
從 layered architecture、kobject、file operations 與 cdata design flow 出發,建立 Linux 驅動程式的大局觀。
從 Linux 驅動程式架構、Kernel API、I/O 與 Process Scheduling,到 Kernel Synchronization、Subsystem 與 Android 整合,建立 Linux Device Driver 的完整觀念體系與實作能力。
Linux 驅動程式具備較高的學習門檻。初學者需要完整觀念體系與有效學習方法。片段範例與零散 API 無法建立 Driver 分析能力。
本課程帶領學員從無到有撰寫驅動程式,並分析作業系統原理。Driver 分析、同步練習與實作演練共同建立產品開發基礎。
Linux Device Driver 的學習方式,首重「完整的觀念體系」,面對現有的 Driver 程式碼時,才能輕鬆應對。本課程帶領同學「從無到有撰寫架構良好的驅動程式」,並「對作業系統原理進行分析」,透過一個完整驅動程式的分析與研發過程,真正學會 Linux Device Driver。
Linux 驅動程式以觀念為核心。程式碼語法用於驗證觀念。課程運用 Linux APIs 設計 Mechanism 與 Behavior。Device Driver 涵蓋 Virtual Driver、Physical Driver、User-space、Kernel-space、I/O memory 與硬體控制。
本課程建立完整的驅動程式觀念體系。學員將閱讀現有 Driver 架構、判斷同步問題,並分析單處理器與多處理器環境。
進入 Embedded Linux System 領域,並打造厚實基礎能力,最重要的軟體課程之一,就是 Linux 驅動程式。這也是 Jollen 長期將本課程定位為 Linux 與 Android 系統開發的重要基礎課程的原因。
從 layered architecture、kobject、file operations 與 cdata design flow 出發,建立 Linux 驅動程式的大局觀。
理解 read/write、Blocking I/O、Memory-Mapped I/O 與 User-space driver,掌握驅動程式的核心介面與資料流。
分析 Process Scheduling、Kernel Timer、Work Queue、中斷處理與 Bottom Half 的角色與設計方法。
從 Race Condition、Reentrancy、Mutex、Spinlock 到 IRQ Disabling,建立單處理器與多處理器環境下的同步分析能力。
從 Subsystem 分層、Class Driver 到 Android 整合專題,理解 Linux Driver 在真實產品裡的延伸與落地方式。
Linux 驅動程式具有完整的觀念體系。初學者需要有效的學習方法。課程重視觀念解析,並以語法與範例驗證觀念。完成觀念建立後,即可快速閱讀 Linux 驅動程式。
課程範例採用完整的驅動程式架構。多階段 Exercise 涵蓋 ioctl、multi-thread、private data、wait queue、Kernel Debug、Device Tree、Memory Model 與 Android 整合專題。
程式碼分析與同步問題定位是 Kernel Synchronization 的基本功。課程後半段建立單處理器與多處理器環境的同步分析能力,並涵蓋 Mutex、Spinlock 與 IRQ disabling。
本課程累積超過 20 年的公開課與企業內訓經驗,並保留超過 10 年的公開課紀錄。課程內容採用 Kernel 6.x(mainline)。2018 年起,授課形式以遠端教學與企業內訓為主。
本課程內容累積超過 20 年以上的公開課與企業內訓經驗,並持續堅持小班教學與高品質授課。
課程擁有超過 10 年公開課紀錄,已累積至仕橙版第 38 期,並於近年持續維持授課與企業內訓更新。
仕橙 3G 教室課程改採遠端教學與企業內訓為主,實體教室課程採預約報名方式。
課程已針對 Kernel 6.x(mainline)進行更新,讓驅動程式觀念與當代主線核心版本保持一致。
課程持續更新 Linux Driver 教學材料、Exercise 與 Android 整合內容,以維持公開課與企業內訓的一致品質。
標準版維持 10 堂課的完整結構,企業版則依內訓需求進行濃縮與重組。
強化 Architecture、Kernel API、I/O 與 User-space / Kernel-space 關係。
聚焦 Race Condition、Mutex、Spinlock、IRQ disabling 與 SMP 差異分析。
納入 Memory-Mapped I/O、Device Tree、開發板移植與 Android 整合專題。
延伸至 USB、Input Device、Hardware Monitoring 或 ALSA Audio 專題。
Jollen 在 Embedded Linux 與 Linux Device Driver 有超過 20 年的研發與企業內訓經驗,在 Android Framework 軟體架構方面,也有 15 年的授課經驗,並長期在科技業擔任 Linux & Android 技術顧問。
Jollen 多次於 Linux 基金會 Open Source Summit 發表演說。2017 年起,他在歐洲與加拿大發表區塊鏈與去中心化 IoT 架構論文,並獲 ACM SIGBED Review 刊登。2016 年,Jollen 創辦 Flowchain 基金會,開發原創區塊鏈作業系統技術並取得多項國際專利。
這門課由長期從事 Linux、Android 與系統軟體架構工作的講師主講。Linux Device Driver、同步分析與 Embedded 系統整合形成完整學習主線。
若您的團隊正在進行 Linux 平台開發、Embedded 系統開發、Kernel Synchronization 分析,或需要處理 Linux 與 Android 的整合,本課程將提供一套較完整的驅動程式觀念體系與實作方法。