最近我国自研的操作系统接连开源,先是MiniGui(Github地址:https://github.com/VincentWei/minigui),可能现在提起MiniGui大家已经比较陌生了,不过对于笔者-曾经的CSDN嵌入式论坛版主而言,MiniGui是个如雷贯耳的名字,在十几年前MiniGui和WINCE是各个各种开发板的标配,当时论坛上也有各种关于MiniGui移植及开发的帖子。但是由于当时的嵌入式系统多用来制作手持式PDA,车载导航仪等设备,所以安卓出现后迅速占领了上述市场,MiniGUI等嵌入式操作系统逐渐没落。
但是我们整理互联网发展的脉络可以看到,内容的不断丰富与终端的不断扩展是两条主线,随着网上数据量的持续爆炸性增长,今后新增的流量肯定主要来自于对于万物互联的红利,而与传统互联网内容+用户的模式不同,物联网则是场景+用户的模式,谁能整合场景谁能笑到最后。所以之后的嵌入式系统又迎来了生命中的第二个春天。
巨头们的布局
腾讯在三天前正式发布了其物联网终端的操作系统TinyOS(Github地址:https://github.com/Tencent/TencentOS-tiny),其系统架构图如下:
目前看其内核部分已经开发完成,并已经完全开源。虽然从其从tinyos内核的代码来看(详见https://blog.csdn.net/BEYONDMA/article/details/101355221),还是为物联终端做了一定优化与裁减的,不过从下面的场景图来看,腾讯其实醉翁之意不在酒,以操作系统为契机入局物联网的相关链条已经规划完整,
而且从比操作系统发布还早几天就挂在淘宝上的开发板来看,更是说明腾讯对于旗下云平台能够整合物联场景的巨大野心。
AliOS Thing3.0发布
云栖大会第三天,阿里不出意外的拿出了AliOS Things 3.0(Github地址https://github.com/alibaba/AliOS-Things/tree/rel_3.0.0),与TencentOS Tiny一样这款OS也是与阿里云平台无缝对接的,而且它的内核还直接支持了自家的AI芯片,提前布局AI+物联网。由于AliOS Things已经开源两年有余,所以其开发者体验相对较好,他们的IDE是基于VSCODE的,笔者已经下单他们的开发板了,后续亲测OS后再发体验。
可见巨头的逻辑就是要整合物联网时代的场景,他们的OS都是免费的,而且技术支持也强,不过巨头就是要做物联时代的ANDROID,最终一统天下。
老牌嵌入式操作系统的选择
MiniGui做为已经存在了20多年的嵌入式操作系统,其架构图如下:
从底至上,MiniGUI 由如下几个模块组成:
可以看到MiniGUI从创立伊始就放弃了对于RTOS内核的编写,直接基于linux等内核来做封装。简单聊两句基于MiniGUI的图形应用开发。
typedef struct _MSG
{
HWND hwnd;
int message;
WPARAM wParam;
LPARAM lParam;
#ifdef _LITE_VERSION
unsigned int time;
#else
struct timeval time;
#endif
POINT pt;
#ifndef _LITE_VERSION
void* pAdd;
#endif
}MSG;
typedef MSG* PMSG;
可以看到其对于消息的定义几乎与WINDOWS一致,其建立窗体等操作也几乎与WINDOWS一样。所以MiniGUI的设计有很大程序是为降低嵌入式系统图形界面开发难度而产生的。
国产实时操作系统内核的先驱RTthread
提到咱们国产的lot操作系统RTthread也是一个无论如何也绕不过去的标志,如果RTthread在06年初就发布了第一版,而且经过了这十几年的上亿台设备装机的技术沉淀,RTthread的社区也已经俨然发展成为国内最强的嵌入式社区了,笔者刚刚到他们的论坛上逛了一圈,真的是强手如云,大咖云集。具体内核相关知识后续会再发文介绍这里也就不再赘述了。而且最新的消息显示MiniGUI开始支持RTthread的内核了,可见传统的嵌入式操作系统厂商的策略是要尽量保持生态的多元化,抱团取暖。
HybridOS的开源计划
最近MiniGUI的飞漫软件又官宣了他们的HybridOS开源计划,而根据目前的材料看HybridOS最大的看点是要用HTML来统一UI的开发,这与之前使用WIN32的设计来统一UI开发的逻辑如出一辙。我们知道由于物联网终端真的是不一而足,与手机终端完全不同,其不同终端的碎片化需求太多太复杂,比如,有的智能灯泡要蓝牙即可,而智能空调可能就要有 WiFi了,而我们金融行业要做智能合约可能对于终端的算力又有一定的要求,这样碎片化的场景,由于Android硬件设备的要求门槛较高,就不太适合了, 而直接用 Linux裁减,这对于人才的要求又太高。所以与腾讯等巨头整合全场景的目标不同,MiniGUI的背后其是保持生态多样性的逻辑,他的目标是降低开发门槛,避免初创公司必须选择鸿蒙或者TinyOS这种大厂的操作系统,让场景的提供方可以通过较低成本验证自身的想法,而避免从一开始就走上巨头们早已画好的圆圈。
在他们的官宣当中对于其后续要发布的HybridOS物联网操作系统有如目标:
后记
我们可以看到巨头的逻辑是要让其它公司免费使用其OS上车,然后接入其loT云平台成者直接收购无缝整合,败者自生自灭,从而将自己立于不败之地,而传统的嵌入式公司逻辑则是降低OS的使用开发门槛,让物联网生态链上的企业能有自主选择。也让我们拭目以待,物联网时代能否产生新的巨头。