前两年接连做了十几套物联网终端开发项目,经常被新人同事追问物联网操作系统有哪些,最开始我只能笼统报出几款常见系统,压根说不清各自适配的场景,踩了好几次适配错误、项目返工的坑后,才慢慢摸透了市面上主流系统的真实用法。
大部分人都分不清各类物联网系统的核心区别。
最早入门做小型传感终端、低功耗模组开发时,全程用的都是FreeRTOS,这款开源系统轻量化做到了极致,占用内存极小,几乎零移植成本,免费开源的特性也特别适合初创项目和新手练手,日常做温湿度传感、红外感应这类简单数据采集设备完全够用。就是当初没摸清它的短板,盲目用它开发带多线程传输的智能网关,没有完整的生态支撑复杂任务调度,设备上线后频繁出现数据丢包、进程卡死的问题,硬生生推翻代码重写,耽误了整整三天的项目工期。
国内民用物联网项目里,RT-Thread的使用率是真的高,也是我现在做中小型智能设备的首选系统。它不像FreeRTOS那样只有基础内核,自带完善的文件系统、网络协议和各类通用设备驱动,不用从零搭建底层框架,开发效率能提升一大截。社区的技术文档和答疑资源也很充足,遇到适配bug基本都能快速找到解决方案,适配的芯片型号也特别广,智能家居、小型工业感知设备、无线模组这些常规场景,用它基本不会出问题。
鸿蒙IoT版是完全不同的赛道。
之前一直误以为鸿蒙只是手机、平板的操作系统,根本不适合轻量化物联网设备,直到接手全屋智能联动项目,被迫改用鸿蒙轻量化系统,才彻底改观。它最大的优势是分布式互联,多设备之间的数据流转、联动响应特别流畅,是其他物联网系统比不了的,专门适配智能小家电、穿戴设备、全屋智能终端。唯一的问题是适配地门槛偏高,小众低端芯片基本不兼容,硬件选型受限,不如RT-Thread和FreeRTOS灵活通用。
深耕工业物联网场景后,接触到了更多专属系统。中国移动的OneOS给我的印象很深,它拿到过工业功能安全认证,稳定性和可靠性拉满,专门针对工控、5G工业终端做了优化,低延时、高抗干扰的特性,完全适配车间工控设备、5G物联网终端的严苛工况,我做工业设备改造项目时,用它替换了老旧系统后,设备故障率直接下降了大半。
还有几款云端绑定型的物联网系统,适用场景特别固定,几乎不能通用。阿里云的AliOS Things,全程适配阿里云云端平台,云端数据上报、远程设备管控的对接难度极低,能省去大量对接代码,但脱离阿里云生态后基本没有使用价值。电信的CTWing IoT OS主打广覆盖、大规模终端接入,多用于智慧城市、智慧社区的批量设备部署,侧重云边端协同管理,不适合单体小型设备开发。小米Vela则聚焦消费级智能硬件,主打小米全生态设备打通,适配米家全系智能终端,生态封闭性比较强。
高端工业网关、边缘计算设备,我会用OpenWrt。它扩展性极强,能搭载各类运维、分析程序,功能全面且适配性广,但功耗高、内存占用大,完全不适合电池供电的微型终端。之前试过把它用在微型传感设备上,设备待机时长直接腰斩,完全达不到商用标准,之后再也没乱跨界选型过。
加班整理完所有项目的系统适配记录,盯着屏幕上分类好的设备场景和对应系统,默默关掉了所有报错的旧工程文件。