物联网需要怎样的操作系统
扫描二维码
随时随地手机看文章
PC时代造就了Windows操作系统,移动互联网时代造就了Android和iOS操作系统,如今物联网时代正迅速崛起,又将造就什么操作系统呢? 操作系统作为一个产业的底层基础设施,除了潜在的巨大商业价值,在当下时代背景中,更是具备了国家层面的战略意义。
PC时代造就了Windows操作系统,移动互联网时代造就了Android和iOS操作系统,如今物联网时代正迅速崛起,又将造就什么操作系统呢?
操作系统作为一个产业的底层基础设施,除了潜在的巨大商业价值,在当下时代背景中,更是具备了国家层面的战略意义,拥有自主产权的优秀操作系统,才能避免受制于人。
因而,我们非常关注物联网时代的操作系统进展和格局,将在本文简单探讨以下问题:
为什么需要物联网操作系统?
物联网需要怎样的操作系统?
发展至今,物联网操作系统的核心流派和优劣势?
物联网操作系统是否有创业公司机会?未来的商业价值如何体现?
本文由36氪联合卓晟互联CTO慕睿涛共同完成,卓晟互联是国内一家物联网操作系统研发商,
36氪曾做过详细报道
。慕睿涛是原SUN中国的第一位JavaME虚拟机开发工程师,原甲骨文Java与嵌入式系统事业部资深顾问。
以下是正文:
为什么需要物联网操作系统?
在2012年左右物联网的概念刚刚兴起时,整个产业聚焦在2个问题上:网络连接,前端算力。换句话说,就是“先把设备连上网再说”。至于物联网终端设备需要跑什么样的软件,如何开发前端软件,前后端软件如何协同开发,甚至软件平台的安全性这样的问题,全都“以后再说”。
随着通讯芯片成本的降低、NB-IoT和4G甚至5G无线通讯网络技术的发展,物联网已经解决了设备连接互联网的问题。而随着ARM32位MCU的普及,前端设备的计算能力有了很大提升,具备了运行更复杂应用的能力。
旧的问题解决了,新的问题也相继出现。
网络数据量激增,网络响应延迟,难以与迭代快、协议复杂的互联网服务打通 于是边缘计算越发重要,将计算分布到前端的网关和数据采集终端,和互联网服务结合,是物联网当前发展阶段的大势所趋。
边缘计算使得物联网终端软件复杂度大幅提升,而这个需求在几年前还都是不存在的。过去物联网产品的软件功能在出厂时就基本固定了,上层软件应用开发和底层硬件紧密耦合,很难由第三方开发者为硬件开发应用。这导致物联网软件应用迭代慢、成本高,生态闭塞。
参考PC、互联网以及移动互联网的技术发展历程,软件行业的爆发需要相对较为标准化的底层运行环境作为支撑。于PC就是Windows、Linux、macOS,于互联网就是浏览器,于移动互联网就是iOS和Android。
所以,物联网也需要具备一套对软件开发者更友好的、相对统一的操作系统,使软件开发过程从硬件开发中脱离出来。只需要基于操作系统,即可快速开发上层应用。
物联网需要怎样的操作系统?
首先,既然Android在智能手机上这么成功,那是否可以直接复制到物联网领域呢?答案是否定的,原因包括Android是专为手机设计的操作系统,运行所需计算资源过大、难以兼容物联网设备广泛外设、存在安全问题等。
那么物联网需要什么样的操作系统底层运行环境呢?大致有这样几个方面的需求:
跨平台:消弭硬件平台差异,使软硬件开发解耦合。
低成本:能在微小设备运行,资源耗用小,降低硬件成本。
易学习:相关技术有大量的存量开发者用户,不需要重新学习。
强安全:拥有足够强的安全机制,保障用户设备和数据的安全。
前两个是硬件厂商的需求,后两个是软件行业的需求。
物联网操作系统的任务,其实就是为边缘计算软件提供满足这些需求的底层运行环境。
发展至今,物联网操作系统的核心流派和优劣势?
目前,市面上的物联网操作系统基本形成了三大核心流派。
1、由传统的嵌入式RTOS发展而来。典型代表:FreeRTOS、RT-Thread、LiteOS、uCOS、MICO。
优点:在物联网终端上已经广泛支持,硬件推广成本低。
缺点:软件开发专业度极高,软硬件开发难以隔离,对专业软件公司进入这个领域造成困难。
这条路上有着众多玩家,尤其是在硬件行业里,RTOS仍旧是终端操作系统的主要选择。由于历史原因,传统RTOS市场里大多是国外厂家,或是FreeRTOS这样的国外技术人员活跃的开源社区产品。
国内这几年做得最好的是RT-Thread,目前发展势头非常快。其官网信息显示,RT-Thread已应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过2亿台。
2、由其他领域的软件平台移植而来,如Linux、Java、Node.js Embedded、MicroPython。典型代表:Linaro,MicroEJ,卓晟互联,Ruff。
优点:软件资源丰富,开发者众多,软件开发快成本低。
缺点:适配物联网终端硬件有难度,需要解决资源占用、外设接口扩展、节电设计的多方面问题。
考虑到Java在传统服务器行业的超高市场占有率,以及Java开发者的庞大社区规模,基于Java的物联网操作系统方案,从传统行业和传统IT领域切入物联网方向的公司,如果能够在物联网设备上开发Java应用,将会极大释放自身软件业务能力,降低B端客户采纳物联网方案的门槛。
人工智能领域里,Python在开发者资源方面有着绝对的领先地位。所以人工智能领域的物联网设备,支持Python是很自然的选择。不过目前还没有出现提供比较成熟的、基于Python的物联网操作系统产品的公司或社区项目。
互联网公司转到物联网领域的时候,JavaScript是一条天然的技术路线选择。这条路线上,国内主要是Ruff。
3、由互联网公司的云平台延伸而来。典型代表:AliOS Things、Android Things。
优点:天生与互联网服务相结合,方便对接互联网应用。
缺点:基本上是各家产品对各家服务,难以做到平台中立,对软件开发者来说功能性受到了限制。
目前来看,Android Things还是太大了,比嵌入式Linux更耗资源,且不再走Android的开源路线,基本成为了Google自家服务的SDK。对于国内厂商来说,跟随门槛比Android更高一些。
物联网操作系统是否有创业公司机会?未来的商业价值如何体现?
过去,操作系统这样的基础软件肯定要选择大公司的技术方案,因为技术发展、后续维护等工作比开发本身更重要,只有大公司才能拥有客户的巨大信任。
但是随着开源模式被广泛接受,基于开源开发模式、标准开放的技术反而更能赢得客户的青睐,因为这样的模式摆脱了客户对大公司的潜在依赖,任何公司都可以提供持续的技术支持。
这样一来,操作系统这种以前看起来好像一定是要大公司来干的事,小公司、创业公司也可以来做,只要技术过硬。比如Linux,这项完全由社区(甚至不是一家公司)发展起来的操作技术,虽然IBM也在玩,但是也有Redhat这样的公司从无到有一路发展壮大起来。
大家都知道操作系统有多重要,多垄断,但是如何体现到商业价值呢?
在各自领域的大玩家,基本都把物联网操作系统看做拓展自身业务,或是保住自身在行业中的地位的工具。比如华为的LiteOS,三星的Node.js,无法摆脱为自家硬件服务的属性;AliOS Things或是Android Things,无法摆脱对自家服务的依赖。
但是这样其实限制住了操作系统本身的商业价值,操作系统作为软件基础平台,其中立性才是自身价值的最大体现。
在操作系统的商业模式更加开放,且以开源为主流技术开发模式的今天,传统的软件商业价值变现方式,即授权、卖copy这样的模式,已经不适用了。相比之下,先快速做大生态,然后从软件、云服务、广告等市场变现,或许是更良性的模式。