首页 > 区块链 > 正文

区块链竟然开始在物联网操作系统里“作妖”了….

2018-03-29 09:39:49  来源:物联网智库

摘要:区块链技术的确可以为IoT带来特定层面的提升,比如改进数据的安全性和激发新的商业模式,但这并不是一种颠覆,而是一次融合。“物链网”操作系统如果想在IoT领域站稳脚跟,必须让物联网企业易于使用,它的本质与物联网操作系统别无二致,因此应满足物联网操作系统的各种要求。
关键词: 区块链
  这是一篇非典型的学习笔记,因为这周我想聊聊物联网操作系统。
 
  为什么突然想到这个老生常谈的话题呢?有两个主要原因:
 
  一是这个礼拜有意无意当面接触了很多做物联网操作系统的公司,尤其在坐镇由母校组织的第3届清华校友创意创新创业大赛(简称三创大赛)过程中,看到了新型物联网操作系统项目的展示。
 
  二是随着区块链与物联网深度结合为“物链网”的发酵,专为“物链网”而生的操作系统也不甘寂寞,纷纷ICO或者发行代币,比如Elastos(现在叫亦来云)、Ruff、万物链ITC…我也被越来越多的人问到怎么看待这些物链网OS,那么这次我就来分享一下关于物链网操作系统这门“课程”我的学习笔记,需要说明的是,首先我认为笔记必须浅显易懂,其次这些笔记蕴含了物联网筛选优质项目的部分方法论。毕竟作为物联网领域中独具“高冷范儿”的专业媒体和研究机构,对于报道哪些有价值的靠谱项目,雪藏哪些埋伏着“定时炸弹”的忽悠项目,我们是这个行业中最为“挑剔”的。
 
  “物链网”操作系统的本质是“物联网”操作系统
 
  区块链技术的确可以为IoT带来特定层面的提升,比如改进数据的安全性和激发新的商业模式,但这并不是一种颠覆,而是一次融合。“物链网”操作系统如果想在IoT领域站稳脚跟,必须让物联网企业易于使用,它的本质与物联网操作系统别无二致,因此应满足物联网操作系统的各种要求。
 
  [笔记1:为什么需要物联网操作系统IoT OS?因为双重解耦]
 
  物联网的典型特征是碎片化,硬件设备配置多种多样,不同的应用领域差异很大。从小到只有几个KB内存的低端单片机,到数百MB内存的高端智能设备。因此需要IoTOS屏蔽物联网底层硬件碎片化的特征,提供统一的编程接口,降低物联网应用开发的成本和时间。
 
  IoT OS与Android在移动互联网领域的地位和作用类似,实现了应用软件与智能终端硬件的解耦。就像在Android的生态环境中,开发者基本不用考虑智能终端的物理硬件配置,只需根据Android的编程接口编写应用程序,就可以运行在所有基于Android的智能终端上一样,IoTOS的作用也是如此。除此之外,在边缘计算时代的某些特定场景中,物联网OS还需要达到另外一种解耦:硬件驱动程序与操作系统内核的分离。
 
  [笔记2:物联网操作系统的整体架构,至少包含3个关键子系统]
 
  IoTOS由操作系统内核、中间件平台(外围功能组件)、物联网协同框架、集成开发环境等子系统组成。这些子系统之间相互配合,共同组成一个完整的面向各种各样物联网应用场景的软件基础平台。同时这些子系统之间有一定的层次依赖关系,比如外围功能组件需要依赖于物联网操作系统内核,物联网协同框架需要依赖于外围功能组件。
 
  1.内核是任何操作系统都有的核心组件,操作系统的核心功能和核心机制,都是在内核中实现的。
 
  内核中包括线程/任务管理、多任务同步与通信、内存管理、内核安全等机制。对于物联网硬件来说,内核的能力千差万别。
 
  如果把物联网设备比作外星人,他们的智商参差不齐,其中一些只会从0数到1,而另一些外星人的智商超过爱因斯坦。内核就相当于外星人的脑容量,智商不同脑容量自然差异很大。一些内核尺寸必须维持在10K以内,超标了外星人就要罢工,另外一些则不同,内核尺寸达到MB级别也不在话下。
 
  2. 中间件平台(外围功能组件)是指为了适应物联网的应用特点,操作系统应该具备的一些功能特征。
 
  中间件平台还包含为了扩展物联网操作系统内核的功能范围,而开发的一些模块,比如文件系统、网络协议栈等。物联网操作系统内核和外围功能组件结合起来,可以解决物联网的连接需求,比如支持以太网、3G/4G、蓝牙、Wi-Fi、ZigBee、NFC、LiFi、NB-IoT、LoRa等。
 
  延续上面的比喻,想让领养来的外星人可管可控,你得给他配备必要的服饰和工具。这些工具就由中间件平台提供,比如穿好工作服(GUI)、配备手机/呼机/商务通…让他能与外界联系(满足连接需求)、当然还需要一位翻译让外星人理解你的指令(JAVA虚拟机)。
 
  3. 物联网协同框架是实现物联网“协同”功能性需求的关键功能系统。
 
  团队的能量是巨大的,为了最大程度压榨外星人团队的脑力和体力,自带十八般武艺的“总管”不可或缺(一组软件的集合),他负责统筹外星人队员之间的协同工作。也就是说,协同框架使得物联网设备能够“充分合作”,以达到单一物联网设备无法完成的功能。
 
  4. 物联网智能引擎(非必需),其中包含了诸如语音与语义识别,机器学习等功能模块。
 
  5. 集成开发环境是丰富操作系统生态圈的核心组件,同时也是形成“二级开发模式”的基础。
 
  所谓二级开发模式,指的是包含操作系统平台本身功能开发的第一级开发,以及基于操作系统平台,进行应用程序开发或操作系统内核定制的二次开发。简单而言,它让你能够重新配置外星人大脑中的部分底层代码。
 
  其中,物联网运行库(IoT Runtime)值得划重点强调。任何一种开发语言,都有一个与之对应的运行库,比如针对Java语言的J2SE/J2EE/J2ME等配套库。这些运行库包含开发过程中常用的功能或函数,提供最为常见的物联网开发功能支持。
 
  以最后一个比喻结束笔记2。如果你想让一个外星人不止会算加法,还要会算平方,就拿来“平方”对应的Runtime直接导入。综合上面的说明,可以把物联网操作系统的框架做进一步细化,如下图所示。
 
  [笔记3:物联网操作系统呈现开源为主、闭源并存的发展态势]
 
  各种物联网操作系统可以支持不同的硬件、通信标准、应用场景。开源,有利于打破技术障碍和壁垒,提高互操作性和可移植性,减小开发成本,同时也适合开源社区的开发人员参与。
 
  典型的开源物联网操作系统包括:RT-Thread、LiteOS、Tizen、TinyOS、RIOT、Contiki、FreeRTOS、ApacheMynewt、Zephyr OS、Ubuntu Core、ARM mbed、AndroidThings、Yocto、Raspbian。
 
  为了保证安全性和掌握控制权,某些操作系统会将关键部分闭源授权。同时,由于某些特殊行业存在自身特殊需求,操作系统的闭源策略仍有很大的互补需求。
 
  典型的商业物联网操作系统包括:Windows 10 IoT、WindRiverVxWorks、MicriumμC/ OS、Micro Digital SMX RTOS、MicroEJOS、ExpressLogic ThreadX、Mentor Graphics Nucleus RTOS、Green Hills Integrity、Particle。
 
  [笔记4:物联网操作系统的两条技术路线之争]
 
  由于原有的嵌入式操作系统很难完全匹配物联网应用需求,目前物联网操作系统领域主要存在出2条技术路径:
 
  一条是基于Android这样的操作系统进行裁剪和定制,来适应物联网接入设备的需求;另一条是以传统嵌入式操作系统和实时操作系统为基础,通过增加设备联网等功能,满足物联网接入设备互联需求,形成新的嵌入式操作系统。
 
  1.基于Android等操作系统进行裁剪和定制的技术路线
 
  采用这条技术路线的操作系统大多是基于开源Linux系统裁剪,优势在于保持底层技术架构一致的基础上,可以使用原有操作系统的商业生态,从而降低市场进入成本。
 
  缺点在于要兼顾多种应用场景,很难保证针对底层应用的最优化,包括功耗的最优化和可靠性最优化等,也很难保证运行在高频处理器的操作系统,经过裁剪能够运行在低主频和更低主频的微控制器上。为了便于理解,此处调用上面的比喻。也就是说,这条路线对“外星人”的脑容量有一定要求,智商达标了才可以。
 
  典型代表公司是Google,通过对Android的适当定制裁剪,Google推出了AndroidThings。
 
  2.在传统RTOS实时操作系统的基础上增加设备联网功能
 
  这条技术路线的优势在于原本单片机操作系统就是针对资源受限的硬件平台开发,功耗和可靠性方面都显着优于上面的技术路径,通过适当增加功能也能保证功耗和性能符合应用需求。
 
  缺点和主要问题在于如何围绕操作系统构建一套新的完整生态体系,提高市场占有率。
 
  典型代表公司是亚马逊,2017年底,FreeRTOS作者加入亚马逊AWS任首席工程师,正式推出AmazonFreeRTOS。
 
  目前两种技术路线尚处发展的过程中,两者技术架构完全不同,基本上不存在交集。
 
  “说法”并不验证“想法”,用“做法”验证想法
 
  如今大家对边缘计算的认识得到了极大提升,物联网操作系统的战略重要性越来越高。一方面物联网操作系统不仅包含内核,还包含各种功能组件,便于物联网企业加快产品上市时间。另一方面,随着华为、阿里、ARM等巨头纷纷布局物联网,IoTOS作为连接“云”和“端”的“入口”,成为巨头的必争之地。
 
  有了上面的课程笔记作为基础,我们可以相对容易的对各种物联网操作系统做出基本判断。“传统”物联网OS的评述和分析已有不少现成的精华文章,因此这里着重以最近火爆的“新型”物链网OS为例,包括万物链ITC、Ruff、亦来云,进行说明。
 
  当下“物链网”操作系统尚没有明确的定义,对于大量碎片化的物联网设备来说,能够承载区块链功能的操作系统与“传统”IoT操作系统并没有严格的区别。物链网OS的新意之一在于考虑到部署区块链钱包的便捷性,在内核之上通过中间件和应用程序提供了更多区块链功能的支持。
 
  客观现实的危险性不得不提:物链网离人性的试金石“利益”太近,往往令人变得“言不由衷”,因此写在白皮书上的文字和各种高谈阔论的“说法”并不能验证真实“想法”。一个物联网操作系统团队的想法是否可行、能否落地,只能反应于他们会采取什么样的“做法”。区块链技术在物联网领域的应用,将是个缓慢长期的过程,但由于物链网OS的做法普遍“非比寻常”,结果或很快就能见分晓。
 
  从学习笔记你可以看出,操作系统是一个比较耗费时间的技术,相对来说从业者并不多,创始团队如果没有10年以上的底蕴积累,难掀风浪。而区块链也是一种以公信力为代表的技术,也就意味着装机量不大的系统直接出局。IoT设备普遍计算能力相对薄弱,资源受限,挖矿激励机制基本上在IoT设备中不可行,也就大概率不存在为了获得激励而铺机器的情况。因此作为操作系统的“新生”万物链ITC可以直接跳过。
 
  直接来看Ruff。Ruff是由上海南潮信息科技有限公司开发的一个支持JavaScript开发应用的物联网操作系统。RuffOS 1.0于2016年4月正式发布,同时发布的还有RuffSDK、Ruff软件仓库、Ruff开发套件等帮助开发者快速开发物联网应用的工具。
 
  Ruff在物联网领域是一种独特的存在。RuffOS是一个兼容多个平台的运行环境Runtime,它不仅支持嵌入式Linux,还支持MCU单片机领域等。RuffOS为开发者提供统一的硬件资源的抽象,帮助开发者便捷管理APP。
 
  依照学习笔记中整体架构一项作为主要判断因素,Ruff的理想是在现有操作系统内核之上,增加一个物联网运行库(IoT Runtime)就好,的确令人眼前一亮。然而理想丰满现实骨感,以Runtime为支撑的操作系统很“单薄”,受到来自芯片企业和IoT软件应用开发者的双重压力也更大,使用场景比较有限。
 
  尤其在当Ruff提出了自己的区块链Ruff Chain之后,虽然在区块链技术应用于物联网方面有一定优势,但“传统”物联网公司也可以在具体实施过程中引入区块链技术,况且Ruff团队在运营区块链生态之余,还有多少精力兼顾OS底层架构的牢固可靠性,不禁令人担忧。
 
  Elastos现在有了更令人熟知的名字,亦来云。我与亦来云的创始人陈榕相识于2015年,他是清华大学计算机系77级的学长,先是在美国伊利诺伊大学研究了7年操作系统,随后又在微软总部8年,参与Windows操作系统底层模块的开发,回国后一心做操作系统苦熬十多年,可以说从头见证了各种OS的发展。
 
  从学习笔记中的技术路线上来看,亦来云采用了物联网操作系统中的第一种。由于Linux已经相当成熟,改进空间不大,因此亦来云将主要精力用于虚拟机技术。这一定位决定了亦来云对于大量的碎片化小型物联网设备来说有些“庞大”,覆盖不了占据绝大多数比例的物联网场景,Elastos更加适合于计算能力较高的物联网设备以及与互联网接壤的领域。Elastos将区块链功能运行在操作系统之上,提升了部署效率。
 
  写到这里,不禁有个问题,物联网操作系统承载区块链DApp应用并非难事,为什么那些最有实力的IoTOS没有介入呢?你我心中都有答案。
 
  除了物链网操作系统之外,现在打着各种“人工智能”旗号的物联网操作系统正在浮现。比较奇葩的一款比如TreeOS,号称可以“从电路图直接生成代码”,呵呵。相信每个人对照着上面的“课程”笔记,都可以对它进行一目了然的评价。
 
  根据一份最新的研究报告显示,全球物联网操作系统最近几年将以超过42%的CAGR增长。与PC、平板电脑和智能手机有本质不同,由于碎片化、场景复杂等特性,IoT可能不会出现只有几款操作系统主导整个物联网市场的情况。相反,和物联网云平台的情况类似,我们将不得不面对数十种IoT OS的备选方案,它们各自的优缺点都不能放之四海而皆准,但四海之内一定有最适合你手中物联网场景的OS或OS组合。上述学习笔记可以进一步提炼为IoT OS要素Checklist,希望它能为你擦亮双眼。

第三十四届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:kongwen

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。