OpenHarmony峰会回顾第16期 | 面向教学与科研的ChCore微内核

描述

演讲嘉宾 | 古金宇

回顾整理 | 廖   涛

排版校对 | 李萍萍python

 

嘉宾简介

古金宇上海交通大学助理研究员、教育部领域操作系统工程研究中心内核实验室主任、上海交通大学OpenHarmony技术俱乐部指导老师。主要研究方向为微内核操作系统、TEE与操作系统安全、可扩展同步原语。目前在并行与分布式系统研究所(IPADS)中负责主持研发微内核操作系统ChCore。研究成果发表在系统领域重要学术会议与期刊,如OSDI、USENIX ATC、PPoPP、 USENIX Security、 IEEE TC等。参与《操作系统:原理与实现》编著、 “操作系统”和“计算机系统基础”课程建设。承担青年基金、上海市科技创新行动项目(课题负责人)、多项产学研合作项目。作为主要研究人员开发的移动平台安全操作系统内核,获得第十四届“挑战杯”全国特等奖与全国大学生创业大赛全国银奖。

 

内容来源

第一届开放原子开源基金会OpenHarmony技术峰会——OS内核及视窗分论坛

 

视频回顾

 

正 文 内 容

 

上海交通大学自研的微内核操作系统ChCore在教学与科研方面有哪些探索和成果,与OpenHarmony如何有机结合?上海交通大学助理研究员、教育部领域操作系统工程研究中心内核实验室主任、上海交通大学OpenHarmony技术俱乐部指导老师古金宇在第一届OpenHarmony技术峰会上进行了分享。

python

01

总体定位:教学与科研

ChCore是一个面向教学与科研的微内核操作系统。目前,国内高校的操作系统课程教学普遍以宏内核为主,微内核相关教学很少。微内核是上世纪就已经提出的理念,目前,成熟而广泛使用的微内核操作系统有QNX、MINIX等,受微内核架构影响的广为人知的操作系统有Windows、MacOS等。近年来,随着新场景、新应用的出现,微内核在学术界和工业界再次兴起,如谷歌Zircon、seL4等。

操作系统的发展经历了最初的专用型操作系统,到通用型操作系统,再到面向特定领域开发的定制化操作系统。目前,新硬件从摩尔定律走向Chiplet,从CPU中心到异构XPU,从自动化走向自主智能;新场景走向人机物融合,突出功能安全与信息安全;新应用面向端边云协同、万物互联,这些为领域操作系统研发带来新机遇。微内核能够为定制化操作系统开发提供良好助力,因此,微内核操作系统相关的教学与科研,具有积极的现实意义。

02

学术科研

2.1►►

新硬件带来的挑战

随着处理器从以CPU中心化走向XPU异构化,面向异构计算硬件和新的处理器架构,操作系统需要新的设计和抽象,存在异构实时性保证、异构算力最优化以及异构抽象统一化等挑战,而当前演化自嵌入式场景的实时操作系统内核,面向CPU中心和单节点,尚不具备上述能力。

python

硬件异构化

面向上述挑战,ChCore开展如下探索:

  • 通过积木式内核设计破解硬件平台异构的碎片化挑战:通过模块间通信抽象提升可组合性,使内核组件实现积木化,并将内核架构设计为可配置类型,支持根据用户/开发者配置选择内核架构与组件。通过该方案能够在不同场景下在隔离与性能等不同维度上做出不同的选择;

python

积木式内核设计

  • 通过设计分布式微内核契合计算硬件分布式特征:以CPU为中心的操作系统设计,异构加速器与设备之间没有直接通路,硬件协同需要CPU参与,造成时延与性能瓶颈。设计兼顾异构实时和异构算力操作系统统一抽象,面向异构分布化硬件提供统一抽象与接口,能够大幅度降低时延通信,充分使能硬件性能;

python

分布式微内核

  • 通过低时延通信机制破解组件间通信时延挑战:微内核架构相比于宏内核架构在隔离性方面具有优势,但微内核架构下组件间通信时延更高。在微内核架构下,基于软硬协同的方法设计kernel-bypass的极低时延进程间通信原语,使其无需特权级切换、无需数据拷贝。

python

进程间通信时延问题

2.2►►

新场景带来的挑战

功能安全与信息安全关系到生产安全与生命安全,日益受到人们的关注。在我国发布的《“十四五”机器人产业发展规划》中提到,加强核心技术攻关。聚焦国家战略和产业发展需求,突破机器人系统开发、操作系统等共性技术。推进人工智能、5G、大数据、云计算等新技术融合应用,提高机器人智能化和网络化水平,强化功能安全、网络安全和数据安全。因此,新场景下如何保障操作系统功能安全与信息安全能力是一个重要挑战。目前,宏内核架构设计面临Fate Sharing问题,容错性低;微内核架构能够缓解但依然面临该问题。

基于该挑战,ChCore探索了以下几种应对方案:

  • 通过状态解耦提供面向可靠性需求提升错误隔离能力:传统宏内核操作系统/微内核系统服务设计存在Fate Sharing(缺乏隔离)和State Spilling(状态无序)问题。通过状态解耦能够将不同应用程序的所属状态进行解耦,并加以错误隔离机制,避免单点失效带来全局失效。

python

状态解耦机制

  • 通过事务化执行提供面向可靠性需求提升错误恢复能力:简单的单点重启会导致系统服务丢失状态。通过把事务(transaction)抽象引入系统服务执行中,以微内核进程间通信(IPC)为事务粒度,当出错时,通过状态回滚的方式保证系统服务状态更新的All-or-Nothing。基于该思路,通过透明地提供状态回滚机制和支持零依赖追踪开销的并发事务IPC等技术实现;

python

事务化执行

  • 通过构建可信执行环境内核赋能安全需求保护敏感应用:依托OpenHarmony技术俱乐部,可信执行环境内核基于ChCore微内核开发的鸿藩内核能够运行在ARM TrustZone安全世界中,并能够支撑安全敏感服务、安全应用的运行。

2.3►►

课程教学

上海交通大学软件学院负责的操作系统课程主要由陈海波、夏虞斌、古金宇三位老师设计,主要面向软件学院、IEEE/AI试点班以及OpenHarmony技术俱乐部的同学,通过多元课程内容,旨在帮助同学理解操作系统主要抽象的基本原理,使学生有能力初步实现操作系统的主要抽象。

python

上海交通大学课程实验ChCore-Lab概览

在课程实验方面,2020年在ChCore主线版本1.0的基础上,做大幅度减法、控制代码量可阅读(例如删除libC、网络栈等,裁剪功能与简化实现),迭代到ChCore实验1.0并投入教学。相关的课程实验聚焦构建操作系统基本原理,覆盖内存管理、进程管理、用户态内存文件系统等基础知识点。

2022年,迭代到ChCore实验版本2.0,与实验版本1.0相比,2.0版本的进程管理成为用户态系统服务,采用虚拟文件系统兼容多文件系统,覆盖更多教材/课程中的知识点换页、IO、futex等。

python

ChCore版本演进

此外,上海交通大学在微内核操作系统相关课程的教学上也更注重教学与科研之间的延续性。学生们在大三阶段,操作系统课程期间要求完成课程实验,帮助学生熟悉内核基础代码、微内核基本设计以及操作系统基本原理等知识;在大四阶段,本科生课程设计/毕业设计上涉及微内核图形化服务、微内核设备文件系统设计、微内核向多体系结构移植以及微内核虚拟化设计等课题,帮助学生将之前学习的基础知识应用于具体实践;在研究生阶段,研究课题包括基于微内核和安全硬件的可信执行环境、微内核模糊测试框架和符号执行、低时延微内核进程间通信设计、基于ChCore开发OpenHarmony安全世界内核等内容,带领学生进一步深入微内核操作系统的研究中来。

python

原型系统

03

总结

目前,自主微内核ChCore已经初步形成微内核、系统服务以及系统框架的三层架构,可配置性与扩展性良好,支持C、C++、Python等语言的开发,支持主要的POSIX接口,支持32/64位、ARMv8、X86-64/RISC-V、SPARC-V8等体系结构,且已经提出了10倍性能提升的IPC设计和微内核高可靠机制(ATC20、ICDCS21、ATC22等)。

未来,上海交通大学将依托OpenHarmony社区生态和OpenHarmony技术俱乐部,进一步探索微内核操作系统在教学以及科研上的发展,也欢迎大家关注和监督上海交通大学OpenHarmony技术俱乐部后续的工作。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分