当前位置: 首页 > Linux

操作系统进入国家战略,中国操作系统开源社区何去何从?

时间:2023-04-07 01:39:10 Linux

前言:近年来,随着国际形势的急剧变化,我国在许多关键技术领域面临困难。内需和外部环境的变化正在加速国产操作系统的演进和升级。同时,很多操作系统都在建设开源社区,汇聚各方力量,提升操作系统的话语权和地位。随着国家层面和企业战略层面对开源的日益重视,中国开源逐渐迎来了发展的高光时刻。作为国内领先的DPU公司,大禹智信也借助OpenCloudOS等国内开源社区平台,推动新型DPU相关架构在标准化和兼容性方面的快速发展。但与先发厂商相比,除了国产操作系统存在技术差距外,生态系统的建立还有很长的路要走。我们不禁要问,国内的开源社区将何去何从?以下文章内容来自大禹智信软件研发部负责人王伟在“新一代基础软件开发与国家数字经济安全座谈会”上的分享《中国服务器操作系统开源社区发展的思考》。本文站在企业开发者的角度,站在用户和参与者的角度,结合自身DPU的运行环境,分析当前操作系统的发展现状和需求,以及在开发过程中遇到的问题,进而探讨国产开源操作系统。社区的商业模式和生态发展。一、DPU的体系结构和运行环境众所周知,DPU是专门为网络数据处理而设计的新型处理器,是继CPU、GPU之后的云计算第三引擎。它的出现将推动计算架构从以计算能力为中心向以网络通信为中心的转变。DPU作为底层基础设施组件,必须与上层应用层对接,才能完成这样的技术架构升级创新。同时涉及到巨大的生态协作共建,因此开源操作系统也是DPU重点关注的方向。.上图中,左图是传统服务器的结构。网络数据直接由CPU处理。CPU在处理业务的同时,还需要处理繁重的通信和虚拟化任务,大大降低了CPU的有效利用率。DPU部署后,网络数据会先经过DPU。DPU目前常见的用法是通过PCIE接口连接到Host。DPU上运行着独立的操作系统,用户和厂商的应用软件都运行在上面。DPU将以网络为目标。、存储、安全等领域对数据做一些预处理,让应用可以更专注于处理业务逻辑。DPU体系结构DPU是集芯片、硬件板卡、操作系统和应用软件于一体的一整套解决方案。从逻辑结构上看,DPU拥有与主机相同的逻辑处理单元,甚至还多了一个加速单元。可以说,DPU就是一个部署在服务器内部的“服务器”。但是DPU的集成度更高,数据处理会经过专门的调度和加速单元。DPU还可以作为CPU的安全屏障,保证CPU的数据和网络安全。DPU可以通过PCIE提供Ethernet和Storage相关的功能,支持SRIOV、VirtIO、NVMe等标准驱动。用户可以通过合理划分将部分逻辑运行在DPUOS上,配合控制DPU进行数据处理。因此,DPUOS需要具备与HostOS相同的软件兼容性,以降低用户的开发成本。而在DPUOS中,也会有一些与CPUOS通信的要求,所以这也是DPUOS标准化中非常重要的一环。对于大禹智信DPU,其应用场景可以扩展到云计算、高性能网络、边缘计算等广泛领域。这里我将以云计算领域为例,通过虚拟化和裸机两种常见的应用场景,详细说明数据在DPU结构中的流向和处理过程。左图为虚拟化场景,右图为裸机场景。在虚拟化场景中,在网络虚拟化方面,Host为虚拟机提供网络接口,Host会通过IOMMU进行地址空间映射,让DPU直接访问物理地址,让数据流转虚拟机可以绕过Host,直接与DPU交互。DPU接收到网络数据后,会做一些网络虚拟化处理。常用的处理软件是OVS。在DPU中,OVS分为slowpath和fastpath。慢路径软件运行在DPU操作系统中,快路径运行在DPU的硬件逻辑中。两者相互配合,高效完成网络虚拟化处理。对于存储虚拟化端,DPU为虚拟机提供了virtioblk/Nvme存储接口。DPU接收到数据后,会根据DPUOS运行的initiator程序,选择如何与远程存储集群通信。但是裸机场景DPU端运行的软件和虚拟机没有区别。从例子中我们可以看出,DPUOS端会运行OVS、DPDK、SPDK、CephRBD等应用。更广泛地说,DPU端会关联到很多开源应用,比如云平台相关的OpenStack、K8s,安全相关的SNORT、OpenSSL、SURICATA等。在Host端,会有相关的虚拟化软件,比如KVM和QEMU。这里只是几个例子。事实上,整个DPU生态是相当复杂和庞大的,都需要依赖OS为生态相关的软件提供运行环境。2、企业级开发需要什么样的操作系统?大禹智信于2022年6月加入OpenCloudOS社区,完成了产品的兼容性和相互认证。通过协同技术的开发,提高了操作系统和软件开发的整体质量。了解更多信息,您可以扫描下方二维码,加入OpenCloudOS社区群。在深度参与和社区共建的过程中,大鱼智信和OS社区共同解决了开发过程中遇到的一些问题,一是兼容性,二是标准化。首先是不同版本的内核多样化导致的驱动兼容性问题。因为在不同版本的内核之间,有些接口结构有时会发生很大的变化,驱动需要兼容不同的版本。二是基础图书馆。有些库在不同版本之间存在接口结构兼容问题,应用也需要提供不同版本库的兼容版本。另外,如前所述,DPU会需要与Host进行通信,因为有一个预期是应用程序不会察觉,所以选择使用网络是不合适的。如果选择使用网络,则需要配置IP地址。为此,需要一个PCIE物理通道加一个多通道协议来满足要求。它是一个统一的上层平台。如果是针对不同硬件厂商的私有实现,那么对于平台来说兼容性是个大问题,用户在使用的时候也会有适配问题。所以这里需要对接口进行标准化,各DPU厂商提供统一的私有驱动来实现这个逻辑。最后是云平台架构的标准化。传统架构中,nova-compute和ovn-controller服务一般运行在OpenStack计算节点上。nova-compute主要负责调用libvirtapi创建和销毁虚拟机,ovn-controller负责配置OVS流表和更新neutron端口状态。.在计算节点上使用DPU卡后,OVS、nova-compute和ovn-controller将运行在DPU内置的操作系统中。目前我们接触较多的版本主要有redhat、Debian、centOS、fedora、ubuntu以及国产的OpenCloudOS等,在选择版本时,我们的关注点一般会集中在兼容性、稳定性、安全性和功能方面。在兼容性方面,主要包括硬件兼容性和软件兼容性。硬件上,国产设备对国产操作系统的兼容性最好,软件兼容性主要是接口兼容性。稳定性体现在系统稳定性和接口稳定性上。一个版本发布前一般都会对系统稳定性进行全面测试,软件组件也会在发布前进行大规模验证。界面的稳定性体现在当软件在同一版本升级时,软件界面不会发生变化,导致运行在操作系统上的系统软件重新适配该版本操作系统。在安全方面,比如0day的及时更新,最近发生的CentOS转向CentOS流、Ubuntu停止支持俄罗斯等事件,都面临着不同程度的安全挑战。在功能上,要求是满足行业需求。在服务器操作系统方面,目前使用最广泛的是CentOS,因为CentOS是redhat发布后的rebuild版本,相当于CentOS和redhat企业版的稳定性、兼容性、安全性和功能。独立社区支持,生产环境适用性强。但是在切换到CentOSStream之后,情况就发生了变化。本来Fedora被认为是re??dhat的前期版本,运行在redhat上的软件都在Fedora上验证过了。现在CentOSStream已经变成了预装版本,并且是滚动更新的,这对稳定性和兼容性提出了一些挑战。例如,可能存在0day安全更新导致软件界面发生变化,需要重新适配运行在操作系统上的软件。对于一款商业产品来说,功能确定后,操作系统的功能更新需求一般不会太大,所以对于企业级开发来说,长期稳定的版本更受青睐。从另一个角度来看,服务器端CentOS系统的停摆也造成了相应的市场缺口。操作系统厂商需要承担CentOS生态延续和技术支持的需求,这也为OpenCloudOS等操作系统带来了更大的潜在机会。3.操作系统和开源社区的未来展望从我个人的角度来看,中国操作系统的发展前景是广阔的。首先,货源有保障。源上提供的所有二进制程序都存在隐藏的后门风险。但是国产操作系统都是国产源,由国内社区维护。这个风险没有了,所有的代码都可以通过安全扫描,然后会产生相应的二进制包。您不必担心代码中的一些隐藏问题。另外就是国内源的更新效率很好,社区是在国内搭建和运营的,传播效率比国外的社区高。目前,国内多家社区生产的操作系统及操作系统上的软件均经过大规模生产环境验证,可靠性高,与国内厂商兼容性好。国产操作系统的发展历程源于国产ICT的快速发展。随着互联网行业的兴起,在这个过程中聚集了大量的软件人才,深度参与和贡献了很多开源软件,也催生了很多自主软件。开源。由于自身场景复杂度高,国内很多厂商也都有自己维护的内部操作系统版本。随着开源文化的逐渐普及,各家厂商也开始选择贡献自己维护的操作系统,从而形成了国内几大开源操作系统社区。目前国内一些能力强的社区发展非常迅速,说明国内的开源环境和开发能力不错,但也带来了一些问题。例如,社区多样化带来的兼容性挑战。从硬件厂商的角度来看,对于不同的源码社区,不同的内核版本意味着硬件驱动需要兼容这些不同的内核版本,应用程序也有不同的库版本。适配问题。另外,每个操作系统中的大部分软件都是重叠的,每个社区各自维护,可能会造成一些重复工作,造成开发者力量的浪费。这里我们简单梳理一下操作系统社区的结构。首先,OS源码社区会根据社区的版本理念规划OS的发展路线,然后硬件厂商将驱动程序和驱动程序所依赖的框架特性提交给社区,以达到硬件兼容操作系统的目的.之后,各个厂商会根据自己的需求从源码社区中选择一个版本,然后构建自己的验证版本,并不断向社区反馈一些特性和bug修复。开发者会去开源社区根据操作系统路线选择软件版本,并选择一些特性作为backports。同时,开发人员也在不断地维护选定的软件分支并进行错误修复。因此,社区中的开发者会涵盖很多领域。对于一个理想化的社区环境,我们期望的是各个社区所支持的产业不重叠,维护理念不重叠。在维护理念方面,关注最新功能和关注稳定性之间存在权衡。一般来说,实验室版侧重于最新的功能,以满足其研究需要;生产版一般侧重于良好的稳定性以满足生产环境。清晰的社区划分可以让开发者充分发挥各自的力量,让更多的人参与到某个项目中,保证工作不重叠。此外,社区需要有一个良性的、可持续的商业模式,可以在没有外力的情况下自给自足,从而保证社区版质量的可靠和稳定。依托庞大的源码社区,对于一些必要的开源项目,也可以成立国内分支,满足国内需求,反哺上游。当然,也可以根据国内硬件的现状,开发一些个性化的内容,统一硬件接口,激发中国ICT产业的创新。4.总结在开源开放的生态环境下,操作系统正在迅速崛起,而开源的核心是软件根基技术创新,需要联合开发者、社区、上下游软硬件产业链企业共同努力构建多样化的生态系统。作为生态中的一员,大鱼智信和OpenCloudOS也在为推动构建共享、开放、共赢的社区环境,加速操作系统生态的进步贡献力量。我们也期待国内操作系统行业实现跨越式发展,迎来真正的繁荣发展。欢迎更多开源力量加入OpenCloudOS社区,共创繁荣生态。扫描下方二维码加入社区用户群,获取技术支持,交流用户体验。