software-strategy-book/Ch2-5-OperatingSystem.tex

134 lines
35 KiB
TeX
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

操作系统负责管理软硬件资源、操纵程序运行为应用软件提供公共支撑是“软件作为基础设施”的集中体现。过去操作系统是信息空间的基础设施起到以平台化方式向下管理各类资源、向上支撑应用运行的作用未来在信息物理持续融合趋势的推动下操作系统管理资源将向各类物理资源扩展甚至向其他具有“数字孪生”特性的经济、社会和生产生活资源扩展。这一趋势是“软件定义”思想发展的必然结果随着计算系统正在突破单机、数据中心等封闭环境的限制操作系统的资源虚拟化、功能可编程能力进一步拓展从控制管理单个计算机系统资源进一步延伸为连接协调多个结点组成的复杂计算系统为信息空间、物理空间乃至整个社会提供“软件定义”手段推动着诸如网构软件操作系统、智能家居操作系统、智慧城市操作系统等“泛在操作系统”Ubiquitous Operating System成为现实$^{[1]}$
与此同时操作系统的外延、或者说“操作系统应该是什么形态”这一问题也在随着技术和应用的发展而不断扩展演化。例如在人机物融合互联这一大背景下中间件正在表现出加速融合到操作系统中的趋势早在上个世纪的90年代初美国华盛顿大学的MOSESMeta Operating System and Entity Shell项目即使用了“元级操作系统”的概念来描述分布环境下“位于本地操作系统之上、应用之下的一层软件”$^{[2]}$早期的普适计算中间件Gaia $^{[3]}$等已在文献中混用“元级操作系统”和“中间件”概念而今天广泛应用的ROSRobot Operating System$^{[4]}$更是继承了网络中间件的核心思想。换言之,操作系统正在以海纳百川的方式沉淀各类具有软件定义特征的基础设施,这也是本章标题“操作系统与运行平台”的由来。
基于上述内涵和外延两个方面的观察,本章将从平台架构、方法机制、安全隐私等方面列出操作系统与运行平台的重大挑战问题,并阐述本领域的研究趋势和内容。
\section{重大挑战问题}
互联网革命正在进入下半场,“万物互联”时代正在到来,人机物融合的泛在应用场景推动着操作系统和运行平台的新一轮变革,带来体系结构、资源管理、应用支撑、首先,在所管控资源高度异构、涵盖人-机-物三元空间的条件下未来的操作系统和运行平台需要什么样的架构§5.1.1其次从向下管理泛在资源的角度需要以及什么样的资源虚拟化和调度机制§5.1.2再次从向上支撑应用运行的角度应当如何支撑上层应用的持续适应和演化§5.1.3最后在人与物加入到操作系统管理对象中之后基础设施层的安全与隐私保护风险如何应对§5.1.4)。
\subsection{支持软件定义的新型运行平台架构}
“软件定义”的提法最早可追溯到上个世纪90年代所提出的软件定义无线电Software-Defined Radio$^{[5]}$概念。在软件定义的无线电设备中,传统由晶体管、集成电路等实现的信号处理部件(如滤波器、调制/解调器等)被软件所代替,在大幅简化硬件设计同时,获得“功能可编程”的显著收益――设备能力可以按需扩增或裁剪,从而快速适应技术体制和市场需求的变化。
进入21世纪随着云计算等新型计算范型的出现人们对计算系统的灵活性、可管理性和资源利用率的追求日益提高“软件定义”一词被引入到计算技术领域。以 “软件定义网络”$^{[6]}$为例,与传统网络互联能力由硬件/固件所决定不同软件定义网络强调将整个网络自底向上划分为数据、控制和应用三个平面。其中控制平面向下操纵和协调数据平面上设备如交换机的行为向上提供尽可能与硬件无关的抽象编程接口、支撑应用平面运行。控制平面不仅具备“功能可编程”能力也具备了“资源虚拟化”能力也即能够对数据平面资源进行高效管理、封装与抽象。“软件定义”内涵的这一升华深受操作系统思想的影响。例如首个开源的软件定义网络控制器NOXNetwork Operating System在其文献$^{[7]}$中指出“现代操作系统通过提供对资源和信息高层抽象的可控访问…使得程序可以在各种计算硬件上安全和高效执行复杂任务”NOX就是将操作系统思想拓展到了网络设备管理中。
\begin{figure}[htbp]
\centering
\subfigure[传统操作系统]{
\centering
\includegraphics[width=0.4\linewidth,height=2.5cm]{fig2-5/tos.png}
}\
\subfigure[软件定义网络$\lbrack$x$\rbrack$]{
\centering
\includegraphics[width=0.5\linewidth, height=2.5cm]{fig2-5/sdn.png}
}
\caption{操作系统与软件定义网络架构的类比}
\end{figure}
将操作系统“功能可编程”、“资源虚拟化”的思想拓展到存储、安全、数据中心等具体领域,我们就得到了软件定义存储、软件定义安全、软件定义的数据中心等概念。进一步,随着操作系统由计算机软硬件之间的桥梁、人与计算机之间的桥梁拓展到云边端、人机物之间的桥梁,其定位将由单个计算机“管家”演化为支撑“软件定义一切”的运行平台。传统操作系统架构面向的是信息空间内孤立计算结点,这一沿用数十年的架构将面临如下两个方面的挑战:
\begin{itemize}
\item 从“精确控制”到“连接协调”的挑战。未来的人机物融合系统将是大规模、网络化的计算系统虽然每个节点上仍将运行传统的节点操作系统在节点内部通过对资源实施严格精确控制来达到资源虚拟化、功能可编程的目的但这种精确控制机制很难直接应用到网络层面。事实上这种简单放大的思路在30年前的Amobea等分布式操作系统实践中就已经证明很难奏效参见本书第一部分§3.4“中间件”一节)。根本原因在于网络化系统具有开放和复杂系统的特征,其所涉及的实体往往跨越多个管理域,系统边界也随时间演化而不断发生变化,很难构建静态不变的控制中心,或是明确稳定的自顶向下层次化结构。在这种场景下,更为妥当的方式将是 “连接协调”,即通过按需聚合和动态协同来打破不同节点之间的壁垒,统一管理并优化利用计算、数据甚至物理世界各种资源。从“精确控制”到“连接协调”的方式的这一转变,将从根本上动摇现有操作系统的架构,并催生新一代、运行于节点操作系统之上的网络操作系统。
\item 计算、通信、控制三元融合场景的挑战。今天广泛使用的Windows、Linux等操作系统在架构上深受首个现代意义上操作系统Unix的影响。它们运行于单一计算结点范围内内部大致可划分为资源管理、系统调用、人机接口等层次。这种架构针对信息空间内部的孤立计算结点设计很难支撑泛在化、智能化、网络化的新型应用场景。具体而言在计算维度上单一的本地计算将向云边端一体化计算、人机物协作计算、智能和机器学习计算等新型场景变迁在通信维度上5G等新型网络的出现使得网络时延和吞吐量得到极大改善可望触发移动和嵌入式操作系统的新一轮革命在控制维度上物联网、机器人等与物理世界紧密融合的计算设备涌现使得“功能可编程”将突破信息空间范畴需要在操作系统架构设计层面上考虑物理空间约束和对物理空间的影响。
\end{itemize}
\subsection{泛在资源的高效虚拟化和灵活调度}
文献$^{[1]}$给出了“普适操作系统”的概念指出未来的操作系统不仅仅是IT操作系统也将成为物理世界和虚拟世界的操作系统在今天已经初露端倪的机器人操作系统、车辆操作系统、物联网操作系统等基础上校园操作系统、城市操作系统、家庭操作系统等可望在将来成为现实。在这一背景下操作系统的核心功能――资源虚拟化和调度的实现机制面临一系列挑战\ref{fig2})。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.7\linewidth]{fig2-5/mmm.png}
\caption{人机物融合新型资源的虚拟化和调度所面临挑战}
\label{fig2}
\end{figure}
首先,如何为人机物融合计算中的各类新型异构资源建立抽象,是未来操作系统需要解决的核心问题。本质上,操作系统和运行平台负责向应用提供“抽象”,并将这些“抽象”绑定到硬件祼机。数十年来,这一领域已经积累了诸如进程、线程、文件、内存页等一系列重要抽象机制,为现代操作系统奠定了基石。但是,未来操作系统所管理的资源将跨越人、机、物三元空间,涵盖物理资源、计算资源、数据资源等多种类型,现有抽象远远不能满足需求。因此,需要探索符合新型资源特点、切合其特性的抽象机制,并突破在单一计算结点、有一定边界的分布式系统、跨域开放式系统等不同尺度上维护这些抽象的方法机理。
其次,在操作系统支持下,物理资源将呈现物理与数字二像性,如何将信息空间内的抽象与物理空间内的实体绑定,并持续保持和校正二者之间的一致性,是操作系统泛在化以后产生的新问题。一方面,需要利用预建立物理模型、传感器实时数据、较大时空尺度上的运行历史等数据,集成多物理量、多尺度、多概率的仿真过程,实现物理资源到信息空间中实体的正向映射,以及“因果关联”的虚拟实体到物理资源的映射;另一方面,即使建立了相应的“数字孪生”关系,也要考虑物理域和社会域资源在管理和调度过程中的特有属性,例如动作的非精确性和动态性、固有的噪声等。
再次,如何使打破信息-物理世界间以及不同节点间的壁垒,按需聚合各类资源,是实现泛在资源优化利用的关键。如前节所述,未来的计算系统在微观尺度上仍将运行我们今天所熟悉的节点级操作系统,而在整个系统的宏观尺度上,资源管理模型将从“精确控制”向“连接协调”转变。虽然这一理念在中间件、网构软件等领域已经有了初步实践,但一系列实现机制层面上的开放问题仍有待解决,包括需要何种模型来协调跨域资源及其能力、如何在动态环境下维持相对稳定的“功能可编程”抽象、如何有效管理调度各种冲突及涌现现象等。
最后,需要深入理解未来泛在计算场景下应用模式的共性特征,为上层应用的“软件定义”提供适当的、相对稳定的编程接口。可以预见,未来泛在计算场景至少包括数据规模巨大、强调按需能力获取的“云-边”效用计算,资源需求动态变化、不确定性很强的智能计算,移动性强、承载设备多、续航要求高、迭代快的智慧城市、工业互联网等领域的协作计算,人与物相互驱动、相互协同的人机物统一计算等。这些泛在应用模式很多都处在探索阶段,需要理解和凝练应用模式的共性特征,进而通过编程接口支撑上层应用灵活实施软件定义。
\subsection{复杂软件系统持续适应演化的共性支撑}
近年来,以人机物融合系统为背景,有研究者提出了信息产业的“昆虫纲悖论”:一方面,未来物联网设备和应用场景将会像昆虫一样繁多,带来空前巨大的市场;另一方面,由于每种场景都存在其个性化需求和特点,针对场景所开发的软件系统将缺乏可拷贝性,导致边际成本显著提高,反过来制约产业的发展。要打破这一悖论,关键在于软件系统不能静态绑定到特定场景,而应当具备灵活适应场景的能力,在其生命周期内能够持续演化来应对环境和用户需求的变化。
软件适应能力将成为未来人机物融合软件系统的基本属性,而操作系统在支撑软件适应演化活动方面具有天然优势:从可计算性的角度而言,操作系统与下层硬件裸机一起组成了能够“操纵”应用软件执行的通用图灵机实现,这一“操纵”能力使得操作系统有可能驱动应用软件的适应和演化;从计算反射$^{[10]}$实现的角度而言,操作系统和运行平台是应用软件执行的“元层容器”,对于上层应用具有计算反射能力,例如获知上层应用和环境状态、维护系统化反映上层应用环境和状态的模型、对上层应用实施调整操作等。因此,操作系统和运行平台是驱动计算节点动态感知、自主学习、在线演化的理想载体,但这一地位也同时对平台设计实现提出了一系列挑战。
\begin{itemize}
\item 操作系统及其上应用的自主适应与学习赋能。从“网络就是计算机”到“场景就是计算机”,其蕴含的理念从计算资源聚合进一步拓展到了多样化人机物融合场景下的资源按需定制。要实现“场景就是计算机”,关键在于操作系统和其上应用需要具备主动适应新场景和场景变化的能力,包括:操作系统本身和其上应用都具有柔性体系结构,节点本身可以动态调整,节点与节点这间连接关系可以按需变化,并且携带有指导这些变化的元层数据;在操作系统和运行平台内部构建“感知-理解-调整”回路,能够捕获和理解环境及运行状态,进而据此进行应用配置生成、主动部署、参数和连接关系在线调整等操作;具有从过去的适应和演化动作及效果中持续学习的能力,从而突破预定义场景和决策规则的约束,使得操作系统及其上应用在适应场景和用户需求变化的维度上能够表现出一定的“智能”。
\item 大规模复杂软件系统的演化规律及其运行支撑。人机物融合场景下许多软件系统已经达到了空前的规模。例如互联网的前身ARPANET仅连接了4个节点而2018年移动社交应用微信的月活跃用户数达到了10.8亿。规模上的量变引起质变,此类系统具有与单个节点或小规模分布式系统不同的演化规律,带来了一系列挑战性问题:软件系统规模巨大,其海量状态数据之间存在着千丝万缕的联系,如何“去粗取精、去伪存真”,提取能够作为适应演化依据的运行态势数据;系统中的节点通过“连接”形成了一个复杂网络,如何基于复杂网络中的交互掌握软件架构和运行大势;在由大量自治软件单元所组成的软件系统中,适应性演化动作往往发生在单元、子系统、系统等多个尺度上,如何在群体层面上形成恰当的适应性演化行为,以及不同层次上的适应性演化如何相互影响;等等。
\item “人在回路中”的软件系统演化决策。软件是“由人开发为人开发”的产品人在软件生命周期各个阶段所发挥的作用不可替代人是软件产品需求的提出者也是需求落地实施的开发者同时也是软件终端的使用者以及运行时的维护和升级者。因此未来人机物融合软件系统适应性演化决策应当是软件和人相结合的方式除了现有的规则、策略、机器学习等自动化方法外“人在回路中”是其重要的特点主要表现为两种形态操作系统和运行平台集成DevOps工具链来有效支持人来发挥作用软件系统从平台层所累积的人的行为数据、特别是群体行为数据中进行主动学习从而不断提升其演化决策能力。
\item“信息-物理-社会”空间的协同持续演化。复杂软件系统是典型的“社会-技术-物理”系统,软件将与其所在的社会和物理环境紧密融合在一起,相互作用、相互影响。这与传统的、完全在信息空间运行的软件有着质的区别。具体到基础性的、“操纵计算系统执行”的操作系统和运行平台层面,需要有能力支撑上层应用与物理世界和人类社会长期性的共同进化。这将显著扩展现有操作系统的内涵,带来一组极具挑战性的开放问题,例如:物理空间变化的频率远高于信息空间变化的频率,如何高效地支撑上层软件适应物理空间的变化;利用人工智能算法来进行演化决策,一旦决策错误可能会直接在物理空间造成严重后果,操作系统和运行平台应当提供什么样的监督、审计和补偿机制;等等。
\end{itemize}
\subsection{人机物融合过程中的安全与隐私保护}
数十年来“魔高一尺道高一丈”主流操作系统不断围绕系统用户认证、访问控制、数据安全、漏洞攻击缓解等方面进行安全增强。然而安全与隐私保护是一种伴生技术新的安全问题伴随新计算模式的涌现而不断产生。未来随着5G通讯、移动互联、云计算与物联网的应用普及人机物将广泛互联在网络虚拟世界与现实世界的行为将实现虚实深度融合导致信息系统的安全防御边界愈加模糊面临的安全威胁在种类和数量上都将激增用户隐私保护的难度显著增加。在未来人机物融合的过程中作为信息空间与物理空间乃至整个社会进行统一信息处理的载体操作系统及运行平台在安全和隐私保护方面的需求将面临一系列挑战
首先需要在大规模松耦合交互场景下建立虚实融合的信任关系。在未来人机物深度融合的时代将会有大量物理设备与应用软件接入到运行平台以数字身份作为运行主体在系统中发挥作用。随着越来越多的现实世界行为被迁移到网络虚拟空间进行处理在数字世界中如何对纷繁芜杂的虚拟社会关系进行准确刻画并实施严格管理是构筑未来安全可信数字空间的所必须要面对的挑战。在此基础上要建立数字身份的信任关系还需要在平台层面上对数字实体在虚拟世界的行为进行全面、如实地记录为准确刻画数字世界实体间的信任关系提供有力依据。并且由于现实社会中主体之间关系的大规模、松耦合特性原有的集中式管理方式对人机物融合系统的实体管理将无法适用需要实现管理的弱中心化基于众包、基于区块链等新型信任关系构建方法已在操作系统领域崭露头角。例如IBM的面向区块链的分布式操作系统Hyperledger Fabric可以利用区块链来支撑分布式应用运行并且通过模块化的共识协议来使得系统可以灵活适应不同的应用场景和信任模型。
其次,需要实现人机物融合场景下的严苛安全和隐私保护需求。人机物融合场景下计算节点众多、数据传输分散,诸如边缘计算等以“计算尽可能靠近数据的源头”为基本理念的计算模式将走向前台。而这些新的计算模式由于其服务模式的复杂性、实时性,数据的多源异构性、感知性以及终端的资源受限特性,传统数据安全和隐私保护机制将很难高效应用。同时,由于移动终端的资源一般都比较有限,其所能承载的数据存储计算能力和安全算法执行能力也有一定的局限性。如何将传统的隐私保护方案与边缘计算环境中边缘数据处理特性相结合,从数据隐私、位置隐私、身份隐私等多个方面入手研究相应的保护方案,是未来操作系统安全与隐私保护领域面临的重要挑战。同时,为了支撑广泛、大规模的人机物融合和互联,需要突破现有操作系统安全和隐私保护的被动防御机制、打破“信任篱笆”,强化安全与隐私保护的主动性与支配性,在利益与风险之间权衡,既关注更强、更灵活的隐私保护,又支持网络资源共享和互联互通。
\section{研究内容}
如§5.1.1节所述,未来操作系统将具有两种形态:一方面,在新型硬件技术和新型应用场景的共同驱动下,今天我们所熟知的、以单一计算节点为作用空间的操作系统(以下称节点操作系统)将继续快速发展;另一方面,随着人机物融合、特别是“软件定义一切”付诸实践,诸如“泛在操作系统”等新一代操作系统将出现,它们运行于经典操作系统之上,通过“连接协调”实现网络环境下人机物异构资源聚合和优化管理,支撑各种类型、不同尺度的泛在应用。
本节将围绕未来操作系统的上述两种形态阐述操作系统和运行平台的研究趋势与内容。其中§5.2.1-§5.2.3节聚焦节点操作系统§5.2.4-§5.2.7节聚焦新一代操作系统§5.2.8和§5.2.9则分别重点阐述与软件适应和演化、操作系统生态链构建相关的问题(图\ref{fig3})。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.9\linewidth]{fig2-5/cnt.png}
\caption{操作系统和运行平台的研究内容}
\label{fig3}
\end{figure}
\subsection{新型硬件资源管理和调度技术}
过去60年中大型主机、个人计算机、手持移动设备、物联网设备等不同类型计算设备的出现推动着经典操作系统技术的持续变革。近年来处理器、存储器件、网络互联设备等硬件技术快速发展众核处理器、FPGA/GPU加速硬件、非易失内存、远程直接数据存取RDMA网络等一系列高性能、具有新架构和新特征的新型硬件不断涌现并逐渐成为主流技术。作为计算系统的“管家”如何充分适应新型硬件特点并充分发挥其潜能是操作系统理论和技术的重要研究内容。例如大规模分布式异构计算以及移动异构片上系统对Linux等多线程共享存储的单内核结构提出挑战多核和多芯片计算机系统中非一致性内存访问架构使得传统基于页的虚存系统面临挑战非易失性内存的应用使得内存中的某些数据不再需要存储到硬盘在为操作系统带来性能优化空间的同时对传统类POSIX文件系统架构带来挑战目前已有的设备模拟、设备半虚拟化、设备直通、单根虚拟化SR-IOV等技术尚不能完全扩展到GPU、张量处理器等人工智能新型加速器或者是效率和灵活性还需要进一步提升 100G及以上以太网链路在大规模数据中心的普及网络带宽增长速度超越CPU处理能力增长速度传统的操作系统网络协议栈面临挑战等等。
\subsection{面向特定应用领域的优化技术}
当前,运行于单一计算节点的操作系统架构已经趋于稳定,但移动计算、物联网等特定应用领域的快速发展,推动着相应操作系统实现优化技术的突破。一方面,移动计算已经是主流的计算模式之一,智能移动终端的操作系统当前已经形成了较为成熟的产业生态。但是,移动计算与边缘计算、人工智能等新兴领域的交叉融合,推动着其架构和实现机理的不断拓展,相应操作系统也表现出向低功耗、强交互、智能化和高安全发展的趋势,研究内容包括轻量级操作系统体系结构、多场景自适应电源管理优化、资源受限环境下的深度学习适配优化、多种生物特征认证增强等。另一方面,随着物联网等设备的普及,针对嵌入式计算中安全关键、任务关键、非关键等任务混合运行及其安全隔离问题,围绕任务确定性调度、系统实时响应、任务间高效通信、操作系统内核验证等技术展开研究,满足嵌入式计算在复杂环境中对系统实时性、安全性、可靠性的严酷要求。
\subsection{软硬协同的安全攻防对抗技术}
如何结合处理器和硬件平台的特点设计新型安全高效的操作系统结构是未来操作系统技术的另一主要研究内容。当前基于CPU的可信计算空间隔离和基于TPM芯片的可信计算技术为可信软件执行提供了硬件级的执行验证这些技术都从操作系统底层提供了有力的可信执行支持。未来操作系统安全研究将发展软硬协同的操作系统安全攻防对抗模式变被动响应为主动防护夯实信息系统的安全基础。具体而言需要突破软硬件高效协同的安全体系结构设计、安全防护模型和方法、跨域交互机理及优化方法和基于模糊测试的内核安全性测试等关键技术结合硬件平台提供的多层次特权防护、资源分区隔离等安全能力解决软硬协同的高安全操作系统设计中的核心问题。
\subsection{面向新型架构的资源虚拟化技术}
以“函数即服务”FaaS为代表的无服务器计算等计算模式和边缘计算等新型应用模式给传统操作系统和虚拟化架构带来了挑战。首先虚拟化技术需要能够在支持多租户隔离的前提下实现高密度的资源虚拟化。以在边缘计算场景为例与集中式云数据中心不同可能需要在边缘的十几个服务器上分别支持数千种不同的服务当前已有的基于容器的轻量级虚拟化技术尚不能完全满足。其次在无服务器计算和边缘计算等场景中应用对资源的需求是高度动态变化的这给虚拟化的性能提出了苛刻要求需要探索新的轻量级虚拟化架构和优化机制。再次部分云计算应用开始出现向微服务应用发展的趋势。这意味着软件架构进一步地解耦单个镜像上运行的业务更加专一。因此当前提出了 Unikernel等机制来大幅度精简冗余模块来提高虚拟机的启动速度但虚拟化场景下的适用性和成熟度还需要进一步提升。最后计算资源之外的其它资源如GPU、存储、网络等专用虚拟化技术需要进一步探索。
\subsection{跨结点的资源高效按需聚合技术}
“计算的泛在化”意味着操作系统和运行平台的作用范围突破了传统单一计算结点范畴,需要在广域环境内调度各类资源,为上层软件提供相对稳定的抽象。在计算系统规模持续增长的情况下,需要突破海量虚拟机资源的高效管理、虚拟机间通信优化、自适应的虚拟机在线迁移及动态部署、共生虚拟机间共享内存的弹性管理及优化、虚拟机访存效率优化等技术,实现跨结点的高效分布式计算资源调度。另一方面,网络操作系统中往往没有明确、固化的控制中心或层次结构,跨结点的“资源虚拟化”和“能力可编程”主要依靠“连接协调”、通过自底向上的方式来实现。如何借鉴社会系统、经济系统、生物系统等复杂系统机理,实现上述目标,也是此类操作系统面临的挑战。
在跨结点的资源按需聚合方面,未来的一个重要应用模式是“云-边-端”协同模式。因此,需要面向现代网络化信息支撑体系的发展趋势,探索以资源虚拟化、服务云化、前后融合为基本特征的“云-边-端”协同操作系统柔性结构设计与优化技术,研究“云-边-端”高效资源协同调度框架、基于云边端协同和多目标优化的任务调度技术等。
\subsection{多租户条件下的主动防御技术}
多租户将是未来运行平台的主流应用形态之一。更多的服务被整合在单一平台上这些服务中可能包括了来自不同租户的不同安全等级的信息必须根据用户需求对应用系统的硬件、软件、数据、网络、存储等不同层面资源实现安全隔离。同时为了提高资源利用效率运行平台根据资源使用情况进行动态调度这种动态变化的环境将显著增大了安全隔离的难度。为了提高服务运行性能以Docker为代表的轻量级虚拟化容器技术也被广泛应用相对于虚拟机的强隔离性容器技术则是以弱隔离性换取性能的提高。在应用虚拟化技术的过程中隔离性与性能之间的取舍、动态变化下虚拟计算资源的安全复用、Hypervisor层的虚拟机监管、虚拟机逃逸防护等都成为必须要面对的挑战。同时虚拟化技术还需要对软件定义网络在数据中心内部的网络安全管理提供支持通过虚拟网关等技术对虚拟化数据流进行安全监控这些虚拟设备能否安全使用都将对系统安全性产生深刻的影响。
\subsection{物理和社会资源的抽象和管控技术}
操作系统 “资源虚拟化”的能力来自于其对资源的抽象、封装和调度。传统操作系统针对信息空间内部的资源,已经建立了进程/线程、内存页/虚拟内存、文件等相对稳定的抽象实体。未来,在人机物融合系统中,如何表达和管理各类高度异构、动态变化的物理和社会资源,是操作系统领域的开放问题。其中一个核心问题是:在认知、物理和信息空间三者之间,如何刻画、检验、保持、校正多模型结构之间定性与定量一致性,进而实现具有“数字孪生”的物理和社会空间资源的调度和管理。此外,未来操作系统的编程接口不仅涉及到计算资源的“软件定义”,可能包括各种可传感物体对象、智能无人系统等各类物理资源,甚至向其他具有“数字孪生”特性的经济、社会和生产生活资源,其接口形式、接口实现机理等都是开放的问题。
\subsection{运行平台支持的软件持续演化技术}
适应和演化是未来人机物融合软件的基本特征其实现机制牵涉到两个层面。首先未来人机物融合软件的运行平台自身应当是可以是柔性设计、可以持续演化的。其次操作系统和运行平台是能够支撑上层应用适应和演化的天然基础设施但由于在线演化的需求是在“软件作为基础设施”过程中逐渐显现的其实现机理也是目前操作系统和运行平台领域研究相对薄弱的环节需要从运行状态把握、群体智能决策调整、宏观和微观演化效果评估等角度开展研究。相关研究内容已经在重大挑战性问题的5.1.3节中给出,本节不再赘述。
\subsection{基于众包和开源的生态构建技术}
随着互联网的深入发展和广泛应用,操作系统和运行平台的研发出现了新的特点,其中开源和众包对操作系统的发展产生了深远影响。它们一方面改变了操作系统产业的商业模式,服务化成为趋势,操作系统厂商如苹果、微软纷纷从销售产品获利转型为提供服务获利的模式;另一方面促进了面向行业或应用场景需求的专用操作系统的发展,降低了操作系统研发定制的门槛,使得更多的厂商可以参与到操作系统生态链构建中来。但是,开源和众包模式的引入,也为操作系统的开发带来了一系列问题。例如,在使用开源资源时,如指导思想和方法不当,可能导致在产品中包含若干“黑盒子”,引入代码不可控、产品升级被动等风险;产品如过度依赖开源,发展途径就会被开源主导,创新的空间将被大幅约束;等等。如何在操作系统生态链构建过程中最大限度发挥开源和众包的长处,是需要深入研究的问题,相关的研究方向包括操作系统代码来源链的建模和分析、开源许可证的合规性及冲突分析、多来源缺陷数据的定性与定量统计分析等。
\section{结束语}
无论是今天还是未来,操作系统都是“软件作为基础设施”的集中体现,也是“软件定义一切”能力的基石。在计算泛在化背景下,未来的操作系统将突破当前单机操作系统这一狭义形式,向支撑人机物融合、具有“资源虚拟化”和“功能可编程”特点的泛化运行平台过渡。受这一趋势所推动,一系列重大挑战性问题涌现,包括支持软件定义的新型运行平台架构、泛在资源的高效虚拟化和调度方法、软件系统持续适应演化的支撑机制、人机物融合过程中的安全与隐私问题等。本节对上述挑战的概念内涵、产生背景和展开后的具体问题进行了详细阐述,并在此基础上结合操作系统和运行平台领域当前研究热点,从未来的节点操作系统、网络操作系统等角度,对领域研究内容进行了梳理。
\section{参考文献}
[1] Mei, H., and Guo, Y.: Toward ubiquitous operating systems: A software-defined perspective, Computer, 2018, 51, (1), pp. 50-56
[2] Pezely, D.J., Almquist, M.D., Evenson, M.T., and Bricken, W.: Design and implementation of the meta operating system and entity shell. Technical Report, Human Interface Technology Lab, University of Washington, 1992.
[3] Román, M., Hess, C., Cerqueira, R., Ranganathan, A., Campbell, R.H., and Nahrstedt, K.: Gaia: a middleware platform for active spaces, ACM SIGMOBILE Mobile Computing and Communications Review, 2002, 6, (4), pp. 65-67
[4] Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R., and Ng, A.Y.: ROS: an open-source Robot Operating System. Proc. ICRA workshop on open source software2009 pp. 5
[5] Tuttlebee, W.H.: Software-defined radio: facets of a developing technology, IEEE Personal Communications, 1999, 6, (2), pp. 38-44
[6] Kreutz, D., Ramos, F., Verissimo, P., Rothenberg, C.E., Azodolmolky, S., and Uhlig, S.: Software-Defined Networking: A Comprehensive Survey, PROCEEDINGS OF THE IEEE, 2015, 103, (1), pp. 14-76
[7] Gude, N., Koponen, T., Pettit, J., Pfaff, B., Casado, M., McKeown, N., and Shenker, S.: NOX: towards an operating system for networks, ACM SIGCOMM Computer Communication Review, 2008, 38, (3), pp. 105-110
[8] Northrop, L., Feiler, P., Gabriel, R.P., Goodenough, J., Linger, R., Longstaff, T., Kazman, R., Klein, M., Schmidt, D., and Sullivan, K.: Ultra-large-scale systems: The software challenge of the future, Technical report, CMU Software Engineering Institute, 2006.
[9] Soules, C.A., Appavoo, J., Hui, K., Wisniewski, R.W., Da Silva, D., Ganger, G.R., Krieger, O., Stumm, M., Auslander, M.A., and Ostrowski, M.: System Support for Online Reconfiguration, USENIX Annual Technical Conference, 2003.
[10] Maes, P.: Concepts and experiments in computational reflection, ACM SIGPLAN Notices, 1987, 22, pp. 147-155