编者按:本文整理自「云栖大会龙蜥专场论坛」的技术分享。作者马涛,龙蜥社区理事长。另龙蜥专场视频已经上线至龙蜥官网(官网首页-支持-视频),欢迎观看。
摘要:
希望通过本次演讲,让大家更深入了解龙蜥社区。进一步的述说龙蜥社区的具体工作,是如何通过技术创新助推产业新发展的。分享人:马涛,龙蜥社区理事长、阿里云研究员、阿里内核团队创始人之一、阿里云基础软件部操作系统负责人。
正文:
本篇内容将从 4 个部分为读者解读龙蜥操作系统开源社区,通过详细介绍构建龙蜥社区的组成部分、具体工作让读者有更深入的了解。
- 龙蜥社区成立初衷与愿景
- 构建龙蜥社区需要有哪些重要的组成部分?
- 龙蜥社区持续演进的旺盛生命力
- 技术创新助推产业新发展
大家好!我是马涛,自从 2006 年就开始做操作系统,到今年已经 15 个年头了,今天我想以龙蜥社区理事长的身份和大家一起聊聊龙蜥的创新以及这些创新是如何推动产业的创新和发展的。
一、龙蜥社区成立初衷与愿景
首先,大家知道龙蜥的全称叫做龙蜥操作系统开源社区,所以这里面有两个比较核心的关键词,一个是操作系统,一个是开源。
操作系统是基础软件的一种,操作系统的发展对于软件的生态和 IT 产业升级来说都是非常重要的事情,如果没有微软发布了 Windows,现在在 PC 端的很多应用,包括应用产业的生态发展,是不可能存在的。如果没有苹果发布 iOS 或者谷歌发布安卓,我们是没办法看到手机生态百花齐放的。
再说回开源,自 1991 年 Linux 诞生开始,开源在技术软件、系统软件、软件生态的发展中起到非常关键的作用。开源软件引领和推动了 IT 产业的发展,国内的开源发展也如火如荼。统信从 deepin 开始已经在操作系统耕耘了很多年,中科方德、万里红、红旗也各有自己的优势开源产品和项目,阿里云也一直在开源领域持续输出。于是,大家一拍即合,计划成立一个操作系统的开源社区,一起在中国做一个好的操作系统开源社区,群策群力推动高质量的开源发展。
二、构建龙蜥社区需要有哪些重要的组成部分?
有了初衷之后,我们如何打造一个好的社区?需要哪些重要的组成部分?我认为这是一个由内到外,逐步突破的过程,有四层比较重要。
1、开放创新。为什么提开放和创新?开放是龙蜥社区所有参与者群策群力一起做一件事的最重要的基础,这也是社区持续健康发展的重要基石。没有开放就没有社区存在的价值,皮之不存毛将焉附。创新是社区持续发展的源动力,没有创新社区就失去了动力,如果把龙蜥比喻成一个汽车的话,创新能力就是社区非常重要的引擎,没有引擎就会半路抛锚。
2、生态共建。所有成熟的优秀的开源社区和开源软件都会具备一个非常成熟的生态,生态的繁荣是一个社区能够存活的标志,所以希望龙蜥社区有一个非常开放的共享生态,所有的厂商一起在里面共建、共享。就像我前面提到的 Windows 和安卓之所以生命力强大,也是因为有着非常健康的生态发展。
3、商业循环。目前龙蜥社区有 14 家理事单位,这 14 家理事单位都是企业,所有的企业都需要找到自己参与龙蜥社区的开源和生态的商业双循环,因为只有形成非常良好的循环,我们才能找到社区持续发展的动力,同时也能找到公司盈利的好方式,实现双赢。
4、产业发展。操作系统的发展能够推动整体的产业发展,龙蜥社区也是希望通过操作系统的演进去推动 IT 产业的升级和发展,通过给用户带来技术创新,最终实现全产业链的升级发展。
三、龙蜥社区持续演进的旺盛生命力
说实话,去年刚成立龙蜥社区的时候,我的内心是非常忐忑的。但随着理事会的成立以及各个社区版本的按期发布,整个社区真的是在持续进步的,事实证明龙蜥社区是具有持续进化能力的,整个社区目前按照非常良好的节奏在持续向前演进。
这里我想讲一个非常有体感的事情,就是成立龙芯 SIG 小组,并且在小组工程师指导下,发布基于龙芯 CPU 的龙蜥预览版。这件事非常好的体现了龙蜥社区合作精神,为什么这么说呢?举个例子,在龙芯版本发布过程中遇到了一个叫 libxcrypt 的包,它编译出来的版本和 X86、ARM 版本的 SO 是不一样的。龙蜥社区有一个重要的点就是想做同源异构,这种情况下还是要感谢中科方德公司的同学第一时间提出问题,并不断提高问题优先级,于是社区为这么一个小小的包专门开了好几次会议讨论如何解决这个问题,最终在社区所有成员,尤其是统信软件技术同学的努力下,把这个问题解决了。实际上,我们在发布基于龙芯的龙蜥预览版本时,遇到了很多类似这样的问题,所有社区成员一起来解决问题。以小见大,龙蜥社区的 14 家理事以及 40 多家合作伙伴有团结协作的能力把龙蜥社区发展下去,能够做出具有竞争力的操作系统版本。
四、技术创新助推产业新发展
龙蜥社区秉承同源异构的思想,已支持 Intel、海光、兆芯、ARM、鲲鹏,包括龙蜥最新的 LoongArch 体系结构 CPU,均实现了比较完整的支持。随着支持龙芯版本的发布,我们终于做到了龙蜥对于多芯的全面支持,同时我们还做到了统一和开放的架构,构建了从底层芯片到操作系统、语言层面到全栈的完整生态,并且实现了真正的共建共享社区合作。
开放和创新是龙蜥社区发展的非常重要的内核。除了一云多芯、一个 OS 多个芯片支持之外,龙蜥社区还做了哪些工作呢?挑重点给大家汇报一下:
1、安全创新
为什么重点提安全呢?在很多场合下,安全都是一个非常重要的点。举两个例子说一下社区在做的安全方面的创新。
第一个是国密软件栈。去年龙蜥社区在 Linux 内核加入了国密算法和支持,同时也有一个 BabaSSL 可以用于密码学库,包括对上层应用整个进行全栈生态的国密支持。希望在所有社区用户面对密码学相关体系结构或者是基础设施层面时做到全面支持。
第二个是云原生机密计算。机密计算是一个全新的领域,其中最重要的点是,如何保障用户数据在运行态的时候不会受到其他用户的偷窥,这涉及从硬件到软件的全栈支持。一方面,我们基于 intelSGX 的技术,还有 AMD 和 ARM 也有类似的技术,可以提供硬件内存式的加密技术。另一方面,构建了 Inclavare Containers 的机密计算容器运行时软件项目,希望构建全栈的机密方案提供给社区所有用户。同时,我们也把 Inclavare Containers 捐献给了 CNCF 基金会,希望成为未来云原生领域的标准,推动国际上云原生机密计算的发展。
2、系统创新
系统创新也是非常重要的,主要从以下 3 个方面讲述:
(1)智能系统优化 KeenTune。操作系统中有一个很重要的工作,就是要解决应用层在操作系统跑的过程中遇到的问题。如何去解决这些问题?内核、系统及应用有几千个上万个参数,这些参数如何调优?这对于普通应用开发者、应用研发人员、系统管理人员来说,都是一件非常有挑战的事情,这也是我们做 KeenTune 智能系统优化工具的原因。测试下来,KeenTune 在某些场景下给系统调优可以达到数倍或者数十倍以上的提升。详细将由后续技术同学展开。
(2)全栈系统运维利器sysAK(SystemAnalyseKit)。操作系统的位置是非常关键的,但出问题的时候排查也是非常困难的。因为操作系统涉及的组件非常多,同时也会涉及到的一些模块、内核参数。发生故障的时候,诊断排查的东西也是非常多的,这也是为什么需要有个工具集来解决这个问题。详细将由后续技术同学展开。
(3)用户态 UDP 库 libxudp。随着 DBDK 技术的发展,很多应用都在逐渐的从内核 TCP/IP 栈向用户态 TCP/IP 栈迁移。基于现在内核最新的 eBPF 技术,包括基于 UDP 的 QUIC 协议,龙蜥社区大概率可以重建用户态的 UDP 库,从用户态的 QUIC 协议到下面的 eBPF,可以构建非常高性能的网络协议栈,在用户某些测试场景中有高达 700% 的性能提升。
3、云原生创新
除了系统层面上的创新,还有云原生层面的创新。无论是线上还是线下,基于 Kubernetes、Containerd、Docker 的应用已经逐步占领了应用形态,但过去基于 Kubernetes+Containerd+runC 模型的容器有很多安全问题,其中最核心的问题是由于使用内核的 namespace 和 cgroup 来做资源隔离,会遇到比如稳定性、内核资源隔离、干净切除资源等问题。
阿里内部有一个系统叫袋鼠,其核心组件就是 runD 安全容器运行时,能非常好的结合虚拟化技术以及容器技术。runD 一方面提供了多租的隔离安全,第二实现了创新的融合架构。今天也很荣幸在此宣布 runD 已经决定会开源到龙蜥社区,并且未来会通过跟 Kata Containers 的结合,去推动 Kata Containers 向 3.0 架构的迈进。
4、社区生态蓬勃发展
创新才能对生态形成向心力,才能给合作伙伴带来价值,构建起完善的操作系统生态。目前龙蜥社区有 14 家理事单位和超过 40 家合作伙伴,其中 14 家理事单位分布在 CPU 厂商、操作系统厂商、云厂商和应用厂商等不同领域。社区的蓬勃发展需要找到一条彼此融合的道路。目前龙蜥社区中的厂商都是秉承共建、共治、共享的态度做事情。对于 CPU 厂商来说,他们能够通过龙蜥社区将 CPU 特性输出,通过龙蜥社区能够更好的适配上层应用。对于操作系统厂商来说,他们能够面向广大企业提供一个专业的企业版,不仅能够给企业提供更好的服务,而且能更好的促进社区发展。对于云厂商来说,龙蜥社区能够帮助他们为云上客户提供更好的服务。对于应用生态来说,龙蜥社区能够推动应用生态合作,让应用生态使用操作系统和硬件资源,共建未来的应用生态。包括数据库、中间件在内的软件提供商,基于龙蜥操作系统开发商业软件建立的产品盈利模式。
5.开源和商业循环
讲了开放创新和社区生态的发展以后,第三层就是开源和商业双循环机制。大家可以看到示意图特别像龙舟,象征齐心协力。希望阿里云、统信软件、中科方德、红旗等等合作伙伴群策群力,一方面通过开源贡献社区,让龙舟走的更快、更远一起划龙舟,打开龙蜥开源社区新格局。另一方面,希望大家都可以划着这个龙舟到达每个公司的商业彼岸,找到商业价值和商业利益。
6、全面的行业落地
目前,龙蜥社区通过过去一年的发展,在电信、政务、金融、能源、交通、电力等各个行业都有一些试点和推广工作。通过全面的行业落地,可以让所有的企业解决 CentOS 停服面临的操作系统问题,也能够给企业带来产业升级的可能。龙蜥社区要引领未来产业生态的发展,引领未来产业的进步。通过操作系统和应用软件的双层配合,最后推动整个产业的升级。实际上,某运营商已经依托龙蜥社区技术多 CPU 架构的完善支持、经过大规模部署实践的稳定性、良好的兼容性、完善的应用生态和领先的云原生技术,完成了五大场景核心业务的 CentOS 迁移替代试点,共计 300 个业务应用。与此同时,我们也在和工行一起就如何解决金融行业的 CentOS 替代展开全面的合作。
通过龙蜥在这些行业的落地,我相信一定会给未来产业的升级带来无限可能。今天,由阿里云、统信软件、Intel、中科方德等超过 30 位社区一线技术专家共同编写的《龙蜥操作系统开源社区技术创新白皮书》正式发布,旨在为企业应用底层操作系统选型提供最具前瞻性的参考,帮助开发者建立完整技术知识体系,让操作系统成为企业应用的基石,让业务创新与技术探索有安全可靠的基座。
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!