閱碼場訓練營:ARM架構(gòu)與調(diào)試調(diào)優(yōu)
有沒有覺得從嵌入式到服務(wù)器領(lǐng)域,ARM芯片在很多地方出現(xiàn)?
- 有沒有發(fā)現(xiàn)海內(nèi)外巨頭都在做ARM芯片?
- 有沒有覺得ARMv7,v8,v9,Cortex,Neoverse,ARM ARM,TRM,APCS,SCMI等內(nèi)容看著眼花繚亂?
- 有沒有覺得操作系統(tǒng)學了做了很多,遇到ARM相關(guān)的問題還是無從下手?
我是從ARM7TDMI開始接觸ARM架構(gòu)的,當時很幸運有DSP的學習基礎(chǔ),同時遇到了把ARM架構(gòu)和操作系統(tǒng)結(jié)合講解的書籍。這樣,結(jié)合自己不斷的實踐,一直可以跟上ARM架構(gòu)的演進。長期的跟蹤也讓我容易能看到ARM的趨勢,我從Linaro在做ARM NEON指令集優(yōu)化關(guān)注到Linaro,后面持續(xù)的關(guān)注以Linaro為首ARM生態(tài)組織的發(fā)展,幾年后的2017年,我作為演講人分享了ARM架構(gòu)下的一個TLB性能優(yōu)化方案,實現(xiàn)了從關(guān)注到深度參與到過程。
如果把工程師的成長比喻為一架持續(xù)飛行的飛機。學習框架是飛機的兩翼,實踐就是飛機的引擎,課程中會反復結(jié)合三位一體的學習方法,不斷從帶領(lǐng)大家實踐到大家自己動手。一路走來,希望我的經(jīng)驗?zāi)軒椭酱蠹疑僮卟槐匾膹澛?,更多的精力能用在自己的長期目標上。
張健老師在實際工作和培訓中,遇到很多實際案例。從Linux內(nèi)核到用戶空間,有很多和ARM架構(gòu)相關(guān)的問題。系統(tǒng)掌握了ARM架構(gòu)就等于有了一雙新的眼睛,幫助大家解決技術(shù)問題,改善系統(tǒng)性能。
第一部分 從坐而言到起而行
|
? 復習Linux用戶空間編譯過程(配置,編譯,安裝:configure,make,make install),編譯Linux內(nèi)核常見的測試套件:LTP。 ? 編譯內(nèi)核和文件系統(tǒng)。 ? 觀察內(nèi)核啟動過程(CPU特性,memory,dma zone,GIC,timer,psci),介紹ARM架構(gòu)中的概念。 ? 實驗:動手編譯內(nèi)核和文件系統(tǒng)。 |
第二部分 軟件和硬件的接口:匯編語言 |
? 從Linux用戶空間測試代碼(來自LTP)看ARM架構(gòu)常見指令。 ? 實驗:單步調(diào)試算術(shù),跳轉(zhuǎn)和load/store指令。 ? 理解調(diào)用棧的概念。 |
第三部分:我是誰,我能做什么:異常處理
|
? 異常的核心是什么。 ? 如何用匯編語言調(diào)用系統(tǒng)調(diào)用。 ? 異常的進入和退出; ? 從Linux內(nèi)核到虛擬化 ? 從Linux內(nèi)核安全OS |
第四部分:用頁表屬性的磚搭建ARM的內(nèi)存世界
|
? 內(nèi)存基本概念 ? MMU的原理 ? cache基本概念 ? 頁表和頁表屬性 ? 演示實驗:continuous bit hint的應(yīng)用 ? cache的結(jié)構(gòu)(含演示實驗) ? cache coherence。 ? 原子操作 |
第五部分:Death is another beginning:Linux內(nèi)核crash調(diào)試 |
? 內(nèi)核調(diào)試方法概述 ? Linux內(nèi)核crash分析實例 |
第六部分:軟件工程師的瑞士軍刀:調(diào)測。 |
? coresight原理; ? perf與coresight,PMU結(jié)合使用; ? 調(diào)優(yōu)的USE模型; ? 演示實驗:perf PMU分析系統(tǒng)性能。 |
總計12h
ARM架構(gòu)已經(jīng)有41年的歷史,目前市場上以v8架構(gòu)為主,也還有一定的v7架構(gòu)芯片。v9架構(gòu)基本還沒有產(chǎn)品出現(xiàn)。本課程以v8為主,同時兼顧v8中與v7,v9相同的部分。
站在架構(gòu)角度看,匯編語言,異常處理和內(nèi)存管理處于核心位置。內(nèi)核crash調(diào)試和調(diào)測技術(shù)體現(xiàn)的是對ARM和系統(tǒng)的綜合理解。課程首先結(jié)合實例和練習介紹匯編語言,異常處理和內(nèi)存管理。最后用內(nèi)核crash調(diào)試和調(diào)測技術(shù)把前面知識串聯(lián)起來,幫助大家綜合應(yīng)用。
不同于很多上來講匯編語言的ARM課程,課程首先介紹講解“理論,代碼,實踐”三位一體的學習方法,然后在每章的課程中,用開頭的引導問題引發(fā)打大家的思考,最后用課后練習保證大家的學習效果。課程中的明線是ARM架構(gòu),暗線是系統(tǒng)調(diào)試和調(diào)優(yōu),會在合適的地方出現(xiàn)調(diào)試/調(diào)優(yōu)的工具,并在課程的最后兩課對調(diào)試和調(diào)優(yōu)有全面的學習。
?BSP工程師;
?Linux驅(qū)動工程師;
?固件工程師;
?系統(tǒng)軟件工程師;
?IC驗證工程師。
?希望從X86遷移到ARM的軟件工程師。
1.熟悉ARM架構(gòu)各類專業(yè)詞匯,遇到問題能從正確方向入手;
2.對匯編語言不再害怕,能看懂和上手調(diào)試;
3.對異常處理有從上到下縱向的理解,既能調(diào)試底層代碼,也能在上層應(yīng)用異常概念完成開發(fā)工作;
4.能理解操作系統(tǒng)物理內(nèi)存管理的核心,將來可以向上對接操作系統(tǒng)更豐富的內(nèi)存管理能力,從而為掌握操作系統(tǒng)打下基礎(chǔ);
5.結(jié)合ARM架構(gòu)知識靈活運用系統(tǒng)的調(diào)測能力。
十四年IT基礎(chǔ)設(shè)施研發(fā)經(jīng)驗,其中包括六年Linux kernel一線研發(fā)經(jīng)驗,在suse,華為,星際比特(技術(shù)合伙人)等公司工作。
作為團隊核心成員參與了大陸第一個Cortex-A8 SOC芯片研發(fā),負責CPU軟件驗證,操作系統(tǒng)移植等工作。
作為華為派駐到Linaro的技術(shù)專家,主導/參與多個Linux與arm架構(gòu)相關(guān)特性研發(fā)(ILP32,continuous bit hint,kernel selftest等)
在拉斯維加斯,柏林,布達佩斯和北京多次發(fā)表技術(shù)演講:
?2020 第?屆開源操作系統(tǒng)年度技術(shù)會議(OS2ATC) Linux On RISC-V最新進展和遷移要點?2019 ?知錄 ARM在企業(yè)級的應(yīng)?與前景?2019 建設(shè)銀? ARM在企業(yè)級的應(yīng)?與前景?2018 Recent Kernel Update(Ubuntu Kylin 18.04 meetup in Beijing)?2017 Linaro Connect Budapest: BUD17-305 - Implement contiguous page hint for anonymous page in user space?2016 Linaro Connect Las Vegas: LAS16-TR07: Working upstream [Mandarin]?2016 Linuxcon Europe: An efficient unit test and fuzz tools for kernel/libc porting?2015 patent in US, EP, CN, WO(WO2017054610A1): Computer, and method and apparatus for controlling quality of service?2014 openSUSE Asia Summit: openSUSE on ARM
Ftrace訓練營1期線上合影
Ftrace訓練營1期證書
閱碼場訓練營文化衫
學員好評
閱碼場已有課程清單
價格(元) |
課程名稱 |
199 |
《深入淺出Linux內(nèi)核模塊》 |
399 |
《深入剖析Linux內(nèi)核反向映射機制》 |
759 |
《操作系統(tǒng)硬實時深度剖析》 |
399 |
《深入理解Linux遠程過程調(diào)用(RPC)》 |
759 |
《8小時學透ARM體系架構(gòu)》 |
759 |
《5小時深入理解Linux/ARM虛擬化》 |
759 |
《5小時學透ARM Linux》 |
759 |
《深入剖析Linux內(nèi)核頁表技術(shù)-基于ARM64架構(gòu)》 |
299 |
《Linux常見鎖和lockup檢查機制》 |
599 |
《Android進程生命周期全解析》 |
399 |
《Linux內(nèi)核tracers的實現(xiàn)原理與應(yīng)用》 |
659 |
《深入理解Linux內(nèi)核缺頁異常處理》 |
599 |
《云時代的Devops行動指南》 |
199 |
《AIKit人工智能項目實戰(zhàn)-Python篇》 |
199 |
《AIKit人工智能項目實戰(zhàn)-TensorFlow篇》 |
4000 |
Ftrace訓練營:站在設(shè)計者的角度來理解ftrace |
5700 |
閱碼場訓練營:ARM安全架構(gòu)之Trustzone-TEE實戰(zhàn) |
5300 |
閱碼場訓練營:ARM架構(gòu)與調(diào)試調(diào)優(yōu) |