操作系统是计算机系统中最为关键的系统软件之一。
按照计算机科学技术名词(第三版)的定 义,操作系统是“计算机系统中的一种软件。是具有特定功能的程序模块的集合,能有效管理软硬 件资源,合理组织工作流程,向用户提供服务,使用户方便地使用计算机,使整个计算机系统能高 效运行”。简言之,操作系统的主要功能是:向下管理资源(包括存储、外设和计算等资源),向上 为用户和应用程序提供公共服务。
自1956年第一个实际可用的操作系统GM-NAA I/O诞生以来,操作系统已经发展了近70年, 从早期的面向单机的操作系统发展主线,到后来对网络和基于网络的并行、分布计算提供更好支 持的发展辅线,操作系统面向计算机硬件的迅速发展,以更好、更高效地管理硬件资源并充分发挥 硬件资源所提供的计算能力;同时,面向新的应用需求和用户需求,沉淀应用领域共性,提供更便 利、易用的人机交互和应用支撑。分析操作系统发展的重要事件及其时间节点,可以发现其中存在 “20年周期律”的重大变迁规律,即每20年出现一次跨越式发展机遇,诞生新一代操作系统。即, 20世纪60—80年代的主机计算时代,如IBM OS/360 、DEC VMS 和UNIX;20世纪80年代—2000 年的个人计算时代,如微软Windows和开源Linux;2000 —2020年移动计算时代,如谷歌 Android和苹果iOS。这些在各个阶段出现的具有代表性操作系统,构建了各自领域的操作系统生 态。
回顾操作系统的发展历史,可以看到,从不同的视角,操作系统呈现不同的功用: 从计算机系统的视角来看,操作系统是一个资源管理器。通过管理和协调对各种底层软硬件资 源的使用,发挥底层软硬件资源所提供的计算能力。同时通过硬件驱动程序来桥接异构硬件资 源,提高系统的互操作性。
从系统使用者的视角来看,操作系统是一台虚拟机。一方面提供对底层资源细节的抽象,另一方 面为使用者提供更方便易用的用户界面。对于软件开发人员来说,操作系统虚拟机还决定了其 面对的编程模型。 从应用软件的视角来看,操作系统是软件的开发和运行平台。操作系统为应用软件的开发和运行 提供各种必要的支撑,包括:应用软件的运行环境及其框架设施,应用软件运行所需资源及其调 度和管理,以及应用软件开发和维护的若干工具。
随着互联网的快速发展,操作系统面向的计算环境在从单机、局域网平台向互联网平台延伸, 为了更好地对不同的互联网计算与应用模式提供支持,以及管理和利用互联网平台上庞大的计算 资源和数据资源,出现了面向新型互联网应用、基于单机操作系统的网络化操作系统。操作系统 的任务重心从解决如何提升计算资源的利用率,到如何为不同的领域应用与用户需求提供交互界 面与应用模式的定制与优化,进而到如何提供通用的网络相关功能以支撑网络应用软件的运行和 开发。操作系统的种类很多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操作系 统到超级计算机的大型操作系统。从基础支撑角度,可以把操作系统划分为服务器操作系统、桌 面操作系统、移动操作系统、云操作系统、嵌入式操作系统、物联网操作系统等。 近年来,随着移动互联网和物联网的迅速发展,计算模式和软件应用都在逐步演化为更加复 杂和动态的形式。在新的计算模式和应用场景中,除了传统的计算设备(“机”)和新兴的物联网设 备、物理实体(“物”),还逐渐融入了一种新的重要元素,即“人”的参与,从而形成人机物三元融 合(human-cyber-physical)的计算环境。
20 世纪 90 年代,Mark Weiser 提出了泛在计算(Ubiquitous Computing)的概念,认为计 算是广泛存在的,计算机可以是任意尺寸大小、任意形状的,可以嵌入到每个物体中为人们提供服 务。21 世纪以来, 物联网(Internet of Things)提倡将物品通过信息传感设备, 按照约定的协议 与互联网连接起来,以实现智能化识别和管理。所谓泛在计算,是指计算无缝多变、需求多样、场 景复杂,要求硬件资源、数据资源、软件平台、应用软件具有柔性灵活的软件定义能力、动态适配 能力、泛在互联能力和自然交互能力。随着泛在计算概念的深化,计算机可管理资源的范围将进一 步扩大,机器人和智能家居开始成为操作系统的可管理资源,出现了机器人操作系统(ROS)和家 庭操作系统(HomeOS)等新的操作系统概念。随着人机物融合的应用模式的进一步演化, 操作 系统的概念还会不断延伸和泛化,梅宏院士在 2018 年《IEEE Computer》杂志发表了题为“走向泛在操作系统 :一种软件定义的视角”的文章, 提出“泛在操作系统(Ubiquitous Operating System)”的概念,来表示不限于 Windows/Linux 这样的传统操作系统的未来新型操作系统。

可以看到,泛在操作系统的命名来自于操作系统随着技术发展的不断延伸与扩展,即从主机 操作系统、个人(桌面)操作系统、移动终端操作系统、物联终端操作系统的不断泛化,未来网络化 的泛在操作系统所管理的终端包括主机、PC 端、移动终端、物联终端,不同发展阶段有各自的侧 重点。随着“人机物”的融合发展,目前泛在操作系统发展重点是物联终端的接入与管控,以及用 以支撑包括物联终端的各类网络应用开发运行支撑平台。
泛在操作系统的概念指的就是在人机物融合的泛在计算模式下支持泛在应用开发和运行的 操作系统平台。 泛在操作系统是传统操作系统概念的进一步扩展与泛化, 不再把操作系统的概念局限于像 Linux 和 Windows 这样的单机操作系统。 泛在操作系统支持新型泛在计算资源的管理和调度, 以及泛在应用的开发运行。由于泛在计 算场景的领域行业特定性、泛在计算资源的广谱多样性和极端特异性,泛在操作系统的领域性和 专用性将会比较突出,不会有“大一统”的通用、普适的泛在操作系统,有必要面向不同的应用模 式和场景,“case by case”地构建面向不同领域不同需求的泛在操作系统。
开源软件是代码创作者在使用相关开源许可证 (如通用性公开许可证 /General Public License 等)的基础上,将自己的源代码向世界公开,允许用户进行自主学习、报错、修改和再发布 等活动, 以共同提高软件的质量。开源方法通过营造开放透明的社区创作环境, 充分激发用户参 与创新以及其他与生态相关群体的参与热情,并以自组织的松散方式相互协作,最终实现群体智 慧的涌现。 按照泛在操作系统的分类, 本报告编写组对泛在操作系统相关开源工作进行了调研梳 理,并形成如下的泛在操作系统开源工作全景图,其中,基础平台类操作系统相关的开源社区、开 源项目 / 产品较为丰富,应用场景类操作系统的开源社区和开源产品相对较少。

在基础平台类操作系统方面,除了国际开源社区,我国也有多个开源操作系统社区,研制了自 主的社区版操作系统,社区版操作系统力求版权清晰、兼容开放、技术领先且被广泛使用。除了开 源社区之外,部分企业也将自身的操作系统产品开源,选择开源与商业化并行的方式,来促进操作 系统的产品迭代和应用推广。目前, 国内主流的桌面和服务器计算机操作系统均源于开源 Linux 操作系统,国内操作系统厂商在国内外开源社区的贡献度不断提高。在嵌入式和移动终端领域,国 内厂商的技术路线也与开源操作系统有着很深的联系。 部分应用场景类操作系统虽为闭源系统,但也涉及开源组件的采用,以及需要生态伙伴二次 开发、共同发展,因此应用场景类操作系统提供者对于产品的生态体系建设较为关注,部分正在探 索开放系统等与开源生态相关的开发与应用模式。
总体而言,放眼全球市场,国产操作系统仍处于追赶态势,但越来越多的国内企业或社区正 持续扩大自主研发和生产力度。无论是基础平台类还是应用场景类操作系统, 开源的协作模式和 生态构建将是其未来发展的重要突破点。以服务器操作系统为例, Linux 从发行之初已演进多个 系统版本,而更好用、更具创新性的应用程序是在开源的 Linux 基础之上创建的。因此,各类泛在 操作系统的开源发展中,一方面需要在上游与广泛的硬件终端等资源适配,在下游支撑构建更丰 富的应用软件体系,另一方面在性能测试、协同开发、联合优化等几个层面,需要能做好技术创新、 社区治理。
桌面操作系统是配置于个人计算机硬件之上的第一层基础软件, 对下管理个人计算机系统的 全部硬件资源, 对上为各类复杂应用提供运行环境。桌面操作系统的重要特征是根据人在键盘、 鼠标、触摸屏等设备上发出的命令进行工作。 桌面操作系统主要包括三类 :DOS 操作系统、Unix 和类 Unix 操作系统,Windows 操作系 统。随着多年的发展,桌面操作系统已广泛应用于个人台式机、笔记本、一体机等终端产品,并拓 展了对云计算支持的能力。 常用的桌面操作系统包括 :DOS 操作系统、Windows、MacOS、Ubuntu、统信 UOS、中标 麒麟等。桌面操作系统的部分国际、国内开源工作情况如下表所示,目前我国有多家桌面操作系统 企业在积极推动开源工作。
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如 Web 服务器、 应用服务 器和数据库服务器等,是用于管理大型计算机各类硬件资源、控制程序运行和支持应用软件运行 的系统软件。 随着云计算迅猛发展和广泛应用, 云服务器成为与物理服务器并存的两种形式。云服务器提 供了简单高效、安全可靠、处理能力可弹性伸缩的计算服务,用户无需提前购买硬件,即可迅速创 建或释放任意多台云服务器。