Linux內(nèi)核修煉

  •  課程目標

    本課程為企業(yè)用戶專門定制,涵蓋了Linux內(nèi)核的框架、閱讀內(nèi)核源碼、內(nèi)核子系統(tǒng)、Linux內(nèi)核中的進程管理、內(nèi)存管理、文件系統(tǒng)等全方面內(nèi)容,同時還包括Linux內(nèi)核的開發(fā)和測試、Linux設(shè)備驅(qū)動的開發(fā)方法、Android系統(tǒng)開發(fā)等。學(xué)習(xí)本課程的學(xué)員能夠從事Linux內(nèi)核相關(guān)的項目開發(fā)。

  •  師資團隊

  • 華清創(chuàng)客企業(yè)內(nèi)訓(xùn)講師,均是來自各個領(lǐng)域的資深專家,均擁有6年以上大型項目經(jīng)驗。

  •  培養(yǎng)對象

    學(xué)員學(xué)習(xí)本課程應(yīng)具備下列基礎(chǔ)知識:
    ◆ 能夠使用Linux操作系統(tǒng)。
    ◆ 掌握C語言基礎(chǔ)。
    ◆ 熟悉操作系統(tǒng)基礎(chǔ)理論。

  •  培訓(xùn)方式

第一種:華清創(chuàng)客講師面授
課時:共4天,每天6學(xué)時,總計24學(xué)時
◆費用(含教材費):公司員工(3200元),個人自費(2500元),學(xué)生自費(1900元,憑有效證件)
◆培訓(xùn)證書(可選):培訓(xùn)合格學(xué)員可獲工業(yè)和信息化部《國家信息技術(shù)應(yīng)用技能Linux內(nèi)核開發(fā)工程師認證證書》(認證費500元)
◆外地學(xué)員:代理安排食宿(需提前預(yù)定)

第二種:線上直播授課
直播課時:共8天,每天3學(xué)時,總計24學(xué)時;
輔導(dǎo):授課期間,輔導(dǎo)老師每天有1小時的輔導(dǎo)直播
◆費用(含教材費):公司員工(3200元),個人自費(2500元),學(xué)生自費(1900元,憑有效證件)
◆培訓(xùn)證書(可選):培訓(xùn)合格學(xué)員可獲工業(yè)和信息化部《國家信息技術(shù)應(yīng)用技能Linux內(nèi)核開發(fā)工程師認證證書》(認證費500元)

第三種:Linux內(nèi)核企業(yè)定制培訓(xùn)
課時:根據(jù)定制的大綱確定課時
費用:根據(jù)課程難度,每課時1500~3000元
◆培訓(xùn)證書(可選):培訓(xùn)合格學(xué)員可獲工業(yè)和信息化部《國家信息技術(shù)應(yīng)用技能Linux內(nèi)核開發(fā)工程師認證證書》(認證費500元)

    •  質(zhì)量保證

      1、培訓(xùn)過程中,如有部分內(nèi)容理解不透或消化不好,可免費在下期培訓(xùn)班中重聽;

      2、培訓(xùn)結(jié)束后免費提供一個月的技術(shù)支持,充分保證培訓(xùn)后出效果;

      3、培訓(xùn)合格學(xué)員可享受免費推薦就業(yè)機會。

    •  課程大綱


      第一章             

      學(xué)習(xí)目標:全面認識和了解Linux內(nèi)核的框架,掌握學(xué)習(xí)Linux內(nèi)核、分析閱讀Linux內(nèi)核源碼的方法。      

      第一節(jié)     1.Linux內(nèi)核的基本面   

                  1.1 Linux內(nèi)核成長史       

                  1.2 多變的Linux內(nèi)核版本號

                  1.3 獲取Linux內(nèi)核的源代碼

                  1.4 Linux內(nèi)核與那些發(fā)行版  

                  1.5 Linux內(nèi)核是如何工作的  

                      ·“Linux虛擬機”——系統(tǒng)調(diào)用  

                      ·臺前——文件系統(tǒng)      

                      ·幕后——進程調(diào)度      

                      ·幕后——內(nèi)存管理      

                      ·模塊化的Kernel  

      第二節(jié)     2.Linux內(nèi)核的按需配置與編譯   

                  2.1 按需配置Linux內(nèi)核

                      ·配置方式的多種選擇 

                      ·認識常見的配置選項 

                      ·重視.config文件  

                  2.2 Linux內(nèi)核打補丁

                  2.3 編譯Linux內(nèi)核

                      ·認識一些與編譯有關(guān)的目錄與文件 

                      ·構(gòu)建編譯環(huán)境      

                      ·備份是重要的      

                      ·編譯步驟      

                      ·一些實用的小技巧      

                  2.4 Linux內(nèi)核的文檔及編譯  

                  2.5 【實驗】配置、編譯Linux內(nèi)核     

      第三節(jié)     3.瀏覽Linux內(nèi)核源碼  

                  3.1 所需的技術(shù)基礎(chǔ)       

                  3.2 Linux內(nèi)核的體系結(jié)構(gòu)       

                  3.3 Linux內(nèi)核源碼樹       

                  3.4 使用vim+cscope+ctags    

                  3.5 Linux內(nèi)核代碼的特點       

                      ·gcc擴展的使用   

                      ·內(nèi)嵌匯編      

                  3.6 Linux內(nèi)核中的鏈表  

                  3.7 代碼樣例  

                  3.8 【實驗】配置vim瀏覽內(nèi)核源碼   

      第四節(jié)     4.如何分析Linux內(nèi)核源碼  

                  4.1 Linux內(nèi)核學(xué)習(xí)的心理問題       

                  4.2 kernel地圖:KconfigMakefile      

                      ·看懂KconfigMakefile      

                      ·利用KconfigMakefile定位目標代碼     

                  4.3 分析Linux內(nèi)核源碼如何入手

                      ·分析README       

                      ·分析KconfigMakefile      

                      ·態(tài)度決定一切:從初始化函數(shù)開始 

                  4.4 【實驗】定位并分析某個子系統(tǒng)或模塊在內(nèi)核中的實現(xiàn)  

       

      第二章             

      學(xué)習(xí)目標:掌握分析鉆研某個子系統(tǒng)在內(nèi)核中實現(xiàn)機制的方法,了解內(nèi)核中的進程管理、內(nèi)存管理、文件系統(tǒng)。    

      第五節(jié)     5.開始之前——Before we begin  

                  5.1 系統(tǒng)初始化       

                  5.2 Linux內(nèi)核中的時間  

                  5.3 系統(tǒng)調(diào)用  

                  5.4 中斷與中斷處理       

                  5.5 Linux內(nèi)核中的同步  

      第六節(jié)     6.開始之前——子系統(tǒng)的初始化

                  6.1 Linux內(nèi)核選項解析  

                      ·Linux內(nèi)核選項     

                      ·注冊Linux內(nèi)核選項    

                      ·兩次解析      

                  6.2 那些入口函數(shù)  

                      ·initcall.init節(jié)         

                      ·do_initcalls()函數(shù) 

                  6.3 PCI子系統(tǒng)為例   

                  6.4 【實驗】分析某個子系統(tǒng)的初始化過程       

      第七節(jié)     7.進程管理與調(diào)度

                  7.1 Linux中的進程  

                  7.2 進程的來源:forkclone      

                  7.3 所有美好的事物都會結(jié)束:進程退出  

                  7.4 內(nèi)核線程  

                  7.5 進程調(diào)度  

                      ·O(1)調(diào)度       

                      ·CFS調(diào)度        

                  7.6 不確定的Multi-thread     

      第八節(jié)     8.內(nèi)存管理     

                  8.1 物理地址、邏輯地址與虛擬地址  

                  8.2 分頁  

                  8.3 內(nèi)存在內(nèi)核中的分配       

                  8.4 進程的內(nèi)存組織       

                  8.5 內(nèi)存映射mmap        

                  8.6 頁面緩存  

      第九節(jié)     9.虛擬文件系統(tǒng)VFS      

                  9.1 VFS的體系結(jié)構(gòu) 

                  9.2 理解VFS的那些數(shù)據(jù)結(jié)構(gòu)        

                  9.3 VFS的緩存機制 

                  9.4 文件系統(tǒng)的注冊與安裝  

                  9.5 文件系統(tǒng)的日志管理       

       

      第三章             

      學(xué)習(xí)目標:了解如何參與Linux內(nèi)核的開發(fā)和測試,以及一些常用的調(diào)試手段和工具。 

      第十節(jié)     10.Intent Receiver 

                  10.1 工具鏈及其生成     

                  10.2 Linux內(nèi)核中的Makefile 

                  10.3 嚴格遵守Linux內(nèi)核的編碼風(fēng)格  

                  10.4 添加代碼到Linux內(nèi)核  

                  10.5 為什么Linux內(nèi)核沒有穩(wěn)定的API    

                  10.6 如何提交補丁

                  10.7 學(xué)會使用Git   

                  10.8 【實驗】安裝Git并用它來來獲取最新的Linux內(nèi)核源碼         

      第十一節(jié)         11.一些最上鏡的Linux內(nèi)核調(diào)試手段與工具     

                  11.1 Linux內(nèi)核對調(diào)試的支持

                  11.2 二分法與printk       

                  11.3 獲取Linux內(nèi)核信息       

                  11.4 調(diào)試福音之oops    

                  11.5 神奇的SysRq  

                  11.6 調(diào)試利器之GDB    

                  11.7 調(diào)試利器之Systemtap  

                  11.8 Linux內(nèi)核崩潰轉(zhuǎn)儲

                  11.9 利用模擬器     

                  11.10 【實驗】分析一個oops      

                  11.11 【實驗】配置GDB調(diào)試環(huán)境并調(diào)試Linux內(nèi)核        

      第十二節(jié)         12.子系統(tǒng)的初始化       

                  12.1 Linux內(nèi)核測試的4個階段     

                  12.2 性能分析與調(diào)優(yōu)工具     

                      ·CPU性能分析與調(diào)優(yōu)  

                      ·Memory性能分析與調(diào)優(yōu)   

                      ·IO性能分析與調(diào)優(yōu)     

                      ·Network性能分析與調(diào)優(yōu)   

                  12.3 oprofile      

                  12.4 啟動速度調(diào)優(yōu)

                  12.5 【實驗】Linux內(nèi)核性能測試并提交Linux內(nèi)核測試報告 

       

      第四章             

      學(xué)習(xí)目標:掌握驅(qū)動的開發(fā)方法,掌握Android運行所需要的Linux內(nèi)核開發(fā)和技巧。   

      第十三節(jié)         13.驅(qū)動開發(fā)的方法論  

                  13.1 模塊化的Linux內(nèi)核       

                  13.2 第一個模塊“Hello World!

                  13.3 重中之重:設(shè)備模型     

                      ·總線、設(shè)備和驅(qū)動      

                      ·在USB子系統(tǒng)上的投影      

                  13.4 驅(qū)動開發(fā)三件寶:specdatasheetLinux內(nèi)核源碼      

                  13.5 sysfs 

                  13.6 【實驗】結(jié)合設(shè)備模型分析一個Linux內(nèi)核中現(xiàn)有的驅(qū)動       

                  13.7 【實驗】編寫一個簡單的模塊     

      第十四節(jié)         14.Android環(huán)境的相關(guān)介紹 

                  14.1 Android的歷史和介紹    

                  14.2 AndroidLinux的扯不清理還亂的關(guān)系       

                  14.3 取得Android的源代碼和編譯生成可執(zhí)行環(huán)境  

                  14.4 Android源代碼構(gòu)成和運行原理    

                  14.5 加入新的處理器支持到Android框架  

      第十五節(jié)         15.移植Android所需要的Linux內(nèi)核  

                  15.1 Android運行所需要對Linux內(nèi)核作的修改  

                  15.2 Android對現(xiàn)有驅(qū)動所必須做的修改    

                      ·鍵盤、鼠標驅(qū)動和鍵值映射      

                      ·顯示驅(qū)動      

                      ·audio驅(qū)動    

                  15.3 編譯和拓展Android的啟動分區(qū)boot.img   

                  15.4 Android的啟動過程分析和調(diào)試技術(shù)    

                  15.5 【實驗】生成一個可供Android啟動的Linux內(nèi)核    

                  15.6 【實驗】制作和生成一個可運行的boot.img     

      第十六節(jié)         16.實現(xiàn)Android的硬件抽象層    

                  16.1 Android的硬件抽象層的原理和構(gòu)成    

                  16.2 實現(xiàn)ril,完成Android的移動網(wǎng)絡(luò)功能支持       

                  16.3 libhardware_legacy接口 

                  16.4 libhardware接口      

                  16.5 藍牙支持

                  16.6 【實驗】將一個wifi驅(qū)動加入Android硬件抽象層    


the end

評論(2)

周祥Dirk

您好,可以咨詢一些問題嗎?

1.       直播課時:共8天,每天3學(xué)時,總計24學(xué)時;

=》是固定時間的嗎?比如必須每天3小時?連續(xù)8天?還是不定時的,只是累計24學(xué)時而已?

是真的直播還是錄播?

2.       可以回放看的嗎?可以下載下來嗎?以后供新的member 繼續(xù)看嗎?


2019-08-09 12:38 0 0 | 回復(fù)(0)
MAKERU568818904

有視頻嗎?在哪買?

2019-04-19 10:24 0 0 | 回復(fù)(0)