编者按:操作系统诞生至今已有数十年的时间,其整个发展演进历程、后续将如何发展也受到广泛关注。近日,龙蜥社区理事长马涛在 InfoQ 直播分享,从承上启下的操作系统、操作系统的演进路线与趋势、面向未来的操作系统、如何解决操作系统人才稀缺难题四个方面详细解读了操作系统的 2022。视频回放已上线至龙蜥官网,一起来探讨操作系统赛道蕴含着哪些机会与挑战。
长期以来,我国高科技领域的最大痛点之一正是底层基础技术领域“缺芯少魂”,其中“魂”就是操作系统,它是信息化安全体系的基石。不过近年来随着一批优秀国产操作系统陆续诞生,也让大家看到了希望的曙光。
展望 2022 年,操作系统赛道将会如何发展,又蕴含着哪些机会与挑战?1 月 4 日,阿里巴巴集团内核团队创始人之一、阿里云智能操作系统团队负责人、龙蜥社区理事长马涛(伯瑜)做客 InfoQ 视频号,对操作系统的 2022 做了最新的解读。
承上启下的操作系统
InfoQ:操作系统诞生至今已有数十年的时间,您能和我们介绍下操作系统的整个演进历程吗?
马涛:大家应该都有所了解,第一台电子计算机是在 1946 年出现的,那会儿用户在和硬件打交道时用的是打孔纸带。真正具有现代意义的操作系统,是我们常说的 Unix,它是在 1969 年正式诞生的。也是从这个时候开始,慢慢地出现了很多操作系统。今天看到的无论是嵌入式设备如手表等,还是超级计算机,用户在和硬件打交道时都需要用到操作系统。
那么,操作系统到底起到什么作用?我认为操作系统的核心作用有两个:一是和底层硬件打交道,比如 Windows 支持的硬件包括台式机、笔记本,Linux 支持的硬件是服务器,Android/iOS 支持的硬件是智能手机;二是和应用打交道,比如 Linux 服务器操作系统上层有各种各样的服务器软件,Windows 上层有办公软件等等。从这个角度讲,操作系统在整个软件生态里起到了非常重要的承上启下作用。
InfoQ:最近几年,操作系统并未出现革命性突破,背后的根本原因是什么?
马涛:刚刚提到操作系统最重要的作用就是承上启下,也就是说,操作系统的发展是脱离不了应用和硬件的。过去十年,云计算在深刻地影响着整个世界,无论是操作系统所支持的各种硬件,以及底层基础设施,还是应用层的大数据、人工智能等新应用,这些都在影响和推动操作系统的发展。
至于为什么有声音认为操作系统多年来没有出现革命性突破,我的理解是,操作系统本身长期处于底层,它的进展大部分处于润物细无声的状态。比如,随着云计算的发展,操作系统实际上也在快速发展,但是操作系统把上层的应用封装好了,所以对于上层应用而言,感觉不到太多变化。这也是大家觉得操作系统没有革命性突破的一个原因。
另一方面,操作系统是一个非常关键的技术组件,它的发展是非常漫长的,很多我们熟悉的操作系统都在经历持续迭代和演进。举个例子,Linux 操作系统诞生至今已有 30 多年的时间,每年仍有大量的代码加入进来。我是在 2006 年开始做操作系统研发的,那会的 Linux 内核版本是 2.6.19,现在 16 年过去,Linux 内核版本已经到了 5.16,这是一个非常快速的演进历程。
前不久有一项数据统计提到,去年整个 Linux 内核有 7 万多处修改,并且保持了每两个月就发布一个版本的节奏。虽然 Linux 名字一直没有变,但它的内核已经发生了很大的变化,并且它的研发速度、迭代速度都是非常快的。
InfoQ:您如何评价国产操作系统近几年的整体发展?过去一年,国产操作系统在产业生态、软硬件生态、人才生态的发展情况分别是什么样子?
马涛:整体而言,最近几年国产操作系统处在快速发展的阶段,生态也在不断繁荣,包括龙蜥、openEuler、OpenCloudOS 等操作系统开源社区也在不断发展、操作系统和开源技术在不断涌现,这说明大厂对操作系统的重视程度在不断加大。
我认为现阶段这种“百花齐放”以及良性的竞争是非常有必要的。通过这种良性竞争,可以让整个国产操作系统的发展更加快速,同时也能在国际上树立起中国在操作系统领域的口碑。此外,随着大厂对操作系统的投入加大,也可以培养更多操作系统人才,形成更完善的人才培养体系。
以龙蜥社区为例,在生态方面,龙蜥社区拥有 16 家理事单位以及 80 多家合作单位,包括国产操作系统厂商、云计算厂商、芯片厂商、应用厂商都在社区里,大家做到了公正、公平、公开和共赢。
我想强调的一点是,中国操作系统社区已经发展了很多年,不是最近几年才突然火起来的。但在过去,国内的社区大部分是由独立的某家厂商来主导,这也就导致它在研发投入上会稍有薄弱。毕竟操作系统需要巨大的研发投入,而通过社区的方式,可以发挥所有厂商的不同能力。比如,阿里云等云厂商可以提供大规模运维能力以及稳定性能力,操作系统厂商可以提供线上应用的优化和适配,芯片厂商可以跟硬件进行适配。通过社区的方式形成一种非常合理的分工,最终形成非常好的合力。
我也希望可以有更多的公司、伙伴能够加入龙蜥社区,一起打造最有竞争力的开源操作系统。
操作系统的演进路线与趋势
InfoQ:有网友想请马涛老师聊一聊,单机裸金属时代、虚拟化时代、Serverless 时代,操作系统的演进路线与趋势。
马涛:这是个很大的话题,我简单分享下我的理解。之前,我写过一篇文章叫做《什么是操作系统的云原生?》,里面也有提到过操作系统的演进路线。
我们回顾操作系统的发展史可以看到,最早在单机裸金属时代,用户要想运行某个应用,需要在自己的虚拟机上做很多事情。对于那个时期的应用开发者来说,他既是程序员,也是系统管理员,还是数据库管理员、网络管理员。在单机裸金属时代,操作系统就只是一个纯操作系统,用户需要做很多事情。
至于后来为什么出现虚拟化时代,主要是云技术快速发展,云上 CPU 的能力越来越强,而用户的应用并没有相应的水平扩展能力。举个例子,我有 100 个 CPU,但大部分应用程序可能只需要 4-8 个 CPU 就已经运行得非常好了。在这种情况下就出现了虚拟化,通过云提供的虚拟化技术,把一个包含 100 个 CPU 的机器切成 16 个机器,每个机器包含 6 个 CPU。操作系统在这里起到的作用,一是为用户提供了一个虚拟化的方案,把大的 CPU 切成小的 CPU 供用户使用,二是提供了资源隔离技术,使得这些用户之间互不干扰。
操作系统和云的第二次亲密接触源于容器的诞生和发展。2013 年,Docker 横空出世,使得应用容器的打包分发变得非常简单易用。随后,Kubernetes 等容器编排技术出现,容器生态系统得到了快速普及和发展,容器也迅速成为应用打包分发和开发测试的主流形态,逐渐成为云计算的主要运行单元。
2019 年,UC Berkeley (加州大学伯克利分校)预测 Serverless 将会逐渐取代 Serverful 计算,成为云时代的新计算范式。随着云原生理念的推广以及各种云原生技术的不断发展,Serverless 计算的趋势在加速。在这种新场景中,用户只需要专注于应用和业务逻辑,更多的通用功能、资源和系统能力都下沉到云,用户不需要提前规划容量,不需要运维底层系统,可以真正像用水和电一样按需使用、按需付费,Serverless 将大幅提升云的生产效率。
要构建好 Serverless 服务,操作系统一定不能缺席。由于 Serverless 场景下服务边界的上移,对用户来说,应用容器或函数代码之下的系统就是一个整体,用户不再感知底层系统的技术栈分层。这个变化给技术垂直整合创造了条件。我们认为,云原生的操作系统需要进行整体性的全栈优化和重塑,才能为 Serverless 提供更优的底层系统能力,基础运行环境、资源弹性、高效执行等能力也将因此得到极大的释放。
InfoQ:社区有小伙伴提问说,操作系统逐渐云端化,以后会不会没有操作系统了,全部被云端代替?
马涛:一个快速的回答就是“不会”。不会没有操作系统,但它会发生一些变化,比如一些核心组件会发生演进。举个例子,任何应用运行都需要一定的 CPU 资源、内存资源、网络资源以及存储资源。所以不论应用怎么变化,我们始终有对这些资源做管理的需求。所以不论产品形态如何,它是不会消失的,只是换了一个地方而已。比如在云场景中,即便我们看不见形式上的操作系统,它也会真真实实存在。随着未来万物互联以及智能设备的出现,操作系统只会越来越多,并且它要处理的内容也会越来越复杂。
面向未来的操作系统
InfoQ:过去一年 DPU 在操作系统上有了更广泛的支持,DPU 对操作系统的发展起到什么作用?是否为操作系统带来了一些技术挑战?
马涛:DPU 以及各种各样 XPU 的发展,对操作系统带来很大的技术挑战。此前,计算能力是随着 CPU 芯片的处理能力提升而提升的。但从 2020 年开始,摩尔定律逐渐失效,最近几年,CPU 性能的提升速度也已经非常慢了。这也是为什么我们在很多领域都开始尝试各种各样的定制体系结构,比如 GPU、DPU。像在云计算场景,阿里云的神龙就是面向各种云场景做的定制,谷歌的 TPU 也是面向类似的场景。
我相信,在未来会有越来越多 XPU 部署在数据中心和设备上,这带来的问题是,我们如何更好地让我们的计算任务运行在一个合适的 XPU 上?对操作系统而言,过去面对的是一个单一的处理器,现在需要演变成支持多个异构处理器的环境。操作系统一是要对跨体系结构提供支持,二是能够针对不同计算场景发挥硬件能力。过去,我们把不同的任务分配到不同的处理器上,很长一段时间是完全靠研发人员肉眼进行识别、人工分发。未来,操作系统需要提供更加自动化的方式。
InfoQ:未来的操作系统还有哪些值得关注的技术趋势?为什么?
马涛:刚刚提到了云对操作系统产生的影响,以及 XPU 的出现会给操作系统的演进带来巨大的机会,这里我想再聊聊内存。
过去十年,人工智能技术在快速发展和应用,特别是深度学习等技术在重塑整个计算机产业。人工智能需要庞大的数据量来做训练,而数据存储在内存中,因此需要思考如何改进 CPU 体系结构,打破传统计算机模型,同时提供一种更加灵活的架构,也就是“解耦”。在内存数据的冷热识别、内存故障报警预测方面也可以做更多的协同,减少数据的搬移。
此外,数据安全和隐私同样值得关注。2021 年,我国颁布了《数据安全法》,2018 年,欧盟颁布了 GDPR(数据隐私保护法案),对数据隐私提出了更高的要求。过去,操作系统在数据安全方面做得还是不够的,一方面受限于硬件的技术,另一方面在内存加密以及全栈加密上涉及较少。
最后,我想聊一下开源。当前国内在操作系统开源领域处于蓬勃发展阶段,并且大家都慢慢认识到开源对操作系统的重要性。我希望包括 OpenAnolis 龙蜥社区、openEuler、OpenCloudOS 等操作系统开源社区通过良性竞争、互融互通,未来让操作系统的发展进入快车道,共同促进操作系统发展。
InfoQ:有网友提问说,微内核目前发展到什么程度了?龙蜥后续会不会换成微内核?
马涛:在操作系统原理里有两大派系,一个是宏内核派系,一个是微内核派系。宏内核以 Linux 为代表,微内核现在也有很多实现。我认为,在很长一段时间内,这两种内核都会同时存在,因为它们所解决的问题是不一样的,我们无法通过一个内核解决所有场景。
至于龙蜥操作系统会不会以后用微内核,我只能说在短期内我们不会考虑这个事情。长期来看,随着整个应用云原生化,要看应用的变化和发展,毕竟操作系统是为应用服务的。
如何解决操作系统人才稀缺难题?
InfoQ:对国产操作系统的发展来说,目前比较严峻的问题是人才缺口较大,这个问题在 2022 年可以得到改善吗?对于操作系统人才的培养,最关键的是什么?
马涛:人才问题肯定是需要解决的,这个毋庸置疑。我认为在人才问题上,有几点是可以做的。
- 第一,当前各种知识、技术大爆发,而操作系统本身的学习门槛又相对偏高,我认为需要做的首先是降低整个操作系统的入门门槛,让开发者可以更加容易地参与到操作系统研发中。
- 第二,从教育抓起,去年清华大学组织了一个操作系统设计大赛,龙蜥社区是赞助方之一,我们希望通过这种比赛的方式,让操作系统教育可以在大学阶段就普及开来,另外也可以让教育界和学术界看到操作系统在工业界是大有可为的。
- 第三,随着国内对操作系统的重视程度加大,越来越多的企业在组建自己的操作系统团队,市场对操作系统人才的需求量增大,也在通过培养提升人才能力。
InfoQ:您提到操作系统的学习门槛相对偏高,您能和操作系统初学者或有志在这个领域发展的年轻人提供几条过来人的学习经验或建议吗?
马涛:我可能会稍微打击下大家。我认为做操作系统需要具备以下几点,第一,要对操作系统感兴趣。如果你是因为操作系统处在风口,想赚钱才加入这行,那么会非常难。因为操作系统学习曲线很陡峭,在前期你很难获得满足感。没有浓厚的兴趣,你很难坚持下去。我在 2006 年刚开始接触操作系统的时候,经常到了废寝忘食的地步,春节也不出门,天天在家琢磨,我认为这是一件很开心的事情。如果你现在琢磨操作系统也感到开心,那么你就满足了兴趣这一条要求。
第二,坚持。还是举我自己的例子。2010 年,我在和一些国际知名开源操作系统研发人员交流、提交补丁的时候,是需要长期进行各种交流,不停地修改、润色代码,非常耗时,但它也极大地提升了我的操作系统研发能力。
第三,积极参与开源。如果你想写一个自己的操作系统还是非常容易的,但现在整个应用生态已经非常完善了,你需要睁开双眼看世界,积极拥抱开源。在开源社区,你可以向很多高手学习,个人能力的提升速度也会非常快。通过 1+1>2 的模式,快速成长。
InfoQ:您认为对于操作系统领域的从业者来说,2022 年可能面临的最大挑战是什么?
马涛:我觉得最大的挑战来自两方面。第一,操作系统研发是一个需要长期投入的事情,它更像是长跑,考验的是耐力、持续发展的能力。比如做操作系统开源社区,怎样壮大社区、实现盈利,怎样得到开发者的认可,这些都是非常重要的事情,并且也需要时间来考量。可能在最初的一两年,大家凭着信念、毅力做了下来,但如果整个社区生态没有很好的发展,社区的参与者没有从中得到自己合理的回报,那么这个社区是没有办法良性循环的。这也是所有开源社区一定会遇到的一个问题。
第二,整体而言,操作系统还是处于快速演进的过程中。比如面对 CentOS 8 停服事件,我们如何让这些用户不受到损失,迁移到国产操作系统平台上,其中会涉及大量琐碎的工作。对操作系统从业者来说,这是一个非常艰辛的过程,但只要我们坚持下来,未来肯定是光明的。
InfoQ:站在 2022 年伊始,您能为操作系统从业者们送上一句祝福吗?
马涛:操作系统是信息产业的基石,它的重要性是毋庸置疑的,对于已经在从事这个行业的同仁来说,我希望我们能够团结一致、共创未来,这是非常重要的。对于那些希望未来可以进入操作系统行业的同仁来说,我也想说一句,来吧!我们需要更多的新鲜的力量,未来一定是属于我们的!
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:
https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!