感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
引言
- GNU/Linux的簡要歷史
- 許可協議
- 內核版本管理
- 發佈週期
- 內核樹
- 主線內核
- 內核空間與用戶空間
- 機制與策略
- 內核驅動替代方案
- RTOS與Linux對比
內存管理
- 虛擬內存與物理內存
- 內核中的內存分配
- 頁
- 區域
- API
- slab分配器
內核補丁
- 生命週期
- git
- 內核源代碼
- 創建補丁
- 檢查補丁
- 修復補丁
- 提交補丁
- 代碼審計
內核模塊
- 獲取內核源代碼
- 配置/編譯/安裝
- 設備驅動(靜態鏈接,運行時加載)
- init/exit
- 許可協議
- EXPORT SYMBOL GPL
- 外部模塊的Makefile
- module-init-tools
- 內核樹中的模塊
- Kconfig
- 參數傳遞
- sparse
字符驅動
- 架構
- 用戶/內核接口
- I/O子系統
- VFS
- sysfs(設備、總線、驅動、類)
- kobject/ktype/kset
- Linux內核驅動模型
- 設備文件
-
字符驅動
- 初始化
- 註冊
- open、release
- cdev、cdev_add、cdev_del等
- 主/次設備號
- udev、udevmonitor、udevadm
高級字符驅動操作
- ioctl
- 非鎖定ioctl
- 兼容ioctl
- 用戶空間API
- 內核空間API
- 進程生命週期
- 睡眠/阻塞
- 睡眠/喚醒
- 等待隊列
- 驚羣效應
- poll/select
內核調試
- 調試
-
內核調試
- 使用git進行二分查找
- 內核的調試支持
- printk、syslogd、klogd、日誌級別、速率限制、調試級別、選擇子系統調試
- 通過debugfs查詢進行調試
- oops調試、觸發oops
- Magic SysRq鍵
- kgdb/kdb
- JTAG
追蹤
- gcov
- lcov
- oprofile
-
ftrace
- nop追蹤器
- 函數追蹤器
- 調度切換追蹤器
- 函數圖追蹤器
- 動態追蹤器
- trace-cmd/kernelshark
- perf
- LTTng
中斷
- 中斷與輪詢
- 中斷
- 程序段
- 可重入性
- 事件
- 中斷處理程序
- 共享中斷處理程序
- 中斷流程
- 中斷控制
延遲工作
- 上半部與下半部
- 軟中斷
- 任務隊列
- 工作隊列
- 線程化中斷
併發
- 臨界區/段
- 原子操作
- 競態條件
- 同步
- 鎖
- 鎖的解決方案
- 死鎖
- 競爭
- 鎖什麼?
-
可以使用什麼?
- 原子操作
- 自旋鎖
- 讀寫自旋鎖
- 信號量
- 二進制信號量
- 互斥鎖
- 讀寫信號量
- 完成變量
- 順序鎖
- 禁用搶佔
- 順序與屏障
時間
- HZ
- Jiffies
- 長/短延遲
- 內核定時器
硬件I/O
- I/O端口
- I/O內存
- 如何處理訪問寄存器時的副作用?
用戶-內核通信
- put(get)_user()
- copy to(from)_user()
- 內核I/O
- 內存映射
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
可移植性
- 字長
- 不透明類型
- 有符號/無符號字符
- 數據對齊
- 整型提升
- 代碼複用
- 字節序
- 系統時鐘
- 頁大小
- 指令順序
- SMP/搶佔/高內存
除非另有說明,本課程內容及大綱均遵循署名-非商業性使用-相同方式共享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。
最低要求
- 具備基本的GNU/Linux系統終端用戶使用經驗
- 熟悉命令行操作
- 具備用戶空間/應用開發的基礎知識
- 具備中級C語言編程能力
- 建議先參加嵌入式GNU/Linux系統架構課程,或對其中涉及的主題有深入理解
35 時間:
客戶評論 (5)
非常有用的附加信息
Grzegorz - Comp S.A.
課程 - BLoC Pattern
機器翻譯
Edward是一位出色的引導者
Zibusiso Ncube - Agricatural Research Council
課程 - Ionic 4 and Angular for Developers
機器翻譯
Miguel對該主題的知識非常廣泛。他使培訓易於理解,流程安排得當,根據需要在每個部分逐步添加新功能。他涵蓋了所有被要求的內容,並詳細回答了每一個問題。這是一次非常愉快的體驗。
Paul Coaton - SEMPCheck Services
課程 - Flutter Development Bootcamp with Dart
機器翻譯
培訓師能夠適應我們的需求
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
課程 - The Yocto Project - An Overview - hands-on
機器翻譯
培訓師充滿熱情,態度友好,並且非常熱愛這個主題
Isaac Murphy - Royal New Zealand Airforce
課程 - Build Native iOS and Android Apps with Flutter
機器翻譯