章节简述:

Hello World!在本章节,刘遄老师将向各位读者讲述自己十多年来的Linux系统学习感悟以及教学心得。《Linux就该这么学(第3版)》不仅继承了前作的精华,还加入了新的内容和视角,旨在帮助读者更轻松地学习Linux操作系统。

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

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

同时,还将引领大家深入学习Linux系统,详细解析红帽认证体系,以及红帽RHEL 9系统的最新变化和战略定位。通过全面地讲解,帮助您搞定红帽RHCSA、RHCE、RHCA认证的每一个细节,进而制定出切实可行的学习计划,迈向技术巅峰。

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年初获得RHCE 9版本认证,继而为写作本书夯实了技术功底。

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

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

您手里所持的这本书,基于最新的红帽企业版系统RHEL 9编写而成,其内容通用于绝大多数的Linux系统,具有广泛的适用性。本书配套软件及资料完全免费,可通过www.linuxprobe.com网站获取,相关的付费培训课程大家可根据自身情况自愿报名。本书将会从零基础带领您入门Linux系统,然后渐进式地提高内容难度,以匹配生产环境对运维人员的要求。而且,本书每章都配套有大量的图、表、命令示例以及课后复习题,大家可以在阅读本书的过程中同步操作完所有的实验内容,以达到增强学习兴趣与加深记忆的效果。最后,本书以及配套资源相较于当前红帽RHCE 9版本的考试要求,至少要再多出50%的内容,而且已经有几千位学员陆续通过本书的学习顺利取得认证。因此,只要能每天坚持学习,相信这绝对是体验极佳、进步极快的一次学习经历。

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

0.2 学习是件苦差

我常常怀疑,人类的DNA中是不是也有一个类似Linux系统中变量值的东西(这里姑且称之为GoodStudy),这个变量决定着我们的行为,当值为1时,痴迷于学习无法自拔,值为0时,则全心享受生活。估计对于大多数人来说这个值应该都在0.5左右徘徊吧。真希望有哪一位生物学家能早点找到这个变量,周一到周五将这个值调高点儿,周末再调回正常。想想都觉得很有科技感,期待着这一天赶紧到来。

那在此之前,该如何应对?

答案只有一个:靠自律。

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

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

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

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


给自己的留言:

 

 

     年          月         日


0.3 开源共享精神OSI

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

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

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

考虑到大家没准儿以后会以开源工作者的身份开发出一款畅销软件,刘遄老师根据开源促进组织的推荐建议以及实际使用情况,为大家筛选出了程序员最喜欢的前6名的开源许可证,并指导大家如何选择最适合自己的。提前了解并选择一个未来能最大限度保护您软件权益的开源许可证,对于创业公司来说尤其重要,能够起到事半功倍的效果。

开源许可证总览:https://opensource.org/licenses/alphabetical

Tips

上述提到的“开源许可证”与“开源许可协议”的含义完全相同,只不过是英文翻译后两种不同的叫法,这里不作区别。

Tips

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

在开源社区中会经常看到“Copyleft”这一术语,这是自由软件运动发展出的重要概念,中文通常会被翻译为“著佐权”或“公共版权”。与传统的版权(Copyright)形成鲜明对比的是,Copyleft旨在通过赋予用户复制、修改和重新发布软件的自由,来促进知识的共享和传播。

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

接下来,我们来看下程序员最偏爱的六种开源许可证,及它们赋予用户的各种权利:

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

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

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

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

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

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

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

Tips

法律责任:

读者可能在担心,这些开源许可证真的有法律效力吗?能作为法律依据吗?

自由软件基金会(FSF)在2008年起诉思科公司(Cisco)旗下的Linksy部门未能遵守GPL协议,因其发现思科路由器产品中使用了GNU软件但未提供相应源代码,侵害了开源社区的权益。2009年,思科公司与自由软件基金会达成和解,支付了相应的赔偿金、发布违规使用的源代码、承诺加强对GPL合规性的重视、并购买自由软件合规培训服务,完胜!

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

如果您觉得LGPL许可证更多地是关注对类库文件的保护,而不是软件整体,那就对了。因为该许可证最早的名字就叫“Library GPL”,意即GPL类库开源许可证,尤其适合那些想要在其商业产品中利用开源代码,但又不想完全开源其全部产品的开发者,例如著名的项目:GNU C标准库(glibc)、GTK小部件工具箱(GTK widget toolkit)、FreeType字体引擎和LibreOffice办公套件等,都采用了LGPL许可证。在确保其核心代码可以自由使用和修改的情况下,还能将软件整体作为闭源软件进行商业销售,真可谓是“站着还能把钱赚了,体面!”。

第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

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

  1. 源代码保留许可证:如果再发布的产品包含原始的开源代码,该部分代码必须继续遵循BSD许可证。
  2. 版权声明:如果再发布的产品仅包含二进制文件而不包括源代码,必须在产品的相关文档或版权声明文件中注明原始代码遵循BSD许可证。
  3. 禁止滥用名誉:不允许使用原始软件的名字、作者名字或其所属机构的名称进行未经授权的市场推广。

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

第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

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

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

该软件及其衍生品必须继续使用Apache许可证。

如果修改了程序源代码,需要在文档中进行声明。

若软件是基于他人的源代码开发而成的,则需要保留原始代码的许可证、商标、专利声明及原作者的其他相关声明。

如果再发布的软件中包含声明文件,必须在该文件中明确指出软件基于Apache许可证发布。

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

MIT许可证(Massachusetts Institute of Technology License):源自麻省理工学院并被广为人知的MIT许可证,也常被称为X11协议。这是一种非常灵活且限制最少的开源许可证之一,极大地促进了软件的自由使用和广泛传播。根据MIT许可证,用户被授权使用、复制、修改和重新发布软件,关键的要求仅仅是在分发的软件及其衍生品中包含原始软件中的版权和许可声明。也就是说,MIT许可证宽松到一个新境界,即用户只要在代码中声明了MIT许可证和版权信息,就可以去做任何事情,而无须承担任何责任,例如流行的JavaScript库jQuery和服务端平台Node.js都选择了这种许可模式。

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

Tips

商业考量:

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

ZeroMQ是一个广泛应用于高吞吐量或低延迟系统的高性能异步消息库,最初是在LGPL协议下发布的。然而,为了鼓励更多的开发者参与,其主要开发人员在2013年作出了重要决策——将许可证更改为几乎没有任何限制的MIT许可证。这一变化彻底放开了参与门槛,允许任何人在不担心商业限制和法律风险的情况下直接使用这项技术,并更容易地将ZeroMQ集成到其他项目中,完全不需要担心法律风险,这一举措让ZeroMQ的市场份额有了一大步的跨越,赞!

Mozilla公共许可证(Mozilla Public License, MPL):于1998年初由Netscape公司的Mozilla团队设计,原因是它们认为GPL和BSD许可证不能很好地解决开发人员对源代码的需求和收益之间的平衡关系,因此便融合了这两个协议的优势,应运而生了MPL。2012年年初,Mozilla基金会发布了MPL 2.0版本(目前为止也是最新的版本),被广泛应用于Firefox、Thunderbird等多个知名产品中。最新版的MPL公共许可证有以下特点。

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

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

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

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

估计大家在看完上面琳琅满目的许可证后,会心生怨念:“这不都差不多吗?到底该选哪个呢?”写到这里时,刘遄老师也是一脸无助:“到底该怎么让大家进行选择呢?”搜肠刮肚之际突然眼前一亮,乌克兰程序员Paul Bagwell创作的一幅流程图正好对刚才讲过的这六款开源许可证进行了汇总归纳,具体如下图所示。

开源许可证的选择流程图

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

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

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

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

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

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

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

技术出版物:比如O'Reilly既是一家开源公司,也是一家出版商,诸多优秀图书都是由O'Reilly出版的,这些书籍内容又常常是他们支持的开源项目,双赢!

品牌和口碑:微软公司曾多次表示支持开源社区。大家对此可能会感到意外,但这是真的!例如Visual Studio Code、PowerShell、TypeScript等软件均已开源。大家是不是瞬间就对微软公司好感倍增了呢?买一份正版Windows 12系统表示下支持也就是人之常情啦~

0.4 为什么学习Linux系统?

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

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

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

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

Linux在服务器和云计算领域具有显著的优势,2024年公开的数据表示:全球前一百万个Web服务器中有96.3%采用了Linux系统。

谷歌公司的搜索引擎、电子邮箱、云服务也都运行在Linux系统之上,其实这并不出奇,就算是手机上常用的安卓操作系统(Android),也是基于Linux内核开发的。另外全球云服务器市场的第一名——亚马逊云平台(Amazon Web Services,AWS)中,有超过90%的服务器采用了Linux系统,是公有云业务底层架构的绝对主力。

还有一个更极端的应用场景—全球超级计算机竞赛。每年,全球都会评选出500台计算速度最快的超级计算机,如美国的Frontier、Summit、Sierra,日本的Fugaku,芬兰的LUMI,以及中国的神威·太湖之光。截至本书写作时,这些超级计算机无一例外采用的都是Linux操作系统。

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

第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

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

如此良性循环下来,使得开源软件拥有以下四大关键性优势:

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

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

低成本:开源工作者大多都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。

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

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

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

我们从1965年开始讲起。当时,为了解决服务器的终端连接数量的限制和处理复杂计算的问题,贝尔实验室(Bell)、通用电气公司(GE)以及麻省理工学院(MIT)决定联手打造一款全新的操作系统—MULTICS(多任务信息与计算系统)。但由于开发过程不顺利,遇到了诸多阻碍,后期连资金也出现了短缺现象,最终在1969年,随着贝尔实验室的退出,MULTICS也终止了研发工作。而同年,MULTICS的开发人员Ken Thompson使用汇编语言编写出了一款新的系统内核,当时被同事戏称为UNICS(联合信息与计算系统),在贝尔实验室内广受欢迎。

1973年时,C语言之父Dennis M. Ritchie了解到UNICS系统并对其非常看好,但汇编语言有致命的缺点—需要针对每一台不同架构的服务器重新编写汇编语言代码,才能使其使用UNICS系统内核。这样不仅麻烦而且使用门槛极高。于是Dennis M. Ritchie便决定使用C语言重新编写一遍UNICS系统,让其具备更好的跨平台性,更适合被广泛普及。开源且免费的UNIX系统由此诞生。

但是在1979年,贝尔实验室的上级公司AT&T看到了UNIX系统的商业价值和潜力,不顾贝尔实验室的反对声音,依然坚决做出了对其商业化的决定,并在随后收回了版权,逐步限制UNIX系统源代码的自由传播,渴望将其转化成专利产品而大赚一笔。崇尚自由分享的黑客面对冷酷无情的资本力量心灰意冷,开源社区的技术分享热潮一度跌入谷底。此时,人们也不能再自由地享受科技成果了,一切都以商业为重。

第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

面对如此封闭的软件创作环境,著名的理想主义者黑客Richard Stallman在1983年发起了GNU源代码开放计划,并在1989年起草了著名的GPL许可证。他渴望建立起一个更加自由和开放的操作系统和社区。之所以称之为GNU,其实是有“GNU’s Not Unix!”的含义,这暗戳戳地鄙视了一下被商业化的UNIX系统。但是,想法和计划只停留在口头上是不够的,还需要落地才行,因此Richard便以当时现有的软件功能为蓝本,重新开发出了多款开源免费的好用工具。在1987年,GNU的愿景终于迎来突破,Richard和社区共同编写出了一款能够运行C语言代码的编译器—gcc(GNU C Compiler)。这使得人们可以免费地使用gcc编译器将自己编写的C语言代码编译成可执行文件,这在当时简直就是爆炸性的创新,开源社区生态犹如被打了一针催化剂,开始像磁铁一样吸纳全球的技术爱好者,这又进一步发展壮大了开源社区。随后的一段时间里,Emacs编辑器和bash解释器等重磅产品陆续亮相,一批批的技术爱好者也纷纷加入GNU源代码开放计划中来。

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

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


  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年,红帽(Red Hat)公司创始人Bob Young在Linux系统内核的基础之上,集成了众多的常用源代码和程序软件,随后发布了红帽操作系统并开始出售技术服务,这进一步推动了Linux系统的普及。1998年以后,随着GNU源代码开放计划和Linux系统的继续火热,以IBM和Intel为首的多家IT巨头企业开始大力推动开放源代码软件的发展,很多人认为这是一个重要转折点。2012年,红帽公司成为全球第一家年收入10亿美元的开源公司,后来是20亿、30亿……不断刷新纪录。

时至今日,Linux内核已经发展到7.0版本,衍生系统也有数百个版本之多,它们使用的都是Linus Torvalds开发维护的Linux系统内核。如今红帽公司不仅在开源领域中稳坐领导者的宝座,也成为Linux系统在商业化和技术推广上的领头羊。

0.5 常见的Linux系统版本

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

Linux系统内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、磁盘、文件系统控制及多任务功能的系统核心程序(第2章会有详细介绍)。

Linux发行套件则是人们常说的Linux操作系统,也就是由Linux内核与各种常用软件的集合产品。

全球大约有数百款的Linux系统,每个版本都有自己的特性和目标人群—有的主打稳定性和安全性,有的主打免费使用,还有的主要突出定制化强等特点,各有所长。

下面从用户的角度选出最热门的几款进行介绍。

Tips

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

红帽企业版系统(RHEL,RedHatEnterpriseLinux)

前文在介绍Linux系统的发展历史时,曾提到过红帽公司。作为全球知名的开源技术厂商,其产品值得我们放到第一位来介绍。红帽公司成立于1993年,于1998年在纳斯达克上市,自从1999年起陆续并购了包括JBoss中间件供应商、CentOS社区企业操作系统、Ceph企业级存储业务等在内的数十家高科技公司及热门产品,进一步强化了自己在行业中的领导地位。2019年,IBM怒砸340亿美元收购了红帽公司,从此Red Hat走上了软硬皆强的康庄大道。

RHEL首发于2002年3月,当年Dell、HP、Oracle以及IBM公司便纷纷表示支持该系统平台的硬件开发,因此红帽企业版Linux系统的市场份额在近20年时间内持续攀升。当前是全世界使用最广泛的Linux系统之一,在世界500强企业中,所有的航空公司、电信服务提供商、商业银行、医疗保健公司均无一例外地通过该系统向外提供服务。RHEL系统以卓越的稳定性著称,在全球范围内都可以获得完善的技术支持。

红帽企业版Linux系统当前的最新版本是RHEL 9,该系统也是本书和红帽认证考试中默认使用的操作系统,全新支持的GCC 13、Rust 1.71和LLVM 16,一定能让您有种耳目一新的感觉。

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


第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

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

顾名思义,CentOS是由开源社区研发和维护的一款企业级Linux操作系统,最为人广泛熟悉的标签就是“免费”。如果您问一个运维“老鸟”选择CentOS系统的理由,他绝对不会跟你说更安全或更稳定,而只是说两个字—免费!由于红帽企业版Linux是开源软件,任何人都有修改和创建衍生品的权利,因此CentOS便是将红帽企业版Linux中的收费功能通通去掉,然后将新系统重新编译后发布给用户免费使用的Linux系统。正是这一特性,让CentOS系统成功出圈,赢得百万级用户的支持。

由于CentOS是针对红帽企业版Linux进行修改后再发布的版本,因此不会针对它单独开发新功能,CentOS的版本号也是随红帽企业版Linux而变更。例如,CentOS 8.0对应的就是RHEL 8.0,CentOS 8.1对应的就是RHEL 8.1;以此类推。再就是,CentOS系统和RHEL系统的软件包互相通用。也就是说,如果工作中用的是RHEL,但是在安装某款软件时只找到了该软件的CentOS系统软件源,也是可以正常安装该软件的。

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

CentOS系统永远地停留在了8版本,老刘内心深处还是要感慨一下,2019年这一刻,或许才是收购CentOS项目本质的目的吧,资本的力量,哎!


第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

Fedora Linux

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

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


Rocky Linux

2021年,由原CentOS系统项目的联合创始人Gregory Kurtzer创立的Linux系统,作为对Red Hat停止CentOS项目的反击。这款系统是从RHEL衍生而来,旨在填补CentOS留下的空白,并重新回归到开源社区的运营模式,并承诺永久免费。用户可以从RHEL或CentOS无缝过渡到Rocky Linux,操作方式和软件包完全兼容,这一点尤其重要,因为它保证了企业用户在迁移到Rocky Linux后可以继续使用他们熟悉的环境和工具,无须重大改变。

此外,Rocky Linux承诺为每个版本提供长达10年的支持期限,确保企业用户能够长时间内稳定使用,无须频繁进行系统升级或更换,这对于寻求长期稳定性和安全性的企业尤为重要。把免费的系统做到收费的水平, 秉承对开源精神的信念,希望Rocky Linux能够从CentOS项目中浴火重生。


第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

Debian Linux

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

Debian系统具有很强的稳定性和安全性,并且提供了免费的基础支持,可以良好地适应各种硬件架构,以及提供近十万种不同的开源软件,在国外拥有很高的认可度和使用率。虽然Debian也是基于Linux内核,但是在实际操作中还是跟红帽公司的产品有一些差别,例如RHEL 8和RHEL 9分别使用Yum和DNF工具来安装软件,而Debian使用的则是APT工具。


Ubuntu Linux

Ubuntu是一款基于Debian的桌面Linux系统,以Debian为蓝本进行修改和衍生而来,发布周期为6个月。Ubuntu的中文音译为“乌班图”,这个词最初来自于非洲南部部落使用的祖鲁语,意思是“我的存在是因为大家的存在”,体现了一种谦卑、感恩的价值观,寓意非常好。

Ubuntu系统的第一个版本发布于2004年10月。2005年7月,Ubuntu基金会成立,Ubuntu后续不断增加开发分支,有了桌面版系统、服务器版系统和手机版系统。据调查,Ubuntu最高峰时的用户达到了10亿人。尽管Ubuntu基于Debian系统衍生而来,但会对系统进行深度化定制,因此两者之间的软件并不一定完全兼容。Ubuntu系统现在由Canonical公司提供商业技术支持,只要购买付费技术支持服务就能获得帮助,桌面版最长3年,服务器版最长5年。


Kali Linux

跟上面的呆萌大蜥蜴相比,Kali Linux的Logo似乎有点凶巴巴,一副不好惹的样子。这款系统一般是供黑客或安全人员使用的,能够以此为平台对网站进行渗透测试,通俗来讲就是能“攻击”网站。Kali Linux系统的前身名为BackTrack,其设计用途就是进行数字鉴识和渗透测试,内置有六百多款网站及系统的渗透测试软件,包括著名的网络扫描工具Nmap、数据包分析工具Wireshark和自动化注入工具sqlmap等。

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

Tips

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


第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

Gentoo Linux

Gentoo翻译为中文是“巴布亚企鹅”。终于找到一个跟Linux吉祥物—企鹅相关的名字了。巴布亚企鹅是企鹅家族中体型最大的物种之一,游泳时速最快可达36千米—多么灵活的胖子!

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


深度操作系统(deepin)

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

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


Tips

突然有一天,脑子里冒出个想法:“到底世界上有多少款现存的Linux系统版本呢?”

怀揣着这个问题,用了大约三个月的时间,做了个Linux系统大全网出来~希望对有类似好奇心的读者有帮助:https://www.linuxdown.com

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

另外,需要强调的是,现在国内很多Linux相关的图书都是基于CentOS系统编写的,作者大多也会给出围绕CentOS系统进行写作的一系列理由,但是很多理由都站不住脚,根本没有剖析到CentOS系统与RHEL系统的本质关系。CentOS系统是通过把RHEL系统释放出的程序源代码经过二次编译之后生成的一种衍生Linux系统,其命令操作和服务配置方法与RHEL完全相同,只是去掉了RHEL的一些收费功能,而且还不提供任何形式的技术支持,出现问题后只能由运维人员自己解决。再者,根据GNU GPL许可协议,我们同样也可以免费使用RHEL系统,甚至是修改其代码创建衍生产品。开源系统在自由程度上没有任何差异,更无关道德问题,请大家务必要辨别清楚。

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

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

0.6 优秀的RHEL 9系统

在2020年,当时RHEL 8 系统刚发布不久,一些原本不甚严重的bug被不断炒作,读者社群中对 RHEL 8 系统的质疑声渐起。为了消除学生的顾虑,我写下了这篇文章。时过境迁,五年后,大量数据中心已部署上了RHEL 8系统,国内外的银行和保险机构纷纷升级到新版本,云服务厂商都向用户提供了RHEL 8或CentOS 8系统。回顾过去,我的预测还是很准确的。

现在,我想继续引用这篇文章来帮助读者了解最新的RHEL 9系统,并相信这篇文章的观点和见解同样适用于未来的RHEL 10和RHEL 11系统。


在2022年,Red Hat公司推出了最新的红帽企业版 Linux 系统——RHEL 9。尽管国内外各大媒体都对此给予了极大的关注,行业内也满怀期待,但截至目前,RHEL 9 系统的市场占有率并未如预期般热烈,这使得有人开始对 RHEL 9 的未来表达担忧,甚至开始质疑开源厂商的前景,认为它们可能已经过了事业的高峰,要在服务器领域让步给 Windows 系统。这些话其实并没必要去反驳,任何一个产品都会有其拥趸和黑粉,时间会向所有人证明一切。我们现在只是来单纯地聊一聊这个RHEL 9系统。

在正式开聊之前,希望读者对Linux系统的特性和运维领域有基本的了解,知道Linux系统在服务器领域中占据着不可小觑的市场份额,认识到Red Hat厂商对Linux系统及整个开源行业的重要影响,更知道CentOS系统其实是RHEL系统的衍生品。如果您以前使用过一段时间的Linux系统,那么我们就更能顺畅地讨论“红帽RHEL 9系统是否是一个失败的产品”这个问题。

先来看一个烫手的热议问题:“为什么一年多过去了,RHEL 9系统的市场份额依然不温不火?要不要返回去学习老版本的Linux系统?”更有甚者,一些阴谋论者声称新版本的Linux系统被用作全球数据收集工具,告诫大家千万不要去碰。这个问题必须要回应,否则更多的阴谋论会层出不穷,甚至会让国内某些认知能力欠缺的媒体对开源行业产生误解。

基于前面提到的与读者共有的经验知识和篇幅限制,下面的论证速度会比较快,也会很有意思。首先,RHEL是企业版的服务器系统而不是用来玩耍折腾的桌面版系统,并不是能随意更换的,更何况作为桌面版系统的Windows 11在2021年11月5日发布之后,也整整用了2年才开始真正普及,难道在2021年到2023年间,Windows 11就是失败的产品吗?再者,RHEL 9系统创新式地集成了Docker虚拟化技术,支持XFS文件系统,兼容微软的身份管理,并采用systemd作为系统初始化进程,其性能和兼容性相较于之前版本都有了很大的改善,很明显是一款非常优秀的操作系统。最后,其实从纳入OpenStack、Docker、Cockpit以及Ansible等前沿技术的决策上来讲,就应该相信红帽公司的开发团队不是在闭门造车。应该重新思考到底是哪里出了问题。

当大家真正从事运维工作后,相信就能回答这个问题了。因为运维人员每天都在想:“现在的环境跑得好好的,为什么要换呢?”重新部署生产环境可不是说装上操作系统就万事大吉,也不是把软件随便安装上就能拍屁股走人的,每次升级都需要权衡可能带来的风险:

稳定性:日后的生产环境出了问题,谁来负责?

兼容性:新系统是否能与旧的软件兼容?

安全性:新的系统或软件是否有bug?安全性如何?

维护服务:之前购买的第三方技术支持是否可以具备相应的能力?

软件版权:升级后是否会影响到某些软件的版权,是否需要重新付费?

成本考虑:是否需要更换硬件来适应新系统,需要新添哪些设备?

用户体验:不习惯新系统带来的变化怎么办?

综合考虑:费力升级后对自己有什么好处?

再来看一个极端的例子。现在全国各地有几十万台ATM机,绝大部分使用的是Windows XP系统,但微软公司已经从2014年4月8日起停止对Windows XP进行任何的维护,甚至不再提供补丁服务。假设中国人民银行发布招标公告,想将ATM机的操作系统统一替换成Windows 12版本。现在我们敢不敢接这个活?如果接了,且不说旷日持久的升级和调试工作,也不提升级期间因业务关停带来的损失,就看一个小问题—用户在从升级后的ATM机上取钱时,如果有钞票多吐出来,这个责任该由谁承担?

当然,上面的情况非常极端,描述得也比较偏激,目的只是给大家举个例子,让没有工作经验的同学也能迅速明白“生产环境中的设备不要随便乱动”的道理。但这绝对不是说运维工作就是日常“丢锅”,不作为。在需要升级的时候,我们需要当机立断,采取行动,不能有一丝马虎。

Tips

2012年5月19日,在英国汉普郡利明顿附近的小镇Milford-on-Sea上,一台汇丰银行的ATM机在维护后发生故障,在顾客取款时会吐出双倍数额的现金。此消息不胫而走之后,总共有200名顾客取走现金,有的人甚至取走了数千英镑。“狂欢”总共持续了两个多小时,随后警方赶到现场,关闭了这台ATM机。

客观来讲,RHEL 9系统的改变都很大,最重要的是它们采用了systemd作为初始化进程,替换了很多原有的老命令。这样一来,几乎之前所有的运维自动化脚本都需要修改。那么,到底还要不要升级到新版本呢?当然,也不是说服务器机房中的生产环境从不更新换代。除了硬件更替外,当工作需求超过了当前软件版本的能力范围时,就必须要进行升级了。

比如,RHEL 8系统使用的Linux内核还是4.18版本,而现在最新的RHEL 9系统使用的内核版本已经是5.14,两个系统之间差了一个大版本号。再者,以前的系统安装软件时使用的是基于v3版本的Yum技术,技术滞后且效率低,而RHEL 9在安装软件时则使用的是DNF技术。DNF技术已经相当于Yum 4.x版本,其功能就有了巨大的差别。此外,RHEL 9系统最大支持24TB的物理内存,此前的系统整整翻了一倍。这些更新数不胜数,您现在还觉得会一直使用旧的版本吗?我们为读者总结了一个主要区别表格,更好的进行了对比:

功能领域 RHEL 8 RHEL 9
内核版本 Linux 4.18 Linux 5.14
GCC版本 GCC 8 GCC 11
Python版本 Python 3.6 Python 3.9
安全性 OpenSSL 1.1.1 OpenSSL 3.0
系统管理 基本的Cockpit支持 增强的Cockpit支持(Web界面更完善)
编程语言支持 较少的官方支持 增加了对Rust和Golang的支持
文件系统 XFS XFS+全面支持新特性
虚拟化技术 基础的KVM和OpenShift支持 增强的KVM和OpenShift集成
安全增强 基本的SELinux策略 增强的SELinux策略
自动化管理 Ansible基础集成 Ansible深度集成
存储技术 传统存储技术 支持最新NVMe-oF存储技术

总之,每次公开演讲我都强调同一个观点:“我们并不是因为开源而喜欢Linux,而是因为Linux系统真的非常优秀,开源精神仅仅是锦上添花而已。”我们在前文中已经狠狠地肯定了Linux系统对运维行业甚至是对世界的影响,大家要做的就是相信我对运维行业未来发展的判断,然后放手来学习吧。

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流学习请加读者群(推荐):https://www.linuxprobe.com/club

*本群特色:确保每一位群友都是《Linux就该这么学》的读者,答疑更有针对性,不定期领取定制礼品。

0.7 了解红帽认证

红帽公司(Red Hat, Inc.)成立于1993年,并总部设在美国,是全球首家年收入突破10亿美元的开源企业,其分支机构遍布全球。红帽公司作为全球领先的开源和Linux系统提供商,其产品已被业界广泛认可并使用,尤其是RHEL系统在业内拥有超高的Linux系统市场占有率。当前,红帽公司除了提供操作系统之外,还提供了虚拟化、中间件、应用程序、管理和面向服务架构的解决方案。

关注国际时事或炒股的同学一定很熟悉标准普尔500指数,在标准普尔公司选择的这500支股票中,由400支工业股票、20支运输业股票、40支公共事业股票以及40支金融业股票共同组成,它们联合反映了美国国家的经济情况。红帽公司曾是标准普尔500指数的成分股之一(代码:RHT),在2018年被IBM公司收购后退市,340亿美元的价格是当时科技行业最大的一笔收购案。

红帽认证是由红帽公司推出的Linux认证,该认证被认为是Linux行业乃至整个IT领域价值最高的认证之一。红帽认证考试全部采用上机形式,在考察学生基础理论能力的同时还考察了实践动手操作和排错能力。红帽公司针对红帽认证制定了完善的专业评估与认证标准,其认证主要包括红帽认证系统管理员(RHCSA)、红帽认证工程师(RHCE)与红帽认证架构师(RHCA)。

2014年6月10日,红帽公司在发布新版红帽企业版系统(RHEL 7)的当天即在红帽英文官网更新了其对培训政策的调整,原先的红帽认证技术专家(RHCT)被RHCSA替代,彻底退出历史舞台。考生只有先考试通过RHCSA认证后才能考取RHCE认证(一般是在一天的上下午分别完成)。

由于受到新冠肺炎疫情的影响,新版RHEL 9认证的发布时间足足推迟了一年,最终于2023年12月1日改版完成。新版的RHEL 9认证延续了RHCSA、RHCE、RHCA的阶梯架构,明确了考生不能跳级考试。这意味着只要取得了RHCA认证,就一定具备了RHCE和RHCSA认证所需的全部知识。

第0章 咱们先来谈谈学习方法和红帽系统。第0章 咱们先来谈谈学习方法和红帽系统。

 

红帽公司的认证体系采用独特的9位编码系统,由“考试年份-随机码-随机码”组成,编码具有唯一性,且会伴随证书持有人一生,即使后期再考下更高级别的红帽认证,该编码也不会变。红帽认证不仅是技术能力的象征,也是个人职业生涯的里程碑。

对于已经下定决心考取红帽认证的同学,还应该注意考试年份的问题。例如,刘遄老师的证书编码为120-128-491,说明这是在2012年考取的认证。假设一家公司的招聘人员,当前收到了两份简历,唯一的不同是,其中一人的证书编码是“120-xxx-xxx”,另一位是“250-xxx-xxx”。您会怎么选择呢?

有经验的招聘人员一定会选择120证书编码开头的应聘人员,因为他已经从业至少10年时间了。而这位以250证书编码开头的应聘人员,在2025全年里都会被当作新手来对待。很多读者想到自己也要经历一遍从新手到老手的痛苦的蜕变过程,都表示很扎心。总结来说,考取红帽认证最好的时间是10年前,其次是现在。

Tips

到底要不要考证?这个问题很难用一两句话讲清楚,如果没有下定决心就先不要纠结了,等学完本书后再做决定也不迟。

红帽RHCE 9认证的三门主要课程:RH124(系统管理基础)、RH134(高级系统管理技术)和RH294(Ansible自动化)。RH124涵盖了系统管理的基础知识,例如安装系统、用户管理、网络管理、远程管理以及软件管理等;RH134涉及Shell自动化脚本的编写、磁盘管理、计划任务、系统安全维护等;RH294主要介绍Ansible自动化管理工具的使用方法。本书将上述内容一网打尽,一个不漏。

红帽认证考试的形式为上机实操,且在一天内考完。上午的RHCSA认证的考试时长是3小时,对应的是RH124和RH134的课程内容,下午的RHCE认证的考试时长是4小时,对应的是RH294课程内容。两门考试的成绩通常会在考试结束后的72小时内公布。RHCSA和RHCE认证考试的满分均为300分,达到210分为合格,会连同成绩和电子证书发送到考试邮箱中。

RHCSA(红帽认证系统管理员)属于Linux系统的初级认证,主要考核对系统平台的管理能力,比较适合Linux爱好者。该认证要求考生对Linux系统有一定的了解,并且能够熟练使用Linux命令来完成以下任务:

熟练访问和使用命令行界面,是Linux系统管理的基础;

利用命令行高效管理文件和目录,包括文件的创建、查阅、编辑和删除;

掌握添加、删除和配置本地用户及群组的方法,以及实现权限控制;

监控和管理Linux进程,了解如何启动、停止、重启及调整进程优先级;

管理系统服务和守护进程,确保系统服务的正常运行;

使用文件系统的权限设置来控制对文件和目录的访问,以及管理SELinux安全策略;

分析和存储关键的系统日志文件,以监控系统活动和排除故障;

配置和保障OpenSSH服务的安全性,确保远程连接的安全;

熟练安装、更新和管理软件包,保持系统软件的最新状态;

管理Linux的文件系统和网络设置,确保数据的组织和网络连接的配置;

使用Kickstart来自动化红帽企业版Linux的安装过程;

创建和管理文件系统和逻辑卷,优化存储空间的利用;

设置和管理计划任务,自动化日常管理任务;

配置并控制防火墙设置,提升系统的网络安全性;

执行系统的故障排除任务,以快速恢复服务正常运行。

红帽认证管理员(RHCSA)证书示例

RHCE(红帽认证工程师)属于Linux系统的中级水平认证,主要考核对常见服务的部署和维护能力,相较于RHCSA认证来说难度更大,而且要求考生必须已获得RHCSA认证。RHCE 9版本认证与此前相比还有一个重要区别,那就是增加了Ansible的知识,而且每道考题都要求用Ansible自动化完成,其目的主要是让用户适应当前对自动化部署工作的需求。这部分内容原本应是顶级RHCA认证中DO407课程的知识。随着考试难度的增高,新版RHCE认证的含金量也越高。总之,RHCE认证适合有基础的Linux运维管理员,主要考察对下列服务的管理与配置能力:

安装、配置Ansible或红帽Ansible引擎;

管理托管主机列表,准备Ansible自动化;

执行单个ad hoc Ansible任务;

按照考题要求,编写一系列的Playbook剧本;

编写、参数化Ansible Playbooks,保护敏感数据使用Ansible Vault;

重用Ansible角色以简化剧本创建,重用代码;

执行红帽企业Linux系统管理任务的自动化。

红帽认证工程师(RHCE)证书示例

Tips

红帽RHCSA和RHCE认证考试在同一天举行,如果两门都通过则获得RHCSA与RHCE双重认证;如果仅RHCSA通过,而RHCE挂科,则可以获得RHCSA认证,在补考并通过RHCE认证后获得双认证;如果RHCSA挂科,而仅RHCE通过,则无认证证书,需要补考并通过RHCSA后方可获得RHCSA与RHCE双认证。

RHCA(红帽认证架构师)属于Linux系统的最高级别认证,是公认的Linux操作系统顶级认证,截至2024年,中国持有此认证的人数不到5000人。考生需要在获得RHCSA与RHCE认证后再通过5门课程的考试才能获得RHCA认证,因此难度最大,备考时间最长,费用也最高(考试费约在1.8万元~2.1万元人民币)。这些考试内容涵盖了红帽卫星服务、系统集群、虚拟化技术、性能调优及云系统管理等多个高级领域,考试费用在1.8至2.1万元人民币之间,体现了其高难度和专业价值。

下表为2024年最新版的RHCA考试课程。欲取得红帽RHCA认证,必须通过以下任意5门认证考试。

考试代码 认证名称
EX188 红帽容器专家认证考试
EX210 红帽云基础设施专家认证
EX240 红帽API管理专家认证
EX248 红帽企业应用服务器管理专家认证考试
EX260 红帽Ceph云存储专家认证考试
EX280 红帽认证OpenShift管理员考试
EX288 红帽认证OpenShift应用开发专家考试
EX316 红帽认证OpenShift虚拟化专家
EX318 红帽认证虚拟化专家
EX328 红帽构建弹性微服务专家认证考试
EX342 红帽Linux诊断与故障排除专家认证
EX358 红帽服务管理与自动化专家认证考试
EX362 红帽身份管理专家认证
EX370 红帽认证OpenShift数据基础专家考试
EX374 红帽使用Ansible自动化平台开发自动化的专家认证考试
EX380 红帽认证OpenShift自动化与集成专家考试
EX403 红帽部署与系统管理专家认证考试
EX415 红帽安全性:Linux专家认证考试
EX436 红帽高可用性集群专家认证考试
EX442 红帽Linux性能调优专家认证考试
EX457 红帽Ansible网络自动化专家认证考试
EX467 红帽管理Ansible自动化平台自动化的专家认证考试
EX480 红帽多集群管理专家认证考试

红帽认证架构师(RHCA)证书示例

Tips

红帽RHEL 9版本的RHCA认证依然需要至少通过5门考试,每门考试的内容完全不同,但均为210分合格(70%)。而且红帽公司非常注重RHCA认证的实用性,所以课程总是在随行业趋势而不断调整。

当您读到这里时,是否已经下定决心来学习Linux系统呢?

这本书名字叫做《Linux就该这么学》,基础篇除了本章节外总共还有20个技术章节,书籍基于最新的Linux系统编写而成,所有配套软件及资料均可通过www.LinuxProbe.com免费获取,而付费课程自愿报名。本书将会从零基础带领您入门Linux系统,然后渐进式提高内容难度,匹配生产环境对运维人员的要求。每章均配有丰富的图表、命令示例及课后习题,旨在增强学习兴趣并加深理解,阅读书籍过程中可以同步操作完所有的实验内容。最后,本书以及配套资源相较于当前红帽RHCE 9版本考试要求,至少要再多出50%的内容,陆续已有数千名学员通过学习本书成功取得认证,因此只要每天坚持学习,相信这绝对是体验最佳、进步最快的一次学习经历。

0.8 感谢你们相信并选择我

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

其次,感谢与我并肩作战的每一位团队成员,按照加入时间排列,他们是:逄增宝、张宏宇、张振宇、王浩、郭建鹏、倪家兴、姜显赫、张雄、吴向平、何云艳、冯瑞涛、向金平、吴康宁、姜传广、张建、杨斌斌、王华超、王婷、王艳敏、薛鹏旭、岳永、冯琪、黄烨婧、冯振华、唐资富、刘峰、王辉、苏西云、李帅、陶武杰、郝大发、郑帅、高军、华世发、王毅、任维国、周阳、程伟、任倩倩、朱培棋、周晓雪、张文祥、王健达。感谢你们相信我,为了共同的事业而奋勇向前,如果没有你们的帮助和支持,就不会有现在的成绩。在过去十年中,我们从一个每天只有十几人次访问的小博客,发展到现在每天将近六万人次访问的公众站点;在五年内更是接连开通了近60个QQ技术交流群,群内读者已超过二十万人;微信公众号也从0做到了40万粉丝,这些都是此前国内任何一本技术类图书没有达到的高度和成就。尤其在最近三年,发展速度远远领先于同行业所有的资讯网站和教育机构,优质的图书内容与读者口碑让我们走的每一步都如此扎实。现在可以很自豪地讲:“我们用努力留住了用户,用户看到了我们的付出。”

再次,感谢人民邮电出版社的傅道坤老师,是您在2015年底提出出版《Linux就该这么学》的想法,并帮助我们把书籍内容打磨到最佳,图书销量顺利突破十万余册,感谢您一直以来给予的信任和中肯实用的建议,一路陪伴到了第3版。感谢北京联合大学应用科技学院王廷梅教授在我攻读教育硕士研究生期间的专业指导和悉心培育,是您引导我步入了教育学和计算机科学与技术领域,不忘母校,不忘恩师。。

最后,更要感谢我的父母和妻子。当初我提出想写一本技术图书的时候,你们毫不犹豫地相信了我。感谢妻子能够理解我的压力,一起来协助管理在线培训班及招生工作,让我有了更多的时间来写作。如果没有你们的信任和陪伴,我不敢想象自己现在会是什么样子。

0.9 读者服务

本书是一本注重实用性的Linux技术自学图书,自电子版公布后日均阅读量近六万人次。本书以及后续的进阶篇图书将继续一如既往地免费、完整地提供给各位读者。当前,我们正在世界各地部署图书配套站点的镜像服务器,旨在用最快的网站响应速度满足您心中那个求知的小宇宙。此外,我们的团队成员在完善、更新本书内容以及配套软件的同时,还将为您收集、整理值得每天一看的“新闻资讯”和“技术干货”。当然,也欢迎到QQ技术群中寻找技术大牛!

新浪微博:https://www.weibo.com/linuxprobe

刘遄老师的个人新浪微博:https://weibo.com/liuchuan985

刘遄老师的个人知乎:https://www.zhihu.com/people/liuchuan985

微信公众号搜索“Linux就该这么学”或“LinuxProbe”,也可以直接扫一扫下面的二维码↓

而这一切的便利与服务,只差您现在的一个选择,赶紧拿起手机扫描下面的微信二维码吧。

本文原创地址:https://www.linuxprobe.com/learing-linux-00.html编辑:刘遄,审核员:暂无