岗位职责
参加公司组织的Linux系统调试调优驱动开发相关课程介绍与大纲的入职培训,系统学习宋宝华老师的相关Linux课程模块的沟通介绍内容,为后续招生工作提供专业支撑。通过电话、邮件、技术社区等渠道,主动联系技术岗位及专业人员,Linux内核开发工程师、性能调试调优的工程师、嵌入式系统工程师、BSP/驱动开发人员,以及希望深入理解Linux内核机制、承担驱动开发与系统移植任务的中高级技术人员。学员服务与跟进:建立学员档案,定期回访学习效果,收集课程反馈;根据学员技术背景推荐进阶课程,实现持续转化。搜索挖掘Linux相关的研发公司,积极沟通人力或技术部门,挖掘企业内训需求,促成内训实施,开展企业内训合作。
培训与发展
入职培训:公司将组织课程大纲速成班,由技术老师带领逐条通读七大课程的大纲,确保招生顾问熟悉每个模块的标题和核心术语,能够快速定位工程师需求对应的课程章节。以下为入职培训的关于宋宝华老师的课程大纲。
1、Linux系统调试与调优技术高级研修班。第1节 内核编程:热身:熟悉树莓派板卡(板卡介绍和使用;Bootloader、kernel、文件系统构成);1、内核编程主要API深入剖析(1.1 同步与并发(atomic, spinlock,mutex,completion深入理解);1.2 等待队列;1.3 内核延时;1.4 内存申请和释放;1.5 用作DMA的内存;1.6 内存屏障与寄存器访问);2、定时器(2.1 内核定时器tick;2.2 tickless;2.3 高精度定时器hrtimer);3、中断(3.1 中断顶底半部;3.2 软中断;3.3 tasklet;3.4 工作队列;3.5 threaded_irq;3.6 多核中断affinity及软中断负载均衡);4、Linux内核模块(4.1 内核模块init和exit;4.2 输入参数;4.3 输出符号;4.4 模块的license与GPL);5、Linux内核的调试(5.1 printk;5.2 Oops和panic;5.3 initcall_debug;5.4 电源管理suspend/resume debug;5.5 earlyprintk与low level debug;5.6 proc和sys;5.7 soft和hard lockup;5.8 内核的源码级调试;5.9 内核模块的源码级调试;5.10 ftrace)。第2节 设备驱动:1、Linux设备驱动模型(1.1 Linux设备分类;1.2 Sys,总线、设备、驱动和class;1.3 热插拔;1.4 电源管理;1.5 udev);2、设备驱动并发控制与I/O模型(2.1 Linux字符设备驱动结构;2.2 Linux设备驱动中的并发控制;2.3 Linux设备驱动中的阻塞与非阻塞I/O;2.4 Linux多路复用I/O;2.5 Signal IO与AIO;2.6 用户空间I/O与多线程设计原则);3、Linux复杂设备驱动(3.1 设备驱动分层框架;3.2 设备驱动的面向对象设计;3.3 platform驱动;3.4 基于I2C/SPI/USB等总线的驱动;3.5 块设备驱动与块I/O调度;3.6 网络设备驱动)。第3节 Linux移植和BSP构建:1、将Linux移植到一个新的SoC或电路板(1.1 OS timer;1.2 caches;1.3 early_printk;1.4 clk tree;1.5 GPIO;1.6 pinmux;1.7 RQ chip;1.8 DMA;1.9 社区维护);2、设备树(Device Tree)(2.1 用一个假设的简单电路板从头到尾构建一个dts文件;2.2 dts编译为dtb,与dtb反编译为dts;2.3 machine级的匹配;2.4 driver和device级的匹配;2.5 基地址、中断、gpio、时钟、reset、pinmux等常规属性;2.6 dts节点自定义属性;2.7 启动过程中dtb的读取与展开;2.8 i2c, spi子节点的展开;2.9 dts的分级与dtsi;2.10 dt binding文档);3、ACPI(3.1 非device tree情况的设备枚举)。
2、Linux设备驱动开发详解高级研修班。第1章 Linux工具链深入解析:1.1 GNU工具链和GDB调试;1.2 GCC编译的各个阶段分解;1.3 反汇编,objdump;1.4 readelf, nm, strip;1.5 GDB调试技巧: 断点、watch、内存与backtrace等;1.6 GDB与多线程;1.7 崩溃转储core dump;1.8 strace和ltrace。第2章 进程、内存和I/O负载调试剖析:2.1 多核负载均衡;2.2 top, htop, mpstat工具;2.3 系统、进程内存占用分析;2.4 内存泄露调试;2.5 内存踩踏调试:ASAN, KASAN, MTE;2.6 iowait调试;2.7 swap调试。第3章 内核调试:3.1 printk及其变体;3.2 内核崩溃OOPS分析;3.3 内核debug选项;3.4 proc和sys;3.5 内核启动过程调试;3.6 内核启动时间优化调试;3.7 待机和电源管理调试;3.8 gdb调试内核;3.9 内核lockup,锁,sched,mm问题调试。第4章 Linux多进程、多线程模型和调试:4.1 多进程通信;4.2 多线程通信;4.3 正确的互斥和同步方法;4.4 可重入与线程安全;4.5 多进程、多线程调试;4.6 IPC调试、死锁。第5章 Linux性能优化:5.1 perf;5.2 kernel-shark;5.3 top-down分析方法;5.4 Linux的常见benchmark;5.5 基于eBPF的性能剖析;5.6 各种火焰图。
3、Linux内核精解(调度、内存管理和I/O)高级研修班。第1节 Linux进程篇:1、进程是资源容器,线程才是调度单元;2、进程和线程都是kernel_clone生出来的;3、写时拷贝是一个子女成家立业的故事;4、针对files、fs和signal的广义“写时拷贝”;5、只运行在内核态的线程——内核线程;6、进程和线程的工作、睡眠和死亡;7、进程变形记——exec函数族;8、调度类和runqueue;9、实时RT调度类;10、截止期限DL调度类;11、公平调度类:CFS;12、公平调度类的延伸:EEVDF;13、可编程EXT调度类;14、多核负载均衡;15、从多核亲缘wake_affine;16、CLUSTER和NUMA调度;17、CPU超线程SMT调度;18、组调度;19、调度与抢占时机;20、实时Linux内核;21、进程调度的一些profiling工具。第2节 Linux内存篇:1、MMU硬件原理与分页机制;2、RWX权限、kernel/user权限;3、zone;4、buddy内存分配算法;5、page和folio;6、连续内存分配器CMA;7、slab/kmalloc/vmalloc;8、用户空间malloc/free与内核关系;9、内存泄漏的原理与分析工具;10、内存耗尽、OOM;11、VMA, vss/rss/pss/uss;12、文件folio与page cache;13、匿名folio与swap;14、内存回收, active/inactive LRU和MGLRU;15、kswapd和direct reclaim;16、large folios与THP/mTHP;17、HugeTLB;18、dma-buf和system heap;19、NUMA下内存管理;20、内存与cgroup;21、memory剖析工具。第3节 Linux I/O和文件系统篇:1、I/O模型:阻塞、非阻塞、多路复用、signal I/O、aio;2、C10问题;3、文件系统的实现原理:superblock, inode, block;4、符号链接 vs 硬链接;5、文件系统一致性;6、文件系统日志;7、page cache支持large folios;8、iomap;9、文件读写全流程:file, iomap, address_pace等;10、I/O与cgroup;11、I/O调度;12、I/O剖析工具。
另外还有嵌入式C语言高质量编程实战技术高级研修班、深入理解CPU微架构(Risc-V\ARM\X86)与底层硬件原理的软件编程实战训练营、ARM处理器架构、内存屏障和编程指令集全面解析实战训练营、AI端侧在Linux/Android的实现和实战训练营、以及相关内训定制课程大纲的相关介绍了解,以便给学员工程师们有更加直观的介绍,达到培训需求对应和匹配,促成参训。

宋宝华老师:中际赛威独家签约讲师,知名嵌入式系统专家,《Linux设备驱动开发详解》作者,曾为思科、阿尔卡特、朗讯、四方、意法半导体、富士施乐、代傲电子、飞利浦、南瑞、宝信、美国国家仪器、ABB、中国建设银行等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于 Linux社区,Linux内核SCHED_CLUSTER、per-numa CMA、ARM64 BATCHED_UNMAP_TLB_FLUSH、多个mTHP关键feature的作者,累计给Linux主线贡献400+个补丁。已给Linux官方内核贡献了逾3万行代码,是给Linux官方内核贡献代码最多的华人之一。
晋升路径:课程顾问 → 课程主管 → 培训经理 → 课程总监
薪酬福利:底薪 + 绩效奖金 + 课程提成,五险一金、带薪年假
联系方式:工程师高培13269857695中际赛威刘老师13269857695@163.com