从软件定义的角度重新理解操作系统

软件定义世界 介方-常坤
虽然软件定义操作系统在一定程度上可以扩展操作系统的应用领域和范围,但是由于计算资源的多样性、行业领域的广泛性、用户需求差异性,笔者认为:大一统的普适操作系统遥不可及,我们将长期处于根据应用场景定制的多样性泛在操作系统阶段。

我们正处于软件定义的时代,软件定义网络(SDN)、软件定义汽车(SDV)、软件定义无线电(SDR),软件定义战争等概念耳熟能详。更有专家预言,未来软件会定义一切。细心的朋友就会发现,软件定义的每个领域都有操作系统(OS)影子,例如软件定义网络离不开网络OS,软件定义汽车离不开汽车OS,软件定义无线电离不开SCA(本质上就是一个OS)。那就让我们一探究竟,OS到底与软件定义有什么关系。

1.何谓软件定义?

软件定义的本质是软硬件解耦,通过修改或升级软件的方式重构系统功能来快速响应需求变化。

软件定义背后的逻辑是系统不仅满足用户当前确定性的需求,而且还能满足用户未来可变潜在的需求。就像手机一样,传统功能机只能提供打电话、发短信功能,每人都必须使用和适应它。现在是一个智能手机时代,一部手机在手,天下我有。

平台化和智能化是软件定义技术的两个主流发展方向。

那什么是平台化呢?用统一标准约束软、硬件平台的构建,利用生态的力量共同打造平台。平台支撑上层应用,由庞大生态共同构建的平台才能催生应用的繁荣。

在移动互联网时代,Andriod和iOS手机平台就是当今最成功的平台级解决方案。

怎么理解智能化?这里的智能包括两个层面的含义。

第一层是指狭义的智能,特指人工智能,模仿人类的认知体系为机器赋能;第二层是指广义的智能,泛指系统功能的多样性、可变换性,可以满足用户的千人千面的需求。

智能手机未必就“智能”,只是可以满足用户的各种需求而已。

2.为什么谈“软件定义”避不开操作系统?

软件定义的核心是API(Application Program Interface)。API之上一切皆可编程,其本质是软硬件解耦。

由谁来提供API?由谁实现软硬件解耦?答案是“操作系统”。

如下图所示,在一个软件定义系统三层架构的系统中,操作系统是平台的一部分,是连接硬件平台与上层应用及用户的中间桥梁。

图1软件定义系统三层架构

伟大的古希腊物理学家阿基米德曾说过“给我一个支点,我可以撬动整个地球”。操作系统之于软件定义系统就是一个支点,它的作用是充分发挥硬件载体的价值,催生无限繁荣的应用生态。

图2 OS是软件定义系统的支点

3.操作系统的进化逻辑

操作系统定义是“控制和管理整个计算机系统的硬件和软件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其它应用软件方便的接口和环境,它是计算机系统中最基本的系统软件。”

对以上定义进行简单的解读:

1)负责计算机软硬件资源调度

2)为上层的应用、用户提供接口

3)是系统软件,而不是应用软件

操作系统的核心的职能是资源调度与管理,为用户及应用软件提供一致的API。

在主机计算时代,操作系统的调度的对象是CPU及相关附属资源,IBM OS/360是现代操作系统雏形,提供了标准接口连接外部设备。

20世纪70年代初,由贝尔实验室研发UNIX操作系统是一个现代意义上的通用操作系统,解决了跨平台移植问题,能为不同厂商、不同种类的计算机提供一致标准的API。

在个人计算时代,以个人PC机为载体,以微软Windows和开源Linux为代表,操作系统继续强化跨平台移植能力,逐步适应CPU、内存、声卡、显卡等硬件资源调度,并推出新型用户界面及应用模式。

在移动计算时代,以手机为载体,以谷歌Android和苹果iOS为代表,操作系统对下所管理的对象延伸到摄像头、GPS、惯导等各种传感器,对上支撑了庞大的应用生态,改变了人类的生活方式。软件定义的时代从“软件定义手机”逐步开启。

在万物互联时代,打通了人、机、物之间的连接。软件定义一切、一切皆可编程是这个时代的基本特征。操作系统所管理的硬件平台无论是种类上还是形态上都发生了根本性的变化。

从种类上,硬件资源包括CPU、DSP、FPGA、GPU、NPU等各种异构资源;从形态上,开始向“无形”资源延伸,把数据、知识、时间、网络等资源也纳入到操作系统所调度的范畴。遵循向下管理资源、向上支撑应用的原则和理念,从此操作系统的概念开始扩展和泛化。

基于此背景下,梅宏院士首次提出“泛在操作系统(Ubiquitous OS)”的概念。目前,智慧城市操作系统(Urban OS)、机器人操作系统(ROS)、汽车操作系统都是属于泛在操作系统的范畴。

4.操作系统的路在何方?

人工智能与操作系统相互赋能。

当今时代是智能化的时代,人工智能为各个领域赋能。操作系统为AI应用提供基础平台,实现硬件平台的资源虚拟化及调度,充分发挥硬件所能提供的计算能力。

未来应用的发展一定是轻量化、多样性,调用尽可能少的API实现更强大的功能。

面向新的应用及用户需求,凝练行业领域的共性,将应用的共性部分逐步沉淀到操作系统层。这时操作系统就附加上了行业领域的属性。显而易见,未来的操作系统将会越来越突显人工智能的能力,高效地管理数据、知识等无形资源。

百度李彦宏说过,“未来的操作系统是基于人工智能深度学习框架的系统”。百度DuerOS就是一款融入人工智能的对话式智能操作系统。

图3人工智能与操作系统

操作系统也可以被软件定义。

美国国防部高级研究计划局(DARPA)在2015年开始启动一项资源自适应软件系统(BRASS)的研究,其核心思想是开发一个能经受未来100年技术变革而能自适应的软件技术体系,该软件技术体系能自行对所在硬件资源生态系统的变化做出安全、动态式的响应。这就需要一个能被软件或代码自行定义的“操作系统”。

虽然软件定义操作系统在一定程度上可以扩展操作系统的应用领域和范围,但是由于计算资源的多样性、行业领域的广泛性、用户需求差异性,笔者认为:大一统的普适操作系统遥不可及,我们将长期处于根据应用场景定制的多样性泛在操作系统阶段。

请扫码关注数字化经济观察网
责编:高蝶
参与评论
文明上网,理性发言!请遵守新闻评论服务协议
0/200