5.从一次线上问题说起,详解 TCP 半连接队列、全连接队列
6位大咖坐在一起聊了聊:龙蜥社区做了什么、以及能带来什么?
The following article is from OpenAnolis龙蜥 Author 小龙
嘉宾:陈渝,清华大学计算机科学与技术副教授;张磊,统信软件 CTO;杨继国,Intel 技术总监;龚文,中科方德高级副总裁;杨勇,阿里云操作系统技术总监。
正文:
龙蜥社区的建立将会给我国操作系统带来的影响与价值
龙蜥开源社区对 CentOS 停服的应对措施
龙蜥的技术贡献
服务器操作系统领域的发展趋势与技术突破
龙蜥社区的治理方式及如何立足中国面向世界
展望未来
今天的圆桌环节开始之前,先进行自我介绍。
陈绪:我是阿里云负责技术战略的陈绪,同时负责龙蜥社区的运营工作。2015 年我在日本获得了东北亚开源论坛的开源贡献奖。
陈绪:接下来进入问答环节,开源已经成为信息技术发展的主流方式,也是技术软件发展的最佳途径,最近开源第一次被放到了五年规划纲要中去,中国也处于开源热潮中。目前而言我们站在了新的历史起点,中国的操作系统目前所遇到的风险、机遇和挑战在哪些地方?同时,龙蜥社区的建立将会带来哪些影响和好的价值。我们依次请龚总和陈渝老师回答。
龚文:我国的操作系统产业起步比较晚,虽然可以不断通过开源社区完善产品,但我国操作系统创新性和可持续发展性方面都比较薄弱,这其中比较重要的原因就是人才的缺乏,我国从事操作系统开发的人员相对于全世界来说比例太小了。通过龙蜥社区的建设,可以聚人气,给热爱操作系统的年轻人一个很方便的学习平台,和社区大咖们一起进步,逐步成为我国操作系统建设的主力军。
另外,国产操作系统目前面临的一个重要困难是产业链不完善。通过社区建设,可以把产业链上下游的各个环节聚拢起来,打造更完善的产业链。这也是通过开源社区建设能够给我们国家操作系统产业发展带来的好处。
一方面是高校自身的原因,老师对于系统软件的科研领域也不是很多。在 2008 年以前,国际两个顶级操作系统会议 SOSP、OSDI 上,完全没有国内的学生和老师来发表 paper,但 2008 年之后逐步出现了。到现在为止,上海交大、清华、浙大、华中等等逐渐也在 SOSP 上发 paper 了,说明我们的科研高精尖能力在逐步发展。
另一方面,支撑人群不够。举个例子,今年举办的第一届全国大学生操作系统比赛,共有 800 人参加比赛,覆盖的学校不到 200 所。实际上,每一个学校都会开操作系统课,为什么还有很多高校没有加入进来呢?说明高校方面需要加大投入,这离不开企业的共同合作和帮助,因为只有企业对系统软件的有强烈需求,学生才有更多的动力和支撑去做系统方面的研究。所以我希望通过高校和企业的合作,包括龙蜥开源社区的合作,共同推动国内在操作系统方面的人才培养和建设。
陈绪:去年年底红帽宣布 CentOS 8 于 2021 年底停服。龙蜥开源社区在这块有什么应对措施?
杨勇:CentOS 宣布停服以后龙蜥社区做了三件事:
第一,从研发角度,龙蜥操作系统社区版发布,联合统信、中科方德、龙芯等社区合作伙伴,衍生相关的技术项目。社区版本的发布以及迁移工具、解决方案,已经在用户侧落地,这让我们真实的感受到龙蜥社区的技术基础。
第二,云栖大会上,宣布了十年的技术支撑和服务,通过社区向 CentOS 生态用户提供安全接管能力,后续也会通过社区平台发布 CentOS 相关的安全漏洞等各种重要问题的修复。
第三,面向未来,要投入核心技术。不论是人才还是产业链,都需要新的事情把大家聚在一起,新的产业支撑把人才拉进来。龙蜥社区会开源内核并且拥抱最上游的开源项目,同时也会联合芯片厂商和操作系统厂商做更有价值的需求,包括全栈国密等方面。
张磊:首先我们需要了解 CentOS 停服的数据基础是什么样。现状是国内大概有三四百万个 CentOS 的实例,要在这么短的时间内推出完整方案,把上百万台机器替换过来,工程数量是比较大的。所以我们要抓住重点,先把业务连续性、功能接口兼容性等问题和性能指标解决。统信软件在产业界做了调研,这些调研可以帮助 CentOS 用户单位,以及普通的互联网用户进行 CentOS 迁移。
迁移之后还有系统维护的问题,龙蜥社区会提供相应补丁,能够保证迁移后期的兼容性和安全性。龙蜥社区希望能够以 CentOS 为切入点,切入之后能够做更多创新型的工作,逐步摸索在保持兼容性的前提下做的更好,包括现在在做的云原生、异构计算。这样一来,从现在兼容到未来创新,社区整条线的工作路径都可以连起来,非常好的应对 CentOS 8 今年年底的停服问题,以及明年 CentOS 7 的停服问题,这为以后解决停服问题打下技术和产业的坚实基础。
陈绪:我的理解是这样的,短期之内是 CentOS 的替换,长期是自主创新,社区发展路线会有很多挑战和新领域。
陈绪:10 月 20 日上午阿里云、统信、中科方德共同发布了龙蜥操作系统,这里面提到很多技术。那么龙蜥哪些方面的贡献是特别重要、特别有未来的?
杨继国:操作系统面对的问题比较复杂,一个成功的服务系统需要解决的问题有很多,有几个特别关键:
第一,架构。因为操作系统面对的架构是不同的,灵活性的体现至少在横向和纵向两个层面上。一个是横向,架构的中立能够支持不同的架构,有足够的包容性和覆盖性。一个是纵向,对于用户所需要的架构,应该有充分的环节或者条件,让用户得到最深层次的优化。
很多客户都在使用 Intel 产品,比如每一代 CPU 应该有一个平台环境,能够对每代的 CPU 及其特性做充分优化,龙蜥就是提供了这样的环境。另外,我们也在社区成立了 Intel 架构工作组,对每代的 Intel 平台技术做比较深层次的优化,最终受益的是用户。
第二,稳定性。对服务器来说,稳定性非常重要,怎么减少故障率,怎么能够减少宕机时间,对每个用户都非常重要。
传统上来说,大家可能通过一些软件公司的方法来减少做操作系统或者做其他任何软件的故障率。现在的操作系统这么复杂,而且在一个不同的环境有各种各样的部署形态,很难提前测试。但是我们可以通过持续迭代的方式去实现,在动态里达到稳定,缩短发现问题的周期,通过检验、迭代、反馈,最后把新的补丁加进去,通过快速迭代逐渐达到稳定。像龙蜥社区在解决这个问题上是有天然优势的,非常快,这对于达到系统的稳定性非常重要。
第三,效率。怎么去做优化,怎么提高效率。现在对于服务器操作系统来说,单纯通过某一种手段达到新的优化是比较困难的,而现在的情况,需要考虑全栈的优化。比如对于一个新的平台、新的指令、新的特性,不仅仅要在 kernel 领域做起来,还需要在运行库、运行时,包括很多方面,都要做一些优化,所以要做全栈的优化。
第四,生态。操作系统能不能成功,最重要的是把生态建起来,有更多的应用才是最重要的。龙蜥已经有很好的生态基础,通过 CentOS 替换工作、以及后续不断的技术创新,相信龙蜥操作系统将走得更远。
陈绪:感谢杨总的分享,一共是四点,架构、测试、性能、生态。这也是我们龙蜥的进化方向。同样的问题抛给杨勇。
杨勇:首先,这个问题可以从技术发展趋势的视角去说。操作系统诞生这么多年,一直驱动操作系统演进的要素是硬件、芯片,尤其是 Intel 在 Linux 的发展起到了积极作用。其次,从应用场景的视角来说,未来希望龙蜥操作系统通过安全可靠的方式把用户服务好。最后,从未来发展的角度来说,龙蜥社区对新硬件和芯片的支持要做的更好。过去很多操作系统社区很少会把这么多硬件厂商放在一起,龙蜥最大的不同是,能够在中立的基础上帮助每个芯片公司在操作系统上做好优化支持,所以多芯片支持是龙蜥未来坚持的方向,也希望操作系统社区能够帮助芯片和硬件公司达成从操作系统视角看的一个合理标准和规范。
另外,从编程语言、编程模式的发展来说,站在云计算厂商的视角,看到的是云原生的发展。云原生不管是微服务,还是后续编程框架的出现,其实也带动了一些新的编程语言出现,都给我们带来了很多可能性。在云原生编程语言上,比如函数计算,未来也许会慢慢成为大家习惯的编程方式,那么龙蜥也将加大编程语言的投入。目前龙蜥就有面向编程语言的项目,希望未来学术界有更多的项目进来。
陈绪:杨勇提到了很多硬件方面的东西,包括一元多芯、神龙适配、龙蜥开源社区等等。龙蜥社区目前的 14 个理事单位都是商用操作系统公司、芯片公司、云公司,几乎囊括了国内主流的芯片厂商。我们相信软硬一体化的工作将会为操作系统和云带来更好的未来。
陈绪:在服务器操作系统领域,国际发展趋势是什么?在这个大趋势下有哪些技术或者哪些赛道值得我们突破?
陈渝:从学术界看到的情况来说,我个人觉得有几个会对操作系统产生一定影响的技术:第一个是编程语言,现在的操作系统都是基于 C 语言开发的,已经有 50 多年的历史了。其实现在新的系统级语言也在出现,典型的代表是 GO、Rust 等等,当你用新的语言开发 OS 的时候会发现比传统 C 语言有不同优势,比如安全性、性能、应用性、可编程等,这些优势也许会带来 Linux 或者 OS 新的突破。
第二是OS的松耦合化,现在像 Linux 或者以 Linux 为代表的 windows 都一样,他们是紧耦合的整体不太可分的 OS架构,这种架构在长期发展过程中会越来越庞大,越来越紧耦合,越来越不可拆分、不够灵活。将来的OS也许会成为像应用开发一样,有大量的库和小的组件组成,通过组合方式形成针对某个特定领域的定制OS,它不是通用、公用的 OS,它是针对某个特定领域的可组合 OS。
第三是软硬一体化的问题,要一云多芯、异构计算,通过 RISC-V 的硬件扩展让 OS 能够适应这种新的扩展,从而带来软硬真正的协同。我们已经看到了 Intel 介绍最新的 CPU,他们就有很多新的特性,希望在产业界的帮助下,能够充分发挥新的硬件特性带来新的突破,可以让应用层直接响应终端,而不是传统的只能在内核里响应终端等等。
最后,应用会对 OS 产生很大影响。让我印象比较深刻的是最近的微软,微软在云侧做了大量比较创新的工作,比如把windows放在云上,只要有一个浏览器就能使用windows最新的所有技术。一旦这种技术有所突破,会对国内操作系统的使用方式带来非常大的变化,也许是一个可能的新的技术突破。
杨继国:尤其在云和云原生时代,要求操作系统有足够的灵活性和精细化,这对操作系统有很大的挑战。历史上,Linux 是基于 Unix 的设计思想,是分时的多用户系统,传统来说一方面需要管理硬件、CPU、内存各种外设,另一方面要为多用户应用提供基本服务,像 IO 支持、网络、IPC 等等。现在的操作系统要做的事情远远比这要复杂,管理硬件跟以前相比复杂很多,而且每个硬件都有独特的特性。举个例子,内存管理,传统的操作系统管理内存是比较单一的,按照地址平铺管理访问。现在内存管理比这个远远复杂很多,有远近内存访问的效率问题,甚至包括 CPU 缓存,现在都可以通过硬件机制、OS 去访问控制。这对 OS 提出了更高的要求,因为控制要更加精细、灵活,而且能够充分应用到硬件,才能达到应用的最优,这对 OS 是个挑战,也是个机会,能够让 OS 变得更加灵活。
在云原生时代,操作系统不仅仅是运行物理机器,很多时候是要运行在虚拟机上,包括软件提供的沙箱容器。这要求操作系统的扩展性、灵活性很强,同时对安全性、隔离性也产生了很大的要求。因为在这种容器,特别是多租户环境下,怎么保证安全隔离,这是很严重的问题。现在的硬件提供了一些这样的保护机制,但是操作系统必须充分理解这些硬件,而且做出一定的优化,才能够充分发挥硬件作用,才能保证多租户情况下的安全性和隔离性。
回应刚才陈老师讲的,操作系统能够真正做到软硬一体的优化,一方面要能够面对应用,另一方面能够跟硬件结合的更加紧密,充分了解硬件特性。
陈绪:国际上的 OpenSUSE 社区,中国的阿里云、统信、中科方德、Intel 等公司发起了龙蜥社区,在治理方式上是不是有一些中国自己的特点?我们是如何立足中国面向世界的?这个问题先请龚文总回答一下。
龚文:分享一下我对龙蜥社区的一些想法。首先,龙蜥社区的是中国企业联合发起的操作系统开源社区。既然是咱们源自中国的操作系统开源社区,在不断融合国际操作系统社区先进技术的基础上,要立足中国市场,要解决我们在国产化替代过程中产生的各种需求和问题。就像刚才提到的,要把国产市场上的各种 CPU 适配好,因为这都是用户所需要的。还有国产的数据库、中间件及各种大规模的应用软件,都要支持好。另外,还有国家的数字化、云计算方面都领先于世界,我们作为基础平台要支持这方面创新,首先立足国内市场解决问题。
其次,通过对龙蜥社区的建设摸索一条在中国推动开源生态的路。国内开源系统起步比较晚,大部分人更熟悉的是国际社区,怎么能够把国内开源社区建立好,让中国的开源生态越来越普及,让大家都愿意加入,是一个迫在眉睫的问题。
张磊:与其他社区不同的是,龙蜥社区在成立之初由比较多的理事单位共同建立,包括操作系统厂商、芯片厂商、应用厂商,比较开放民主。每个单位有自己的方向,有的专门做操作系统,有的专门做芯片。芯片厂商在硬件方面肯定比操作系统厂商了解更多,这个毋庸置疑。但是如何投入应用,芯片厂商之间怎么能够达到比较好的协同,不同的操作系统厂商之间怎么达到比较好的协同呢?相信龙蜥社区将会摸索出道路起到很好的示范作用。
龚文:希望越来越多的人,特别是年轻人,能够参与龙蜥社区,一起成长,一起建立优秀的操作系统社区。
杨继国:龙蜥社区是非常有活力的社区,希望龙蜥社区以后能够继续保持中立、开放、创新,吸引更多的人,无论是组织个人还是开发者,都能够参与到社区中来。
陈渝:作为高校老师,希望龙蜥社区能够在全国高校的学生中有很响亮的生态,能够让学生参与到龙蜥社区里来。
杨勇:社区最终是由人组成的,希望我们能够秉承社区使命,吸引更多的人参与进来,去不断推动社区动态的发展,汇聚更多的人,前途越来越光明。
张磊:开放注定繁荣,创新引领未来。我相信随着大家的加入,我们一定能做出世界范围内排名第一的社区。