龙蜥操作系统:又一个 Linux 操作系统?

2021-10-20
6分钟阅读时长

故事的开始

自从 CentOS 宣布 CentOS 8 将成为绝响,业界在一片叹息和抗议之后,纷纷易弦更张,寻找别的替代品。这之后,开源社区和业界对 CentOS Stream 的讨论并没有如预期的增加。除了偶尔成立的几个 Stream SIG 还能引来一些关注,很多人都已经将目光放到了其它的替代品上了,尤其是采用了兼容 RHEL/CentOS 技术路线的几个国内外 Linux 发行版,在很短的时间内就获得了快速发展和极大关注。

在这个形势之下,国内有几家以企业服务市场为目标的“新” Linux 发行版纷纷涌现。其实说“新”也不新,这些发行版大多沿袭自它们的发行商原本的企业内的定制分支,甚至有的发行版在 CentOS 停更之前就公开发布过。但说它们“新”是因为在新的机遇之下,这些发行版一改过去低调发展、克制迭代的风格,更主动地拥抱了市场和迭代新技术,并将其投放到更大的用户市场。

这里,我们要谈谈其中一个值得注意的企业级操作系统:龙蜥操作系统(Anolis OS)。作为由阿里巴巴所孵化出来,并迅速拥有了多家核心企业支持的 Linux 发行版,显然是很具有话题性和影响力的,也不可避免的会遇到一些争议和观察。为此,我带上问题和龙蜥社区的理事长马涛聊了聊关于龙蜥操作系统背后的那些事情。

磨一剑,需十年

龙蜥操作系统并不是一个凭空诞生的发行版,相反,龙蜥操作系统更像是阿里巴巴十年磨一剑的产物,也是阿里巴巴和以统信及三大运营商等为代表的多家企业的技术沉淀。

早在十年前,淘宝内核组就基于 Linux 内核打造了一个阿里云内部使用的 Linux 发行版。而随着阿里巴巴集团业务的扩大,淘宝内核组从过去只服务于淘宝内部,变成了如今的阿里云智能基础软件部,将过去只为阿里巴巴内部提供服务的技术,开放给了更广泛的开发者使用。也正是因为这样的变化,促成了龙蜥操作系统的诞生。

龙蜥操作系统最大的特色是除了社区多家生态企业的联合推动,还有不少来自阿里巴巴及其用户的多年技术实践的沉淀。

在系统安全方面,除了基于阿里云在网络安全领域的积累而做的操作系统层面的加固外,龙蜥操作系统还提供了基于 OpenSSL 衍生的 BabaSSL,为龙蜥操作系统提供了诸如国密算法、QUIC API 等特性。它还内置了首个机密计算开源容器 Inclavare Containers,后者刚刚被捐赠给 CNCF 基金会孵化。这样,在安全方面龙蜥操作系统从根本上奠定了解决可信、可控问题的基础。

在系统管理方面,龙蜥操作系统则提供了一个全栈覆盖内核与核心组件的跟踪和诊断工具 sysAK,增强龙蜥操作系统在系统层面和应用层面的可观测性和可靠性,让业务的监控和诊断更加简单易用。

此外, 还有 Java 虚拟机 Dragonwell、PolarDB、OceanBase等一系列阿里巴巴自研的技术,都可以在龙蜥操作系统中找到身影。

可以看出,阿里巴巴是想将龙蜥操作系统打造成一艘承载着阿里巴巴在 Linux 技术方面多年积淀的旗舰。

一个字,“稳”

对于龙蜥操作系统来说,稳定是第一要素。那就要看,龙蜥操作系统为何这么稳定?

得益于淘宝和阿里云多年的打磨,历经多年的双十一大促、阿里云流量暴涨等事件的打磨,如今的龙蜥操作系统在稳定这件事情上,做到了极致。

龙蜥操作系统,是在国家有关主管部委的指导下,以阿里云为牵头单位,联合统信软件等多家专业操作系统厂商、多家芯片厂商和大行业用户共同推出的。这意味着它的演进速度、演进场景完全不同。相比于传统的操作系统场景,龙蜥操作系统的演进往往是在各种大型流量和大量用户群的场景下催生的。

CentOS 主流版本与Anolis OS 衍生版宕机率对比 出处:阿里云

通过在真实的业务流量场景下运行龙蜥操作系统,并在发现问题后及时修复,将更新推送到最新的龙蜥操作系统。它背后的阿里云,为龙蜥操作系统的迭代和升级提供了海量的修复案例,帮助它在更多问题发生之前就将其解决掉。

如果我们将龙蜥操作系统和一些传统发行版的厂商相比,龙蜥操作系统更像是通过开源的范式来开发的一个操作系统:**通过将操作系统放在海量的应用场景和实战场景下,去尽可能多地发现问题、修复问题。**而传统发行版厂商则更像是发现一个问题,修复一个问题,见招拆招地处理问题。虽然也会有定期的修复升级,但发现问题的频率和对迭代的诉求,显然和拥有海量应用场景的龙蜥操作系统不同。

套壳还是换芯?

作为一个追求稳定的发行版,龙蜥操作系统成为 CentOS 转为 Stream 模式后的一个不可忽视的选择。也让 龙蜥操作系统成为了众矢之的:“既然宣称兼容 CentOS,那是不是就是 CentOS 套壳?”

我用这么一个尖锐的问题,来寻求马涛的答复。他没有顾左右而言他,直接了当地给出了他的答复:兼容不仅仅不是套壳,更是技术能力强的体现,并进一步解释到:兼容性并不是一句简单的大白话,背后包括了一整套兼容性分析体系,比如对语言运行时的分析、对系统参数和行为的分析、对内核的接口分析等等,是一个贯穿操作系统、从上到下的超级工程。另一方面,龙蜥操作系统是一个面向企业提供服务的发行版,稳定是第一要素。而对于目前的 CentOS 用户来说,我们如果无法提供对 CentOS **的兼容,又有哪个企业敢于选择龙蜥操作系统呢?**”

其实每一次提起国产的 Linux 发行版,难免都会提及“套壳”这个话题。也正好借着龙蜥操作系统的话题,来聊聊这个事情。

到底什么才是“套壳”?我们似乎一直都没有一个明确的定义,难道说用了 Linux 内核就是 Linux 的“套壳”么?显然不是的。那所有使用 RPM 包的发行版都是 CentOS “套壳”么?答案显然也是否定的。

其实从 Linux 的发行版的发展来看,所有的发行版几乎都可以称之为“套壳”,除了 Arch Linux 、Gentoo 等几个少数的发行版以外,大部分都在使用 Deb 、RPM 打包系统,很难跳出这两个包管理器的世界,难道说这世界上只有两个发行版么?

对于 Linux 发行版来说,我们如果真的要定义“套壳”,应该说那些是“基于某一个发行版,替换一下主题,更新一下软件,替换一些字眼”的发行版才是“套壳”,而我们看到的,像 SESL、openSUSE 之类的这些发行版,它们更多是延续社区的成功经验,沿袭 CentOS 既有的技术方向,但独立发展,独立迭代的独立发行版。

Anolis OS != Another Linux OS

所以,我们认为,龙蜥操作系统不是“又一个 Linux 操作系统”。一方面,这不是“又一个简单复制”,套个壳的 Linux 发行版;另一方面,龙蜥操作系统承载的也不仅仅是 Linux 操作系统,在其上还搭载着各种安全、容器、应用服务等最新技术,是一艘久经风浪的、稳定的不沉之舟。

花絮:我问马涛,到底龙蜥操作系统的英文名称 “Anolis OS” 是什么缩写?他说:Anolis is Not Only LInux System。嗯,这很 GNU(is Not Unix)!

支持,还是支持

CentOS Linux 的落幕,源自其失去了企业的支持,源自单方面的付出没有回报让企业失去了支持下去的勇气。而这个问题,其实对于任何一个发行版来说,都是存在的。龙蜥操作系统能够获得什么样的长期支持,才是它长期发展下去的原生动力。

就此问题,我对马涛进行了“逼问”,龙蜥操作系统可以承诺多少年的支持?

马涛给了我一个明确的承诺:10 年!