一周易评:华为10KB系统在物联网世界是可行的

2015-05-23 08:13:20 来源: 网易科技报道 网易号 举报
0
分享到:
T + -

引言:《一周易评》是网易科技频道小编们就本周发生的一件新闻事件阐述个人观点的新栏目。换句话说,就是小编们要在这里秀一下“智商下限”,还望网友们积极参与并踊跃吐槽。栏目将秉承“用事实说话”的原则,但若其中存在主观性陈述,将仅代表小编个人意见。

本周发生了两件事让小编想说点什么:一是华为发布了内核大小只有10KB的LiteOS操作系统,号称全球最小,目的是通过其打造出中国自主的物联网生态体系;另一个是美国军方决定启用被联想收购后的IBM服务器产品——从某个角度看,这凸显出了“国产芯”在国家安全层次上的不可辩驳的意义。

不过,“国产芯”是一个被网友们吐槽到体无完肤的老话题,无论从哪个角度写都会引来一大波负面的嘲弄声。考虑到《一周易评》在过去两周里已经制造了高强度的舆论压力,所以小编本周还是选个尽量轻松的话题——由华为LiteOS引出“物联网”的一些标准争夺,并从软件和硬件两个方面谈谈市场的未来发展。算是一篇科普贴吧,也同时是为了下周的谷歌开发者大会做个铺垫准备(谷歌I/O大会必然会包括“物联网”这个核心话题)。

“物联网”的基础概念和表现形式

“物联网”到底是个什么概念?按照英文字面意思理解——Internet of Things(简称IoT)中的“网”似乎指的还是互联网(Internet)。所以,不少“智能家居”(物联网最为直接的一种表现形式)厂商在做具体的产品时,通常就是让某个本来普通的设备具备连接Wi-Fi的功能,让其“上网”,让用户可以通过Wi-Fi进行控制。如果品牌商的服务能再全面到位一点,设备还可以被注册到某个“云端”网站上,以方便用户在任何可以上网的地方都能登录并对设备进行控制……

但其实,上面这种对“物联网”的理解是狭隘的。英文单词“Internet”其实并不总代指“互联网”,该词最本来的意思是计算机设备的内部联通网络,而今天被广泛认知的互联网则是指“万维网”的具体表现。

所以,如果我们将物联网的“网”延伸到“计算设备内部互联”这个更广阔的概念上,我们就可能会看到另外一种物联网表现形式:想象所有行驶在高速公路上的汽车,当前端某一地段发生车祸时,当事汽车自动发出(像广播一样)信号通知附近的车辆减速。而不同品牌的汽车都应该具备接收这种信号的能力(统一的通信标准,文后再细细讨论),收到后再转发给其他的车辆(当然超过一定距离后应该停止转发)……这种“物联”形式实际上并不需要互联网作为辅助,但我们也必须承认这就是我们需要的“物联网”未来——物与物之间直接进行联通,而不是要人夹在中间做决定。今天有很多智能家居产品确实为人们生活带来了方便,但要真正称之为“智能”或者“物联”,却还是早了点——把过去的物理开关改进为用智能手机开关,这其实只是改变了控制的方式,做决定的还是人,因而称不上智能;而且大多数联网设备相互之间是不沟通的,即使都生产自同一家公司。如果,某厂的烟雾探测器探测到了煤气泄漏,然后自动就关闭周围电路以避免引发火灾……这个设计就真的可以称得上“物联网”了。

“物联网”的软件和通信标准

前面提到的无论是连接Wi-Fi的设备还是绕过Wi-Fi自己互联互通的设备,其实背后都需要一个操作系统和一套通信标准协议来作为支持。这里说的操作系统则很容易被拿来与Windows、Ubuntu Linux或者Android等带有图形界面(GUI)的完整操作系统相比较。事实上,一个最基本的操作系统只需要一个能与硬件底层打交道的内核(Kernel)便可,而根据硬件规格和功能的需求不同,内核的体积可大可小——这也是为什么华为能拿出只有10KB的LiteOS——毕竟这是一个明确定位IoT市场的系统内核,因此并不需像文件管理这样复杂的功能;而且如果是以单片机芯片(谈硬件部分时再详细介绍),如ARM Cortex-M系列为对象,10KB应该是足以驱动最基本的硬件功能。

当然,有的网友会强调这其实更应该称之为固件(Firmware)。没错,但“固件”也只是“固化的”软件而已,意思是说我们不能随意更改软件的内容,但这并不改变LiteOS本身还是一个系统软件内核的事实(如果从广泛意义来定义)。下面这张图可以帮助大家理解所谓的“内核”到底是个什么东西。

一周易评:华为10KB系统在物联网世界是可行的

以Windows和Linux为例,看到的那些图形窗口虽然都算是系统的一部分,但从严格意义上说,它们都属于“应用程序”(Applications)。这其实与PhotoShop、网易有道词典,甚至魔兽世界等软件或游戏在归类上是一样的,只不过有的应用程序更加接近底层(也就是系统内核),譬如这里提到的图形界面以及杀毒软件等。进一步举例来说,过去Windows中的IE浏览器和文件管理器就是深深捆绑于系统内核中的(当年欧盟要求从Windows种分离IE时,微软也是这么解释的),此两个程序要是崩溃了,Windows极有可能出现蓝屏;而相比较之下,Linux的内核与文件管理工具或浏览器则基本分离,即使后两者崩溃了,Linux内核仍会继续保持运行,没有蓝屏也不会强制重启——这也是Linux在稳定性方面,尤其是在服务器领域,表现一直好于Windows的根本原因。当然,今天的Windows Server也已经实现了内核分离、功能模块化,尤其是明年推出的Server 2016 Nano版,算得上微软的新突破了。

前面扯得远了些,但小编只是想说华为LiteOS如果抛弃复杂的文件管理功能,只是在精简RISC芯片上进行一些内存交换和通信协议的操作,10KB是可行的。但可惜的是,虽然LiteOS开源,但目前并未开放下载(地址是:https://github.com/OIOTC/Liteos),所以小编在没有亲自看过之前,并不能完全确认该系统的具体功能,包括能支持的通信协议等。

说到通信协议,大家比较常见又容易理解有TCP/IP、蓝牙和Wi-Fi(Wi-Fi是俗名,背后具体的协议标准为IEEE 802.11 a、b、g……等等)。这些协议虽然是PC时代诞生的东西,但在物联网时代也将会扮演重要的角色。当然,物联网的通信方式至今并没有定论,物与物之间怎样进行数据交换,这其实是巨头们要争的东西,关乎标准的制订,所以下面小编再来聊聊现存的、可以被用在物联网产品上的通信标准协议。

TCP/IP这样的互联网基础协议并不是小编要在这里讨论的对象。我们前面说过一些例子,譬如汽车之间的互联互通,这些都是无线的,所以无线通信协议才是今天的重点。

Wi-Fi

Wi-Fi是我们今天最常见的一种无线通信方式,并且已经被广泛用在了“智能家居”产品上。但是我们前面也说了,物联网并不只是局限于室内的,车与车之间的交流就不可能基于Wi-Fi,不是吗?所以,Wi-Fi是不可能作为“物联网”的统一通信标准的。

手机网络

排除了Wi-Fi,很多人会立刻想到今天无处不在的手机网通信协议,如GSM、LTE、CDMA等等。然而,手机网通信协议是需要有个运营商来管理的,这绝对不是设备厂商乐意看到的现象(谁希望自己生产的东西被第三方公司控制着)。所以,GSM、LTE、CDMA等也都不可能被广泛应用在“物联网”设备上。

蓝牙

事实上,在常见的无线通信技术里,蓝牙是首个特别针对“物联网”市场定制了一套低功耗标准的规范。Bluetooth Low Energy(BLE)是基于蓝牙4.0制订的低功耗标准,适合近距离和中等距离的设备互联(通常为100米),但在我们前面提到的汽车互联恐怕不完全适用,而且某些物联设备是需要较远距离的通信,譬如地质勘探时远距离的传感器互联。

Zigbee

Zigbee也是IEEE 802标准之下的无线通信协议,是专门针对物联网制订的一套协议。与Wi-Fi的星状网结构(Star)不同,Zigbee支持网状网结构(Mesh),也就是说,各个设备之间可以互联互通,无需一个中央路由进行协调处理。而且Zigbee功耗极低,户外有效通信距离可达1.5公里以上……很显然,Zigbee绝对适合我们前面提到的车与车互联互通的案例。不过需要指出的是,Zigbee发展到目前已经历两代标准,而一代与二代是相互不兼容的。

除了Zigbee,类似的通信标准还有Z-Wave(贝尔金Wemo系列产品),以及谷歌Nest的Thread——小编是偏心,这里没有单独介绍这两个协议,但显然也是有原因的——虽然Z-Wave已经被贝尔金这样的大厂广泛支持,但是贝尔金并没有表示只支持Z-Wave,基于ZigBee的产品也是有的,这只能说明在当前情况下,物联网市场还存在太多的不确定性,因此设备商也不敢妄下结论。至于谷歌的Thread,更好的消息是上个月公司宣布与Zigbee标准组织达成合作,今后两个标准将相互兼容。于是,Thread的问题已不再是问题了。

结合下周谷歌I/O大会以及Android生态来考虑,Thread + Zigbee是目前最有可能胜出的物联网通信标准组合。而这个时候能与谷歌一较高下的,恐怕只有苹果HomeKit规范了。严格来说,HomeKit只是苹果“智能家居”产品生态的开发平台,不过里面肯定会对具体的通信协议有严格的规范(也就是具体会支持哪些标准)。如果说苹果也选择了Zigbee,而不是Z-Wave,那么后者基本就等于被判死刑。但如果苹果因为抵制谷歌,而故意扶持Z-Wave,那么“标准之争”则还要延续下去。

当然,有一点是可以肯定的,那就是Wi-Fi虽然不会是物联网设备的通用通信标准,但绝对是会被谷歌和苹果双双支持的技术。所以在此前提下,我们未来肯定会看见“Wi-Fi + Zigbee/Z-Wave路由器”这种产品,毕竟Zigbee或者Z-Wave只是实现设备间的互联,要与互联网连接,要实现通过云进行控制,最后必然还会回到路由器上来。

“物联网”的硬件平台

前面说华为LiteOS有可能只是针对单片机芯片提供了最基本的功能,这里我们需要给“最基本”作一个定义。

对于有电子、电脑工程学背景的网友,理解单片机芯片并不难;而对于没有此类背景的一般网友,小编建议可以将其理解为“由程序控制的电流开关组合”。什么意思呢?举例说,单片机芯片(也叫微控芯片)上通常会有一些针脚,有的针脚是给处理器供电的,而剩下的大多数都是通用输入输出接口(GPIO)——按照小编的建议,可以理解为一个又一个的电源开关。处理器用0和1来控制这些开关,打开开关时,针脚输出电流开始供电——如果这个针脚背后接的是灯泡(当然不可能直接为灯泡,电流没那么大,但我们在此简化理解),那么芯片就通过该针脚控制了电灯的开关。LiteOS在这里扮演什么角色呢?它负责告诉芯片哪个针脚背后接的是灯泡,然后作一个逻辑判断,即什么时候要开灯,什么时候要关灯——这便是所谓的“最基本”的功能,大部分物联网设备也就只需要控制那么几个电路,因此10KB差不多是足够了(没有加入各种通信协议的前提下)。

拿当前最流行的单片机开发板Arduino为例,其中Uno R3系列使用的是ATmega328微控芯片,该芯片自带闪存容量仅为32KB,即为该芯片写的程序不能超过这个体积。但是我们看看,基于Arduino开发的机器人、3D打印机项目有多少?32KB足以实现极为强大的功能。

LiteOS肯定不会是以ATmega328芯片为主要开发对象的系统,毕竟华为有自己的芯,并且是基于ARM指令集。ARM的Cortex-M系列内核就是针对物联网市场提供的单片机解决方案。在该市场上,竞争对手还挺多,小编大致给罗列一下:

·Atmel AVR系列,上面提到的ATmega328。

·飞思卡尔的68HC11系列,很多学校的单片机教学案例都是基于它。

·Microchip的PIC系列,与Atmel产品齐名,开发板也是数不胜数。

·Parallax的BASIC系列,好多可编程玩具机器人是基于此。

·德州仪器的MSP430和C2000系列,比较高端一点,用在一些专业设备上。

最后要特别提一下英特尔的Edison开发板。虽然用在上面的Atom不是一颗微控芯片,而是集成蓝牙和Wi-Fi模块的SoC,但这是英特尔公司面向物联网市场推出的一个开发板,最重要的一点是其完全参照Arduino设计,连开发环境、开发语言都完全兼容Arduino,可谓是相当有考虑的一个产品(Arduino开发社区的人立刻就被吸引来了)。

在规格和功能上能与Edison一较高下的,恐怕就只有树莓派(Raspberry Pi)这类产品了。树莓派实际上是打着“微型PC”的旗号销售的,从这个定位看,我们就能发现其所用的ARM芯片绝不是单片机芯片可以相比拟的。前者功耗相比后者要高得多,并足以驱动今天的智能手机系统——所以不是华为LiteOS面向的东西。

第二代树莓派已经支持Windows 10了——当然是个高度精简的内核版本。此类带有较完整功能操作系统的开发平台,通常情况下是以车载娱乐系统、穿戴式设备等物联网产品为最终开发对象的。但其实就像小编早前给出的例子,车与车之间的信息交换,(如不考虑与车载娱乐系统结合的前提下)是不需要那么强大而复杂的处理器和操作系统的,而这样的物联网设备也是最为常见的,如烟雾探测器、联网空调和空气净化器等。因而结合华为特别强调的“10KB”以及该公司有关未来物联网市场的畅想,小编已基本上看到这家公司的发展蓝图,也看到了公司想要去竞争的方向。

此篇文章算是给下周谷歌I/O大会作一个铺垫。随着“物联网”概念越来越深入人心,产品也越来越普及,今后相信我们还有很多机会聊更加深入的话题。

最后回网友一个评论:小编不是神,篇幅有限不可能照顾到所有的企业。上次少批评了某个公司两行字,结果被定性为“托”。亲们,中国互联网企业没百家,也有50家,是不是都得评一句才能体现“公正”?这篇文章里通篇围绕华为来展开讨论,估计是要被一些网友打成“华为水军”了。还是那句话,我们只就事论事。只谈技术和态度,不谈炒作和国情。(卢鑫)

王超 本文来源:网易科技报道 责任编辑:王晓易_NE0011
分享到:
跟贴0
参与0
发贴
为您推荐
  • 推荐
  • 娱乐
  • 体育
  • 财经
  • 时尚
  • 科技
  • 军事
  • 汽车
+ 加载更多新闻
×

白岩松:50岁的我很好奇,你呢?

热点新闻

态度原创

网易号

查看全部
阅读下一篇

返回网易首页 返回科技首页