我是从ARM7TDMI开始接触ARM架构的,当时很幸运有DSP的学习基础,同时遇到了把ARM架构和操作系统结合讲解的书籍。这样,结合自己不断的实践,一直可以跟上ARM架构的演进。长期的跟踪也让我容易能看到ARM的趋势,我从Linaro在做ARM NEON指令集优化关注到Linaro,后面持续的关注以Linaro为首ARM生态组织的发展,几年后的2017年,我作为演讲人分享了ARM架构下的一个TLB性能优化方案,实现了从关注到深度参与到过程。
如果把工程师的成长比喻为一架持续飞行的飞机。学习框架是飞机的两翼,实践就是飞机的引擎,课程中会反复结合三位一体的学习方法,不断从带领大家实践到大家自己动手。一路走来,希望我的经验能帮助到大家少走不必要的弯路,更多的精力能用在自己的长期目标上。
(相关资料图)
张健老师在实际工作和培训中,遇到很多实际案例。从Linux内核到用户空间,有很多和ARM架构相关的问题。系统掌握了ARM架构就等于有了一双新的眼睛,帮助大家解决技术问题,改善系统性能。
第一部分 从坐而言到起而行 | •复习Linux用户空间编译过程(配置,编译,安装:configure,make,make install),编译Linux内核常见的测试套件:LTP。 •编译内核和文件系统。 •观察内核启动过程(CPU特性,memory,dma zone,GIC,timer,psci),介绍ARM架构中的概念。 •实验:动手编译内核和文件系统。 |
第二部分 软件和硬件的接口:汇编语言 | •从Linux用户空间测试代码(来自LTP)看ARM架构常见指令。 •实验:单步调试算术,跳转和load/store指令。 •理解调用栈的概念。 |
第三部分:我是谁,我能做什么:异常处理 | •异常的核心是什么。 •如何用汇编语言调用系统调用。 •异常的进入和退出; •从Linux内核到虚拟化 •从Linux内核安全OS |
第四部分:用页表属性的砖搭建ARM的内存世界 | •内存基本概念 •MMU的原理 •cache基本概念 •页表和页表属性 •演示实验:continuous bit hint的应用 •cache的结构(含演示实验) •cache coherence。 •原子操作 |
第五部分:Death is another beginning:Linux内核crash调试 | •内核调试方法概述 •Linux内核crash分析实例 |
第六部分:软件工程师的瑞士军刀:调测。 | •coresight原理; •perf与coresight,PMU结合使用; •调优的USE模型; •演示实验:perf PMU分析系统性能。 |
总计12h
ARM架构已经有41年的历史,目前市场上以v8架构为主,也还有一定的v7架构芯片。v9架构基本还没有产品出现。本课程以v8为主,同时兼顾v8中与v7,v9相同的部分。
站在架构角度看,汇编语言,异常处理和内存管理处于核心位置。内核crash调试和调测技术体现的是对ARM和系统的综合理解。课程首先结合实例和练习介绍汇编语言,异常处理和内存管理。最后用内核crash调试和调测技术把前面知识串联起来,帮助大家综合应用。
不同于很多上来讲汇编语言的ARM课程,课程首先介绍讲解“理论,代码,实践”三位一体的学习方法,然后在每章的课程中,用开头的引导问题引发打大家的思考,最后用课后练习保证大家的学习效果。课程中的明线是ARM架构,暗线是系统调试和调优,会在合适的地方出现调试/调优的工具,并在课程的最后两课对调试和调优有全面的学习。
十四年IT基础设施研发经验,其中包括六年Linux kernel一线研发经验,在suse,华为,星际比特(技术合伙人)等公司工作。
作为团队核心成员参与了大陆第一个Cortex-A8 SOC芯片研发,负责CPU软件验证,操作系统移植等工作。
作为华为派驻到Linaro的技术专家,主导/参与多个Linux与arm架构相关特性研发(ILP32,continuous bit hint,kernel selftest等)
在拉斯维加斯,柏林,布达佩斯和北京多次发表技术演讲:
Ftrace训练营1期线上合影
Ftrace训练营1期证书
阅码场训练营文化衫
学员好评