Linux 内核学习进阶:一本助你构建“内功”的实践指南

掌握Linux内核是程序员进阶关键,推荐《Linux是怎样工作的》助你从实践中理解底层。

原文标题:程序员口碑爆棚的入门神书,太多人都在推荐了!

原文作者:图灵编辑部

冷月清谈:

本文强调了掌握 Linux 内核知识对程序员的进阶至关重要,它不仅能提升故障排查效率,更在多线程、高并发等领域助你快人一步。重点推荐《Linux是怎样工作的(增订版)》。该书以“图、文、码”相结合的方式,通俗易懂地讲解进程、内存、虚拟化、容器(如cgroup)等核心机制,并新增实践案例。其内容适合从计算机入门新手到追求内核深度理解的技术人员,旨在通过动手实践,帮助读者系统化掌握 Linux 底层原理。书中详尽的图解与代码批注,极大地降低了学习门槛,助力读者实现知识的学以致用,成为真正的技术大牛。

怜星夜思:

1、文章里提到Linus坚持开源,而微软Windows是闭源的。大家怎么看开源和闭源这两种商业模式或者说技术路线?从长期发展来看,哪一种对技术生态更有利呢?
2、文章推荐的学习方法是“图、文、码”结合,并且强调“只有动手才能真正掌握”。你们在学习新技术的时候,更偏爱哪种方式?是先看书啃理论,还是直接上手敲代码,或者有其他独门秘籍?
3、文中说精通Linux的程序员在学多线程、高并发时能快人一步,大家觉得这个说法靠谱吗?除了多线程高并发,掌握Linux底层知识还能给程序员带来哪些意想不到的“加成”呢?

原文内容

我们的日常早已离不开刷短视频、点外卖、用地图导航等各种 App。而这些应用大多运行在 Android 系统上,而 Android 的核心正是 Linux 内核。直到有一天手机卡死、无响应时,我们才会意识到:原来 Linux 才是支撑这一切的幕后功臣。

最近读到一本《Linux是怎样工作的(增订版)》,书中深入讲解了进程管理、进程调度、内存管理等核心机制。掌握这些内核知识后,就能更高效地定位和解决各种复杂问题。

在操作系统中,从最早的 Unix 到 Minux 再到如今的 Linux。Linux 之父林纳斯·托瓦兹从不靠 Linux 来赚钱,而是坚持开源、自由,因此他在技术圈获得了神一样的地位。

那些靠 Linux 内核上市的公司比如 Red Hat 赚得盆满钵满。再看看微软,Windows 一直是它赚钱的法宝,和 Linux 不同的是它闭源,也就是代码不公开。而林纳斯是纯粹的技术理想主义者,单从他坚持开源的角度 Linux 真值得大家学习一下。

大家都知道,水平差不多的程序员,如果有人精通 Linux,那他在学多线程、高并发时往往能快人一步,差距立刻就显现出来。所以,想要成长为真正的技术大牛,先搞懂 Linux 是怎么工作的就对了。

Linux 内核全景图

增订版还增加了当前火得不行的 Linux 技术:虚拟化、容器等内容,介绍了Docker、Kubernetes 容器背后的 cgroup 技术。cgroup 作为 Linux 内核提供的一种资源限制、隔离和统计机制,它与命名空间都是容器技术能够高效运行的重要基础。

这是我照着书上的图用DrawIO网页版画的,具体文章请看:https://juejin.cn/post/7537327299316662272

作者在 GitHub 上整理了需要安装和配置的软件包,在图灵社区上还能看到用 Go 和 Python 写的示例源码,带你一步步实践 Linux 的复杂机制。果然,只有动手才能真正掌握!

就像是煮米饭,要想知道放多少水煮的米饭软硬正好。怎样才会发现?你不用去米厂看加工过程,只要不断调整水量,观察与米饭口感的关系即可。

Linux 也一样,不用直接看内核代码,认真阅读一本书了解 Linux 内核的原理和流程,就可以知道系统调用背后到底做了什么。

安装软件包和进行用户设置

对于读者来说,这本书最好的地方是将 Linux 的内核用“图、文、码”并茂的方式进行讲解。

通过图解来一图胜千言,搭配文字来理解底层逻辑,对实践的代码进行逐行批注与解析。

与图灵其他“XX 是怎样 YY 的”系列书一脉相承,这本书特别适合操作系统入门的读者--就算你是计算机专业的大一学生,这门基础课程也只讲理论化的知识,那些原理很多老师也只是照本宣科地教授。

如果想无痛快速建立对 Linux 的认知,读这本书《Linux是怎样工作的(增订版)》就可以了!增订版全彩印刷,阅读体验还是很棒的。同时在 Linux 进行实践操作,让知识学以致用才能记得牢记得住。

《Linux是怎样工作的(增订版)》

[日]武内觉 | 著

曹栩 | 译

本书通过丰富的插图、表格和代码示例,结合动手实验及结果分析,通俗易懂地讲解了 Linux 操作系统的基础知识和运行原理,包括进程管理、进程调度、内存管理、设备访问、文件系统、虚拟化和容器等机制,以及这些机制如何与硬件协同工作。

增订版升级为彩色排版和印刷,200 余幅插图更加清晰易懂。新增 4 章内容,涵盖设备访问、虚拟化、容器及 cgroup,开辟 20 多个“技术专栏”,进一步深入探讨 Linux 相关知识,书中源代码使用 Go 和 Python 重新实现,并加入大量注释,方便读者学习和理解。

怎样系列其他好书

《程序是怎样跑起来的(第3版)》

矢泽久雄 | 著,周自恒 | 译

原版重印 50 次,畅销经典,本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容。

《计算机是怎样跑起来的(第2版)》
矢泽久雄 | 著,胡屹 | 译
“计算机组成原理”图解趣味版,本书以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及 SE 的相关知识。
第 2 版的部分程序改用 Python 来呈现,数据库改用 MySQL,并对加密部分做了升级。

《网络是怎样连接的》

户根勤 | 著,周自恒 | 译

蹲马桶就能看懂的网络基础知识,本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页的内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。
《面向对象是怎样工作的(第3版)》

[日]平泽章 | 著,侯振龙 | 译

本书以图配文,语言通俗,即使是文科生也能看得懂。直观易懂地介绍了面向对象的全貌及其包含的各项技术,包括面向对象编程、框架、设计模式、UML、建模、面向对象设计和敏捷开发方法等。
特设“编程往事”“对象的另一面”专栏,生动有趣,新增“当今的 OOP”专栏,介绍 Java、Python 等当今流行的编程语言的新动向。
《TCP是怎样工作的》

安永辽真 | 著,尹修远 | 译

“TCP 技术入门”通俗图解版,通俗易懂地讲解了长期不会过时的 TCP 技术,直击 TCP 技术核心算法。
146 张示意图帮助理解,详略得当,为读懂大部头开路。深入 TCP 核心技术,重点讲解拥塞控制算法(CUBIC、BBR等)。使用 Wireshark 和 ns-3 等搭建模拟环境,切实体验算法流程。