本文来自微信公众号:CSDN (ID:CSDNnews),作者:陈渝,责编:屠敏,原文标题:《操作系统 20 年一周期,国产 OS 迎来黄金时代!》,题图来自:视觉中国
5 月 6 日,据彭博社报道,中国部分企业希望能够在未来两年内用国产替代品如操作系统替换外国品牌的个人电脑。有知情人士表示,此举可能最终会取代至少 5000 万台的国外品牌电脑。这一决定也将有效推动国内长达十年的用本土技术取代进口技术的运动,减少操作系统、半导体、服务器、手机等多个领域对外的依赖。
实则,近年来,“缺芯少魂”带来的卡脖子危机为众多行业敲响警钟,加快国产化软硬件研发的呼声空前高涨,开源也成为中国自主创新研发的重要突破手段。
针对基础软件重中之重的操作系统领域,近日,我们邀请到清华大学计算机系长聘副教授陈渝针对过去一年间的操作系统发展进行总结与分享,在他看来,如今的国产操作系统已从三个方面发生了本质性蜕变。
前言
当前国内市场中,基于 Linux 的发行版操作系统层出不穷、WPS 等基础办公软件的普及,虽然可以完成基本体验,但是距离成熟还有很长的一段路要走。
就操作系统而言,据《2021~2022 中国开发者调查报告》显示,在国产操作系统上,开发者希望国产操作系统能够有良好的应用兼容性和用户体验。
来源《2021-2022 中国开发者调查报告》
不过,不足亦是我们前进的动力。外患的压力下,国内开发者对操作系统的关注度日趋增长,有 67% 的开发者表示国产操作系统正在迅速崛起,也推荐尝试使用。
从外界的感知到底层技术的迭代,国产操作系统也在悄然间“刷新”了自己。
操作系统在信息领域的“实际”重要性在迅速提升
虽然大家都知道操作系统很重要。但在前几年,所谓的操作系统重要,还主要停留在“口头上”或“面子上”。个人认为根本原因在于操作系统的前期投入巨大,研发、维护、更新周期长,能形成一定生态规模的操作系统在全世界也没有几个,能够打破已有市场的新型操作系统更少。
在这样的情况下,能够通过自研操作系统直接盈利的国内企业就太少了。即使是对外声明做(通用)操作系统研发的公司,绝大部分也是建立在 Linux 官方内核或某 Linux 发行版上的下游企业。这导致企业难以主动投入足够的资金和人力进行操作系统的研发工作。
但现实情况在发生变化。
首先,我们看到华为在这两年迅速成为了国内操作系统的领军企业之一,推出了其主导的 OpenEuler 服务器领域操作系统和 OpenHarmony 移动终端/物联网操作系统。这其中有众所周知的华为被断供的原因,也有国际形势的大背景因素。
来源《2021-2022 中国开发者调查报告》
其次,当国内 IT 领先企业发展到一定阶段,采用外来的操作系统会受到功能、性能和安全可靠等特定需求的限制,而这些企业已经有一定的实力进行操作系统研发方面的投入。比如阿里集团、腾讯、字节跳动、蚂蚁等都是这样的代表,它们通过改进或定制 Linux 等操作系统来提升自身业务的发展。
最后,在新兴领域,比如 AI、机器学习、物联网、AR/VR、无人系统、工业机器人等,吸引了大量的资金,随着现有的操作系统并不能充分满足这些领域的深入发展需求,这就推动了这些领域的新玩家也投入到面向这些领域的新型操作系统的研究中来。
操作系统的边界在多层次扩展
在大学计算机专业的操作系统课程中,一般给操作系统的定义是:操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。并把操作系统的边界定位在内核(Kernel)层面,如 Linux 就是一种操作系统内核,而运行在用户态的 shell 程序或 GUI 程序则是操作系统的交互界面,并不属于操作系统内核。
不过,目前的操作系统的边界已经被大大地扩展了。在产业界,操作系统在努力向国际先进水平靠近。如:
国内的 OpenEuler 操作系统、龙蜥操作系统、麒麟操作系统、统信操作系统等,与国外的 Ubuntu 操作系统、RedHat 操作系统、SUSE 操作系统类似,都是基于 Linux 操作系统内核的多种软件集合形成的 Linux 发行版;
运行在手机上的 OpenHarmony 操作系统与 Google 的 Android 操作系统类似,都是基于 Linux 操作系统内核,提供适合触摸交互的图形交互软件框架和移动终端共性服务的移动终端类操作系统;
运行在嵌入式设备上的 OpenHarmony 操作系统、RT-Thread、Sylinx 等则是属于实时操作系统(RTOS)范围,除了在传统工业控制上继续发展之外,还在互联网、物联网、分布式协同领域等快速突破,形成了开发环境、分布式协同等更广泛的系统级支持;
在目前火热的自动驾驶领域,不少国内新造车企业(如理想、蔚来、小鹏等),与国外的特斯拉等在多方位进行竞争,都开展了面向新型电子驾驶、自动驾驶的操作系统研发,形成了新的操作系统产业热点。
来源《2021-2022 中国开发者调查报告》
在学术界,有一种有意思的观点,从上世纪六十年代开始的大型机/主机时代,发展到上世纪八十年代开始的个人计算机时代到本世纪初的互联网时代,操作系统每过二十年左右会出现一次跨越式发展机遇,这主要是计算环境发生了很大的变化,导致操作系统会更新换代,并引导相应的应用场景呈现数量级增长,形成围绕操作系统的产业生态。
最近,一些学者提出了操作系统将朝着泛在操作系统(Ubiquitous Operating System,UOS)演进的观点。国家自然基金委已经开始推动泛在操作系统及生态构建研究”专项项目的研究。围绕机器学习、物联网、AR/VR等未来人机物融合的泛在计算新模式和新场景将推动新一代操作系统的发展。泛在操作系统本质上属于领域和行业的专用软件系统,而某些行业应用场景(如智慧城市、无人工厂等)的多样性和足够的广泛性,意味着围绕行业构建生态成为可能。
因此,未来的泛在操作系统将呈现多个基于领域的操作系统生态共存的多元化格局。
编写操作系统的编程语言在变化
第三个变化则是编程语言。
C 语言是为了编写 UNIX 操作系统而诞生的高级语言,在它发展的五十多年的历史中,由于基于 C 语言的 UNIX、Linux、Windows 等先后在不同领域的统治地位,使得 C 语言在操作系统开发的编程语言中,占据了垄断地位。
不过,由于 C 语言的一些潜在问题(如灵活的指针带来的编程中的内存相关缺陷和并发相关缺陷),使得它的挑战者层出不穷。如上世纪九十年代诞生的 Java 语言,成为了目前移动终端操作系统——Android 的框架层和应用层的主力编程语言;Go 语言成为容器(Container)类系统软件、分布式系统软件,包括分布式文件系统等的重要开发语言。
另外,作为一个专注于安全和高性能的系统编程语言,Rust 目前在操作系统内核等领域成为了引入注目的新星。其不仅在 Stack Overflow 开发者调查的“最受喜爱编程语言”评选项目中持续多年摘取桂冠,还在 2019 年,收获到微软专家的好评,其将 Rust 称之为是 C 和 C++ 的最佳替代方案。此外,在 2020 年,Linux 之父 Linus Torvalds 回复 Rust for Linux 讨论时,表示“默认情况下可以启动支持,Rust 可以首先应用到驱动程序”。2021 年,Linux 内核团队发布添加 Rust 支持的 v1/v2 补丁。
预计到 2022 年,开发者有望看到 Linux 内核正式支持 Rust 语言。除了用 Rust 语言编写传统操作系统内核,我们还看到 MIT PDOS 研究组探索了用 Go 语言编写类 UNIX 操作系统的优势分析的研究;Stanford 大学用 Rust 语言编写面向基于 MCU 处理器嵌入式系统的 Tock 安全操作系统;Rice 大学在探索用 Rust 语言编写可不用重启并及时动态更新的操作系统内核;清华大学操作系统课题组在探索用 Rust 语言编写基于异步协程调度机制的安全硬实时操作系统和系统级虚拟机,并在本科操作系统课程中开展基于 Rust 和 C 的操作系统实验教学。
总结
2019 年 2 月出版的 Communications of the ACM,刊登了图灵奖得主 David Patterson 与 John Hennessy 的署名文章“A New Golden Age for computer Architecture”,提出“计算机体系结构领域将迎来又一个黄金十年,就像 20 世纪 80 年代我们做研究那时一样,新的架构设计将会带来更低的成本,更优的能耗、安全和性能。”
编译器专家、LLVM 之父 Chris Lattner 在 2021 年的系统领域著名的 ASPLOS 会议上,做了主题发言“The Golden Age of Compiler Design in an Era of HW/SW Co-design”,提出“需要下一代编译器和编程语言来帮助解决硬件的碎片化”。
Patterson 和 Hennessey 提过一个观点:我们来到了计算机架构的文艺复兴时代,需要把计算机行业上下游人员垂直整合起来,大家既要懂硬件,也要懂软件。因为世界变化得很快,所以思考问题时要回归第一性原理,要用新的眼光去重新看待旧事物。
个人认为,上述计算机专家的观点也完全适合现在的操作系统发展。当编程语言和体系机构都迎来了黄金时代的当下,操作系统也将迎来它的黄金时代,也许将来的操作系统不是像现在统治世界的 Linux、Windows 那样臃肿而庞大,而是各种可以迅速组合形成的,并且功能丰富多彩的定制操作系统,能够快速适配未来多种多样的处理器、加速器、外设和应用需求。
本文来自微信公众号:CSDN (ID:CSDNnews),作者:陈渝