面向 2030 的操作系统架构与演进思考作者介绍陈海波,OpenHarmony 技术指导委员会主席,华为中央软件院副总裁,华为基础软件首席科学家。主要研究领域包括操作系统、并行与分布式系统、系统安全等。长期从事基础软件的研究与产业落地工作,开创华为微内核与自动形式化证明等技术,主持与推动操作系统多项核心技术在端、管、云场景海量商用,带领团队在 Linux 5.10/14 等版本 patch 数贡献世界排名第一,近五年在操作系统领域高水平学术论文数居世界第一(csrankings.org 统计),合著的《现代操作系统:原理与实现》出版仅 2 月就获得 2020 年度 51CTO 最受读者喜爱 IT 图书奖。关键字操作系统、芯片硬件、万物智联、系统工程摘要操作系统在计算机系统中发挥中枢作用,承担释放芯片与硬件能力、使能应用高效运行、提升全局能效的关键角色,同时也为应用与云服务提供生态入口。 本篇文章将面向 2030 年中长期愿景,分别从计算架构与硬件演进趋势、产业与应用场景演进趋势等角度,分享本人对操作系统演进的观察与思考。 [color=rgba(0, 0, 0, 0.7)]面向 2030 的操作系统总体展望操作系统是软硬件系统的中枢,向上要支持应用与服务,包括提升用户体验、提高业务竞争力、提供生态入口。向下需抽象并管理相关硬件,其核心挑战是如何统筹全系统资源。 为解决此挑战,我们可基于系统工程及运筹学的方式思考。类似运筹学研究工厂和作业的管理与调度,操作系统要解决的也是任务如何在硬件上进行管理和调度,主要提供三个关键能力,即: 抽象协同芯片硬件,释放硬件能力 统筹管理资源供需,提升全局能效 使能应用高效运行,提供生态入口
相应地,操作系统的架构演进也会受到三个关键因素的驱动: 第一,新的产业场景与生态。产业场景对操作系统的影响非常大,场景的需求及其负载特征会对操作系统带来新的驱动力。 第二,新的芯片与硬件架构。操作系统运行在芯片和硬件之上,释放芯片和硬件的能力,因此芯片和硬件架构变化也会推动操作系统演进。 第三,软硬件供需。操作系统作为核心的技术与生态底座,会受到软硬件整体供需及先进要素的可获得性的影响。 从统计规律来看,操作系统约每 20 年左右会进行一次换代,2030 年对操作系统而言其实很近。在这个阶段中,操作系统会持续不断向前演进,同时会出现局部的革命。 面向 2030,操作系统呈现万物智联新场景、新硬件和新供应三大趋势[color=rgba(0, 0, 0, 0.7)]万物智联的新场景交互方式上,从触摸式交互演进为时空自然交互;任务调度上,从单节点调度,变成端到端确定性调度;算力资源上,从通用算力,变成多样性融合的算力资源;同时随着社会对隐私保护和数据安全的需求日益增强,还可能会有一些新的数字身份与核心信用体系诞生。 [color=rgba(0, 0, 0, 0.7)]新的芯片与硬件架构随着 Chiplet、3D 堆叠、Wafer Scale Computing 等芯片技术的出现,芯片工艺可能会演变为芯片工程,成为提升算力密度的关键路径;还有新的计算存储架构,包括多样性算力、新非易失性存储、新互联、硅碳融合存储等;此外,5.5G/6G 的大带宽、低时延、高密度、高精度的互联通信也会使能新的场景。
[color=rgba(0, 0, 0, 0.7)]软硬件供需面对新的全球形势,软硬件的先进要素供应可能会呈现出多元化供应体系,这反过来也会对操作系统的演进带来很大影响。 [color=rgba(0, 0, 0, 0.7)]赋能万物智联新场景与新生态近年来,尤其受到疫情影响,社会数字化转型至少加速五年。在过去,人类通过不断创新数字技术来连接物理世界;在当下,元宇宙、数字身份等这些新技术的出现,会推动数字世界和物理世界的融合。操作系统从硬件的附属品到一个独立软件,再到生态入口,其重要性不断增加。在万物智联时代,操作系统会发挥更关键的作用。 展望 2030,操作系统将成为数字世界与物理世界融合的技术底座接下来会从操作系统赋能万物智联的新场景和新生态,支撑新硬件,构建新抽象协同算力,技术重构等几个关键方面,与大家分享 10 个操作系统的演进思考。 [color=rgba(0, 0, 0, 0.7)]演进思考 1:从触摸交互走向时空自然交互,新交互带来体验跃迁第一个思考来自交互的变化。人类的交互体验从原来的机械式交互 (比如键盘、鼠标等) 到现在的触摸式交互,得到了大幅提升。在未来,交互是否会走向时空自然交互? 自然空间交互:比如基于语音、眼神、空间/姿态,甚至注意力/脑电波等更自然的人机交互形式。当前这类交互模式已有雏形出现,包括脑机交互,及通过各种方式去抓取人的眼球动作进行交互的模式等。不同于传统的桌面、应用入口,操作入口可能会变成场景式的智能时空入口形态。 系统级触达:当前 APP 的使用方式已深入人心,未来是否会变成一个彼此可嵌套的系统级可触达方式,打破传统应用边界,实现以任务和用户为中心的推荐式、启发式交互,也是下一步我们需探索的。 [color=rgba(0, 0, 0, 0.7)]演进思考 2:从单节点确定性走向端到端确定性第二个演进思考是有关任务调度的。在过去,我们关注单节点的确定性。当前,尤其在通信场景和很多工业场景中,我们更关注能否做端到端的确定性时延。在未来,随着数字世界和物理世界的融合,会出现更多的时延敏感场景,比如远程医疗、5G/6G to B (智能制造、工业 4.0) 、XR (实时交互) 等,对端到端的时延带来很多新挑战。 在时延敏感场景中,大家的第一反应往往是降低网络时延。5G 等技术在推动整个网络时延的下降。当网络时延下降到一定阶段后,操作系统在端到端时延的保障上就会起到非常关键的作用。在全系统的时延中,操作系统扮演着“乐队指挥”的角色,需进行全链路的管理,把云服务、承载网、端侧设备打造成一个端到端的确定性低时延体系。 [color=rgba(0, 0, 0, 0.7)]演进思考 3:从垂域分治走向异构融合,支撑万物智联多样性计算第三个演进思考是有关算力资源的。在过去,我们常通过一个软硬件垂域承载某一类计算,如通用计算、概率计算、AI 计算、物理计算、图形计算等。但从发展趋势上来看,计算架构正在从“通用+专用计算”向“多样性算力融合”演进,但也存在大量挑战。以“HPC+AI”为例,即高性能计算与人工智能的融合,要解决 HPC 和 AI 的精度要求不一样的问题,前者对浮点运算精度要求非常高,后者对精度要求相对高,有时采用 Int8、Int16 来做近似计算。这些就需要操作系统从垂域分治走向异构融合,将标量、向量等算力进行有效统筹。 同时,芯片架构从原来的以 CPU 为中心,到如今 CPU+XPU 的协同,并逐步形成统一内存架构 (Unified Memory Architeture, UMA),减少数据搬迁,有效缓解内存墙与存储墙问题;此外存算一体和近数计算也可提升能效,即数据在哪就在哪计算,例如在搭载较强算力单元的智能网卡、智能 SSD 上。上述应用和硬件的演进都需要操作系统去使能,以支撑万物智联时代多样化的计算。 [color=rgba(0, 0, 0, 0.7)]演进思考 4:从 OS 走向 OS Kit,元 OS 架构支撑场景千变万化第四个思考是,如何从多个割裂的操作系统走向操作系统组件库的集合,即 OS 到 OS Kit。原来的操作系统往往是场景专用的,如服务器操作系统、手机操作系统等,其很多能力和组件是孤立的。随着 DSA (Domain Specific Architecture) 的发展,硬件和场景越来越多,可能会出现越来越多的操作系统。 这会带来“昆虫纲悖论”问题,即场景越来越多,设备形态也越来越多,虽然每类设备单独的市场空间不大,但加起来的总空间十分大。另一方面,生态的碎片化使得这些设备难以充分发挥价值,不能形成规模产业,而没有规模就没有利润,无法继续发展,产生悖论。 我们提出了元 OS 架构来缓解这个问题。通过一个操作系统去适应所有场景,即“One OS for All”,已被证明是十分困难的。但如果将操作系统进行一个有效的解耦/元化,将系统组件 kit 化,实现“One OS Kit for All”。这样在面向多场景的不同需求时,可将kit进行有效的组装,来解决多场景能力共享、生态互通、极简互联、按需组合等问题。当然,元 OS 架构有很多的技术挑战。例如如何对操作系统的状态进行有效管理,如何在解耦后保障其性能等。 [color=rgba(0, 0, 0, 0.7)]演进思考 5:从统计与推测走向精算与智能,精准统筹资源供需第五个思考有关操作系统的资源管理。前文提到操作系统与系统工程中的运筹学有很多相通之处。如操作系统资源统筹调度的问题,如果在数学上进行抽象,和运筹学中 作业车间调度问题 (JSP) 与背包问题 (KP) 这两个 NP 难问题是比较相近的。通过一定的转化规约,可将资源统筹调度问题变成一个多对象、多目标优化的实时在线 JSP 问题。 受限于设备运行时算力、语义鸿沟、调度时延等约束,传统操作系统很难进行理想的“精算”。例如每隔 5-10ms 就可能进行一次调度,那么调度本身开销期望是微秒量级。因此当前操作系统基于统计、分而治之等实践方法来用最小的开销求一个尽可能优的解,如采用公平轮转的任务调度,根据访问频率采决策缓存的替换策略等。 随着应用场景的变化,有两个因素可能会使基于“精算”的资源统筹变得有价值: 一方面,在万物互联的时代,系统复杂性剧增,通过简单近似算法来进行资源管理的效果会不断下降。另一方面,随着多样性算力的出现,NPU 和加速器对特定负载可以有很强的算力提升,使得精确求解的收益变大。同时,操作系统通过语义透传等技术,使得实时精算的收益大于成本,从而做到更加精准的资源统筹和更为平衡的供需管理。 [color=rgba(0, 0, 0, 0.7)]支撑新硬件,构建新的抽象与协同能力接下来会从如何支撑新硬件,构建新的抽象与协同能力的视角来分享几个演进思考。 [color=rgba(0, 0, 0, 0.7)]演进思考 6:从算力抽象走向架构感知,协同芯片工程提升算力密度第六个思考是,如何从算力抽象走向架构感知。抽象是计算机学科的重要方法论,是将一些底层细节和能力进行封装,从而实现更好的跨系统、跨算力。在工艺红利放缓的背景下,芯片工程成为提升算力密度的关键路径。芯片除了提供调频调压等能力,会出现更多的异构组合,甚至是动态的异构,这样就需要操作系统去感知芯片的架构,甚至架构的实时变化,协同芯片工程,提升算力的密度。 在此过程中,操作系统需要去攻克一系列挑战,包括如何去更精准地进行选核 (当前有大、中、小,甚至可能有一些微型核),如何做任务的瞬态迁移,如何做数据的局部性保障,如何在新架构下进行并发和协同设计等。(在动态异构的芯片工程体系下,并发从原来的相对对称变成非对称的并发,这给协同也带来很大挑战。举一个具体的例子,原来实现一个自旋锁 spinlock,会假设所有线程拿锁的机会差不多,但如果硬件是大小核架构,或者是不同工艺的核,去同时竞争一把 spinlock 时,小核会有很大概率一直拿不到,因为它抢锁的能力没有大核强,这样就会使资源分配不均衡。) [color=rgba(0, 0, 0, 0.7)]演进思考 7:从 CPU 为中心和 DSA 对等架构走向新计算架构,计算范式重定义第七个思考是,计算架构的演进。计算架构从以 CPU 为中心,逐步到现在的 DSA 对等架构 (包括 CPU、GPU、NPU、DPU、QPU 等,QPU 即量子计算单元)。未来会怎样继续演进呢?会出现怎样的新计算架构? 在技术延长线上,操作系统要持续去攻克 DSA 架构下的 XPU 异构算力间的高效协同与资源共享能力。但可以看到,DSA 的原生弊端正在逐步显现,一方面是厂家需要看护多种多样的硬件架构,维护成本极其高,且存在功能重叠的问题。而且 DSA 很多是为特定运算设计的,稍微改变运算的形状 (shape),可能会导致效率有很大下降。此外,还存在软件栈难共享,XPU 间协同调度效率低等问题。 按照牧村定律,业界有望诞生出新的计算架构。(牧村定律/牧村波动,是日立公司总工程师牧村次夫 (Tsugio Makimoto) 在 1987 年提出,芯片架构的发展,总是在分层解耦和垂直整合之间交替摆动,大概每十年波动一次。牧村定律背后是性能功耗和开发效率之间的平衡。) 经过当下 DSA 这样的“分”之后,未来一段时间内,如果大部分的算力模型已定型,出于维护、成本、能力发挥等因素的考量,大家可能会自然想到,能否将各种 XPU 进行融合,甚至融合到同一个架构上去呢?这个新计算架构到底是什么,目前还需要进一步探索。但不管怎么样,操作系统的计算范式可能会被重新定义,其底层的机制也将大幅重构。 [color=rgba(0, 0, 0, 0.7)]演进思考 8:从多层走向一层融合存储,泛存储范式重定义第八个演进思考是从存储的视角来看的。存储有可能会从多层走向一层,或者是多层走向两层三层的融合存储。 一方面来讲,新介质与新互联技术在持续地突破,加上高速存储的存在,操作系统的存储是否会向泛存储范式演进?传统以 CPU 为中心的三层存储架构,即 CPU + DRAM + 闪存/硬盘,是否会演进为一个以数据为中心的单级存储 (Single-Level Store) 呢?(单级在这里是一个虚数,实际上可能热数据在一层,冷数据在一层,同时冷数据还使用传统的硬盘进行存储。) 进一步地,结合计算架构的演进,存储范式是否会演进到以业务为中心的原位计算呢?事实上,传统做法是将任务迁移到数据所在位置进行计算。由于任务调度开销性能方面的影响 (任务调度的开销可能比数据搬移更大),如果数据搬移的效率能得到非常显著的提升,那么我们就可以考虑采用原位计算的方式,即不迁移任务到数据处,而是将数据搬移过来进行计算,从而显著降低时延。 [color=rgba(0, 0, 0, 0.7)]演进思考 9:从信任设备走向信任应用,数字信任体系重构第九个演进思考,即从信任设备逐步走向以应用为中心构建信任模型。万维网之父曾提过,如何去重构当下中心化的互联网架构,如何去中心化。到底是不是去中心化,可能会受到各种技术因素和商业因素的影响。但我们可以看到,互联网的安全模型正在从信任设备走向信任应用,这要求我们重构数字信任体系。 简单来说,机密计算架构 (Confidential Compute Architecture, CCA) 是重构数字信用体系中一个很重要的软硬件架构。早在 2002 年,ARM 就提出了 TrustZone 的概念,到现在正好 20 年。当前 TrustZone 基本在 ARM 体系里,包括手机、车、电信设备等等,华为构建的 iTrustee 安全操作系统也已布局在公司的各大平台上。此外,2015 年 Intel 发布了 SGXv1,2016 年 AMD 推出 SEV,2019 年 AWS 也在软硬件设计上进行一些使能和推广,云上也出现了 Confidential VM 这样的新形态,RISC-V 上也有 KeyStone、Penglai 等新的机密计算架构。 以 ARM 2021 年发布的 V9 CCA 架构规范为例,可看到 Realm 架构更多考虑从应用视角出发,如何提供一个安全的机密计算执行环境。从过往来看,ARM 每 10 年会有一次大的架构创新,其 CCA 架构对面向 2030 的信任体系影响是巨大的。操作系统的信任范式也很有可能会被重新定义,例如 ARM V9 CCA 架构正是从“信任设备、不信任应用”,演进到“信任自己的应用,但不必信任基础设施提供商”。 ARM 2021 年发布 V9 CCA 新架构因此,面向 2030,操作系统要思考如何去支撑数字信任体系的重构。按照华为公司发布的《智能世界2030》预测,50% 的场景将要采用隐私增强的技术。 全球产业展望 (GIV)《智能世界2030 —— 无界探索,翻开未来》:围绕人类社会发展的需求,华为尝试探索智能世界 2030,为每个人、每个家庭、每个组织发掘新机会,创造关于未来的无限可能。 报告地址:https://www.huawei.com/cn/giv [color=rgba(0, 0, 0, 0.7)]演进思考 10:从分层解耦走向垂直整合,底座技术重构第十个思考,是从新的全球局势来看,操作系统如何成为技术底座重构的关键。 垂直整合和分层解耦看似是两种不同的方法论,但实际是辩证统一的。分层抽象和解耦,是计算机领域普遍适用的分而治之思想。图灵奖获得者 Butler Lampson 提过这样一个大家熟知的理念,即“计算机科学的任何问题都可以通过增加一个中间层来解决”(其实是增加一个抽象来解决),但他后面还讲了一句话大家都常常忽视,“除了因此引起的层次厚重的问题”。我们可以看到,过去 IT 系统的发展主要是逐层抽象、分层解耦的方式。 为什么还要做垂直整合,因为在逐层抽象的过程中,不可避免地会出现一些冗余抽象,我们需要不断消除冗余,降低开销。另外,如果“过于抽象”,还会带来跨层的语义鸿沟问题,使得上下层供给不精准,跨层协同难。所以在计算机设计中,对于抽象理念有一个很重要的原则:“Abstract, but don't hide power”,即你可以抽象,但是不要隐藏能力。因此,我们要做跨层的精准协同与精准供给。 另一方面,抽象也不会是普适的,无法适用于所有场景。我们在很多场景中还是需要一些短链条式的创新。比如,操作系统的应用调用,可以分不同层级,使其调用到不同效率的接口。整体而言,垂直整合是面向硬件与业务的重新分层与协同,并非走向“血肉模糊”与“烟囱化”。在合理软硬分工协同上,应结合硬件与业务的特征,提供“短链条创新”。 当然,垂直整合仍要坚持软件的平台化,构筑友好的生态,而不是走向自我封闭。 [color=rgba(0, 0, 0, 0.7)]总结小结一下,本文面向 2030,从三大驱动力的视角,向大家分享了操作系统的 10 个演进思考。包括操作系统如何赋能万物智联新场景与新生态,支撑新硬件,构建新的抽象与协同能力等。
|