課程簡介

引言

  • 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)

即將到來的課程

課程分類