当前位置:首页>鸿蒙APP>鸿蒙内核为什么这么设计,贡献者都是谁?

鸿蒙内核为什么这么设计,贡献者都是谁?

  • 2026-10-11 05:18:18
鸿蒙内核为什么这么设计,贡献者都是谁?

鸿蒙内核为什么这么设计,贡献者都是谁?

前三篇回答了"鸿蒙内核是什么":自研微内核 + Linux 半虚拟化 guest 的 EL2/EL1 分层架构。这篇回答两个更深层的问题——为什么这么设计?有哪些团队参与了鸿蒙内核的开发?


架构定了,问题才刚开始

前三篇,我们把鸿蒙内核的真实架构还原了出来:EL2 自研微内核 hypervisor + EL1 Linux 5.10 半虚拟化 guest。

架构清楚了,但两个更尖锐的问题随之浮出水面。

第一,为什么? 华为为什么要费这么大劲,搞一个自研内核 + 半虚拟化 Linux 的复杂架构?直接用 Linux 当主内核(像安卓那样)不香吗?或者干脆从零纯自研、彻底抛弃 Linux 不更"纯血"吗?这个两头不靠的设计,图什么?

第二,谁干的? 一个能跑手机的微内核 + hypervisor,工程量惊人。这套东西,到底是华为哪个团队写的?是某个神秘部门闭门造车,还是有迹可循?

这两个问题,源码里都有答案。先说"为什么"。


一、为什么自研内核:四个站得住的理由

先澄清一个误区:自研内核不是为了"每一行代码都自己写"。如果图这个,华为的 openEuler(服务器系统)就不会继续大方用 Linux 内核了——它反而越做越大。

自研内核的真实理由,是下面四个,都能从源码验证。

理由一:全场景硬件适配——微内核可裁剪

鸿蒙定位万物互联,要跑手机、平板、车机、IoT、PC。这些设备的算力差距是数量级的:从 KB 级内存的 MCU,到 GB 级内存的手机。

单一内核很难覆盖这么大的跨度。Linux 进内核体积就大,塞不进 MCU;塞得进的 RTOS 又撑不起手机的生态。

微内核的可裁剪性解决了这个。鸿蒙内核采用"元 OS 架构"——功能细粒度解耦,按场景组合部署:

  • IoT 轻设备:只跑精简的鸿蒙内核,不要 Linux。
  • 手机等富设备:鸿蒙内核 + Linux guest(提供驱动和生态)。

Linux 在这里是可选模块,富设备挂上、轻设备摘掉。这是单内核架构做不到的——你没法把 Linux 内核裁到能跑 MCU,也没法把 RTOS 撑到能跑手机生态。

理由二:实时性——EL2 调度优于 Linux 及其 RT 版

手机要确定性时延:触控响应、音频不卡顿、动画不掉帧。要的不是"平均快",而是"最坏情况下也能按时完成"。

Linux 本质是分时系统,不是实时 OS。它有 PREEMPT_RT 实时补丁,但那是在 Linux 内核内部打补丁——调度仍受 Linux 框架约束,无法完全摆脱分时调度的抖动。

鸿蒙的解法是把调度权放到 EL2。前面源码看到,鸿蒙内核在 EL2 有 EDF(最早截止时间优先)调度和模块化运行队列。因为调度权凌驾于 Linux guest 之上:

  • 关键任务(触控、显示)由 EL2 给确定性时延保障,优先于 Linux guest 的普通任务。
  • Linux guest 的 vCPU 被调度时,通过 steal clock 感知"被偷走的时间",配合这一机制。

EL2 调度是"管 guest 的调度",PREEMPT_RT 是"Linux 内部自调度的优化"——两者层次不同。 前者天然比后者更可控,因为 hypervisor 对 guest 有绝对调度权威。这是鸿蒙宣传"确定时延"的技术来源。

理由三:安全隔离——把 Linux 关进 guest 沙箱

Linux 内核漏洞不少(每年 CVE 上百),宏内核架构下驱动、文件系统、网络栈都在内核态,攻击面巨大,一个漏洞可能整机沦陷。

半虚拟化天然化解这个:

  • Linux guest 被攻破,影响限制在 EL1 guest 内,EL2 鸿蒙内核和其它 guest 不受波及。
  • 鸿蒙微内核本身 TCB(可信计算基)小——内核态代码极少,攻击面小,所以能过 CC EAL6+ 安全认证。

所谓"分布式微内核更安全",技术落地就是这个:不是 Linux 变安全了,而是把不安全的 Linux 关进了 guest 沙箱,用 EL2 可信层隔离它。

理由四:控制权上移——自主可控的真正技术含义

这是最硬的一条,也最容易被误读成口号。

"自主可控"的技术含义,不是"代码都自己写",而是系统的控制权在谁手里。

双框架版里,Linux 是主内核,跑在 EL1,直接掌管 CPU、内存、中断、设备。Linux 出问题或被断供,整机瘫痪。

纯血版把鸿蒙内核放到 EL2:

  • CPU 调度归 EL2:vCPU 怎么分给谁,鸿蒙说了算。
  • 内存分配归 EL2:guest 的物理内存是 hypervisor 给的(gpa→hva 映射),guest 拿不到没分配给它的。
  • 中断与设备归 EL2:虚拟 GIC、MMIO 分发都在 EL2。

Linux guest 的所有能力,都是 EL2 鸿蒙内核"借"给它的。 控制权在 EL2,不在 Linux。

这带来一个战略后果:即便某天 Linux 基金会受出口管制、限制使用 Linux 内核,华为掌握的 EL2 层仍是自己的——可以换 guest、调整 guest 能力边界,系统控制权不会丢。断供风险被从"系统级"降级、隔离到了"guest 级"。 这才是"自主可控"的硬核实现。


二、一个必须澄清的误区:万物互联 ≠ 内核特性

说到鸿蒙,"万物互联""分布式软总线"是绕不开的宣传词。很多人因此以为,软总线是鸿蒙内核的黑科技。

不是。 我在内核开源包里搜了 softbus / dsoftbus——一个都没有。包里出现的 "bus" 全是 sendmsg(socket 系统调用)、ddrc 内存控制器驱动这类无关项,鸿蒙内核侧也没有任何 softbus 代码。

软总线(分布式软总线)是 OpenHarmony 的用户态组件,跑在系统服务层,本质是一套跨设备的发现/连接/传输协议,用现有网络(WiFi/蓝牙/以太网)就能跑,不需要内核特殊支持。

所以要纠正一个常见误解:万物互联不是靠内核实现的,软总线是系统服务层的能力。 鸿蒙内核为万物互联提供的,是"可裁剪适配全场景设备"这个底座 + "分布式安全的调度/IPC",而不是软总线本身。

华为宣传把"万物互联"和"微内核"绑在一起讲,容易让人误以为软总线是内核特性。实际两者分属不同层——这是宣传话术与架构事实之间的一处典型错位。


三、谁在写鸿蒙内核:一个跨地域的研发布局

架构清楚了,动机也清楚了。最后一个问题:这套东西谁写的?

答案藏在源码的署名里。我统计了鸿蒙内核所有源文件的 Author: 字段,发现它不是单一团队的产物,而是一个跨地域、多专业 lab 协作的体系。

主力:Huawei OS Kernel Lab

2614 处署名,压倒性多数。内核主体——调度、IPC、内存、启动、系统调用——都出自这个团队。可以理解为鸿蒙内核的"主研发力量"。

但虚拟化、安全、硬件适配等专项,由其他专业团队分头承担:

欧洲团队:虚拟化与安全

这是最值得说的一块。整个系列最核心的发现——hypervisor——主要由欧洲两个研究中心贡献:

/* hypervisor.h */ * Author: IT Software Infrastructure Lab, Munich Research Center
/* vm_region.h — hypervisor 内存区域 */ * Author: Huawei OS Kernel Lab, Dresden Research Center
  • 慕尼黑研究所(Munich Research Center):hypervisor 主体(hypervisor.h、captype_vm.h)。
  • 德累斯顿研究中心(Dresden Research Center):hypervisor 的动态内存区域页错误处理(vm_region.h)。

虚拟化层这个系列最硬核的部分,是德国团队写的。这也解释了 hypervisor.h 为什么注释是英文、命名规范偏国际风格——它本来就是欧洲研发力量的产出。

安全这边也有欧洲团队:

/* pacxo_common.h — ARM PAC 指针认证 */ * Author: Helsinki System Security Lab
  • 赫尔辛基系统安全实验室(芬兰):负责 PACXO,即 ARM v8.3 的指针认证(PAC)扩展——一种防 ROP 攻击、防指针篡改的硬件安全特性。

国内团队:安全策略、内存、同步

/* security_hdpe.c */* Author:2012 CSPL/* bsm.h */ * Author: CSPL
  • CSPL:安全子系统,负责 BSM(基础安全模型)和 HDPE(分布式策略引擎)——前面 IPC 篇提过的 hdpe 策略就是这个团队。
/* damon-types.h */ * Author: Huawei CBG OS Lab
  • CBG OS Lab(消费者 BG):内存相关,DAMON(数据访问监控,识别内存冷热页)+ 同步原语(raw_completion)。
/* kill_acct.h */ * Author: OpenHarmony Dpt.1/* ledger_pressure.h */ * Author: Huawei OH 1st Dept
  • OpenHarmony 部门 / OH 一部:进程记账、内存账本压力等系统管理功能。

海思:硬件适配

/* mpam.c */ * Author: Huawei Hisilicon
  • 海思(Hisilicon):MPAM(内存性能监控)的 liblinux PAL 实现。海思做芯片,硬件相关的适配自然对口给它。

Godel Lab:虚拟中断

/* vitschip_pci_msi.c */ * Author: Huawei Godel Lab
  • Godel Lab:vITS 芯片侧(虚拟中断控制器的 PCI/平台 MSI),属于虚拟化的中断子系统。

团队分工一览

团队
地域/归属
负责模块
Huawei OS Kernel Lab
主力
内核主体(调度/IPC/内存/启动)
Munich Research Center
德国·慕尼黑
hypervisor 主体
Dresden Research Center
德国·德累斯顿
hypervisor 内存区域
Helsinki System Security Lab
芬兰·赫尔辛基
PACXO 安全(指针认证)
CSPL
国内
BSM/HDPE 安全策略
CBG OS Lab
消费者BG
DAMON 内存监控、同步原语
Godel Lab
—
vITS 虚拟中断
Huawei Hisilicon
海思
MPAM 硬件适配
OpenHarmony Dpt / OH 1st
国内
系统管理、记账

这说明了什么

第一,鸿蒙内核是"多团队协作的工程产物",不是单点闭门造车。 2614 处主力署名是 OS Kernel Lab,但虚拟化、安全、硬件适配等专项,由对应专业 lab 分头负责。这是大型 OS 内核的常态(Linux 也是全球几千人贡献),但能看到华为把内核研发拆分到了多个专业 lab。

第二,欧洲团队承担了最硬核的部分。 虚拟化(慕尼黑/德累斯顿)和安全(赫尔辛基)这两个鸿蒙内核最关键的差异化能力,都由欧洲研究中心贡献。这跟华为在欧洲多年的研发投入一脉相承——华为在德国、芬兰等地设有研究机构,吸纳了当地的系统软件人才。

第三,版权统一在 Huawei Technologies,Author 标具体团队。 说明这些 lab 都属华为,只是研发分工不同——是内部多地协作,不是外部贡献。


四、回到那个工程解法

把"为什么"和"谁写的"拼起来,鸿蒙内核的图景就完整了。

为什么:在"自主可控"与"生态兼容"这对原本对立的约束之间,用 EL2/EL1 虚拟化分层打开共存空间。EL2 自研微内核握控制权、保安全、给实时、可裁剪适配全场景;EL1 Linux guest 复用生态、承担驱动、渐进过渡。四个理由(全场景适配、实时性、安全隔离、控制权上移)都站得住,且能从源码验证。

谁写的:主力 OS Kernel Lab + 欧洲团队(虚拟化/安全)+ 国内团队(安全策略/内存)+ 海思(硬件),是一个跨地域多 lab 的协作体系。最硬核的虚拟化和安全,欧洲团队扛了大头。

这套架构谈不上"纯血"——它明确保留了 Linux 作为 guest。但也绝不是"套壳"——EL2 的控制权、调度、安全、虚拟化,都是自研的。

用 Linus 的话收尾:show me the code。代码摆完了,为什么这么写、谁写的,也都摆完了。剩下的判断,交给你。


尾声

从"纯不纯"的口水战,到源码级架构还原,再到设计动机与研发体系,鸿蒙内核的真实图景完整落地:

纯血鸿蒙 = EL2 自研微内核 hypervisor + EL1 Linux 半虚拟化 guest。由 OS Kernel Lab 主导,欧洲团队负责虚拟化与安全,国内团队与海思分担其余,是跨地域协作的工程产物。

它既不是安卓套壳,也不是从零排斥 Linux,而是用虚拟化分层在"自主可控"与"生态兼容"之间找到的工程解法。

代码不会撒谎。

声明

文章所引用的全部代码与材料,均来源于公开渠道,可自行获取与验证。引用仅用于技术分析与讨论,不包含任何未公开或保密信息。文中分析为作者个人观点,不代表任何官方立场。相关商标归各自所有。

最新文章

随机文章