开源蓬勃发展,形成了全球化的开源软件生态,对社会经济发展的各个方面产生了深远影响。在我国,开放创新也已纳入国家发展规划。然而,开源软件生态的形成本质上是一个自底向上的自然成长过程,并非仅仅依靠顶层设计就可以“构建”的,这个过程充满了挑战。本报告从全球开源发展的态势认识出发,探讨开源发展的本质和形成开源生态的要素,以及如何有效地“建设”开源生态。报告也再次强调,“开源软件的发展不能忘掉开源精神”。
报告将汇报我们在软件可成长性理论与自成长技术方面的一些思考与进展,并结合软件成长过程中的泛在感知、适应合成、持续演化和生态保障等需求,介绍几项具体的挑战问题和相应的解决方案,例如,如何保障软件执行环境的一致性、如何合成跨场景程序的新代码、如何生成程序运行时状态的转换函数、以及如何保障软件生态的健康成长等,最后介绍更广阔范围内的软件自成长技术的最新进展。
基础软件与指令集密切相关,特别是编译器、操作系统、基础C库等,指令集规范是其架构设计与核心代码实现的基本依据。随着RISC-V开放指令集的崛起,越来越多的开源软件开始向RISC-V指令集移植适配。中国科学院从2019年起在先导专项的支持下开展了大量此类工作,与国内其他机构一道为RISC-V新生态的发展做出了贡献。然而,单纯的移植适配并不能体现RISC-V开放指令集的优势,以及成为指令集国际标准的初衷。为此,我们推出“RISC-V平行宇宙计划RISC-Verse”,开始探索对核心基础软件栈的大规模原生重构,把RISC-V作为内核、C库等支持的默认指令集,把基础软件对微架构的特定支持细节进行抽象剥离,更为彻底的实现软件与硬件的解耦,并为未来全域异构算力高效调度奠定技术基础。最后,也将展望RISC-V与大模型为操作系统带来的结构性变革机遇,以及可能的创新方向。
随着计算机技术的发展,操作系统内核的设计也在不断进步。传统的操作系统内核多采用C语言编写,但C语言存在一定的缺陷,不利于内核的安全性和可靠性。近年来兴起的新型编程语言如Rust提供了内存安全和线程安全的特性,为设计更安全可靠的操作系统内核提供了可能。本报告介绍国内外用新型编程语言设计操作系统的相关工作,并进一步分析如何用Rust编程语言设计可灵活组合的组件化操作系统内核,并对其安全性、可扩展性、性能等进行分析。
近年来,开源操作系统社区成为国内备受关注的热点。一方面,操作系统当前面临了巨大的创新机会,从千行百业数字化转型而来的万物智联新场景,到计算、存储、互联都快速发展的新硬件,对操作系统的形态、架构提出了新的挑战。而开源正是协同创新,构建软件新生态的重要途径。另一方面,基础软件需要自立自强也成为了共识。以开源的方式,集合社会力量协作,正成为了操作系统创新的重要模式。讲者以openEuler社区两年的实践经验为基础,分享对当前中国开源操作系统机会和挑战的理解。