1、基于基于RustRust语言的语言的高性能高性能蓝河内核蓝河内核技术实践技术实践 2026 vivo and/or its affiliates.All rights reserved.vivo系统架构工程师 杨阳CONTENTS.01 0203vivovivo蓝河操作系统简介蓝河操作系统简介基于基于RustRust开发的蓝河内核开发的蓝河内核设计设计蓝河内核性能优化实践蓝河内核性能优化实践vivovivo蓝河操作系统简介蓝河操作系统简介蓝河操作系统蓝河操作系统RustRust开发探索历程开发探索历程依托出色的安全与性能特性,Rust 正逐步取代 C,成为系统领域的重要候选。伴随Rust语言稳
2、定和生产可用,vivo基于Rust语言开发的蓝河操作系统也日趋成熟并逐步商用日趋成熟并逐步商用05050909年年始于2006年的个人项目Mozilla 于 2009 年开始赞助20152015年年Rust1.0发布,确定了以稳定性为核心20182018年年Rust 1.31.0发布,是Rust的第2个大版本,确定了以生产为核心20212021年年Rust 1.56.0发布,是Rust的第3个大版本,为语言带来新功能以及更高一致性20242024年年Rust将重点围绕以下三个主题展开:拉平学习曲线、扩展生态系统、扩展项目20252025年年蓝河操作系统内核开源开源20192019年年vivo自
3、研OS开始认知RustRust编程语言,可行性评估及预研验证20232023年年vivo自研OS蓝河操作系统发布,系统框架由RustRust语言编写20242024年年RustRust语言自研的蓝河操作系统内核发布蓝河内核简介蓝河内核简介蓝河操作系统内核是 vivo 以 Rust 语言自研的内核,简称蓝河内核,它具备安全、轻量、通用的核心特性。安全安全(rusty)基于Rust语言自研的操作系统内核,支持多芯片平台架构,实现内核核心基础模块、标准库、系统调用等,从芯片平台、内核,支持上层应用等全栈使用Rust语言开发,编译时保障内存安全,内存安全从被动防御到主动掌控轻量轻量高性能设计实现,低硬
4、件资源开销,启动后最小内核堆内存占用仅24KB,可以以更低的成本满足各类终端产品的需求。Rust Zero-Copy等核心特性消除不必要内存复制,传递数据直接操作内存实现极致效率。通用通用 芯片平台:支持主流芯片平台(ARM32、ARM64、RISCV32、RISCV64.),支持多核 驱动生态:支持复用C语言驱动,也支持开发Rust语言驱动;应用软件生态:兼容Linux/RTOS系统调用、实现librs标准库兼容POSIX接口、支持动态库加载,提供C-FFI安全桥接蓝河内核技术特性蓝河内核技术特性:蓝河内核蓝河内核开源开源愿景愿景使命使命提供一个创新、领先的操作系统内核,推动 Rust 语言
5、基础软件和生态的发展繁荣vivo 将蓝河内核开源,致力于建立一个开放、活跃的社区,为学术界提供基于Rust编程语言学习和讨论的阵地,与产业界共建Rust语言软硬件生态社区社区代码托管:AtomGit:https:/ stars蓝河内核开源后,受到了国内外 Rust 语言开发者的关注愿景愿景社区社区蓝河内核架构图蓝河内核架构图蓝河内核核心能力蓝河内核核心能力:1.系统调度系统调度多核smp调度、实时优先级、异步执行、进程间通信2.内存管理内存管理所用权系统、智能指针、多种内存分配机制(slab,tlfs、llff等)3.文件系统文件系统vfs、fat、nfs等4.网络网络TCP/UPD、IPvx
6、/ICMP5.设备驱动设备驱动原生驱动+驱动适配层基于基于RustRust开发的蓝河内核设计开发的蓝河内核设计调度调度基础数据结构基础数据结构-WaitQueue-WaitQueueWaitQueueWaitQueue/封装了core:mem:offset_ofimpl_simple_intrusive_adapter!(OffsetOfWait,WaitEntry,wait_node);/定义链表表头pub typetype WaitQueue=ArcList;/带上thread的链表节点pub structstruct WaitEntry pub wait_node:IlistHead,p