一、课程介绍:
本课程面向从事Linux 内核开发、应用开发和性能调优的工程师,旨在帮助工程师深入了解 Linux 的底层工作原理。课程内容涵盖以下方面:系统中的 CPU、内存和 I/O 资源如何被进程和线程使用,多核环境下的进程调度算法,应用程序内存占用的底层机制,以及 I/O(文件系统、swap 交换)与内存管理系统的协作方式。通过本课程,学员不仅能够为 Linux开发奠定扎实基础,还能深入掌握 Linux 性能瓶颈和优化的底层逻辑。
本课程语言通俗,讲师授课风格生动趣味性强,全程“说人话”不死板,力求以生活化地表达,带领学员理解复杂的Linux内核原理,走进精彩的Linux世界。
二、主办单位:
北京中际孚歌科技有限公司
北京中际赛威文化发展有限公司
三、研修时间:2025年7月11 – 12日 (两天授课)
四、研修地点:北京
五、主讲专家:
宋老师,知名嵌入式系统专家,曾为思科、阿尔卡特、朗讯、华为、意法半导体、富士施乐、代傲电子、飞利浦、南瑞、宝信、美国国家仪器、ABB等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于 Linux社区,累计给Linux主线贡献400+个补丁,是给Linux官方内核贡献代码最多的华人之一。
六、培训对象:
Linux开发者;使用Linux,在Linux上从事开发工作的工程师。
七、课程形式:
1、为保证内容的时效性,本课程的讲解和实验基于最新的Linux 6.13内核。
2、课程讲授和学员动手实验并重,课程会设置约30个上机实验。
3、通过讲解和讨论来学习概念、方法和原理。为加深和促进了解,学员要单独或分组完成课堂练习。
八、课程大纲
第一章 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工具
第二章 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剖析工具
第三章 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剖析工具
九、咨询及相关事宜:
未尽事宜及其他,可以通过下方联系方式进行沟通