LuatOS——是合宙推出的一款基于SoC和Lua脚本的嵌入式操作系统。
很多人都不知道这6个字母怎么念,合宙官方也没有正儿八经的对外说起过到底怎么读,所以大家的发音也是五花八门啥都有,官方念法是“鲁瓦提OS”。
为啥叫LuatOS?
官方陆陆续续也提起过,逻辑线是这样的:
合宙的主营业务是蜂窝通信模组,从2G到4G,各种制式,说多不多,说少不少。
蜂窝通信模组,最主要的软件使用方式是AT指令,用大白话说就是“主控发AT指令给我,让我干啥我干啥”。
- AT指令发展了几十年,确实对蜂窝模组的推广起到了积极的作用,因为对非通信行业从业人员来说,AT指令可以尽可能的过滤掉对蜂窝专业知识的要求,最小难度的将蜂窝模组使用起来。
- 物联网行业这些年的变化趋势是越来越大,出货量越来越多,但相对于人联网,也就是手机市场来说,还远远不是一个量级,所以呢,在很长的一段时间内,物联网蜂窝模组用的其实都是手机芯片。也就是说,手机能做的事模组也都能做,这对模组行业来说有一个潜在的机会,那就是基于模组做二次开发。用比较装逼的一个词就是Open开发,有些人比较懒的话也叫做二开。
- 合宙最先看到了这个机会,但并没有急于动手,为什么?——因为基于模组的C-SDK做二次开发实在太难了,需要掌握很多的通信协议相关知识,绝大多数时候,支持用户做C-SDK二次开发,还不如直接帮用户做好开发来的效率更高。
- 为了解决C-SDK开发难的问题,合宙创始人秦鹏非常大胆的将Lua脚本语言引进了蜂窝模组二次开发。简单说就是——在模组内部开发了一个Lua虚拟机,对Lua脚本进行解释。用户不需要再关心任何有关蜂窝通信相关的专业知识,只需要具备基本的软件素养就可以快速开发。
- Lua脚本用于模组的开发方式,最初是在合宙自己做的定位器项目上开始用的,几年后踩过各种坑、解决各种bug、适配各种应用场景后,才开始对外推广。
- 推广最重要的是什么?除了技术本身,还要有一个名字用于交流才有传播的基础。当时有同事提议,不如将蜂窝模组常见的AT指令和Lua语言结合起来:Lua+AT->LuaAT->LuaT,那就叫Luat吧,这名字就这么稀里糊涂的定了下来。
- 随着Luat在蜂窝模组上的发展越来越好,合宙也开始尝试将Luat的跨平台优势尽可能的发挥出来,在此背景下,LuatOS应运而生。
但需要说明的是,当前LuatOS还是主要还是应用于合宙的通信模组上,尤其是4G Cat.1模组Air780E系列上,因为LuatOS还有另一个重要特性:资源要求小。
补充说一点,Air780E系列采用的已经是专用于物联网领域的芯片了,功耗更低、资源要求更小,不再与手机芯片共用。
不知道大家注意到了没,由于对芯片资源的要求不同(主要是ROM和RAM这两个核心资源),LuatOS实际经历了两个阶段:
- Luat阶段——对芯片资源的要求较大,结合LuatOS的命名,我们也称Luat为LuatOS-Air;
- LuatOS阶段——对芯片资源的要求较小,为了与LuatOS-Air做区分,有一段时间也被称为LuatOS-SoC。由于LuatOS-SoC是合宙后续更新迭代的主要分支,因此LuatOS-SoC也逐渐就被默认叫做了LuatOS。
简而言之,只有叫LuatOS-Air的时候才真的是LuatOS-Air,否则都是LuatOS(LuatOS-SoC)。
那么,LuatOS和LuatOS-Air各自支持的功能库,有哪些区别呢?
接下来,我用表格对各自的主要功能做一下罗列和区别。
- 不同模组型号LuatOS主要功能库一览
- LuatOS-Air主要功能库一览
(推荐使用Air724UG模组,推荐有语音通话需求的产品选择)
有的朋友可能发现了:
无论LuatOS还是LuatOS-Air,为什么列出来的功能库少了那么多?
原因很简单,合宙最近在针对技术文档做新一轮的梳理,原则是:
- 没有详细技术文档说明的功能,不要对外;
- 没有把握可以做到量产的功能,不要对外。
基于这样的原则,等相关功能库的技术文档准备完善之后,我们会逐步解锁新的功能库。
文章的最后,我想再分享一次自己最近在朋友圈转发公众号文章时常用的留言:
合宙为什么要推LuatOS而不是C-SDK?
- C-SDK要求开发者要懂一定的蜂窝知识;
- C-SDK要求开发者要有较高的代码素养;
- LuatOS对以上两条也有要求但容易很多;
- LuatOS只要求开发者更擅长自己产品的业务逻辑即可,核心关键词“软件状态机”;
- LuatOS会持续增加文档内容,迭代内容展示逻辑,找资料更容易,上手更方便。
如果文中有关软件的理解和描述有错误,请一定谅解我,毕竟,我是一个连Print函数都不会使用的软件白痴。
更多详细资料获取请点击:合宙文档资料中心