最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

一款兼容 CentOS 生态的双内核开源操作系统长什么样?| DIVE 基础软件大会专访

  • 2021-09-29
  • 本文字数:4076 字

    阅读完需:约 13 分钟

一款兼容CentOS生态的双内核开源操作系统长什么样?| DIVE 基础软件大会专访

嘉宾 | 阿里云研究员、阿里巴巴集团内核团队创始人之一马涛

作者 | 赵钰莹


如果说过去一年操作系统领域有什么值得关注的大事件,无非是 Red Hat 单方面宣布将在 2021 年结束对 CentOS 8 的支持以及 eBPF 基金会正式成立,前者让用户开始尝试寻找合适的系统进行切换,后者让 Linux 内核“可编程”,这两件事情对全球操作系统的发展都带来了一定影响。本文,InfoQ 有幸采访到了【DIVE全球基础软件创新大会2021】联席主席、阿里云研究员、阿里巴巴集团内核团队创始人之一马涛,听他分享云原生时代的操作系统有哪些值得关注的变化。

CentOS 8 即将停服,能做点什么?


去年 12 月份,Red Hat 单方面宣布将在 2021 年底结束 CentOS 8 的生命周期,虽然这只是商业公司做出的一个商业决定,但对所有做操作系统的人而言都是巨大的空间,及时解决用户在 CentOS 退出后可能面临的风险成为了操作系统厂商和研发人员努力的方向。

 

当然这件事情也并不是那么好做的。要知道,CentOS 近年来一直占据主导地位。2018 年的相关调查显示,使用 CentOS 的用户占受访者的 39%,而 Ubuntu 为 35%。CentOS 份额在 2019 年增加到 40%,Ubuntu 仍然位居第二,为 35%。2020 年市场发生了翻天覆地的变化,随着 Ubuntu 上升至 40%,CentOS 下降至 28%。根据W3techs数据显示,目前 10.5%的受访者选择 CentOS, 选择 Ubuntu 占 33.4%,而选择 RHEL 的仅 0.9%。

 

虽然停服不意味着系统会一夜崩溃,但未来需要承担很大的安全风险,迁移成为众多开发者的选择。在实践中,迁移可能遇到的问题太多了,比如内核、内部策略合规性或者其他原因,这一切都会在迁移过程中造成负面影响。思来想去,做了十余年操作系统的马涛决定做点什么。

龙蜥 Anolis OS:双内核,全兼容

 

“我在阿里做了 10 年操作系统,整个时间段还是挺长的。”

 

十年前,阿里内部开始研发自己的操作系统,主要是为了解决当时阿里内部遇到的一些问题,对内核以及操作系统的关键组件都做了一些修改;2017 年开始,整个团队开始考虑如何将这些成熟的经验传递给更多人,可以让更多人用起来,此时阿里开始通过 Alibaba Cloud Linux 对外输出相关经验;2020 年,OpenAnolis 龙蜥操作系统开源社区成立,联合阿里、统信在内的众多理事和成员协同发布了开源操作系统龙蜥(Anolis)OS,并引入了双内核解决方案,可以让各行业客户按照各自应用场景有选择地切换内核版本。

 

在龙蜥操作系统(Anolis OS)尚未完全面世之前,笔者已经了解到这会是一款完全兼容 CentOS 生态的操作系统,这种兼容对用户而言不仅仅是一个承诺,可以让用户放心地将所有业务迁移到其上,也体现了社区的技术实力,诸如兼容性规范以及兼容性检测工具的实现需要社区做大量的工作。

 

具体到实现层面,龙蜥操作系统(Anolis OS)搭载了两种不同版本的内核,分别是 RHCK 和 ANCK。其中,RHCK 与 CentOS 8 内核同源,并会做到版本的同步迭代更新,该内核已经被 CentOS 用户认可,其稳定性得到充分验证。

 

这种双内核方案的意义也非常明了。一般情况下,操作系统会有一个主内核,升级时可能会更换内核,双内核方案的好处在于对用户而言是双重承诺。对在意老特性又想尝鲜的用户来说,第一个内核可以完整接管之前的特性,第二个内核则加入更多创新点,尝鲜的同时又不需要承担过高的风险。

 

OpenAnolis 龙蜥社区:https://openanolis.cn

 

为了让整个社区的运转更加有序,OpenAnolis 龙蜥社区(下文统一称龙蜥社区)还设置了理事会、技术委员会、运营委员会等组织。其中,理事会主要负责整个社区的决策和活动宣讲。技术委员会是社区的技术领导机构,运营委员会则主要负责社区的运营。此外,社区还设立了众多 SIG 组,可以通过社区官网进行查看,所有 SIG 组对全球开发者开放,可自由通过邮箱进行申请。

 

本着开源开放的原则,过去一段时间,越来越多的生态伙伴加入龙蜥社区,这其中有操作系统、芯片以及云计算厂家,他们共同在龙蜥社区中积极打造原生开源操作系统发行版,兼容国际主流 Linux 厂商,支持多种硬件架构,不仅为 CentOS 等开发者提供更多选择,同时联手打造一个面向未来的开源操作系统。

 

在这个面向未来的版图中,云原生对操作系统的影响不容忽视,整个 Linux 社区在这种大趋势下也在不断演进,这也给龙蜥社区很多启发。做一个开源项目活一阵子很容易,活几十年却不是件易事,这几十年不仅要被开发者认可,能稳定支持业务系统,还需要抓得住技术演进的趋势,云原生当然是目前最不容忽视的那一个。

 

云原生时代的国产操作系统有何不同?

 

此前,马涛也曾写过一篇文章详细介绍了云原生时代操作系统的变化。简单来说,2000 年左右,VMware 和 Xen 虚拟化技术相继出现,操作系统通过将物理资源虚拟化达到提高资源利用率和灵活调度的目的,最终催生了云计算的诞生。早期的 AWS、阿里云都是利用这一技术提供虚拟主机的服务。但这显然还不是云原生。这些云厂商大都是在线下硬件上实现一个虚拟化层(hypervisor),把原来直接操控硬件的操作系统架到 hypervisor 上运行,然后服务器物理资源层面的抽象和管理都由 hypervisor 重新实现。这些事情线下也绝对可以做,显然这不符合云原生的定义。虽说这是云的开端,但这不是云原生的。

 

2013 年,操作系统和云的第二次亲密接触源于容器的诞生和发展。与虚拟机的服务器资源虚拟化不同,容器是操作系统虚拟化,在技术栈上上升了一层——通过内核里实现的 cgroup 和 namespace 等技术为不同应用提供轻量、隔离的运行环境。2013 年,Docker 横空出世,使得应用容器的打包分发变得非常简单易用,随后 K8s 等容器编排技术出现,容器生态系统得到了快速普及和发展,容器迅速成为应用打包分发和开发测试的主流形态,逐渐成为云计算的主要运行单元。

 

这就是 CNCF 定义的云原生,但它只是“狭义”的,操作系统在这个“狭义”云原生中起到了很大的作用,但其实它并不是真正意义上的“因云而生”,也没有在云上体现任何革命性的技术革新。

 

容器在安全方面的不足在云上成为了一个大问题。一方面传统的操作系统对于容器之间的干扰问题没有很好的解决方案,另一方面容器之间还存在彼此攻击,共享一些关键资源等非常严重的安全问题。机会总是留给有准备的人,此时的操作系统终于需要因云而变、为云演进。阿里云基于操作系统实现了轻量级虚拟化和应用内核等技术,打造了一种全新的安全的容器,称之为安全沙箱容器。

 

沙箱容器在解决容器安全隔离问题的同时,仍然保留容器完整的技术生态和体验,可以跟普通容器无缝的混合使用。这是操作系统在容器场景上因云而生的一个重要演进,至此操作系统完成了“因云而生”的漂亮转型,成为一个云原生操作系统。     

 

如果说在容器和 K8S 时代操作系统是“因云而演进”,那么到了 Serverless 时代,则要彻底创造出一个全新的云原生操作系统。通过底层系统全栈技术的协同融合,为云原生平台和应用提供高效和创新的云原生系统服务。这次变革和创新的力度对于传统操作系统而言是前所未有的。

 

就这样,我们看到了龙蜥操作系统(Anolis OS)的出现,虽然全兼容 CentOS 让开发者对这款操作系统印象深刻,但真正面向未来整个云原生时代的演进才最为让人兴奋,这也是保证这款操作系统未来可持续演进的重要一步。

 

从另一个角度来看,对于整个国产操作系统的发展来说,目前比较严峻的问题是人才缺口较大。一方面人才的培养需要全社会的共同努力,另一方面也可以通过一些方式降低操作系统的研发门槛,让越来越多的开发者参与其中,云原生可以降低参与门槛,eBPF 则可以有效提高内核开发人员的效率,从而让有限的开发者有更多精力投入到更有价值的事情中。

为什么 eBPF 突然火了?

 

美东时间 2021 年 8 月 12 日,Google、Microsoft、Isovalent、Facebook 和 Netflix 联合宣布,由 Linux 基金会主办,在其旗下成立一个新的非营利性组织 eBPF 基金会。致力于更好的推动开源项目 eBPF 的发展,支持 Linux 和其他开源技术的商业增长。

 

为什么 eBPF 突然之间受到如此多开发者的关注呢?最主要还是其让 Linux 内核“可编程”。过去,如果一个应用程序需要内核提供某些功能,通常的做法是先反馈给社区,社区内部进行讨论才有可能进入 Linux 内核,整个过程非常漫长,少则半年多则一年,进入内核也不代表用户可以立刻用到,还需要厂商将改动更新到自己的内核上。在 eBPF 的帮助下,整个时间大幅缩短至两到三个星期,极大加快了开发人员对内核的贡献速度。

 

这也在一定程度上反映出 Linux 社区的持续演进,即便 Linux 已经发展了 30 年,但技术仍在不断更新,无论是 eBPF 还是存储、网络层面,Linux 社区都在持续吸收新的想法。

 

然而,即便我们已经看到了诸如龙蜥社区这样的组织正在积极推进国产操作系统的发展,很多用户对这个领域的感知依旧停留在“大公司不做,做的公司都不大”的层面,这可能是因为很多人还没有开始真正了解社区在做的事情,也可能是因为操作系统领域的部分开发者还散落在世界各处未形成合力。

 

不可否认的是,操作系统正在急剧升温,而社区是开发者们与志同道合之人畅所欲言的最佳场合,共同决定一款诸如龙蜥操作系统(Anolis OS)这样一个操作系统的发展方向,然后用它来承载每一个应用场景,想想就是一件蛮酷的事情。

 

为了给广大操作系统领域开发者一个见面的机会,InfoQ 决定于 11 月 26 日至 11 月 27 日在北京悠唐皇冠假日酒店举办【DIVE 全球基础软件创新大会 2021】,马涛作为本届大会的联席主席也可能出现在会场与大家共同交流,本次大会也特别设置了【操作系统研发实践】专场,由清华大学计算机系副教授陈渝担任出品人,希望和大家一起通过半天的交流走进国产操作系统的研发背后,深入了解其研发难点及最新进展。

 

议题提交页面:https://dive.infoq.cn/2021/beijing/track/1208

大会报名页面:https://dive.infoq.cn/2021/beijing/apply

 

专家介绍:

 

马涛,阿里云研究员、阿里巴巴集团内核团队创始人之一、阿里云基础软件部操作系统负责人。先后在 ORACLE、阿里巴巴负责 Linux 以及操作系统内核相关的研发工作。十六年操作系统和内核相关研发经验,国内知名 Linux 内核研发人员,在文件系统、内存管理、通用块设备层等方面均有深厚的积累,多次受邀在国内外知名 Linux 操作系统以及内核相关会议上发表讲座。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-09-29 08:004003

评论

发布
暂无评论
发现更多内容

【Go实现】实践GoF的23种设计模式:工厂方法模式

元闰子

Go 设计模式 工厂方法模式

如何在你的 wordpress 网站中添加搜索框?

海拥(haiyong.site)

WordPress 5月月更

百尺竿头更进一步丨拓展 Amazon Aurora 的读写能力之 Gaea 篇

亚马逊云科技 (Amazon Web Services)

Amazon 环境搭建

深入剖析 | snowflake算法

九叔(高翔龙)

算法 雪花算法 uuid 全局唯一ID snowflake

Docker下Java文件上传服务三部曲之三

程序员欣宸

Java Docker 5月月更

单片机上常用-GB2312、GBK汉字取模与字库偏移地址的计算与汉字描点

DS小龙哥

5月月更

模块六:作业

本人法海

「架构实战营」

滑动窗口

工程师日月

算法 5月月更

程序员如何保证自己开发的正确性——测试开发有感

Bruce Talk

技术 敏捷 TDD Agile

后端开发【一大波干货知识】Redis中的IO多线程(线程池)

C++后台开发

redis 多线程 线程池 后端开发 C++后台开发

python小知识-python 函数二三事

AIWeker

Python 5月月更

Kubectl-ice 插件展示集群容器配置信息更强大、更便捷

Marionxue

kubectl插件 kubectl-ice 容器配置

SAP UI5 OData V4 模型的构造方式

Jerry Wang

JavaScript 前端 SAP ui5 5月月更

设计者模式之装饰者模式

乌龟哥哥

5月月更

【LeetCode】在长度 2N 的数组中找出重复 N 次的元素Java题解

Albert

LeetCode 5月月更

全链路压测(十三):高可用和性能优化

老张

性能测试 全链路压测 稳定性保障

Linux环境编译多个C程序文件

Loken

音视频 5月月更

跨平台应用开发进阶(十) :uni-app 实现数据存储、获取和删除

No Silver Bullet

uni-app 数据存储 5月月更 全局

跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app Andriod 极光推送 5月月更 本地打包

拆分电商系统为微服务

Dean.Zhang

Amazon MSK Serverless 现已正式推出,无需再为托管式 Kafka 集群进行容量规划

亚马逊云科技 (Amazon Web Services)

kafka Serverless

自学历程 小甲鱼Python

万里无云万里天

Python

【刷题第15天】剑指 Offer 09. 用两个栈实现队列

白日梦

5月月更

八、浅谈云原生监控

穿过生命散发芬芳

云原生 5月月更

模块6作业提交

KennyQ

druid源码学习十

Nick

Apache Druid

【Meetup 预告】OpenMLDB x DolphinScheduler 链接特征工程与调度环节,打造端到端 MLOps 工作流

第四范式开发者社区

人工智能 机器学习 数据库 调度 特征工程

区块链技术已站上真正意义的风口,如何把握?

CECBC

实现compact table command

Asha

Tech Talk 活动回顾|化“被动”为“主动”,如何构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

产品 安全 解决方案

Amazon Personalize 个性化效果评估,从准确性到多样性、新颖性和偶然性

亚马逊云科技 (Amazon Web Services)

Amazon 模型

一款兼容CentOS生态的双内核开源操作系统长什么样?| DIVE 基础软件大会专访_文化 & 方法_赵钰莹_InfoQ精选文章