“现在,没人能离开 Linux 过一天!”

7bd7f87ef3636fa5fb6de5de3259c66f.gif

每个程序员可能都会有一个操作系统梦,Linux 对他们来说更是具有特殊的意义。

383c4307dc677e17c02a0a0026a1193e.png

“没人能离开 Linux 环境度过一天”

2024 年是 Linus Torvalds 发布 Linux 首个版本的 33 周年,在 Linux 基金会最新出炉的《Annual Report 2023 Rising Tides of Open Source》Linux 基金会主席以及报告多次强调:“Linux is omnipresent.”翻译过来就是“Linux 无处不在”。

61b1a0f4d3dc49c81d26a1ee10868dbd.png

截图自《2021 LF Annual Report》

Linux 基金会发布的 2021 年度报告第 2 页上显示:“现在这个世界上,人们从睁眼开始,没人能在缺少 Linux 支持的环境下度过一天。”

Linux 操作系统对这个世界的影响是无法言喻的,世界 500 强超级计算机 100% 运行在 Linux 之上,85% 的智能手机使用基于 Linux 构建的操作系统,90% 的云基础架构基于 Linux 运行……

Linux,这个开源操作系统,已经成为了全球软件和硬件领域的中流砥柱。它的地位无可撼动,不仅在服务器领域占据着绝对的优势,甚至连 2023 年 ChatGPT 等专有 AIGC 产品的火爆也都是建立在数十年的开源创新与云计算、算法、数据库等许多开源技术核心元素的稳步改进之上。

bb5ba378e7316905b14dfb913615ad23.png

程序员技能提升更受企业青睐

对于程序员来说,学习 Linux 系统机制不仅是提升技能的必经之路,更是职场获得更多机会与晋升加薪的重要技能。通过深入了解 Linux,程序员能够掌握操作系统的核心原理,为自己的编程之路打下坚实的基础。

那么程序员该如何学习呢?高端 IT 教育平台 Boolan 打造的《Linux 系统机制以战说法》将于 2 月 25 日正式开班,全程直播,真实案例演示。

850895cdefc7fdc2923e6c8f61cf6d98.png

课程介绍

关于 Linux 系统原理的书有很多,但是大多比较晦涩,不容易理解,对初学者来说难以坚持。本系列课程独辟蹊径,选取具有代表性的“实战”任务,带着问题切入到一个具体的环境里,在实战中讲解工具,钻研代码,理解原理。这样不仅避免空泛找不到抓手,而且生动有趣,记忆深刻,既可以学习工具,积累实践经验,又可以在无形中领悟系统原理和解决问题的方法,一举多得。

de342ade771c644224767e547c302311.png

扫码进入课程主页查看

课程大纲

第1讲

耗电大户在忙啥?

知识点

系统调用,进程空间,特权级别

场景

微信,Firefox

统原理

两大空间

工具

Strace

描述

软件越大变得越难以控制,难以观察,本讲以微信和浏览器这样的高耗电应用为实例,介绍如何不通过源代码来了解软件的基本行为,深入讲解进程空间和系统调用等原理,分享 Linux 系统下的常用工具 strace 的各种用法。

第2讲

价值10亿美元的失误

知识点

信号 11,段错误,异常,信号分发,异常处理

场景

微信

系统原理

空指针

工具

gdb

描述

空指针是常见的软件错误,本讲从空指针问题入手,介绍 CPU 的异常机制,Linux 系统中的信号处理过程,以及使用 gdb 分析段错误问题的方法和命令。

第3讲

大错误和小错误

知识点

页错误

场景

微信

系统原理

虚拟内存

工具

top,perf

描述

页错误对系统有很多不好的影响,因为此 Linux 内核将页错误分为两大类:大错误和小错误,本讲从这两种错误出发,升入介绍 CPU 的页机制, Linux 内核处理页错误的流程,以及使用 top 和 perf 工具统计页错误的方法。

第4讲

谁动了我的文件?

知识点

文件句柄

场景

filemiss

系统原理

文件系统

工具

lsof

描述

VFS 文件系统是 Linux 内核非常优秀的一部分,本讲从文件句柄的一个案例讲起,介绍 Linux 的文件系统,以及有关的工具。

第5讲

贪婪的优化

知识点

磁盘 I/O

场景

Chrome

系统原理

内存使用

工具

iotop

描述

在今天这样的大数据时代,大文件很多,磁盘 I/O 常常成为系统性能的瓶颈,本讲介绍 Linux 内核的磁盘管理以及有关的工具。

第6讲

细分大脚印

知识点

高内存占用

场景

微信

系统原理

内存使用

工具

maps

描述

内存始终是计算机系统中的珍贵资源,合理使用内存是软件设计的一个永恒问题,本讲以微信为例,分享分析软件内存开销的方法和工具。

第7讲

超强辗压机

知识点

内存泄露,堆

场景

gemalloc

系统原理

内存纠错

工具

valgrind

描述

内存使用不当是软件的常见问题,本讲介绍堆的结构和原理,以内存泄露问题为例,介绍 valgrind 工具的用法和工作原理。

第8讲

全城封堵野指针

知识点

踩内存

场景

geasan

系统原理

影子内存

工具

asan

描述

Asan 是解决复杂内存问题的著名方法,本讲以著名的野指针问题为例,介绍 asan 的用法、工作原理,以及使用 asan 需要注意的一些问题。

第9讲

紧急停车

知识点

信号6

场景

?

geheap

系统原理

glibc,错误检查

工具

gdb

描述

Glibc 是 GNU/Linux 系统中的关键模块,它历史悠久,但仍在不断改进。本讲以信号 6 崩溃为例,介绍 glibc 的错误检查机制,以及收集和分析 core dump 的方法。

第10讲

黑客入侵和金丝雀

知识点

金丝雀

场景

bof

系统原理

stack

工具

gdb

描述

栈是软件世界的关键设施,关乎性能,也关乎安全,本讲以栈上的缓冲区溢出问题入手,介绍栈的布局、用法,栈溢出攻击的原理和防范机制。

第11讲

是谁杀了gcc

知识点

oops和panic

场景

内核代码

系统原理

高特权代码异常

工具

dmesg

描述

有了虚拟内存后,内存会用完么?本讲以一个真实的案例讨论 Linux系统的内存管理策略,以及应对内存不足的方法,顺带介绍 Linux 内核的 oops 和 panic 机制,以及观察和阅读内核消息的方法。

aeb829a2bc78d4d26e34340c630d706b.png

讲师介绍

         张银奎

著名系统内核专家、《软件调试》作者

1996 年毕业于上海交通大学信息与控制工程系,在软件产业工作 20 余年,一多半时间任职于 INTEL 公司的上海研发中心,先后在 PASD、DEG、CPG、PCCG、VPG 等部门工作。业余时间喜欢写作和参与各类技术会议,发文数百万字,探讨各类软件问题,其中《在调试器里看阿里的软件兵团》等文章广为流传。2015 年起获微软全球最有价值技术专家(MVP)奖励。著有《软件调试》和《格蠹汇编》二书,曾经主笔《程序员》杂志调试之剑专栏 。在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。

开班日期

2024 年 2 月 25 日 - 2024 年 5 月 12 日,每周日 20:00-21:30(共 11 次课)