写点什么

智能时代,操作系统的升维所面临的挑战

  • 2023-01-09
    北京
  • 本文字数:6542 字

    阅读完需:约 21 分钟

智能时代,操作系统的升维所面临的挑战

近几年来,智能操作系统非常火爆,不亚于芯片。其实在每个时代,它都会被放到风口浪尖上。每个人无时无刻不在用操作系统,尤其是作为一名开发者。有的人用 Windows,有的人用 Linux,还有些人用 Mac OS。每个时代的操作系统不一样,从 Unix 到今天智能手机的操作系统。


我们当前所处的智能时代,操作系统的升维面临哪些挑战?操作系统后续如何演化?下面我分享一下我的观点和建议。(本文整理自中科创达战略产品部首席架构师刘寿DIVE全球基础软件创新大会2022的演讲分享)。


以下为刘寿永演讲的精华内容,经编辑。


首先我会介绍下中科创达。然后回顾一下操作系统的历史,读史可以明智,知古鉴今,我们可以通过历史发展的车轮看到操作系统的演化,从而预判它未来的发展趋势。第三部分主要分享下操作系统面临什么样的挑战,在每一个时代,引爆操作系统发展的点往往不一样。第四部分,从更高的维度,看看操作系统未来的发展是什么样子。创新和历史是我所谓的阴阳之道,是正反两面。因为做创新时往往会背负历史包袱,我们应该怎么去看待操作系统的创新和历史,最后会总结一下我的观点,并展望下操作系统未来的趋势。

创达简介

中科创达是智能系统技术供应商,成立于 2008 年,在 2015 年上市,现在大约有一万多名员工,其中 90%是软件开发工程师,服务于全球一千多个客户,分布在全球大约三十个城市。


创达的核心业务主要有四块。第一块是传统的智能手机和其他智能终端;第二块是智能物联网;第三块是智能汽车;第四块是智能行业,现在无论是物联网,还是汽车,人工智能都是必不缺少的模块。


创达的技术范围覆盖了所有的类型终端,比如说摄像头、安全、人工智能,还有近几年来比较火爆的边缘。边缘端的微服务、混合云、容器编排、以及云端和云端链接、设备管理等等,创达的技术范围都能覆盖到。创达已经建立了全套的产业链上下游合作服务伙伴,包括 ODM、芯片厂、云厂商、操作系统厂商等等。

操作系统历史回顾

从 70 年代的 Unix 小型机,到 80、90 年代的个人电脑,到 2010 年开始的智能手机,再到从 2020 年开始到现在的物联网,每个发展时期,都有不同的操作系统作为主导,都有其成功因素和核心系统。


比如说 Unix 系统,它的主要核心技术在于分时共享、C 语言的编程接口。其主要成功因素则在于通用计算,一切皆文件。到今天为止,大部分的类 Unix 操作系统的核心概念还是文件。


到了 80 年代,个人 PC 出来以后,操作系统以 MacOS 和 Windows 为典型代表,主要强调图形界面交互。另外,它们有了自己的应用软件,尤其是办公软件。


到了 90 年代,随着因特网的发展,Linux 横空出世。Linux 是因为因特网诞生的,它的一个著名发行版是 Red Hat,提供了优秀的操作系统和服务。它的主要成功因素是移动互联网和开源运动。现在整个 Linux 世界里,几乎所有的软件都是开源软件,它们推动了 Linux 整个生态和基础软件的发展。


到了 2010 年,智能手机出现,典型的操作系统代表就是 iOS 和安卓。它们更强调交互,不是键盘式的交互,而是多点触摸,触摸屏式的交互。另外它们第一次有了“应用商店”概念。所以它们最主要的成功因素是移动互联网的发展和更好的用户体验。


到了今天,物联网的发展更强调自然交互,已经超越了触摸,也不仅仅是视觉、手势、语音,而是各方面的交互。这主要取决于人工智能的发展,还有开放协作的模式,能够把物联网系统打造得更流畅、更人性化,交互体验更好。

操作系统面临的挑战

在每个时代,每个操作系统都有自己的挑战,就像《易经》里讲的“物极必反,否极泰来”。当一个时代发展到某个程度时,某一类操作系统变得不再适应时代的发展,它要么自我突破,要么被另外一个系统取代。


在不同的时代,系统都需要做哪些突破?


二零零几年时,出现了 MID(Mobile Internet Device)。以前的手机屏幕很小,这时出现了大的交互式屏幕,图形系统就显得尤为重要,大家都致力于如何把图形的性能提高,交互性做好。


到了智能手机时代,又面临另外一种挑战。智能手机的发展越来越复杂,硬件设计越来越复杂,功能系统越来越复杂。硬件的复杂使得整个系统的模块越来越复杂。现在整个安卓系统的代码,可能就有上亿甚至十亿的代码行数,已经远远超过了以前的系统。另外还有了“应用”生态。很早以前,应用和系统是绑定的,没有人要单独去装一个应用。随着智能手机的到来,产生了各种各样的应用。比如大家经常刷的抖音、社交经常用的微信、还有一些轻音乐软件,甚至还有一些行业上的 APP 等等应用。为什么现在应用占据了生态?因为脱离了这些应用,手机可能就只是一个打电话的工具了


而到了现在我们所处的智能时代、物联网的时代,操作系统的发展又面临着一些新的挑战。


第一,整个物联网时代,设备形态越来越多样化。大家可以观察一下自己的家里和外面,像无人机、扫地机、监控摄像头,还有语音交互设备和 Box 等等,它们的形态不一样。形态不一样,产业链上下游的路径会变得越来越长,会有不同的硬件供应商、AI 算法供应商、系统集成商、云厂商等等,它们交织在一起,形成了一个庞大的产业链上下游。


第二,不同的设备上运行着不同的操作系统。如何打通这些多样化的操作系统?这是现在面临的挑战。不是说所有设备上必须装统一的操作系统,但所有的设备互联互通,是智能物联网时代应该解决的问题。

从更高维度看智能系统

软件×硬件=人体

现代的操作系统已经不单纯是软件问题,而是包含了软件和硬件两个部分。底层的硬件,从设计到产品,再到上面运行的软件,软件又包含了一些可拆卸的模块,典型的比如 UI 模块、多媒体模块、互联模块、设备管理模块、安全模块、AI 模块。每个模块功能各有不同,这些模块是可以拆卸的组合,根据不同的设备形态和应用场景,把这些模块做一个排列组合,就能形成一套系统,来适配物联网设备。


所以我们把软件和硬件的结合,称为一个统一的智能系统,就相当于人体一样,由肌肉、骨骼、血液,组合在一起,形成了整个人体。所以不能单纯从软件角度去看智能系统,而应该把硬件也囊括在内,通过软件硬件统一看待整个系统的发展。

计算×感知=智慧

再从另一个维度看一下,如果人有了骨骼、肌肉,还缺什么?缺大脑和感知。人能和自然界交互,主要就靠这两样。感知,用佛教的说法叫“眼耳鼻舌身意”,能够感觉到、看到、触摸到、听到,才会对外部世界有感知。有了感知以后,更重要的是大脑要进行处理,也就是计算。


2001 年时,云计算刚开始发展起来,是中央控制的计算模式。现在,随着硬件和边缘感知的发展,计算和感知融合到了一起,不仅仅发生云端,也可能发生在边端,甚至可能发生在设备端。


这产生了几个特点:


第一,超低功耗。可能随便一个超低功耗的设备就可以具有感知和计算能力。


第二,维护变易。之前的电话线、网线都是有线连接,未来可能是无线连接,随时更换,系统更容易升级。


第三,隐私安全。一些隐私安全的问题,可以直接在设备端做 AI 分析,比如人脸识别、物体跟踪,不用传输到云端。路径越短越安全,因为限制到一个局域网的范围之内,不会脱离到广域网,就不容易被黑客攻击。


第四,集成智能。一些内置的 AI 等丰富的算法可以供设备端使用。


第五,丰富连接。尤其是 WiFi、BT、ZigBee 等无线连接,都可以无缝连接。未来,计算与感知的应用领域也会非常广泛,比如像智能零售、智能楼宇、智慧家庭、安全监控、入侵检测等。

人×物=社交

除了计算与感知之外,未来的社交范围也扩大了。


现在我们是人与人之间的社交,以后是物与物之间的社交。比如说边缘端和近端的交互、边缘端和云端的交互。


另外,人与物之间也产生了交互。未来,人的交互对象可能未必是一个人,可能是一个物。物与物之间也可以做一些交流,这样,可以建立人与物之间的互动场景。


通过软件,可以定义一些场景模型。就像现在比较火爆的元宇宙一样,人也进入了一个虚拟环境,物也进入一个虚拟环境,虚拟与现实结合,形成很大的社交群体——人、物的社交群体。

技术×行业=数字化

行业的技术落后于互联网发展,也落后于行业本身的发展。如果把一些新技术应用在行业上,帮助行业做数字化改造,形成一套广泛应用的行业系统,这时操作系统就有了新的定义。比如导入一个 AI,建立一个视觉融合平台,再在产线上配套一些摄像头,内部有一些预处理模块、AI 算法、账户绑定,可以做缺陷检测、物体识别、尺寸测量这样的系统,然后部署到工业场景,这对工业场景的数字化改造有非常大的帮助。


所以说不能简单地看待操作系统,像传统意义上的那种操作系统:有一个内核、几个中间件,能跑在 X86、ARM 或者 RISC-V 上,并不是那么简单。可能更多要从场景驱动,通过场景来定义不同行业的操作系统。

端×云=边

现在,边缘计算发展非常迅速,应用场景也越来越多。边缘计算未来会形成自己独特的领域,现在好多云计算的场景、技术,可能会下沉到边缘。因为随着处理器的速度、AI 的运算能力在边缘侧不断增长,无论是技术还是平台,都可以移到边缘上。


边缘端会发展为由许多边缘设备组合到形成的边缘集群网络,然后在边缘网络上运行一些边缘的组件,比如设备的编排、算力网络的编排、容器化、以及边缘协同、边缘链接等。


另外,边侧会内置一些算法。因为有些情况下,需要做实时交互,如果能在边侧处理,就尽量在边侧处理,不需要到云侧绕一圈。


还有一些操作系统的核心模块,比如作为一个开发者,需要去做低代码开发、H5 编程,或者需要连接物联网设备,在边的场景,这些都可以轻而易举触摸到。


还有一些边缘模块,像安全模块,比如设备认证、区块链加密的,可以放在边缘上,让边缘变得更加安全。


另外可能还有些特殊的模块融入到边缘,比如图形处理模块,还有一些机器人的模块,也可以放在边缘,作为一个机器人的控制中心。

创新和历史包袱的碰撞

从应用场景创新来看,到目前为止,操作系统的发展还是比较快的。但这产生了另外一个问题:创新和历史的碰撞。就像《易经》里说的“一阴一阳之谓道”。因为创新就意味着要破除旧的东西,是不是旧东西就没有用,就应该抛弃它?我分享一下我的观点。

内核的纠结——“大脑”:安全还是效率?

关于内核,提到 Linux 时,我们讲的更多是 Linux 内核(Linux 内核是一个宏内核的结构,历史上就有微内核和宏内核之争)。没有内核就没有顶层的应用,世界上能提供安全内核的没有几个厂家,尤其是在消费市场上。


内核意味着安全可靠和效率。效率往往和安全可靠是一种平衡关系。无论是宏内核还是微内核,在什么样的场合就应该用什么样的内核。关键还是要发展自主内核,这条路我们还是要坚持走下去,因为它是操作系统的根基。

中间件的缺失 ——“器官”:新生还是移植?

除了内核之外,还有中间件。


为什么中间件如此关键?安卓系统之所以被称为操作系统,正是因为它在 Linux 内核上叠加了一层中间件,这就是它区别于 Linux 的最大不同。比如它的硬件抽象层和 Linux 不一样,整个中间件,整个框架层,比如 SurfaceFlinger、AudioFlinger,和以前的 Linux 的 PulseAudio、Gstreamer,还有 S11 系统,都是完全不一样的模式,所以安卓被称为操作系统。它的顶层支撑的应用也有单独的 API,包括应用商店。所以中间件的创新,对整个操作系统是非常关键的创新。


今天讲操作系统,我们更多是缺失中间件,这意味着更多的是缺失基础软件的创新。如果缺失了中间件,我们就回到了原始的编程状态,比如要用 API 去调 POSIX 的接口;如果要画一个图,还要去操作 Frame Buffer。


为什么说中间件需要创新?从开源的历史上讲,软件设计思想都集中在开源模式里,都集中在以前的软件设计的模式里。如果跳出以前的软件设计模式去看现在的应用场景,看现在的系统的设计模式,可能是不一样的。

应用要扎根

说到中间件,不得不说应用,因为所有的中间件都是用来支撑应用发展的。很多人从应用讲生态,如果没有应用,操作系统是没有用的。所以应用非常关键,它也是一个操作系统生态能够野蛮生长、顺利成长的一个关键因素。


但不是说有了应用,就可以抛弃中间件和底层内核。因为它们是基础,所有的应用都是建立在基础之上的,就像建立在沙滩上的城堡一样,如果根基不稳,大水一来,整个城堡都会垮掉。应用很重要,应用很关键,的确应用也是生态的一部分,但是永远不要忘了,还有基础。

人才不足

目前,我国基础软件领域尤其是操作系统这块的人才不足。智能系统的发展要素里,硬件或云的发展,IOT 设备的种类,AI.....这些都不是关键。


创新的人才才是真正的关键。从计算机的教育系统开始,如何去培养这种创新性人才?如何给予这些创新性的人才一些精神和物质上的资助,这些很关键,这样才能让这些创新性人才不停发展。


基础软件的商业模式还是比较难的,所以培养人才比较关键,从学校开始,包括社会上的支持,共同打造整个人才发展的路径。

开源是机会

开源对操作系统发展来说,是很大的机会。如果了解了操作系统和开源的历史——尤其是理查德·斯托曼发起的开源运动,它标志着整个 Linux 生态野蛮生长,就知道开源对操作系统来讲,是一个绝妙的机会。因为它带来了几点好处:


首先,开源这种合作模式是一个全球异地化的合作模式。


另外,它需要企业之间的合作、协同,而不是单一的企业搞一个小作坊就能生产出一套软件来,因为现在软件越来越庞大,系统越来越复杂。


除了企业之间的合作,它也是人与人之间的一种合作模式。这有利于更好地发展软件的可交互性和稳固性。


还有一点就是开源的商业模式,我希望未来开源软件有比较好的商业模式,这样才能支撑开源软件的发展。比如说单个项目的开源版本、商业版本、收费服务、订阅服务,需要我们去尊重开源软件、基础软件开发者的劳动成果。另外还有用开源项目做成产品化的。这些就是开源的商业模式。


还有开源软件的生态环境,这也是为什么开源能够发展得如此大的一个重要原因。比如像现在的开源芯片 RISC-V,在短短的几年之内发展势头非常迅猛。


Linux 操作系统已经有 30 多年的历史了,现在依然占据着很重要的位置。另外中间件,比如像 K8s、AJX 这种边缘中间件、编排管理中间件、甚至一些调度中间件,它们形成了操作系统中间件的一层很稳固的生态。从生态环境来看,无论从底层到上层,从硬件到软件,它们是很好的环境,有利于整个生态的发展。


另外,对每个工程师来讲,开源是一个可以自我成就的过程。从组织上讲是全球的协作分工,大家能学到很多东西;从技术上讲,很多开源项目都来源于大企业,你可以和顶尖人才去交流。


最后就是人才方面。它能够帮助我们培养出更多具有先进软件工程思想的人才,有利于发展我们自己的基础软件,所以说开源是我国操作系统发展的一个绝好的机会。

总结

如果我们看过历史,看过未来,却不去思考,那将是一种毁灭性的灾难。


内核依然要坚持,因为内核才是根。比如说有个内核过了 ASIL-D 认证,那它就是一个安全的内核,可以应用到很多安全的行业里去。


中间件是发动机,是最需要创新的地方,也是我们把它称之为操作系统的地方。如果未来我们有一个称之为操作系统的东西,那它一定是在中间件和传统的操作系统上有很大的不一样,无论是和 Linux、安卓或者其他操作系统。中间件是发动机,是我们需要创新的地方,是我们需要改变软件架构思想的地方。


应用也非常关键,是连接、繁荣整个生态的地方。但是没有好的发动机,没有好的根,应用也会死亡。


所以,未来的系统是一个软硬结合的系统,软件离不开硬件,硬件离不开软件;未来的系统也是一个端云结合的系统,从端侧到云侧,端、边、云协同工作,成为一个整体。


还有技术与行业的结合,把移动互联网的技术,一些新的技术,应用于行业当中,帮助行业做数字化转型,推动整个行业发展,也是未来智能系统的一个很关键的要素。


最后是边缘。边缘是系统发展的未来,因为无论是从端侧,还是云侧,现在都开始往中间走。所以我认为边缘是一个很重要的场景。边缘算力网络未来必定会成为整个智慧行业的中心,无论是智能楼宇还是智慧家庭。


讲师介绍


刘寿永 ,中科创达软件股份有限公司战略产品部 首席架构师。2011 年至今在中科创达从事软件开发相关工作,任职战略产品部首席架构师,负责中科创达操作系统相关技术和产品的设计与研发,熟悉高通、Intel、ARM、海思、展讯、MTK 等多个芯片平台,主要专注在 Linux/Android/鸿蒙/RTOS 等操作系统整个架构设计和生态建设。积极贡 LF/LFEdge/AGL/Autoware/RISC-V 等开源社区和技术联盟。和芯片厂、OEM、OEM、操作系统厂商、互联网、开源基金会等产业链上下游共同合作,为行业客户提供稳定易用的 Mobile/IoT 等操作系统平台方案和产品。

2023-01-09 11:443856
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 531.7 次阅读, 收获喜欢 1975 次。

关注

评论

发布
暂无评论
发现更多内容

高级前端必会面试题(边面边更)

loveX001

JavaScript 前端

百度前端高频react面试题(持续更新中)

beifeng1996

前端 React

前端一面react面试题(持续更新中)

beifeng1996

前端 React

实现一个简单的Database11(译文)

GreatSQL

MySQ percona server greatsql greatsql社区

React组件之间的通信方式总结(下)

beifeng1996

前端 React

走进RocketMQ(二)部署模式与实战

白裤

Java RocketMQ RocketMQ实战 RocketMQ部署模式

首届OpenHarmony技术峰会携手产业界与学术界,共建技术与人才生态

Geek_2d6073

零代码(低代码)工作流引擎(cube-flowable)

风清扬

低代码 工作流引擎 动态表单

互联网大厂Java 最常见的 1100+ 面试题汇总(金三银四面试必备)

架构师之道

java面试

EasyRecovery16汉化版数据恢复软件

茶色酒

EasyRecovery16

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

前端 React

社招前端常见react面试题(必备)

beifeng1996

前端 React

React面试:谈谈虚拟DOM,Diff算法与Key机制

beifeng1996

前端 React

CleanMyMac X4.13mac电脑免费系统优化软件

茶色酒

CleanMyMac X4.13

INFINI 产品更新|Loadrun 首发亮相

极限实验室

console Gateway infini loadgen loadrun

这些js原型及原型链面试题你能做对几道

loveX001

JavaScript 前端

前端必会面试题指南

loveX001

JavaScript 前端

解密游戏推荐系统的建设之路

vivo互联网技术

架构 推荐系统

用于双目重建中的GPU编程:julia-cuda

京东科技开发者

机器学习 gpu 编码 Code julia

JavaScript 为什么要进行变量提升,它导致了什么问题?

Immerse

JavaScript 面试 js 前端面试题 超全前端面试题

湖仓一体电商项目(二十一):数据发布接口和数据可视化

Lansonli

湖仓一体电商项目

富表智能可视化设计工具(FusionView)

风清扬

数据分析 低代码 可视化 数据大屏 数据可视化拖拽

有趣的`events_statements_current`表问题

GreatSQL

MySQL greatsql greatsql社区

三天吃透Java虚拟机面试八股文

程序员大彬

Java JVM

运维训练营第15周作业

好吃不贵

快来解锁小程序蓝牙开发技能

南城FE

小程序 微信 前端开发 uniapp 蓝牙

谈谈前端性能优化-面试版

loveX001

JavaScript 前端

软件测试 | 单元测试体系集成

测吧(北京)科技有限公司

测试

React组件之间的通信方式总结(上)

beifeng1996

前端 React

前端常考react面试题(持续更新中)

beifeng1996

前端 React

一块GPU搞定ChatGPT;ML系统入坑指南;理解GPU底层架构

OneFlow

人工智能 深度学习

智能时代,操作系统的升维所面临的挑战_AI&大模型_刘寿永_InfoQ精选文章