Linux 激荡 30 年,我们是否还需要一个新的 Linux 发行版?

2021-09-06
7分钟阅读时长

从黑客玩具到席卷互联网

今年是 Linux 诞生 30 周年,我还依稀记得我在好多年前第一次接触 Linux 时,它还只是一个小众而新奇的操作系统。二十多年前,那时候 Windows 95 还在流行,IBM 的 OS/2 尚能见到影子,而不起眼的 Linux 还只是黑客们的一个新奇玩具。

似乎转瞬间,Linux 已经席卷了整个互联网,而与之伴生的开源也成为了主流的软件和信息行业的时髦法则。从最初计算机诞生时的开源文化,到 IBM、微软和甲骨文等商业软件企业所奉行的闭源,再到包括 IBM、微软在内软件巨头转身拥抱开源和 Linux,历史仿佛又走了一个轮回。

我用的第一个 Linux 发行版是 Slackware Linux,这最早的 Linux 发行版之一,而且也是最长寿的 Linux 发行版之一,至今仍在持续发展。我还记得第一次安装它时,由于要做双引导,结果因为当时所使用的引导程序 LILO 不能引导超过 1024 柱面的分区,因而在安装后首次重启时就刷了满屏的 0101010……,甚至看到没有一行有用的错误信息。而那时,虽然 Google 已经诞生,但是我还尚不知道它,所以面对这种情况,让人不知所措。

就是这样的一个玩具一样的操作系统,30 年来,经过无数人的努力,已经诞生了数百个分属不同系列的 Linux 发行版,并拥有数万自由及开源软件,林林总总,几乎肯定可以满足你的任何需求。

CentOS 大变局

作为一个从业互联网多年的技术人员,我几乎都是在使用 Linux 来作为软件基础设施。从早期的 RedHat Linux,到后来的 CentOS,它基本上是我用来部署服务器操作系统的不二选择。Linux 作为服务器操作系统,主要有两大系列:Debian/Ubuntu 系、CentOS/SUSE 系。不知道出于什么原因,国内在服务器端使用 CentOS、RHEL、SUSE 等红帽系的 Linux 发行版比较多。所以,无论是企业环境、云环境,还是系统运维工程师们,都对 CentOS 等红帽系的 Linux 青睐有加。

不过,意外总是在你意想不到的地方出现。

今年,作为 CentOS Linux 背后的支持者,红帽公司突然宣布,CentOS 将 终止既定的维护计划。 CentOS 8 原本计划维护 10 年, 一直支持到 2029 年 5 月 31 日,却将在今年年底停止支持。而它的上一个版本 CentOS 7 都能维护到 2024 年。

当然,我们理解红帽公司做出这样的决定的 原因,但是其后果就是,原本将产品建筑于具有 10 年维护期的 CentOS 8 的各个企业,纷纷发现他们面临一个严重的危机。这就是,当红帽不再提供免费的 CentOS 之后,其产品和服务底层的操作系统缺失了维护,将给其带来巨大的不确定性。

当然,也并不是没有解决方案。比如说,像 Facebook 这样的大组织,就可以基于 CentOS Stream 定制自己的 Linux 发行版来使用。又比如说,可以考虑购买/订阅红帽的 RHEL 商业服务。再比如说,可以迁移到 Debian/Ubuntu,乃至于 *BSD 上。但是,对于广大中小企业来说,这些选择都存在一定的阻碍。

因此,也有人站出来,秉承 CentOS 原本的宗旨,继续发行和维护一个类似 CentOS 的 Linux 发行版,比如说 Rocky LinuxAlma Linux 等等。虽然,目前这些替代品得到很多肯定,但是,就像被红帽收购之前的 CentOS 一样,谁也不知道这些替代品发行版及其支持服务能有多久。

还有更好的选择么?

我认为有。

其实,在 CentOS 停服之后,国内一些互联网大厂也纷纷考虑将自己原本自用的内部 Linux 发行版打造成公开可用的 Linux 发行版。但是,各家对此事的重视程度不同。我曾经开玩笑地点评过,有的是以战略的方式去打造,有的是按战术的方式去考虑,而有的可能只是以战斗级的规模去尝试。以上就知名不具了。我就说说,我对其中一个 Linux 发行版的认识吧,以及,为什么我认为它是一个更好的选择。

先揭晓我的答案,它就是欧拉(openEuler)操作系统

为什么欧拉是更好的选择?

欧拉可以更好的继承和兼容 CentOS 基础设施

欧拉最初发轫于华为内部的 Euler 操作系统,这是一个定制的 Linux 发行版。其采用和继承了红帽系的一些标志性技术,比如,它们都采用了相同的包管理系统(虽然据称欧拉也在考虑增加新的包管理系统),它们都采用了类似的文件系统布局和同一种安装程序等等。

因此,如果你现有的操作系统使用的是 CentOS ,那么迁移到 欧拉 还是比较轻松的,而且,欧拉还提供了专门的迁移向导程序。

旁注:欧拉 是 CentOS 的下游发行版吗?

可能社区存在一些认识误区,认为欧拉就是基于 CentOS Linux 衍生,并在此基础上定制的。不是。欧拉与 CentOS 的关系,类似于 openSUSE 和 CentOS 的关系,即采用类似的包管理系统和文件系统布局;而不是类似 Oracle Linux 和 CentOS 的关系,即替换和增补部分组件和内核的方式。

结论:欧拉是一个沿袭了红帽系的技术和惯例,但是独立发展的 Linux 发行版。

牵一发而动全身,欧拉已经成为华为的技术基座

就像前面说的,市面上并不乏类似于 CentOS 的发行版,但是,并不能给人以充足的信心。我们知道,开发并维护一个 Linux 发行版,其投入非常大,而且持续的维护也很辛苦。这一点可以从其他几个主要 Linux 发行版的情况可以看出来,有的 Linux 发行版供应商几年来多次卖身、有的转向以云服务为重心、有的几年才能推出一个重大版本。

而据我了解,欧拉在推出伊始,就得到了华为的鼎力支持,不但投入了华为操作系统实验室的技术高手,而且在产品、资金、宣传和人员方面也不吝投入。或许你觉得这只是宣传,但我觉得有一些事例可见一斑:欧拉在推出不久就拥有了诸多下游发行版,比如 UOS(原深度 Linux)、麒麟,甚至连 SUSE 都基于欧拉推出了下游发行版。试想,如果这些发行版认为欧拉只是昙花一现的 KPI 项目,它们会押注欧拉吗?

既然如此,那我就对欧拉能得到持续而稳定的投入和支持拥有信心。所以,是否采用欧拉作为你的基础设施,想必你也有一个判断了吧?

欧拉有丰富而庞大的支持社区和支持企业

说实话,作为一个浸淫 Linux 开源圈子多年的技术人,我这些年见惯了技术社区的起起落落。但是我从来没见过一个技术社区能如欧拉社区一样迅速崛起并壮大。2019 年底,华为正式开源了欧拉操作系统,邀请社区开发者共同来贡献。才仅仅一年半后,截止到 2021 年 9 月,欧拉社区 就已经拥有了 14 万社区用户,6 千多名社区贡献者,8 千多款社区软件,91 个特别兴趣组(SIG)以及 9 个下游的商业发行版。不仅如此,欧拉还在操作系统之外,开源了虚拟化平台 StratoVirt、容器引擎 iSula 等重量级软件。

所以,有这么庞大的支持社区和这么多的生态企业,你觉得需要担心支持吗?

为什么我们还需要一个独立的 Linux 发行版?

我们可以看到,虽然现在的 Linux 发行版不少,但是真正能在企业级使用并不多。而以前,这些企业级的 Linux 操作系统往往是由国外的企业进行支持的。我们说,开源是无国界的,但是企业是有国界的,谁也不敢保证企业是否会受制于某个国家的法案而终止服务。因此,有一个国产的 Linux 发行版供应商至关重要。

这些年来,中国已经有一些 Linux 发行版供应商。如今,在国家的持续支持下,它们也得到了不同程度的发展。不过,相对于中国迅猛发展的信息技术基础设施,我们还需要更多、更有力的企业和社区的支持。此外,考虑到中国对芯片产业的迫切需求,我们也需要有一个符合中国发展的独立 Linux 发行版来更好的支持这些国产的芯片和指令集。

虽然在企业运维中或多或少会使用英语等外语,但是就国内普遍的运维群体而言,对英语的娴熟使用程度上尚有较大的欠缺,因此,这就需要有一个具有更熟悉的语言环境的本土技术社区,才能真正促进国内运维技术人群的发展。当然,这并不是说我们只采用中文,而是会在满足中文沟通和支持的基础上,立足国际化,让源于中国的 Linux 发行版走向世界。

而在这方面,欧拉已经做了一系列工作:

比如,对多种计算架构的支持。典型的,Linux 都会支持不同的技术架构,这包括 x86、ARM 等等。而国内诸多发力于处理器芯片的厂家也打造出了林林总总的不同特性的芯片,但是这些芯片要得到主流操作系统的支持,则需要更广泛的认可和漫长的时间。如今的欧拉不但可以完美的运行在华为自家的鲲鹏处理器上,更是可以支撑国内多家的 ARM 服务器。作为一个拥有多家下游商业发行版的 Linux 操作系统,如果能在欧拉上得到适配支持,无异于可以在更广泛的用户群体里提供对国产芯片的直接支持。

再比如,对新技术需求的支持。近些年各种新技术层出不穷,如云边端融合、以新的容器技术为代表的云原生计算等等。这些都迫切需要在操作系统层面得到支持,由操作系统提供一个创新的平台,才能够给这些新的技术突破提供成长的土壤。欧拉首先是一个 Linux 操作系统,但是它也是一个孵化新技术的“Apache 基金会”,在欧拉之上,已经有可以运行于多种边缘设备的容器引擎 iSula、相对 QEMU 资源占用减少了 80% 的 StratoVirt 等等新技术。

结语

回到我们最初的问题,30 年过去了,我们还需要一个新的 Linux 发行版吗?我的答案是,需要。而且,我们已经提交了一份正在不断丰满的蓝图。