谷歌在谷歌 I/O 大会上发布了自己的物联网操作系统 Brillo。让原本已经有众多的重量级玩家参与其中的物联网业界显得更加的拥挤。
然而上面八级大风,下面纹丝不动。
实际上,目前一线的智能硬件开发者们还有很多人忍受着相对过时的芯片设备和开发方式。
就拿开发环境举例子,从最开始的环境搭建来说,嵌入式开发仿佛就是与世隔绝,在 win 环境下,最佳的的系统是 32 位 XP 系统,这样兼容性才是最好的,不得不说嵌入式开发的流程,工具已经离现代化有些远了。想必所有搞嵌入式开发的同学们都深有体会,和程序开发比起来,最让自己头痛的也许是开发环境的搭建。
同软件程序开发相比,嵌入式的开发相比之下就显得异常的繁琐,对于已经在业界摸爬滚打多年的人来说,可能嵌入式开发是小菜一碟,但是对于想要入门的人来说,一个一个坑还真不少,能全部把坑踩完的人,也许并不多。
原有的传统开发方式
8bit,16bit 的 mcu,代表有 51 单片机,MSP430 单片机等。这些芯片目前在实际应用中已经逐渐减少了,但是教学之中还是会出现。这类芯片现在很少实际应用,但是只能开源硬件 arduino 就是基于这类芯片开发的。
ARM-M 系列芯片,这类芯片要比上面的单片机强大得多,目前的定位就是代替上面的单片机,一般智能传感器节点都是用 ARM-M 芯片的,不过 arm-M 系列的芯片是没有 MMU(内存管理单元)的,也就是说它无法运行像 linux,windows,安卓这样的传统操作系统,只能运行轻量级操作系统或者裸机程序。
ARM-A 系列芯片,典型代表就是手机处理器高通晓龙啊,三星猎户座都属于这类,这个大家都很熟悉,想必我也不需要多介绍,在物联网领域,配备屏幕,直接同用户交互的图形界面设备一般都会采用 ARM-A 芯片。
上面的设备,无论是哪一个,都需要掌握比较复杂的知识才能有效地进行开发工作。各大芯片厂商往往有着自己的 IDE,自己的驱动,所以互相之间几乎可以说没有兼容性可言,在某个芯片上面编写的应用程序需要经过移植才能运行再另一款芯片之上。
改变已经慢慢开始
当然,并不是没有人做出改变的努力,既有华为这样的重量级玩家,也有 arduino 这样的异军突起的开源硬件,他们都在作出这样的努力。传统操作系统大厂微软也做出了自己的努力,兼容树莓派,降低授权价格。
毫无疑问 arduino 是取得了一定成绩的,arduino 智能硬件开发起来非常简单,且不说驱动安装过程友好,有自己的 IDE,兼容多个 OS,光是程序开发中那种随心所欲调用之后就可以使用,无需关心底层的特性就已经让不少人心动不已。
但是 arduino 也有着自己的硬伤。
arduino 制作原型快速简单,但是从原型到实际生产有着比较严重的脱节,
其实从 kickstartr(外国众筹网站)上 arduino 相关的众筹项目来看就可以发现,大部分项目都是以其为基础的开发套件,也就是说,这些项目本身也是用于开发,用于制作原型的,真正拿去给消费者使用的项目并不多见,也从侧面反映了智能硬件这一软肋,离实际生产,有点远。
华为的 lite OS 是具有非常巨大的意义的,lite OS 宣传自己能够从 8bit MCU 一直兼容到 ARM-A 系列,兼容性如此广泛的 OS,可以说是做到了前无古人,目前华为正在进行紧张的适配工作,并且已经有了一定的应用成果。但是 ARM-A 系列和 8bit MCU 的差异实在是过于巨大,不知道华为是如何兼容的,如果是为了兼容 8bit MCU 而选择放弃使用 ARM-A 系列芯片的一些高级特性(比如内存管理单元)那么我认为这也许是得不偿失的。
传统 OS 大厂微软曾经用自己的 WinCE 在嵌入式领域打下一片天,但是随着时间的推移,WinCE 显然已经显得力不从心了,win10 也适时的推出了自己的物联网 OS 计划,但是目前还没有更多的信息可供我们参考。
Brillo 已有信息详解
随着谷歌这一重量级玩家的深度参与,这一趋势势必继续发酵。之前参与的玩家大多是芯片厂商,硬件厂商,在 win10 尚未成气候,苹果又不接地气的情况下谷歌深入到这片领域就显得意义非凡了,一个创建了安卓强大系统的公司不会不明白讨好开发者的重要性,谷歌一定会敏锐地认识到现在的物联网系统开发起来的困难之处,那么谷歌究竟能够让嵌入式开发能够简化多少呢?Brillo 究竟可以应用在什么领域呢?这就是我们希望能够通过那两张简单的 PPT 分析的。
对于 Brillo,从谷歌在开发者大会上面的两张图片,我们可以得到一些初步的信息。
1、 对性能要求低
2、支持广泛种类的芯片
3、源自于安卓
4、安全特性
此外,在介绍 wave 语言的图片上,我们可以看见三种 Brillo 设备(ps,谷歌也可能耍了个小心眼,表面这只是通过 wave 链接的设备,并非 Brillo 设备,但是笔者认为谷歌应该没这么无聊。)。
分别是摄像头,锁,土壤湿度传感器。
这三种设备可谓是从小到大,复杂程度高低不同,能够兼容读取最简单的传感器数据,也能控制摄像头的曝光方式,ISO,快门速度和光圈大小。
Brillo 也许有着诸多局限
在开始的激动之余,笔者仔细的思考了上面两张图片所能够给笔者的信息,一些担忧慢慢的浮现出来了。
笔者一开始很是激动,以为 Brillo 列出土壤湿度传感器的含义是表面自己能够兼容性能非常弱的芯片,例如 8Bit MCU,然而仔细想想,感觉这也许并不可能,毕竟是源自于安卓系统改造的 Brillo,所以 Brillo 的目标应该是现有的嵌入式 linux 系统,WinCE 系统所占据的位置。
至于对芯片的广泛支持,到底有多广泛?目前也还是未解之谜。按照上面的分析,这个系统脱胎自安卓,那么很可能只能兼容 ARM-A 系的芯片(因为只有 ARM-A 系列才拥有 MMU,能够运行安卓),但是这样的话真的称得上广泛吗?但是一个源自于安卓的系统似乎在技术上很难实现运行在 ARM-M 系芯片这个目标,更不要说广大的 8bit,16bit 的 MCU 了。不过考虑到有华为 lite OS 这样的先例,也不能轻易地认为这是不可能的事情。
对于 brillo,谷歌并没有更多的解释,让笔者感到非常的困惑,Brillo 的定位到底是什么,是每一个终端节点,还是专门用于路由网关,亦或者伸缩性非常之强,两者都能做到,如果可以运用于性能极差的终端节点,那么源自于安卓的它到底是怎么做到的呢,这样做会不会导致它丧失一些高级 OS 的特性呢?这些都还有待谷歌的进一步解释。
至于对性能要求极低和具有安全特性这两个则更像是口水话。
性能要求低其实是一个很模糊的说法,运行内存只需要 10KB 也是对性能要求低,需要 10MB 也算是要求低,但是这个差距在嵌入式开发里面则是天差地别。ARM-M 系列芯片大部分设备运行内存只有 10KB 不到,而 ARM-A 系列设备少则 512MB, 多则 1GB 起步。对于不同的应用场景来说,性能要求低这个说法是非常模糊的。不同场景对于功耗比,存储占用的要求根本不在一个量级,而谷歌并没有明确的说明自己的应用场景和运行环境。
至于安全特性,因为没有更多地介绍,则无法更多的做出解读,物联网安全毫无疑问是一个很需要思考的命题,但是谷歌并非传统安全厂商,而安卓总是为人诟病的特点之一就是恶意软件太多,太不安全,所以拿安全来做卖点,总让人有一点点怀疑。
当然,还有更让人担心的事情,谷歌推出 Brillo 会不会只是一种跟着大家走以免落下的跟风举措,毕竟三星,intel,NXP 等重量级玩家纷纷布局物联网领域,苹果开始关注智能家居让谷歌不免紧张起来,于是赶紧搞一个 Brillo 出来让大家压压惊,但是因为时间太仓促所以只有一个概念,考虑到谷歌之前挖坑不填的劣迹并不少,只靠两张 PPT,实在是让人有点担心。
由此看来,对比智能硬件的开发方式,或者是 lite OS 这样的轻量级嵌入式系统,Brillo 似乎也没有带来一种更具有革命性的改变,它似乎只是一个物联网版的安卓,定位也许同物联网版 win10 一样,目标是取代 wince 这一老旧的系统。
Brillo 的意义也许是搅动市场
但是即使这样我认为这对开发者来说还是一个好消息,谷歌在市场中经常扮演鲇鱼的角色,有时候自己虽然不能推出非常成功的产品,但是会逼的对手拿出杀手锏,这样也是极好的。最近的例子就是 google glass 把微软的 hololens 给逼出来了。
此外,本来对于物联网开发这样的领域,一步到位就是比较不现实的,谷歌如果能够尽可能兼容更多的芯片,并且提供统一的接口,IDE 和数据传输模式的话那么就已经有着非凡的意义了。
无论如何,随着谷歌的正式进军,意味着智能硬件领域的三大软件玩家已经齐聚一堂了。
三者的侧重点各有不同,微软准备做自己的老本行,物联网版 win10,苹果则是非常淡定的在 iOS 内置了一个 APP,然后等着合作伙伴上面,注重链接的谷歌则选择推出了自己的轻量级 OS 和专门用于通信的语言 wave。
毫无疑问,软件巨头们会比硬件巨头更加懂得讨好开发者的重要性,而讨好开发者的第一要务就是有一个良好的开发环境以及一套简单易用的系统可供开发者调用。
接下来毫无疑问就是对开发者的争夺,那么开发的体验到底能够提升多少呢,让我们拭目以待吧。
[…] 谷歌一直都想要将全世界所有的智能家居产品联系到一起,而在这届CES上,谷歌正式展示了早去年3月就已经发布的Brillo物联网系统和Weave语言。虽然展示的细节部分依然非常基础,但是这少意味着无论是Brillo还是Weave都还处于向前推进的进程中,很快它们将会出现在我们的家庭中。 […]