周明辉修改更新
This commit is contained in:
parent
ae273f9e01
commit
afed5a692e
|
@ -47,7 +47,7 @@
|
|||
|
||||
\item 提高操作系统的抽象能力
|
||||
|
||||
在这一阶段,一系列重要的、今天所熟知的操作系统抽象(及其实现机理)被确立。其中,20世纪50年代“文件”已经被用于描述存储于外部存储器(如磁鼓)中的数据单元,60年代初文件系统已经成为许多操作系统的基本组件,并在Unix操作系统中扩展为对所有I/O设备能力的抽象;内存分页(段)和虚拟内存于1959年在英国曼彻斯特大学Atlas计算机原型系统中首先实现,并很快出现在60年代的商用计算机中,成为对内存资源的基本使用方式;多道程序、特别是分时共享理念的发展,推动了进程和线程的概念被提出,二者至今仍是CPU资源调度和使用的基本单位。上述抽象奠定了现代操作系统内核设计与实现的基础,也逐渐在软件领域形成了对“操作系统应当如何抽象计算机硬件能力”这一问题的共识。
|
||||
在这一阶段,一系列重要的、今天所熟知的操作系统抽象(及其实现机理)被确立。其中,20世纪50年代“文件”已经被用于描述存储于外部存储器(如磁鼓)中的数据单元,60年代初文件系统已经成为许多操作系统的基本组成部分,并在Unix操作系统中扩展为对所有I/O设备能力的抽象;内存分页(段)和虚拟内存于1959年在英国曼彻斯特大学Atlas计算机原型系统中首先实现,并很快出现在60年代的商用计算机中,成为对内存资源的基本使用方式;多道程序、特别是分时共享理念的发展,推动了进程和线程的概念被提出,二者至今仍是CPU资源调度和使用的基本单位。上述抽象奠定了现代操作系统内核设计与实现的基础,也逐渐在软件领域形成了对“操作系统应当如何抽象计算机硬件能力”这一问题的共识。
|
||||
|
||||
与操作抽象能力提升相关的一个里程碑事件是“兼容”概念的提出。早期操作系统往往绑定到特定机型甚至特定应用场景,许多操作系统是计算机最终用户所开发或定制的。进入20世纪60年代,集成电路的发明促使计算技术迅速向工业、商业、教育等各个领域渗透,与硬件和应用场景高度绑定的操作系统已经无法满足日益增长的需求。在这一背景下,IBM于1961年启动OS/360研制计划\cite{Mealy:1966:FSO:1663370.1663371},旨在为System/360系列计算机开发了统一的批处理操作系统,为应用软件提供标准化、与特定机型和应用场景解耦的运行环境。其后,1968年发布的CP-67操作系统和1972年发布VM/370操作系统扩展了分时共享的思想,首次提供了成熟的虚拟化\index{虚拟化}能力\cite{Creasy:1981:OVT:1664853.1664863},并率先使用了今天被广泛接受的“虚拟机监视器”(Hypervisor)一词。“兼容”概念自此开始深入人心:操作系统与硬件和应用场景解耦,使得上层应用在任何时候都看到是一个标准化的、具有通用图灵机\index{通用图灵机}能力的“虚拟机”,而不同型号的硬件也通过操作系统的抽象封装\index{抽象封装},以一致的方式向上层应用提供其能力。这一思路直接推动了整个计算机软硬件生态链的快速发展。
|
||||
|
||||
|
@ -97,7 +97,7 @@
|
|||
\subsection{面向程序设计语言的编译系统}
|
||||
在高级程序设计语言出现以后,程序设计方法学和程序设计语言飞速发展,诸如结构化程序设计\index{结构化程序设计}、面向对象程序设计\index{面向对象程序设计}、函数式程序设计\index{函数式程序设计}、逻辑程序设计\index{逻辑程序设计}等方法和语言百花齐放,直接推动了编译技术和编译系统的发展。
|
||||
|
||||
20世纪50年代末,COBOL(Common Business-Oriented Language)语言诞生\cite{Sammet:1978:EHC:960118.808378}。与Fortran主要面向科学和工程计算不同,COBOL是用于商务数据处理的语言,也是第一个跨平台的高级程序设计语言。1960年,由不同编译器编译的同一COBOL程序成功在UNIVAC II和RCA 501机上运行,表明了不同主机代码级兼容的可行性。70年代初,美国贝尔实验室以开发了B语言和B语言编译器,并用B语言编写了第一个UNIX操作系统内核。在B语言基础上,贝尔实验室经过进一步改进完善后发布了C语言及其编译器。
|
||||
20世纪50年代末,COBOL(Common Business-Oriented Language)语言诞生\cite{Sammet:1978:EHC:960118.808378}。与Fortran主要面向科学和工程计算不同,COBOL是用于商务数据处理的语言,也是第一个跨平台的高级程序设计语言。1960年,由不同编译器编译的同一COBOL程序成功在UNIVAC II和RCA 501机上运行,表明了不同主机代码级兼容的可行性。70年代初,美国贝尔实验室开发了B语言和B语言编译器,并用B语言编写了第一个UNIX操作系统内核。在B语言基础上,贝尔实验室经过进一步改进完善后发布了C语言及其编译器。
|
||||
|
||||
相对于Fortran和C等命令式高级语言,面向对象语言也在这一时期得到发展。20世纪60年代的SIMULA67语言\cite{Dahl:1968:FSL:800166.805258}引入了类和对象的概念,被认为是世界上第一个面向对象语言。70年代出现的Smalltalk语言支持类的动态创建和修改。受到C和SIMULA67语言的影响,贝尔实验室在八十年代开发了C++,随后开发了支持C++的Cfront编译器。20世纪90年代,随着C++等语言的流行,面向对象语言成为主流的编程语言,重要标志是GCC编译器(GNU Compiler Collection)走向成熟,以及Java面向对象语言和编译器的发布。这一时期互联网的发展也促进了编程语言及其编译/解释执行系统的发展,例如出现了面向互联网开发、在运行时检查类型甚至改变程序结构的动态语言(如PHP、Ruby等)。
|
||||
|
||||
|
@ -156,7 +156,7 @@
|
|||
\item 在可用性方面,此类平台需要7×24小时持续提供基础服务,是支撑整个信息空间持续运行的核心基础设施,突出表现为一旦发生故障,会产生较大的社会经济影响。例如,有文献指出如果一个主要的云平台宕机3-6天,美国经济会产生30亿-150亿美元的损失\footnote{``Cloud Down: Impacts on the US economy,'' https://www.lloyds.com/\~/media/files/news-and-insight/risk-insight/2018/cloud-down/aircyberlloydspublic2018final.pdf}。
|
||||
\end{itemize}
|
||||
|
||||
\subsection{人机物融合中间件}\label{blockchain-history}
|
||||
\subsection{面向人机物融合应用的中间件}\label{blockchain-history}%%mh: may need attention
|
||||
计算技术的网络化和普适化推动了信息与物理空间的持续融合,出现了各类可以感知/作用于物理世界的大规模网络软件,中间件技术随之不断发展。本世纪初,随着相关硬件技术的逐渐成型,中间件领域针对嵌入式传感器和移动设备等载体,开始关注对物理空间情境(Context)数据的处理,出现了普适计算中间件、传感器网络中间件、情境感知中间件等一系列新型中间件。近年来快速发展的物联网中间件\index{物联网中间件}(IoT Middleware)在上述中间件概念的基础上,进一步针对“万物互联”的大规模异构环境进行了拓展,其核心关注点是在资源受限、高度异构、规模庞大、网络动态变化条件下,如何实现互联互通互操作,并且不违反各种时空约束特性,满足物联网应用对海量传感器数据或事件实时处理的需求。
|
||||
|
||||
除了感知物理世界外,随着信息物理融合系统的成熟,近年来中间件领域开始关注如何联接能够直接“作用”于物理世界的计算设备,其突出代表是无人系统/机器人中间件。针对无人系统计算环境高度异构、资源受限、常态失效、实时性要求高等特点,从2000年左右的Player等中间件开始,包括Miro、CLARAty、OpenRTM-aist、Pyra、Orca、MARIE等在内的一系列实践推动了无人系统中间件技术的发展,并直接为今天广泛使用的机器人“元级操作系统”ROS(Robot Operating System)奠定了理论和技术基础。
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
多租户将是未来运行平台的主流应用形态之一。更多的服务被整合在单一平台上,这些服务中可能包括了来自不同租户的不同安全等级的信息,必须根据用户需求对应用系统的硬件、软件、数据、网络、存储等不同层面资源实现安全隔离。同时,为了提高资源利用效率,运行平台根据资源使用情况进行动态调度,这种动态变化的环境将显著增大了安全隔离的难度。为了提高服务运行性能,以Docker为代表的轻量级虚拟化容器技术也被广泛应用,相对于虚拟机的强隔离性,容器技术则是以弱隔离性换取性能的提高。在应用虚拟化技术的过程中,隔离性与性能之间的取舍、动态变化下虚拟计算资源的安全复用、Hypervisor(虚拟机监视器)层的虚拟机监管、虚拟机逃逸防护等都成为必须要面对的挑战。同时,虚拟化技术还需要对软件定义网络在数据中心内部的网络安全管理提供支持,通过虚拟网关等技术对虚拟化数据流进行安全监控,这些虚拟设备能否安全使用都将对系统安全性产生深刻的影响。
|
||||
|
||||
\subsection{基于区块链的新型分布架构运行支撑技术}\label{os-research7}
|
||||
以区块链为基础的共识与信任机制可以为去中心化、扁平化的分布式应用架构提供支撑,具有驱动未来分布式软件乃至整个软件生态跃升式发展的潜力,将成为新一代操作系统和运行平台的组件之一(参见\ref{os-connection}节)。要实现这一目标,需要在如下一些方面开展研究:首先,区块链技术本身具有可扩展性、去中心化和安全性三者不可兼得的“三元悖论”难题,在区块链成为共性组件后,需要针对应用场景特点突破侧重点不同的共识算法,进而通过机制与策略的分离,实现场景定制的三元平衡寻优;其次,区块链技术在渗透至不同场景后,为了支持价值在不同行业与场景之间流动,支持不同行业与场景群体之间的协作交互,实现区块链的互操作性势在必行,需要针对公证人、侧链、原子交换、分布式私钥控制等为代表的跨链技术深入展开研究;再次,为了保证共识形成,区块链中事务信息需要通过网络传播给大范围节点,需要不断完善链内数据产生、验证、存储和使用整个过程中的隐私保护机制;第四,区块链的匿名性给网络监管机构带来了极大的挑战和威胁,当前对公有链的监管尚无有力技术手段,而如何在保护隐私的前提下实现监管,也是当前联盟链面临的重大挑战;最后,需要深入研究在应用层如何充分发挥区块链的优势和潜力,针对可信计算、共同认知、群体协同等不同场景探索其适用范围。
|
||||
以区块链为基础的共识与信任机制可以为去中心化、扁平化的分布式应用架构提供支撑,具有驱动未来分布式软件乃至整个软件生态跃升式发展的潜力,将成为新一代操作系统和运行平台的基本能力之一(参见\ref{os-connection}节)。要实现这一目标,需要在如下一些方面开展研究:首先,区块链技术本身具有可扩展性、去中心化和安全性三者不可兼得的“三元悖论”难题,在区块链成为共性构件后,需要针对应用场景特点突破侧重点不同的共识算法,进而通过机制与策略的分离,实现场景定制的三元平衡寻优;其次,区块链技术在渗透至不同场景后,为了支持价值在不同行业与场景之间流动,支持不同行业与场景群体之间的协作交互,实现区块链的互操作性势在必行,需要针对公证人、侧链、原子交换、分布式私钥控制等为代表的跨链技术深入展开研究;再次,为了保证共识形成,区块链中事务信息需要通过网络传播给大范围节点,需要不断完善链内数据产生、验证、存储和使用整个过程中的隐私保护机制;第四,区块链的匿名性给网络监管机构带来了极大的挑战和威胁,当前对公有链的监管尚无有力技术手段,而如何在保护隐私的前提下实现监管,也是当前联盟链面临的重大挑战;最后,需要深入研究在应用层如何充分发挥区块链的优势和潜力,针对可信计算、共同认知、群体协同等不同场景探索其适用范围。
|
||||
|
||||
\subsection{物理和社会资源的抽象和管控技术}\label{os-research8}
|
||||
操作系统 “资源虚拟化”的能力来自于其对资源的抽象、封装和调度。传统操作系统针对信息空间内部的资源,已经建立了进程/线程、内存页/虚拟内存、文件等相对稳定的抽象实体。未来,在人机物融合系统中,如何表达和管理各类高度异构、动态变化的物理和社会资源,是操作系统领域的开放问题。其中一个核心问题是:在信息、物理和社会(包括人的认知)空间三者之间,如何刻画、检验、保持、校正多模型结构之间定性与定量一致性,进而实现具有“数字孪生”的物理和社会空间资源的调度和管理。此外,未来操作系统的编程接口不仅涉及到计算资源的“软件定义”,可能包括各种可传感物体对象、智能无人系统等各类物理资源,甚至向其他具有“数字孪生”特性的经济、社会和生产生活资源,其接口形式、接口实现机理等都是开放的问题。
|
||||
|
|
Loading…
Reference in New Issue