近几年来,智能操作系统非常火爆,不亚于芯片。其实在每个时代,它都会被放到风口浪尖上。每个人无时无刻不在用操作系统,尤其是作为一名开发者。有的人用 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 等操作系统平台方案和产品。
评论