• 北京:010-51292078 上海:021-51875830
    西安:029-86699670 南京:4008699035
    成都:4008699035 武漢:027-50767718
    廣州:4008699035 深圳:4008699035

    課程表 聯系我 在線聊 報名 付款 我們 QQ聊 切換寬屏

    Linux內核剖析高級培訓班

       班.級.規.模.及.環.境
           堅持小班授課,為保證培訓效果,增加互動環節,每期人數限3到5人。
       課.程.目.標
            通過本課程的學習,學員可以:
            1)全面認識和了解Linux內核的框架,并以此為基礎掌握學習Linux內核、分析閱讀Linux內核源碼的方法,真正地邁過那道無形的門坎。
            2)掌握、分析、鉆研某個子系統在Linux內核中實現機制的方法,并了解Linux內核中的進程管理、內存管理、文件系統。
            3)了解如何參與Linux內核的開發和測試,以及一些常用的調試手段和工具。
            4)掌握Linux設備驅動的開發方法。
            5)掌握Android運行所需要的Linux內核開發和技巧。
      windowsphone  入.學.要.求
            學員學習本課程應具備下列基礎:
            ◆ 能夠使用Linux操作系統。
            ◆ 掌握C語言基礎。
            ◆ 熟悉操作系統基礎理論。
      windowsphone  培養對象
            ◆ 對Linux內核感興趣,卻苦于不知如何下手者。
            ◆ 學習Linux內核良久,卻收益不大者。
            ◆ 有志從事Linux內核和Linux驅動開發的工程師。
            ◆ 有志從事Android底層開發的工程師。
       開課時間和上課地點
         上課地點:【上!浚和瑵髮W(滬西)/新城金郡商務樓(11號線白銀路站) 【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院 【北京分部】:北京中山/福鑫大樓 【南京分部】:金港大廈(和燕路) 【武漢分部】:佳源大廈(高新二路) 【成都分部】:領館區1號(中和大道) 【沈陽分部】:沈陽理工大學/六宅臻品 【鄭州分部】:鄭州大學/錦華大廈 【石家莊分部】:河北科技大學/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協同大廈
         最近開課時間(周末班/連續班/晚班):
    Linux內核開班時間:2021年9月6日(請抓緊報名)
       實驗設備和授課方式

         ☆資深工程師授課

            
            ☆注重質量
            ☆邊講邊練

            ☆合格學員免費推薦工作


            專注高端培訓17年,曙海提供的課程得到本行業的廣泛認可,學員的能力
            得到大家的認同,受到用人單位的廣泛贊譽。

            ★實驗設備請點擊這兒查看★

       .最.新.優.惠.
           ☆在讀學生憑學生證,可優惠500元。
       .質.量.保.障.

            1、培訓過程中,如有部分內容理解不透或消化不好,可免費在以后培訓班中重聽;
            2、培訓結束后免費提供半年的技術支持,充分保證培訓后出效果;
            3、培訓合格學員可享受免費推薦就業機會。

       .課.程.大.綱. --- Linux內核剖析培訓班

    第一階段

        全面認識和了解Linux內核的框架,掌握學習Linux內核、分析閱讀Linux內核源碼的方法。

    第1章 Linux內核的基本面
          1.1 Linux內核成長史
          1.2 多變的Linux內核版本號
          1.3 獲取Linux內核的源代碼
          1.4 ALinux內核與那些發行版
          1.5 Linux內核是如何工作的
              ·“Linux虛擬機”——系統調用
              ·臺前——文件系統
              ·幕后——進程調度
              ·幕后——內存管理
              ·模塊化的Kernel
    第2章 Linux內核的按需配置與編譯
          2.1 按需配置Linux內核
              ·配置方式的多種選擇
              ·認識常見的配置選項
              ·重視.config文件
          2.2 為Linux內核打補丁
          2.3 編譯Linux內核
              ·認識一些與編譯有關的目錄與文件
              ·構建編譯環境
              ·備份是重要得
              ·編譯步驟
              ·一些實用的小技巧
          2.4 Linux內核的文檔及編譯
          2.5 【實驗】配置、編譯Linux 2.6內核
    第3章 瀏覽Linux內核源碼
          3.1 所需的技術基礎
          3.2 Linux內核的體系結構
          3.3 Linux內核源碼樹
          3.4 使用vim+cscope+ctags
          3.5 Linux內核代碼的特點
              ·gcc擴展的使用
              ·內嵌匯編
          3.6 Linux內核中的鏈表
          3.7 代碼樣例
          3.7 【實驗】配置vim瀏覽內核源碼
    第4章 如何分析Linux內核源碼
          4.1 Linux內核學習的心理問題
          4.2 kernel地圖:Kconfig與Makefile
              ·看懂Kconfig與Makefile
              ·利用Kconfig與Makefile定位目標代碼
          4.3 分析Linux內核源碼如何入手
              ·分析README
              ·分析Kconfig與Makefile
              ·態度決定一切:從初始化函數開始
          4.4 【實驗】定位并分析某個子系統或模塊在內核中的實現

    第二階段

        掌握分析鉆研某個子系統在內核中實現機制的方法,了解內核中的進程管理、內存管理、文件系統。

    第5章 開始之前——Before we begin
          5.1 系統初始化
          5.2 Linux內核中的時間
          5.3 系統調用
          5.4 中斷與中斷處理
          5.5 Linux內核中的同步
    第6章 子系統的初始化
          6.1 Linux內核選項解析
              ·Linux內核選項
              ·注冊Linux內核選項
              ·兩次解析
          6.2 那些入口函數
              ·.initcall.init節
              ·do_initcalls()函數
          6.3 以PCI子系統為例
          6.4 【實驗】分析某個子系統的初始化過程
    第7章 進程管理與調度
          7.1 Linux中的進程
          7.2 進程的來源:fork和clone
          7.3 所有美好的事物都會結束:進程退出
          7.4 內核線程
          7.5 進程調度
              ·O(1)調度
              ·CFS調度
          7.6 不確定的Multi-thread
    第8章 內存管理
          8.1 物理地址、邏輯地址與虛擬地址
          8.2 分頁
          8.3 內存在內核中的分配
          8.4 進程的內存組織
          8.5 內存映射mmap
          8.6 頁面緩存
    第9章 虛擬文件系統VFS
          9.1 VFS的體系結構
          9.2 理解VFS的那些數據結構
          9.3 VFS的緩存機制
          9.4 文件系統的注冊與安裝
          9.5 文件系統的日志管理

    第三階段

        了解如何參與Linux內核的開發和測試,以及一些常用的調試手段和工具。

    第10章 Intent Receiver
          10.1 工具鏈及其生成
          10.2 Linux內核中的Makefile
          10.3 嚴格遵守Linux內核的編碼風格
          10.4 添加代碼到Linux內核
          10.5 為什么Linux內核沒有穩定的API?
          10.6 如何提交補丁
          10.7 學會使用Git
          10.8 【實驗】安裝Git并用它來來獲取最新的Linux內核源碼
    第11章 一些最上鏡的Linux內核調試手段與工具
          11.1 Linux內核對調試的支持
          11.2 二分法與printk
          11.3 獲取Linux內核信息
          11.4 調試福音之oops
          11.5 神奇的SysRq
          11.6 調試利器之GDB
          11.7 調試利器之Systemtap
          11.8 Linux內核崩潰轉儲
          11.9 利用模擬器
          11.10 【實驗】分析一個oops
          11.11 【實驗】配置GDB調試環境并調試Linux內核
    第12章 子系統的初始化
          12.1 Linux內核測試的4個階段
          12.2 性能分析與調優工具
              ·CPU性能分析與調優
              ·Memory性能分析與調優
              ·IO性能分析與調優
              ·Network性能分析與調優
          12.3 oprofile
          12.4 啟動速度調優
          12.5 【實驗】Linux內核性能測試并提交Linux內核測試報告

    第四階段

        掌握驅動的開發方法,掌握Android運行所需要的Linux內核開發和技巧。

    第13章 驅動開發的方法論
          13.1 模塊化的Linux內核
          13.2 第一個模塊“Hello World!”
          13.3 重中之重:設備模型
              ·總線、設備和驅動
              ·在USB子系統上的投影
          13.4 驅動開發三件寶:spec、datasheet與Linux內核源碼
          13.5 sysfs
          13.6 【實驗】結合設備模型分析一個Linux內核中現有的驅動
          13.7 【實驗】編寫一個簡單的模塊
    第14章 Android環境的相關介紹
          14.1 Android的歷史和介紹
          14.2 Android和Linux的扯不清理還亂的關系
          14.3 取得Android的源代碼和編譯生成可執行環境
          14.4 Android源代碼構成和運行原理
          14.5 加入新的處理器支持到Android框架
    第15章 移植Android所需要的Linux內核
          15.1 Android運行所需要對Linux內核作的修改
          15.2 Android對現有驅動所必須做的修改
              ·鍵盤、鼠標驅動和鍵值映射
              ·顯示驅動
              ·audio驅動
          15.3 編譯和拓展Android的啟動分區boot.img
          15.4 Android的啟動過程分析和調試技術
          15.5 【實驗】生成一個可供Android啟動的Linux內核
          15.6 【實驗】制作和生成一個可運行的boot.img
    第16章 實現Android的硬件抽象層
          16.1 Android的硬件抽象層的原理和構成
          16.2 實現ril,完成Android的移動網絡功能支持
          16.3 libhardware_legacy接口
          16.4 libhardware接口
          16.5 藍牙支持
          16.6 【實驗】將一個wifi驅動加入Android硬件抽象層