課程簡介

介紹

    GNU的快速歷史/Linux 發 牌 內核版本控制 發佈週期 內核樹 主線 內核與用戶空間 機制與政策 Kernel Driver 備擇方案 RTOS 與 Linux

記憶體 Management

    虛擬記憶體與物理記憶體 內核中的記憶體分配 頁面 區 應用程式介面 板

內核補丁

    生命週期 Git 的 內核源代碼 創建補丁 檢查補丁 修復補丁 船舶補丁 審核代碼

2016年美國

    獲取內核源代碼 配置/構建/安裝 裝置驅動程式(靜態連結,在運行時載入) 初始化/退出 發 牌 匯出符號 GPL 樹外makefile 模組初始化工具 內核樹中的模組 Kconfig 參數傳遞 稀疏

字元驅動程式

    建築 使用者/內核介面 I/O 子系統 VFS公司 sysfs(設備、總線、驅動程式、類)、 kobject/ktype/kset Linux 內核驅動程式模型 設備檔 char 驅動程式 初始化 註冊 打開、釋放 cdev、cdev add、cdev del,... 大號/小號 udev、udevmonitor、udevadm

高級字元驅動程式操作

    ioctl 已解鎖的IOCTL 相容 ioctl 用戶空間 API 內核空間 API 流程生命週期 休眠/阻塞 睡覺/醒來 等待佇列 雷鳴般的牛群 投票/選擇

內核調試

    錯誤 調試 調試內核 使用 Git 進行二進位搜索 來自內核的調試支援 printk syslogd、klogd、loglevels、速率限制、調試級別、調試選擇性子系統 通過查詢 debugfs 進行調試 OOPS 調試, 斷言 OOP 魔術 SysRq 鍵 千分貝/千分貝 JTAG的

描圖

    GCOV公司 LCOV公司 o配置檔 FTrace NOP示蹤劑 函數跟蹤器 SCHED開關跟蹤器 功能圖跟蹤器 動態跟蹤器
跟蹤 cmd/kernelshark
  • 性能
  • LTTng的
  • 中斷
  • 中斷與輪詢 中斷 程式部分 重入 事件 中斷處理程式 共用中斷處理程式 中斷流 中斷控制

      推遲工作

    上半部分/下半部分 軟體 任務let 工作佇列 螺紋介面

      併發

    關鍵區域/部分 原子 競爭條件 同步 鎖定 鎖定解決方案 僵局 衝突 鎖定什麼? 可以使用什麼? 原子操作 旋轉鎖 讀寫器自旋鎖 信號 二進位信號量 互斥鎖 讀寫信號量 完成變數 順序鎖 禁用搶佔 秩序和障礙

      時間

    赫茲 吉菲斯 大/小延遲 內核計時器

      硬體 I/O

    I/O 埠 I/O 記憶體 如何處理訪問寄存器的副作用?

      使用者內核 Communication

    把(獲取)_user() 複製到(從)_user() 內核 I/O 記憶體映射 PROCFS的 系統FS 調試FSS 中繼FS 網聯 ioctl

      可移植性

    字長 不透明類型 有符號/無符號字元 數據對齊 整體推廣 代碼重用 內延性 系統滴答聲 頁面大小 指令排序 SMP/搶佔/高記憶體

      除非另有說明,否則內容和本課程大綱均採用署名-非商業性使用-相同方式共用 4.0 國際 (CC BY-NC-SA 4.0) 許可。

    最低要求

    • 基本熟悉以最終使用者身份使用 GNU/Linux 系統
    • 基本熟悉命令行shell
    • 用戶空間/應用程式開發基礎知識
    • 中級C語言程式設計知識
    • 應該以前參加 過嵌入式 GNU/Linux Systems Architecture (強烈推薦!)和/或對那裡概述的主題有很好的理解
     35 時間:

    人數



    每位參與者的報價

    客戶評論 (4)

    相關課程

    The Yocto Project - An Overview - hands-on

    28 時間:

    課程分類