Skip to main content

第0章 咱们先来谈谈为什么要学习Linux系统

章节简述

Hello, World! 在本书开篇,刘遄老师将讲述自己十多年来的 Linux 系统学习感悟以及教学心得。《Linux 就该这么学(第 3 版)》不仅继承了前作的精华,还增添了新的内容和视角,旨在让读者以更轻松的方式掌握 Linux 系统。

Linux 系统之所以能够蓬勃发展,源于其坚实的开源社区基础。我们将与读者共同探讨学习开源软件的诸多优势,详细介绍包括 GPL、LGPL、BSD、Apache、MIT、Mozilla 等在内的主流开源许可证,以便未来你能够做出更适合自己的选择。

开源软件具有四大优势—低风险、低成本、高品质和高透明度。开源精神也是每位 Linux 技术人从骨子里感到自豪的情怀。刘遄老师会用通俗易懂的方式,结合幽默风趣的“八卦”, 讲述 UNIX 和Linux 系统自 1969 年以来的发展历程。我们不仅能了解半个多世纪以来开源技术的发展脉络,还能深入认识当今最热门的 10 款开源操作系统—RHEL、CentOS Stream、 Fedora、Debian、Ubuntu……随着内容的深入,我们还将全面了解开源软件的营利模式,并洞察开源行业的未来发展趋势。

0.1 本书作者简介

本书作者刘遄(Liu Chuán)从事于 Linux 运维技术行业,高中时期便因兴趣的驱使而较早地接触到了 Linux 系统并开始学习运维技术。在 2012 年获得 RHCE 6 认证,2015 年初又分别斩获 RHCE 7 认证和 RHCA 认证。2017 年撰写出版的《Linux 就该这么学》累计销量突破10 万册,同年被人民邮电出版社评选为“年度优秀作者”。2020 年,获得 RHCE 8 认证。2021 年,《Linux 就该这么学(第 2 版)》上市。2023 年,《Linux 常用命令自学手册》问世并被人民邮电出版社评选为“年度畅销新书”,作者本人也获评“年度影响力作者”奖项。2024 年和 2025 年,相继获得 RHCE 9 认证与 RHCE 10 认证,这也为写作新版的《Linux 就该这么学》夯实了技术功底。

尽管如此,作者依然深知水平有限且技术一般,若不是得益于诸多良师益友的无私帮助,肯定不能如此顺利地取得上述成绩,更无法如期完成本书的写作工作。并且,作为一名普通的技术人,我曾经也亲身经历过半夜还在培训班学习的艰辛,体验过拥堵 6 个多小时车程的无奈,也翻看过市面上十几本如同嚼蜡般的 Linux 技术图书……这种种经历使我更加坚定了写作本书的信念。此刻,我正是怀揣着一颗忐忑的心,尽自己最大的努力把有用的知识继续分享给读者,希望这本新书依然能够帮助大家少走一些弯路,更轻松地入门Linux 系统。

窃以为,一名技术高超的导师不应该仅仅是技术的搬运工,而应该是优质知识的提炼者。所以在写作过程中,我不希望也不会将自己了解掌握的所有信息都填充到这本书里,借此来炫技,而是从真正贴近于新人学习特点的角度出发,主动摒弃不实用的部分,并把重点、难点反复实践。这样的好处很明显—可以使读者在加深理论知识理解的同时,轻松掌握生产环境中用到的实战技术。

你手里所持的这本书,基于最新的红帽企业版系统 RHEL 10 编写而成,其内容通用于绝大多数的 Linux 系统,具有广泛的适用性。本书配套软件及资料完全免费,可通过 www.linuxprobe.com 获取。本书将会从零基础带领你入门 Linux 系统,然后渐进式地提高内容难度,以匹配生产环境对运维人员的要求。而且,本书每章都配套有大量的图、表、命令示例以及课后复习题,大家可以在阅读本书的过程中同步操作完所有的实验内容,以达到增强学习兴趣与加深记忆的效果。

最后想说的是,我的写作初心其实并不高雅,只是在还债,偿还这十几年来中国有如此多的培训机构赚了那么多钱,但却没有一家培训机构真正给学员拿出一本好教材的债,而这应该是我们的学员早就可以享受的服务,不能再选择性失明了。而到了 2025 年,我的写作初衷也融入了一点小私心—除了运营好本书的在线学习网站,服务更多的学员和读者之外, 还要把免费开源图书做到远超其他培训机构收费教材的水平,并坚持做中国开源站点的道德典范,不欺骗,不作恶,保持最纯净的技术交流环境,还请各位读者监督。而我们想要得到的也很简单—如果你认可刘遄老师的付出并满意配套服务,还请把本书告诉身边的朋友, 让更多的人知道我们在做的这件很酷的事。

0.2 学习是件苦差事

我常常怀疑,人类的 DNA 里会不会藏着一个类似 Linux 环境变量的东西?先姑且称之为STUDY_LEVEL 吧!这个变量决定着人们的行为,当值为 1 时,我们痴迷于学习无法自拔; 值为 0 时,则全心享受生活。估计对于大多数人来说,这个值都应该是在 0.5 左右摇摆吧。每天面对学习和娱乐的抉择,我们都像在执行 while(true)循环语句。真希望有哪一位生物学家能早点找到这个变量,在周一到周五时将这个值调高点儿,周末再调回正常。想想都觉得很有科技感,期待着这一天赶紧到来。

那在此之前,我们该怎么办呢?

答案只有一个:靠自律。

在正式开始学习前,我不想回避这个现实问题—学习从来都不是一件轻松的事。如果说学习 Linux 系统真的很简单,那必定是骗子的谎言,起码这不能给读者带来高薪。在每天起床后的几分钟时间里,大脑都会陷入斗争状态—是该聊会儿天呢,还是刷一下抖音呢, 还是翻开那本可怕的《Linux 就该这么学》呢?这个时候,请不要忘记自己最初的梦想。十年后的你,一定会感激现在拼命努力学习的自己。身为作者,我的使命就是让这本书对得起你为此花费的时间、精力和金钱,让你每学完一个章节都是一次进步。

图书的写作是一件劳神费力的事情,从我起笔,到你手里,往往要两三年的时间,甚至更久。稻盛和夫先生在《活法》中的一段话一直激励着我,也是我最初的精神支柱,现在转赠给正在阅读本书的你:

“工作马马虎虎,只想在兴趣和游戏中寻觅快活,充其量只能获得一时的快感, 绝不能尝到从心底涌出的惊喜和快乐,但来自工作的喜悦并不像糖果那样—放进嘴里就甜味十足,而是需要从劳苦与艰辛中渗出,因此,当我们聚精会神、孜孜不倦、克服艰辛后达到目标时的成就感,世上没有哪种喜悦可以类比。更何况人类生活中工作占据了较大的比重,如果不能从劳动中、工作中获得充实感,那么即使从别的地方找到快乐,最终仍然会感到空虚和遗憾。”

这段话让作者明白了真正的快乐不是来自短暂的娱乐,而是源自努力后的成就感。学习技能也是如此,你的每一分努力,最终都会变成未来的回报。

建议大家拿出一支笔,在下面空白处记录下此刻的学习初心和动力—不论是兴趣也好, 工作需要也好,想赚高薪也好,都请记录下来。因为完全阅读完本书并做完里面的实验至少需要 2~3 个月时间,感到疲惫时就看一下给自己的留言,这会给我们提供源源不断的动力, 所以,请跨越时空跟自己说句话吧:

给自己的留言:



          年          月         日

0.3 开源共享精神

OSI

通常,软件的源代码是私有的,但开源软件(Open Source Software)采用了一种更为自由的发布方式。通俗来说,开源软件的特点就是把软件程序和源代码文件一起打包提供给用户,使用户在不受限制地使用软件功能的基础上,还可以对代码按需修改,以更好地适应其硬件环境和满足工作需求。此外,用户充分享有使用自由、复制自由、修改自由、创建衍生品自由,甚至在部分许可证下有商业化收费自由。

是的,你没有看错,用户具备创建衍生产品并商业化收费的自由。也就是说,我们可以对一个开源软件进行深度定制化加工,赋予其更高的价值,只要修改过的软件更加好用,或者颇具新的特色,并遵守原作者的许可协议,就完全可以合法地将软件进行商标注册,以商业版的形式发布出去,只要有新用户愿意为你的软件付费,那就是你的收入。这种自由的精神正是黑客和极客所追求的,在这种合作与竞争中,国内外的开源社区慢慢生长出了强健的根基,积聚了大量的人气。

然而,如果开源软件的发展只单纯追求“自由”而牺牲了开发人员的利益,这无疑会抑制创作的积极性。为了平衡两者的关系,目前全球已有一百多种被开源促进组织(Open Source Initiative,OSI)认可的开源许可证,用于保护开源工作者的权益。那些只知道一味抄袭、篡改、破解或者盗版他人作品的不法之徒,终归会在某一天收到法院的传票。

考虑到大家没准儿以后会以开源工作者的身份开发出一款畅销软件,本书根据开源促进组织的推荐以及实际使用情况,为大家筛选出了开发人员最喜欢的排名前六的开源许可证, 并指导大家如何从中选择。提前了解并选择一个未来能最大限度保护你的软件权益的开源许可证,对于创业公司来说尤其重要。

Tips :
上面提到的“开源许可证”与“开源许可协议”的含义完全相同,只不过是两种不同的叫法,这里不做区别。

Tips :
FSF自由软件基金会(Free Software Foundation,FSF)是一个捍卫开源软件作者权利的非营利组织。FSF 的宗旨是推广计算机用户的自由,并确保他们能够不受限制地使用技术。Linux 系统作为开源项目的典范,其底层便是根据这样的自由和开放的精神设计和发展的。

在开源社区中,我们会经常看到 Copyleft 这一术语,这是由自由软件运动发展出的一个重要概念,通常被翻译为“著佐权”或“公共版权”。与传统的版权(Copyright)形成鲜明对比的是,Copyleft 旨在通过确保软件的自由性,赋予用户复制、修改和重新发布软件的权利, 并要求衍生作品也遵循相同的自由许可。

此外,大家应该经常会听到别人说开源软件是 free 的,没错,开源软件就是自由的。这里的 free 绝不应翻译为“免费”,实际上它指的是“自由”—一种无限制地使用、学习、分享和改进软件的自由。正如自由软件基金会创始人 Richard Stallman 所说的“Free as in Freedom, not Free as in Beer”,这与在酒吧看到“第一杯免费”的意思可相差甚远。

接下来,我们来看下开发人员最偏爱的 6 种开源许可证,及它们赋予用户的各种权利。

GPL

GNU 通用公共许可证(General Public LicenseGPL):目前广泛使用的开源软件许可协议之一,用户享有运行、学习、共享和修改软件的自由。GPL 最初是由自由软件基金会创始人 Richard Stallman 起草的,目前已发展至第三版。GPL 的核心目标是确保开源社区的成果能够惠及全世界,保护开发的软件免于被私有化,并防止被不道德的软件公司剥削。

根据 GPL 的条款,任何包含遵循 GPL 许可证的产品或代码的软件,必须继续开放源代码并允许免费使用。因此,这个许可证通常不适用于商业销售的软件产品。遵循该许可证的开源软件数量极其庞大,包括 Linux 内核在内的大多数开源软件都是基于GPL 许可证发布的。GPL 赋予了用户著名的五大自由。

使用自由:允许用户根据自己的需要自由使用软件。

复制自由:允许用户将软件复制到任何人的计算机中,并且不限制复制的数量。

修改自由:允许开发人员增加或删除软件的功能,但修改后的软件必须仍然遵循GPL 许可证。

衍生自由:允许用户深度定制软件,并以自己的名义发布衍生品。

收费自由:允许用户在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的。因此,开源软件的商业模式通常是通过提供付费服务(如支持、定制等)来实现营利。

Tips :

读者可能心存疑问“这些开源许可证真的有法律效力吗?能作为法律依据吗?”

2008 年,自由软件基金会(FSF)起诉思科公司旗下的 Linksys 部门,指控其路由器产品使用 GNU 软件却未依 GPL 许可证要求提供源代码,严重侵害开源社区权益。2009 年,双方达成和解:思科向 FSF 支付赔偿金,公开违规使用的源代码,并承诺加强内部审查机制, 购买自由软件合规培训服务,以确保未来严格遵循 GPL 协议。这一事件有效维护了开源许可证的权威性,也为行业合规发展树立了重要标杆。

LGPL

较宽松通用公共许可证(Lesser General Public LicenseLGPL):LGPL 是一个由GNU 项目推出、由 FSF 支持的开源协议,主要用于保护类库(library)的开放源代码权益。与传统的通用公共许可证(GPL)相比,LGPL 允许商业软件以动态链接的方式使用开源代码,而不用将其产品整体开源,这提供了更大的灵活性,因此普遍被商业软件用来引用类库代码。简单来说,就是针对使用了基于 LGPL 许可证的开源代码,在涉及这部分代码,以及修改过或者衍生出来的代码时,都必须继续采用 LGPL 协议发布,除此以外的其他代码则不强制要求。

如果你觉得 LGPL 许可证更多的是关注对类库文件的保护,而不是软件整体,那就对了。因为该许可证最早的名字就叫 Library GPL(意思是“GPL 类库开源许可证”), 尤其适合那些想要在其商业产品中使用开源代码,但又不想完全开源其全部产品的开发人员,例如 GNU C 标准库(glibc)、GTK+图形工具包、FreeType 字体引擎等著名的项目,都采用了 LGPL 许可证。在确保 LGPL 代码本身仍然开源的前提下,允许其链接的代码保持闭源,从而支持商业软件的销售,真可谓“站着还能把钱赚了,体面!”。

BSD

伯克利软件发布版(Berkeley Software DistributionBSD)许可证:BSD 许可证是一种被广泛使用的开源软件许可协议,因其较宽松的规则而特别适合商业用途。与通用公共许可证(GPL)相比,BSD 许可证提供了更大的灵活性,允许用户使用、修改和重新发布遵循该许可证的软件。此外,用户还可以将软件以商业产品的形式发布和销售。但为了维护开源代码的完整性和原作者的权益,使用 BSD 许可证时需要满足以下三个条件。

源代码保留许可证:如果再发布的产品包含原始的 BSD 许可证代码,该部分代码的许可证信息必须保留。

版权声明:如果再发布的产品仅包含二进制文件而不包括源代码,必须在产品的相关文档或版权声明文件中注明原始代码遵循 BSD 许可证。

禁止滥用名誉:不允许使用原始软件的名字、作者名字或其所属机构的名字进行未经授权的市场推广。

BSD 许可证允许在最小程度的限制下,将开源软件和商业产品结合起来,这样不仅有助于软件的广泛传播,更促进了技术的商业化创新。

APACHE

Apache 许可证(Apache License):不难猜到,这是一个由大名鼎鼎的 Apache 软件基金会负责发布和维护的开源许可协议。作为全球最具影响力的开源基金会之一, Apache 不仅因其广泛采用的许可证而闻名,也因开发并维护着市场上占有率领先的Web 服务器软件—Apache HTTP Server 而备受推崇。目前,最为广泛使用的版本是 2004 年发布的 Apache 许可证 2.0,该版本特别强调为开发人员提供充分的版权和专利保护,同时赋予用户修改和重新发布代码的自由。

Apache 许可证尤其适合商业软件的开发,许多知名的开源项目如 Hadoop、Apache Kafka 以及 Apache HTTP Server 本身,都是在此许可证的框架下开发和发布的。开发遵循 Apache 许可证的软件时,必须遵守以下 3 个核心条件:

如果修改了程序源代码,需要在文档中进行声明。 若软件是基于他人的源代码开发而成的,则需要保留原始代码的许可证、商标、专利声明及原作者的其他相关声明。 如果再发布的软件包含 Apache 许可证代码,则必须保留原始的许可证声明文件, 以确保用户知晓软件的许可协议。

这些要求确保了软件在保持开放和自由的同时,也维护了开发人员和原作者的权利, 是推动开源软件发展同时又能适应商业需求的理想选择。

MIT

MIT 许可证(MIT License):源自麻省理工学院并被广为人知的 MIT 许可证最初用于 X Window System(X11),因此早期有时被称为 X11 许可证。这是一种非常灵活且限制最少的开源许可证之一,极大地促进了软件的自由使用和广泛传播。根据MIT 许可证,用户被授权使用、复制、修改和重新发布软件,唯一的要求仅仅是在发布的软件及其衍生品中保留原始软件的版权和许可声明。也就是说,MIT 许可证宽松到一个新境界,即用户只要在代码中声明了 MIT 许可证和版权信息,就可以去做任何事情,宽松程度让人惊讶。例如流行的 JavaScript 库 jQuery,以及 Node.js 生态系统中的许多组件(如 libuv),都选择了 MIT 许可证。

从这个开源许可证的设计理念上,我似乎都感受到了大洋彼岸那帮天才极客们对技术和自由的热爱与痴迷—Mind and Hand(MIT 校训),让整个世界为开源欢呼吧!

Tips :

除了维护自身的合法权益,还可以通过调整所用的开源许可证来更好地适应市场和拓展用户。

ZeroMQ 是一个广泛应用于高吞吐量和低延迟系统的高性能消息传递库,最初在 LGPL 协议下发布。2013 年,为吸引更多开发人员参与,该库主要开发者做出关键决策—将许可证更改为限制极少的 MIT 许可证。这一转变显著降低了参与门槛,开发者在使用时无需顾虑严苛的商业限制,能更便捷地将 ZeroMQ 集成到各类项目中。凭借 MIT 许可证的宽松特性,ZeroMQ 得以快速拓展应用场景,在众多项目中被广泛采用,市场份额实现了显著增长。

MPL

Mozilla 公共许可证(Mozilla Public LicenseMPL):由 Netscape 公司在 1998 年 2 月发布,将其作为 Mozilla 开源项目的一部分。当时,Netscape 认为 GPL 和 BSD 许可证难以平衡开发人员对源代码的需求与实际收益,因此通过融合这两个协议的优势,推出了 MPL。2012 年初,Mozilla 基金会发布了 MPL 2.0 版本(目前为止也是最新的版本),被广泛应用于 Firefox、Thunderbird 等多个知名产品中。最新版的 MPL 许可证有以下特点。

源代码文件级别的开源要求:在使用基于 MPL 许可的源代码时,后续只需要继续开源这部分特定代码即可,新研发的软件功能不用完全被该许可证控制,不要求开源衍生品的全部代码(有点类似于 LGPL),这提供了更大的产品和商业灵活性。

代码混合使用的灵活性:代码混合使用的灵活性:开发人员可以将遵循 MPL、GPL、BSD 等多种许可证的代码在一个项目中混合使用,这样能够更好地适用于需要整合多种开源软件的复杂项目。

透明的变更记录:透明的变更记录:开发人员在发布新软件时,必须附带一个专门用于说明该软件的文件,详细记录原始代码的修改日期和方式。这种透明度要求有助于保持代码的可追溯性,促进开源社区的共享与协作。

MPL 旨在促进开源代码的使用和创新,同时尊重开发人员的权利和商业应用的需要。它在开源软件和商业软件开发之间架设了一座桥梁,提供了一种平衡开放与专有的有效方式。

估计大家在看完上面这些琳琅满目的许可证后,会心生怨言:“这不都差不多吗?到底该选哪个呢?”程序员 Paul Bagwell 创作的一幅流程图正好对刚才讲过的这 6 款开源许可证进行了汇总归纳,可以帮助读者进行选择,具体如下图所示。

SELECT

众所周知,绝大部分的开源软件在安装完毕之后即可使用,很难在软件界面中找到相关的收费信息。所以经常会有同学提问:“刘老师,开源社区的开发人员总要吃饭的呀,他们是靠什么营利呢?”针对这个问题,网络上好像只有两种声音:

情怀—开源社区里的开发人员觉悟高,本领强,写代码纯粹是为了兴趣以及造福社会;

服务—先让用户把软件安装上,等用好、用习惯之后,再通过提供一些维护服务来营利。

这两种解释都各有道理,但是不够全面。读者也不要把开源软件和商业软件完全对立起来,因为好的项目也需要好的运营模式。就开源软件来讲,营利模式具体包括以下 5 种。

多条产品线:通过提供不同级别的产品来满足不同用户群体的需求。例如 MySQL 数据库便有个人和企业两个版本—个人版完全免费,起到了很好的推广作用,企业版则通过销售授权许可来营利。

技术服务型:JBoss 应用服务器便是典型代表,JBoss 软件可自由免费使用,软件提供方通过技术文档、培训课程以及定制开发服务来营利。

软硬件结合:比如 IBM 公司在出售服务器时,一般会为用户捆绑销售 AIX 或 Linux 系统来确保硬件设施的营利。

技术出版物:比如 O'Reilly 既是一家出版公司,也是开源软件的坚定支持者,诸多优秀图书都是由 O'Reilly 出版的,这些图书内容通常又与他们支持的开源项目有关。双赢!

品牌和口碑:微软公司曾多次表示支持开源社区。大家对此可能会感到意外,但这是真的!例如 Visual Studio Code、PowerShell、TypeScript 等软件的大部分代码均已开源。

0.4 为什么学习Linux系统?

在课堂上,我经常会问同学们一个问题:“为什么要学习 Linux 系统?”很多学生会脱口而出:“因为 Linux 系统是开源的,所以要去学习。”这个理由其实有些牵强。开源的操作系统少说有 100 个,更有数以万计的开源软件,为什么不去逐个学习呢?所以上面谈到的开源特性只是一部分优势,并不足以成为你付出精力去努力学习的全部理由。

实际上,对普通用户而言,开源共享精神仅具备锦上添花的效果,真正重要的是 Linux 系统本身的优秀质量,它提供了类似 UNIX 的优雅和高效的程序界面,并继承了 UNIX 系统的良好稳定性。而且,开源社区也在持续贡献高品质代码以及丰富的第三方软件支持,使 Linux 能够在高可用性、高性能等方面满足最苛刻的工作需求。

当然,大多数读者应该都是从微软的 Windows 系统开始接触计算机和网络的,因此肯定会有这样的想法:“Windows 系统很好用啊,而且也满足日常工作需求呀。”客观来讲,Windows系统确实很优秀,但是在安全性、高可用性、高性能方面却难以让人满意。你应该见过下面这张图片。虽然蓝屏不是经常可以看到的,但若这样的“事故”发生在生产环境中,后果是绝对不敢想象的。

WINDOWS

因此,学习 Linux 不仅仅是因为它开源,更是因为它在关键性能指标上表现卓越,能为系统运行提供坚实可靠的保障。Linux 系统的这些特质,加上开源给我们带来的自由和灵活性, 共同构成了选择学习它的充分理由。

Linux 在服务器和云计算领域也具有显著的优势。从 2025 年的权威数据来看,Linux 系统在 Web 服务器市场展现出强劲优势,在高流量网站服务器中占比超过 90%,成为众多企业和开发人员的首选。

谷歌公司的搜索引擎、电子邮箱、云服务也都运行在 Linux 系统之上。这并不出奇,就算是手机上常用的 Android 系统,也是基于 Linux 内核开发的。另外,作为全球云服务领域的龙头,亚马逊云服务(AWS)超 90%的服务器部署了 Linux 系统,可见其在 AWS 公有云业务底层架构中占据着无可替代的核心地位。

在高性能计算领域,TOP 500 超级计算机排名极具代表性。每年,全球都会评选出 500 台计算速度最快的超级计算机,例如美国的 Frontier、Summit、Sierra,日本的 Fugaku,芬兰的 LUMI,以及中国的神威·太湖之光等。截至本书写作时,这些超级计算机无一例外采用的都是 Linux 操作系统,彰显了 Linux 在极致性能计算场景中的统治地位。

为了更直观地展示 Linux 和 Windows 之间的差异,我们进行了以下的归纳和比较,详见下图。这些差别是刘遄老师基于工作经验总结的,或许你现在不完全认同,但没关系,可以在学习中慢慢感受。

Linux-Windows

坦白来讲,每位投身于 Linux 行业的技术人或者开发人员只要听到开源项目就会由衷地感到自豪,这是一种从骨子里带有的独特情怀。开源企业不单纯是为了利益,而是互相扶持, 努力服务好更多的客户。在这个生态中,开源社区更是与全球用户唇齿相依,任何人都可以贡献自己的代码与灵感,同时也都能从中获益。如此良性循环下来,使得开源软件拥有以下四大关键性优势。

低风险:使用闭源软件会让我们过度依赖于某一家公司,无疑像把命运交付给了他人, 一旦封闭的软件没有人来维护了,我们将进退维谷。而且相较于商业软件公司,开源社区很少存在倒闭的情况。况且,源代码一旦公布于世,即使原始维护者不再更新, 其他开发人员或组织也能够接手,确保项目的生命力。

高品质:相较于闭源软件,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试的用户数量众多,一般的 bug 还没有爆发就已经被修补。另外,在灵感不断碰撞、代码不断迭代的交流氛围中,开发人员也不可能将“半成品”上传到开源社区中,毕竟都是要面子的。

低成本:开源工作者大多在幕后默默且无偿地贡献劳动成果,构建起庞大的开源软件生态体系。得益于这一生态,在合理规划与使用的前提下,采用开源社区推动的软件项目能够大幅减少从头开发所需的人力投入、物力调配与资金消耗,从而有效节省资源成本。

更透明:没有哪个笨蛋会故意在开源项目中放置木马或后门代码,这样无疑是把自己的罪行暴露在阳光之下,随时有可能被全球社区中任何一位细心的成员揭露。

这种独特的开源文化,不仅提供了高质量、低成本的软件解决方案,还促进了技术的民主化,为技术创新和全球知识共享搭建了坚实的桥梁。

读到这里,相信大家已经基本熟悉了刘遄老师的写作特点—能用一句话讲清的事情, 绝不会造出一段话。这样的好处非常明显:首先是找出重点逐个讲解,这样使得段落不再冗长;其次是配上了大量相关的图片,看起来非常有乐趣,并且能够让你一眼就找到最重要的知识。接下来,我将用几段话来总结 Linux 系统的发展历程,但不会介绍太多,请大家留心每个时间点即可。

我们从 1965 年开始讲起。当时,为了解决服务器终端连接数量的限制和处理复杂计算的问题,贝尔实验室(Bell)、通用电气公司(GE)以及麻省理工学院(MIT)决定联手打造一款全新的操作系统—MULTICS(多任务信息与计算系统)。然而,由于项目设计过于复杂,开发过程屡遭阻碍,后期更陷入资金短缺困境。1969 年,贝尔实验室宣布退出,MULTICS 项目随之终止。同年,曾参与 MULTICS 开发的 Ken Thompson,为能在 Digital PDP - 7 迷你计算机上运行自己编写的游戏 Space Travel,用汇编语言编写了一个新系统内核。因该系统是对 MULTICS 的简化,同事戏称其为UNICS(单路信息与计算系统)。UNICS 凭借简洁高效的特性,在贝尔实验室内迅速获得认可,成为后来 UNIX 系统的雏形。

1973 年,鉴于当时 UNICS 系统在不同架构服务器上使用时,汇编语言编写的内核需要针对每台不同架构的服务器重新编写代码,存在麻烦且使用门槛高的问题,因此 C 语言之父Dennis M. Ritchie 与Ken Thompson 一起,决定使用 C 语言对 UNICS 系统进行重写。这一举措使得系统具备了更好的跨平台性,为 UNIX 系统后来的广泛发展和普及奠定了基础。经过不断发展和演变,UNIX 系统在后续的过程中逐渐在一定程度上展现出开源和共享的特性,对计算机操作系统领域产生了深远影响。

1979 年,贝尔实验室的上级公司 AT&T 看到了 UNIX 系统的商业价值和潜力,不顾贝尔实验室的一些反对声音,坚决做出了对其商业化的决定。随后,AT&T 收回了版权,逐步限制 UNIX 系统源代码的自由传播,试图将其转化成专利产品以获取商业利益。这一举措让崇尚自由分享的黑客们感到失望,开源社区的技术分享热潮受到一定程度的冲击。然而,尽管UNIX 系统的发展方向发生了变化,但在其他方面,科技成果的分享和发展仍在持续,开源运动也在不断寻找新的突破和发展方向。

GNU

面对如此封闭的软件创作环境,著名的理想主义者黑客 Richard Stallman 在 1983 年发起了 GNU 源代码开放计划,并在 1989 年起草了著名的 GPL 许可证。他渴望建立起一个更加自由和开放的操作系统和社区。之所以称之为 GNU,其实是有“GNU’s Not Unix!”的含义,这暗戳戳地表达了商业化 UNIX 系统的态度。Stallman 从计划之初便积极行动,以当时现有的软件功能为蓝本,带领团队重新开发出了多款开源免费的实用工具。1987 年,GNU 的愿景终于迎来关键突破,Richard 和社区共同编写出了一款能够运行 C 语言代码的编译器—GNU Compiler Collection(GCC)。这使得人们可以免费地使用 gcc 编译器将自己编写的 C 语言代码编译成可执行文件,这在当时简直就是爆炸性的创新,开源社区生态犹如被注入一剂强心针,开始像磁铁一样吸纳全球的技术爱好者,这又进一步发展壮大了开源社区。随后,Emacs 编辑器和 bash 解释器重磅产品陆续问世,越来越多的技术爱好者纷纷加入 GNU 源代码开放计划。

1984 年,UNIX 系统的版权依然被AT&T 公司死死地攥在手里,AT&T 公司明确规定不允许将代码提供给学生使用。就在这个时候,荷兰的一位大学教授 Andrew S. Tanenbaum(历史中被遗忘的大神)为了能给学生上课,竟然仿照 UNIX 系统编写出了一款名为 Minix 的操作系统。但当时他只是用于课堂教学,根本没有大规模商业化的打算,所以实际使用 Minix 操作系统的人数其实并不算多,只是学术界有点小名气。

芬兰赫尔辛基大学的在校生 Linus Torvalds 便是其中一员,他在 1991 年 8 月使用 Bash 解释器和 gcc 编译器等开源工具编写出了一个名为 Linux 的新系统内核,并且在技术论坛中低调地上传了该内核的 0.02 版本。该系统内核因其较高的代码质量且基于 GNU GPL 的开放源代码特性,迅速得到了 GNU 源代码开放计划和一大批黑客程序员的支持,随后 Linux 正式进入如火如荼的发展阶段。Linus Torvalds 最早发布的帖子如下。

TUX
  Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want. Any suggestions
are welcome, but I won't promise I'll implement them :-)

Linus torvalds

Linux 系统的吉祥物名为 Tux,是一只呆萌的小企鹅。相传 Linus Torvalds 在童年时期去澳大利亚的动物园游玩时,不幸被一只企鹅咬伤,所以为了“报复”就选择了这个物种作为吉祥物。这个故事是否可信无从考证,但万幸是只企鹅,而不是老虎或者狮子,否则就不是换个 Logo 这么简单的事了。

1993 年,Bob Young 与 Marc Ewing 共同创立了红帽(Red Hat)公司,并于次年发布早期的红帽 Linux 版本。作为创始人,Bob Young 凭借提供技术支持和服务的商业模式,有力推动了 Linux 的普及。1998 年以后,随着 GNU 源代码开放计划和 Linux 系统持续升温,以IBM 和 Intel 为首的多家 IT 巨头企业纷纷加入,大力推动开放源代码软件的发展,这一转变被许多人视为开源领域的重要转折点。2012 年,红帽公司成为全球第一家年收入达 10 亿美元的开源公司,此后更是不断突破,年收入陆续攀升至 20 亿、30 亿美元……持续刷新行业纪录。

时至今日,Linux 内核已经发展到 6.x 版本,衍生系统也有数百个版本之多,Linux 内核的开发维护凝聚了全球众多开发人员的心血,Linus Torvalds 作为创始人,在核心架构把控与关键决策上发挥着引领作用。如今,红帽公司凭借深厚的技术积累与成熟的商业模式,在开源领域占据重要地位,不仅是 Linux 系统商业化与技术推广的佼佼者,也是开源生态发展的重要推动者。

0.5 常见的 Linux 系统版本

在深入了解常见的 Linux 版本前,我们先明确两个概念:Linux 系统内核和 Linux 发行版。

Linux 系统内核是一个由 Linus Torvalds 发起并由全球开发者社区共同维护的操作系统核心组件,提供硬件抽象层、磁盘、文件系统控制及多任务功能的系统核心程序(第2 章会有详细介绍)。

Linux 发行版(Linux Distribution)是指以 Linux 内核为基础,搭配各种软件组件(如Shell、桌面环境、应用程序等)组成的完整操作系统。

全球共有数百个不同的 Linux 发行版,每个版本都有自己的特性和目标人群—有的主打稳定性和安全性,有的主打免费使用,还有的主要突出定制化强等特点,各有所长。下面从用户的角度选出最热门的 10 款进行介绍。

Tips :
本书全篇将以“Linux 系统”来替代“Linux 发行套件系统”这个词。

REDHAT

红帽企业版系统(RHEL, Red Hat Enterprise Linux)

红帽企业版 Linux(RHELRed Hat Enterprise Linux):前文在介绍 Linux 系统的发展历史时,曾提到过红帽公司。作为全球知名的开源技术厂商,红帽公司的产品值得我们放到第一位来介绍。红帽公司成立于 1993 年,于 1999 年在纳斯达克上市,自从 2006 年起陆续将开源中间件领域的领军企业 JBoss、备受欢迎的社区企业操作系统CentOS 以及 Inktank(Ceph 企业级存储技术的核心推动者)等数十家高科技企业和优质技术资源纳入麾下,进一步强化了自己在行业中的领导地位。2019 年,IBM 用 340 亿美元收购了红帽公司,从此 Red Hat 走上了软硬皆强的康庄大道。

红帽企业版 Linux 首发于 2000 年,当年 Dell、HP、Oracle 以及 IBM 公司便纷纷宣布支持该系统,并提供兼容性认证和商业支持。此后近 20 年间,RHEL 凭借可靠的性能和完善的服务,市场份额整体呈显著上升趋势,成为全世界使用最广泛的Linux 系统之一。在世界 500 强企业中,众多航空公司、电信服务提供商、商业银行、医疗保健公司都选择通过该系统对外提供服务。RHEL 系统以卓越的稳定性著称,红帽公司依托全球化的技术服务网络,能为用户提供全面、及时的技术支持,确保系统稳定高效运行。

红帽企业版 Linux 系统当前的最新版本是RHEL 10,该系统也是本书和红帽认证考试中默认使用的操作系统。凭借全新支持的 GCC 14、Rust 1.82、Python 3.12 和LLVM 19, RHEL 10 再次强劲提升了开发人员的生产力,相信会给你耳目一新的感觉。

RHEL系统及随书配套工具下载链接:https://www.linuxprobe.com/tools

CENTOS

CentOS Stream社区企业操作系统(Community Enterprise Operating System)

社区企业操作系统(Community Enterprise Operating SystemCentOS):CentOS 最初由开源社区于 2004 年基于红帽企业版 Linux(RHEL)的源代码构建而成,一直以来,“免费”都是它最广为人知的标签。如果你问一个运维“老鸟”选择 CentOS 系统的理由,他绝对不会跟你说更安全或更稳定,而只是说两个字—免费!由于红帽企业版 Linux 是开源软件,任何人都有修改和创建衍生品的权利,因此 CentOS 便是将红帽企业版 Linux 中的收费功能通通去掉,然后将新系统重新编译后发布给用户免费使用的 Linux 系统。CentOS 不仅继承了 RHEL 稳定、可靠的系统特性,还能让用户在无须支付商业授权费用的情况下,获得近似红帽企业版 Linux 的使用体验,这也让它成功赢得百万级用户的支持。

由于CentOS 是基于红帽企业版 Linux(RHEL)源代码修改后发布的版本,因此不会像独立发行版那样进行大规模新功能开发,但开源社区仍会对其进行安全更新、小功能修复等维护工作。CentOS 的版本号通常与 RHEL 保持对应关系,例如,CentOS 8.0 对应RHEL 8.0,CentOS 8.1 对应 RHEL 8.1,以此类推。再就是,CentOS 系统和 RHEL 系统的软件包也互相兼容。也就是说,如果工作中用的是 RHEL,但是在安装某款软件时只找到了该软件的 CentOS 系统软件源,也是可以正常安装该软件的。

2014 年 1 月,CentOS 项目被红帽公司收购,2019 年被改名为 CentOS Stream。CentOS Stream 继承了前辈的免费特性,但从本质上讲,CentOS Stream 不再仅仅是 RHEL 的一个衍生版,它更像是 RHEL 的滚动预览版,用户和开发人员可以在 CentOS Stream 中体验到下一版 RHEL 系统中的功能,不再与 RHEL 系统在商业化上产生冲突。

FEDORA

Fedora Linux

Fedora Linux:Fedora 翻译为中文是“浅顶软呢帽”的意思,其中文意思跟 Linux 系统很不搭界,所以更多人干脆将其音译为“费多拉”系统。Fedora Linux 是正正经经的红帽公司自己的产品,最初是为了给红帽企业版 Linux 制作和测试第三方软件而构建的产品,孕育了最早的开源社群。Fedora Linux 通常每 6 个月发布一个新版本,目前全球有数百万用户。

Fedora 是主要用于桌面版本的系统,可以将其理解微软公司的 Windows 11。它的目标用户是希望体验最新技术的那拨人,而不是追求长期稳定性的那些人群。用户能够在这个系统中体验到最新的软件,当这些软件的技术成熟后才会被移植到红帽企业版Linux 中,因此 Fedora 也被称为 RHEL 系统的“试验田”。运维人员如果想每天都强迫自己多学点 Linux 知识,保持自己技术的领先性,就应该多关注此类 Linux 系统的发展变化和新特征,不断调整自己的学习方向。

ROCKY

ROCKY Linux

Rocky Linux:2021 年,原 CentOS 系统项目联合创始人之一的 Gregory Kurtzer 创立了 Rocky Linux。这一系统的诞生,是对 Red Hat 调整 CentOS 项目方向(停止 CentOS Linux 的维护,转向 CentOS Stream)的回应。Rocky Linux 同样基于 RHEL 源代码构建,旨在填补 CentOS 停更后留下的市场空白,重新回归开源社区驱动的运营模式, 并向用户承诺永久免费使用。用户可以从RHEL 或 CentOS 无缝过渡到 Rocky Linux, 操作方式和软件包完全兼容—这一点尤其重要,因为它保证了企业用户在迁移到Rocky Linux 后可以继续使用熟悉的环境和工具,无须重大改变。

此外,Rocky Linux 为每个版本提供长达 10 年的生命周期支持,确保企业在较长时间内都能获得安全更新与维护服务,避免频繁的系统升级或更换,这对于追求系统稳定性与安全性的企业级用户而言极具吸引力。Rocky Linux 致力于将免费开源系统做到商业级产品的品质,秉持开源精神持续发展,有望成为CentOS Linux 的有力继任者, 在开源操作系统领域续写辉煌

DEBIAN

Debian Linux

Debian Linux:一款遵循 GNU 开源理念的Linux 发行版,历史久远,最初发布于 1993 年 9 月。Debian 的名字取自创始人 Ian Murdock 和他女朋友 Debra 的姓氏组合。在一些翻译中,Debian 被翻译为“蝶变”系统,多么浪漫而富有诗意的名字。但可惜国内的用户不买账,看着 Logo 一圈一圈的形状,硬生生地将经念歪了。这么多年下来, 现在反而很少有人听说过蝶变系统这个名字了。

Debian 系统以稳定性和安全性著称,并提供免费的基础支持,可以支持多种硬件架构, 官方软件仓库包含 5 万种以上的开源软件,在国外拥有很高的认可度和使用率。虽然Debian 也是基于 Linux 内核,但是在实际操作中还是跟红帽公司的产品有所不同,例如 RHEL 使用 YUM 和 DNF 工具来安装软件,而 Debian 使用的则是APT 工具。

UBUNTU

Ubuntu Linux

Ubuntu Linux:Ubuntu 是一款以 Debian 为蓝本进行修改和衍生的 Linux 系统,支持桌面、服务器和云计算等多种环境,发布周期为 6 个月。Ubuntu 的中文音译为“乌班图”,来自南非的班图语族语言,意为“我的存在是因为大家的存在”,体现了一种谦卑、感恩的价值观,寓意非常好。

Ubuntu 系统的第一个版本发布于 2004 年 10 月。2005 年 7 月,Ubuntu 基金会成立。Ubuntu 后续不断增加开发分支,有了桌面版系统、服务器版系统和手机版系统。据估计,Ubuntu 在全球拥有数千万用户。尽管 Ubuntu 基于 Debian 系统衍生而来,但对系统进行了深度化定制,因此两者之间的软件并不一定完全兼容。Ubuntu 现在由Canonical 公司提供商业技术支持,长期支持(LTS)版本的桌面版可免费支持 5 年, 服务器版经扩展后支持时长可达 10 年。

OPENSUSE

openSUSE Linux

openSUSE Linux:一款源自德国的 Linux 发行版,在欧洲拥有较高的知名度。openSUSE 的桌面版简洁轻快易于使用,而服务器版本则功能丰富极具稳定性,而且即便是“菜鸟”也能轻松上手。虽然openSUSE 在技术上颇具优势,而且大大的绿色变色龙 Logo 人见人爱,只可惜命途多舛,赞助和研发该系统的 SuSE Linux AG 公司由于效益不佳,于 2003 年被 Novell 公司收购,而 Novell 公司又因经营不佳而在 2011年被 Attachmate 公司收购。到了 2014 年,Attachmate 公司又被 Micro Focus 公司收购,后者只把维护 openSUSE 系统的团队当作公司内的一个部门来运营。2018 年起, openSUSE 社区又开始独立运营,形成了独立于企业版的开源项目。

即便如此,openSUSE 仍然在持续发展,用户可以完全自主选择使用的软件和桌面环境,例如 GNOME、KDE、Cinnamon、MATE、LXQt、Xfce 等。此外,openSUSE 提供超过 2 万个免费开源软件包,涵盖从办公软件到开发工具的多个领域。

KALI

Kali Linux

Kali Linux:跟上面呆萌的变色龙相比,Kali Linux 的 Logo 似乎有点凶巴巴,一副不好惹的样子。这款系统一般是供黑客或安全人员使用的,能够以此为平台对网站进行渗透测试,通俗来讲就是能“攻击”网站。Kali Linux 系统的前身是 BackTrack,专为数字取证和渗透测试设计,内置超过 600 款网络安全工具,包括著名的 Nmap(网络扫描)、Wireshark(数据包分析)和SQLmap 等。

Kali Linux 的兼容性极强,不仅可以安装在个人计算机和公司服务器上,还可以安装在手掌大小的树莓派上,从而让人有种随身携带了一个武器库的感觉,有机会真应该单独写本书聊聊它。

Tips :
Linux 系统中最常见的两种桌面环境是 GNOME 和 KDE,Kali Linux 允许用户自行选择,而其他系统默认以 GNOME 为主。

GENTOO

Gentoo Linux

Gentoo Linux:Gentoo 翻译为中文是“巴布亚企鹅”。终于找到一个跟 Linux 吉祥物— 企鹅相关的名字了。巴布亚企鹅属于中型企鹅,它们虽然憨态可掬,却拥有出色的游泳能力,最快时速可达 36 千米—多么灵活的胖子!

Gentoo 系统最大的特色就是允许用户完全自由地进行定制。开发人员 Daniel 曾经说过:“Gentoo 系统的设计出发点就是让用户随意使用,没有限制。”只要理解了这句话,后面也就不需要再解释什么了。在 Gentoo 系统中,任何一部分功能(包括最基本的系统库和编译器)都允许用户重新编译;用户也可以选择喜欢的补丁或者插件进行定制。但是,也因为 Gentoo 极高的自定制性,导致操作复杂,因此仅适合有经验的运维人员使用,不推荐作为新人第一款接触到的 Linux 系统。

DEEPIN

深度操作系统(deepin)

深度操作系统(Deepin):在过去的二十多年,基于开源系统二次定制开发的国产操作系统陆续出现过一些,但大多发展不好,深度操作系统却是少数能够将技术研发与商业运作结合起来的成功案例。据 Deepin 官方介绍,该系统最早由武汉深之度科技有限公司基于 Ubuntu 开发,2015 年起改用 Debian 作为基础,提供 32 种语言版本, 目前累计下载量已近 1 亿次,用户遍布 100 余个国家和地区。

就 Deepin 来讲,最吸引人的还是它的本土化工作,默认集成了诸如 WPS Office、搜狗输入法、有道词典等国内常用的软件,对小白用户相当友好。当然,Deepin 的技术研发能力相较于国际水平肯定还有差距,这点我们也要承认并正视。

总结来说,虽然上述不同版本的 Linux 系统在界面上可能差别很大,或是在操作方法上不尽相同,但只要是基于 Linux 内核研发的,都称之为 Linux 系统。大家手中的这本书基于最新发布的 RHEL 10 系统编写而成,书中内容及实验完全通用于当前主流的 Linux 系统。也就是说,当你学完本书后,即便公司内的生产环境部署的是 CentOS Stream、Fedora、Rocky Linux 等,我们也照样可以搞得定。更重要的是,本书配套资料中的 ISO 系统镜像与红帽 RHCSA 及 RHCE 考试基本保持一致,因此很适合备考红帽认证的考生使用。

随书配备的ISO系统镜像文件下载地址:https://www.linuxprobe.com/tools

深度评解红帽RHCSA、RHCE、RHCA认证:https://www.linuxprobe.com/redhat-certificate

0.6 感谢你们相信并选择我

首先,感谢广大读者从众多 Linux 图书中选择了本书,感谢你们的厚爱与信任,一定不会让你们失望的。

其次,感谢与我并肩作战的每一位团队成员,按照加入时间排列,他们是:逄增宝、张宏宇、张振宇、王浩、郭建鹏、倪家兴、姜显赫、冯瑞涛、杨斌斌、王华超、王艳敏、岳永。感谢你们信任我,为了共同的事业而一起奋勇向前,如果没有你们的帮助和支持,就不会有现在的成绩。在过去 10 年,我们从一个每天只有十几人访问的小博客,发展到现在每天将近10 万访问人次的技术社区;在过去 5 年,更是接连开设了近 60 个QQ 技术交流群,总用户数已超过 20 万;微信公众号也从 0 做到了 40 万粉丝,这些都是此前国内任何一本技术类图书没有达到的高度和成就。尤其在最近三年,我们的发展速度远远领先于同行业所有的资讯网站和教育机构,优质的图书内容与良好的读者口碑,使我们的每一步都走得更加扎实。现在可以很自豪地讲:“我们用努力留住了用户,用户看到了我们的付出。”

再次,感谢人民邮电出版社的傅道坤编辑,是你在 2015 年提起建议出版《Linux 就该这么学》的想法,并帮助我们把图书内容打磨到最佳状态,确保了图书销量顺利突破 10 万余册,感谢你十几年间给予的信任与支持,一路相伴,我们携手迎来了本书的第 3 版。感谢北京联合大学王廷梅教授,在我攻读教育学硕士期间给予了专业指导和悉心培育,是您引导我步入了教育学和计算机科学与技术领域,不忘恩师,不忘母校。

最后,特别感谢我的父母和妻子。当我提出想写一本技术图书的时候,你们毫无保留地选择相信我、支持我。感谢妻子能够理解我工作的压力,主动与我并肩管理在线培训班的运营与招生事务,为我腾出更多时间专注写作。如果没有你们的信任和陪伴,我不敢想象自己的人生会走向怎样的道路。