第三届大会回顾第2期 | HarmonyOS NEXT内核驱动生态兼容与竞争力思考
演讲嘉宾 | 代 杰
回顾整理 | 廖 涛
排版校对 | 宋夕明

嘉宾介绍
OS内核及视窗分论坛
代杰,华为OS内核实验室驱动领域专家。
正文内容
设备驱动程序在内核中扮演着至关重要的角色,其直接与硬件设备交互,为操作系统和应用程序提供硬件操作的接口,并管理系统中的硬件资源。目前,HarmonyOS NEXT的内核驱动在兼容性和竞争力构建上有哪些挑战和机遇?华为OS内核技术专家代杰在第三届OpenHarmony技术大会上进行了精彩分享。
驱动生态复杂度高:既包含了南向生态(面向器件),也包含了部分北向生态(面向应用);既包含了硬件外设(UFS、GPU等),也包含了虚拟设备(random、loop、dm、dmabuf 等);既包含了硬件控制器(UFS host),也包含了协议层(SCSI、USB、DRM等)。对于 HarmonyOS NEXT 这样一个新生的操作系统来说,驱动生态对其内核意味着什么?
先让我们看一组数据:在Linux超过3000万行的代码中,有60%是驱动代码,重新开发需要耗费大量的人力和时间成本,且部分厂商不提供源码;以手机为例,驱动超过400个,涉及内核的接口超过1000个,代码量超过400万行。此外,应用生态上有POSIX标准,但驱动生态上却缺乏统一的标准。因此,兼容Linux的驱动生态是从NEXT内核诞生时就需要考虑的问题。
HarmonyOS NEXT内核采取了UDK(Unified Driver Kit)技术,通过统一驱动框架,支持多个后端的方案,使其更好地兼容Linux的驱动生态。该技术的特点主要有:既能运行NDC(Native Driver Container),也能运行LDC(Legacy/Linux Driver Container),且可以几乎零修改兼容Linux的驱动;驱动框架和驱动运行在独立的进程空间。业界与UDK同类的项目如Genode DDEKit、Linux Kernel Library、VMWare vmklinux等,均因性能、兼容性以及版本演进等因素未成功。那么UDK目前面临的核心技术挑战有哪些?

LDC 侧面临的核心技术挑战主要有:(1)如何具备跨 Linux 版本的演进能力?驱动版本碎片化已经成业界痛点,DDEKit 就因跟不上 Linux 版本演进而放弃;(2)两个内核模型如何对接,Linux 内核机制如何在用户态来表达?(3)性能及内存开销问题,例如跨进程通信开销、内存拷贝开销等;(4)与原生容器并存和过渡问题。
针对上述问题(1),可以采用Base + Model架构,分离较为稳定的基础KABI和易变KABI,便于跟随版本演进(DC-Base:包含不易随版本变化的稳定的KABI;DC-Model:包含易变的KABI集合),使其能够在Linux发行版上实现多版本驱动并存功能。

针对上述问题(2),可以采取可扩展内核语义映射框架。Extension:host 侧向 LDC 提供的功能扩展,将 NEXT 内核的能力做一层封装,实现与 Linux 内核基本等价的接口供驱动使用;interface ko:提供 host 与驱动交互通道,完成 host/linux 名字空间转换。

NDC 侧面临的核心技术挑战主要有:(1)目前,NDC 巨量的接口缺失,生态不完备,Linux 面向驱动的上万接口难以重新实现。且短期看,NDC只能运行在受限场景,无法完全舍弃 LDC;(2)用户态的驱动框架性能和宏内核仍存在差距。文件系统和驱动的交互多一次进程间通信,驱动和内存的交互同样需要进程间通信,且交互更为频繁,例如 GPU 驱动需要频繁地申请、释放内存。
针对上述(1)的 NDC 接口缺失问题,NEXT 内核采取 LDC/NDC 多模共存的方案,实现生态上的抽屉式替换。从NDC和LDC的二选一阶段,逐步演进到LDC/NDC的多模同时部署:所有的驱动和设备由 devmgr 同一管理,devmgr 可以路由到“正确”的驱动容器;NDC 可以抽屉式替换 LDC 中的驱动,能够做到实现一个,替换一个,按重要程度逐步替换。此外,采取“孪生驱动”(Twin Driver)模式,针对代码量巨大的驱动,为减小工作量,使用双驱动容器协同方式:将核心的数据路径,和上层应用交互的路径由 NDC 承载,设备节点由 NDC 创建;上下电、初始化等功能仍通过 LDC 承载。

针对上述(2)的性能问题,可以采用 NDC 多态部署方案,实现安全和性能的权衡。NDC 中的关键驱动,例如 UFS 存储设备和 VFS 部署在同一个地址空间,其他驱动则部署在独立的地址空间。同时,中断通过迁移线程模型直通用户态驱动框架,解决传统的中断在用户态处理,需要经过调度的问题,可以将时延压缩到 2us 以内。

未来,随着HarmonyOS NEXT生态和技术的发展,驱动框架作为北向和南向的生态中枢,有很多的机会。例如,提供更多的信息到应用层,实现精准的性能功耗控制;打破传统的分层解耦,简化关键协议、关键路径等等。
- 【场景案例】阿普奇IPC330D-H81在纺织布匹表面检测中的客户案例实践
- ProfiNet转CCLINK IEFB协议转换解决水泥配料生产线双PLC数据互通问题
- NVIDIA正式发布工厂运营蓝图
- NVIDIA评定EC-Master为优先方案:打通物理AI硬实时控制
- “第八届MEMS智能传感器产业生态发展大会”成功举办
- 信捷 PLC 编程口复用不改触摸屏连接使用串口转以太网模块实现纺织产线数据双通道应用案例
- 工业设备语音提示芯片选型怎么做才能兼顾可靠与灵活?
- 2026新政解读:智能体与AI终端的“双向奔赴”,AIoT产业迎来三大价值重构
- 安森美为区域控制架构构筑坚实技术底座
- 工业机器人关节连接技术升级,TNC射频连接器会被推入锁紧结构取代吗
- 骁锐科技获实用新型专利:一种便于更换的水温传感器
- 污水管网“看得见”:物联网平台让偷排漏损无处遁形
- 芸海君蓝:新能源液冷高低温测试解决方案
- 浮思特 | 10A大电流+快速响应,矽力杰SY8371BTMC电源芯片亮点解析
- 海上风电变流器电流检测困局:严苛环境下的传感器失效分析与应对方案
- 进迭时空 Upstream|全球主流大模型开源项目 llama.cpp