前几年在飞漫软件做领航系列 App,以及这两年第二次创业开发面向最终消费者的智能硬件产品,本人更多的时间花在了产品的定义和迭代,终端软件和云端软件的架构设计,以及各类技术的恰当应用方面。所以开始慢慢对产品的好坏有了一些感觉,也能学着从市场角度去分析新产品的定位。
就我在昨天提到的“基于 Linux 的非 Android IoT 平台”这个项目的想法,是最近综合了各种市场信息、技术因素,以及业界的发展趋势等提出来的。当然未必正确也未必全面,这里整理出来供大家探讨。
1. 物联网是个框,除了电脑和手机,其他所有的电子产品几乎都可以往里装。本质上,物联网设备就是一个小型计算机系统,需要系统软件的支持。根据靠谱的市场数据,目前大致有 50% 物联网设备(或者更多些,和具体领域有关)使用 MCU(可以简单理解为内存很小的单片机),只能运行各种小型的嵌入式操作系统,比如 embed,liteOS,RT-Threads,uC/OS 等等;而其他剩下的 50%,绝大部分采用的是 Linux 系统,只有少部分使用经过定制的 Android 系统。基于目前的这个市场现状以及未来的发展趋势,我认为未来基于 Linux 的物联网设备会越来越多,最终会达到 70% 或以上。
2. 很少使用 Android 的原因很简单:一方面是因为 Android 越来越复杂,不适合物联网设备(所以 Google 整了另外一套阉割版的 Android Things),另外一方面是因为 Google 对 Android 的控制,很多人反感这一点(其中也有情感和政治因素)。
3. 和各种 RTOS 相比,Linux 最终会胜出的原因也有两点:第一,Linux 更流行,对各种芯片、硬件以及协议的支持非常全面;相反,RTOS 方案的碎片化太严重,BSP 开发繁琐,作为终端厂商,没人愿意同时使用多个不同的 RTOS 方案(相信 RTOS 厂商之间未来会有一番厮杀,最终只会有一两家胜出)。第二,芯片的摩尔定律仍然发挥着作用,芯片的性能越来越高,功耗会越来越低,而成本会越来越低;原来必须用 MCU 的场合,可以用高级的 SoC 搞定,成本并未变高多少,但应用的开发会更加简单方便。
4. 目前基于 Linux 的物联网设备开发,基本上处于史前时代,缺乏一个类似 Android 这样平台。这就是我提出的“基于 Linux 的非 Android IoT 平台”的来由。大家千万不要将这个平台看成只是一个各种软件开发包的 Linux 发行版,这个平台应该包含三个东西:第一,一个可以运行在 IoT 设备的操作系统,包括应用运行框架以及各种现成的服务(比如固件升级)。第二,一个集成开发环境。第三,云端方案以及直接可用的云服务。
5. 这个平台的定义必须以方便开发者为首要目标,首要目的就是取悦开发者,比如学起来要快,用起来要方便。但相比智能手机,IoT 设备的硬件配置会有很大的差异,比如智能手机都有 GPU 和屏幕,但 IoT 设备有些有,有些没有。所以这个平台面临的挑战很大。这个平台想要取悦开发者,就必须要跳出现有的开发范式,这里可以做的工作太多了,而且一定能有世界性的创新点。
6.这个平台,必须具有自己的编程语言和 API。这点,在前几年我所做的文章中有过详细阐述,具体可见《有关智能操作系统的讨论》(http://t.cn/RAAyLRu)和《“自主”操作系统——为什么及如何》(http://t.cn/RZHnLrj)这两篇文章。随着移动互联网、云、人工智能等技术的发展,IoT 设备的开发复杂性越来越高。因此,一定要有好的编程语言和 API 设计,还要灵活应对未来的挑战,这其中可做的文章也很多,一定是一项持久战。之前,我比较倾向使用 JavaScript 语言,但通过这两年的实践,感觉 Python 更加适合 IoT 设备。
7.即使这个平台是开源免费的,在整个IoT 开发的生态中,也很容易建立起来商业模式。举个简单的例子:集成面向 IoT 设备的云服务。而采用 Apache 这样宽松的许可证,可以让平台得到广泛的应用,这和“免费”的互联网思维在本质上是一样的。
