写点什么

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

2021 年 9 月 29 日

一款兼容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 操作系统以及内核相关会议上发表讲座。

2021 年 9 月 29 日 08:002959

评论

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

Android studio 在外置硬盘运行项目报.lock 的错误

三爻

flutter android Mac Android Studio

个推CTO谈数据中台(上):从要求、方法论到应用实践

个推

大数据 数据中台 数字化转型 数据智能

mPaaS 月度小报 | 应用上线前都应该检查哪些指标?CodeHub#5回顾:小程序容器加持下的技术架构“提质增效”

蚂蚁集团移动开发平台 mPaaS

小程序 mPaaS 移动开发平台

【LeetCode】包含min函数的栈Java题解

HQ数字卡

算法 LeetCode 6月日更

Python3 Note 函数注解

awen

Python Function 函数注解

Python3 Note 对象初始化

awen

Python 生命周期 对象初始化

六一限定,致每一个追光者

白洞计划

☕️【Java技术之旅】深入学习JIT编译器实现机制(原理篇)

李浩宇/Alex

Java 编译器 JIT 6月日更

Python3 Note __slots__

awen

Python slots

一文带你认识队列数据结构

华为云开发者社区

Java 数据结构 数组 队列

数字人民币有望为全球贸易结算开辟新视窗

CECBC区块链专委会

计算机视觉常用图像数据集标记平台

不脱发的程序猿

人工智能 计算机视觉 图像处理 图像数据集标记平台

“图发展”与“保安全”:大数据今后怎么玩?

CECBC区块链专委会

因为一个字符校对问题,我的大厂面试挂了

华为云开发者社区

MySQL 字符 字符校对 语句 MySQL5.7

安迈云首席战略官于晓晖:去中心化云计算构建Web3.0世界

DT极客

NUCLEO-L432KC实现GPIO控制(STM32L432KC)

不脱发的程序猿

嵌入式 stm32 单片机 NUCLEO-L432KC STM32L432KC

实现接口幂等性的四种方案!

我是阿沐

面试 编程之路 幂等性

GitHub上收录400余篇任正非的讲话稿

不脱发的程序猿

GitHub 开源 程序人生 任正非讲话

模块五总结

竹林七贤

用敏捷扑克做需求评审的3大优势,你get了吗?

LigaAI

高效工作 团队管理 产品思考

苏州源控电子科技怎么样?名副其实的行业新星

Geek_8a195c

从VMWare安装到Nginx配置

wildpig

nginx vmware Centos 7

净筹6亿美元:微盟正在加速拉开差距

ToB行业头条

SaaS 微盟

六一儿童节,看我用ModelArts让8090梦回童年

华为云开发者社区

美食 童年 modelarts AI开发 六一

BoCloud博云微服务平台3.0正式发布:让微服务转型路径更清晰

BoCloud博云

微服务

全球案例 | 一家财富500强公司利用 Jira 和 Jira Align 将万人级团队的生产力提高了 30%

Atlassian

管理 DevOps 敏捷 Jira 协同办公

基于Spring的Quartz任务调度框架扩展

leekeggs

Java 分布式任务调度 Quatz

webRTC探索音视频的录制的实现

云小梦

JavaScript WebRTC 浏览器API

人生算法:涌现,在自己身上发挥群体智慧

石云升

读书笔记 6月日更

智慧工厂VR拆解零件——3D虚实现实可视化系统

一只数据鲸鱼

数据可视化 工业互联网 vr 智慧工厂 零件拆解

工业制造业在数字化时代的三大发展方向

CECBC区块链专委会

开源中间件技术学习路线

开源中间件技术学习路线

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