运行在 Linux 之上,85% 的智能手机使用基于 Linux 构建的操作系统,90% 的云基础架构基于 Linux 运行……
Linux,这个开源操作系统,已经成为了全球软件和硬件领域的中流砥柱。它的地位无可撼动,不仅在服务器领域占据着绝对的优势,甚至连 2023 年ChatGPT 等专有 AIGC 产品的火爆也都是建立在数十年的开源创新与云计算、算法、数据库等许多开源技术核心元素的稳步改进之上。
对于程序员来说,学习 Linux 系统机制不仅是提升技能的必经之路,更是职场获得更多机会与晋升加薪的重要技能。通过深入了解 Linux,程序员能够掌握操作系统的核心原理,为自己的编程之路打下坚实的基础。
那么程序员该如何学习呢?高端 IT 教育平台 Boolan 打造的《Linux 系统机制以战说法》将于 2 月 25 日正式开班,全程直播,真实案例演示。
关于Linux系统原理的书有很多,但是大多比较晦涩,不容易理解,对初学者来说难以坚持。本系列课程独辟蹊径,选取具有代表性的“实战”任务,带着问题切入到一个具体的环境里,在实战中讲解工具,钻研代码,理解原理。这样不仅避免空泛找不到抓手,而且生动有趣,记忆深刻,既可以学习工具,积累实践经验,又可以在无形中领悟系统原理和解决问题的方法,一举多得。
软件越大变得越难以控制,难以观察,本讲以微信和浏览器这样的高耗电应用为实例,介绍如何不通过源代码来了解软件的基本行为,深入讲解进程空间和系统调用等原理,分享 Linux 系统下的常用工具 strace 的各种用法。
空指针是常见的软件错误,本讲从空指针问题入手,介绍 CPU 的异常机制,Linux 系统中的信号处理过程,以及使用 gdb 分析段错误问题的方法和命令。
页错误对系统有很多不好的影响,因为此 Linux 内核将页错误分为两大类:大错误和小错误,本讲从这两种错误出发,升入介绍 CPU 的页机制, Linux 内核处理页错误的流程,以及使用 top 和 perf 工具统计页错误的方法。
VFS 文件系统是 Linux 内核非常优秀的一部分,本讲从文件句柄的一个案例讲起,介绍 Linux 的文件系统,以及有关的工具。
在今天这样的大数据时代,大文件很多,磁盘 I/O 常常成为系统性能的瓶颈,本讲介绍 Linux 内核的磁盘管理以及有关的工具。
内存始终是计算机系统中的珍贵资源,合理使用内存是软件设计的一个永恒问题,本讲以微信为例,分享分析软件内存开销的方法和工具。
内存使用不当是软件的常见问题,本讲介绍堆的结构和原理,以内存泄露问题为例,介绍 valgrind 工具的用法和工作原理。
Asan 是解决复杂内存问题的著名方法,本讲以著名的野指针问题为例,介绍 asan 的用法、工作原理,以及使用 asan 需要注意的一些问题。
Glibc 是 GNU/Linux 系统中的关键模块,它历史悠久,但仍在不断改进。本讲以信号 6 崩溃为例,介绍 glibc 的错误检查机制,以及收集和分析 core dump 的方法。
栈是软件世界的关键设施,关乎性能,也关乎安全,本讲以栈上的缓冲区溢出问题入手,介绍栈的布局、用法,栈溢出攻击的原理和防范机制。
有了虚拟内存后,内存会用完么?本讲以一个真实的案例讨论 Linux系统的内存管理策略,以及应对内存不足的方法,顺带介绍 Linux 内核的 oops 和 panic 机制,以及观察和阅读内核消息的方法。
1996 年毕业于上海交通大学信息与控制工程系,在软件产业工作 20 余年,一多半时间任职于 INTEL 公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG 等部门工作。业余时间喜欢写作和参与各类技术会议,发文数百万字,探讨各类软件问题,其中《在调试器里看阿里的软件兵团》等文章广为流传。2015 年起获微软全球最有价值技术专家(MVP)奖励。著有《软件调试》和《格蠹汇编》二书,曾经主笔《程序员》杂志调试之剑专栏 。在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。