YodaOS:一个属于 Node.js 社区的操作系统

大家好,很高兴在这里宣告 YodaOS 开源了。他将承载 Rokid 4年以来关于人工智能和语音交互范畴的沉淀,并挑选 Node.js 作为操作体系的一等开辟国民,悉数开放给社区。

《YodaOS:一个属于 Node.js 社区的操作系统》

YodaOS 的架构跟 Android 类似,从下至上,由 Linux Kernel、体系效劳和运用框架构成。不过 YodaOS 有以下差别:

  • 开辟者可以直接运用 JavaScript / Node.js 来开辟当地运用(妙技);
  • 封装了 AI 笼统层,可以经由过程 JavaScript 直接调用到诸如语音激活、语音辨认、人脸辨认等接口;

除了支撑默许的 Node.js API 外,YodaOS 还供应:

  • 内置的语音激活和语音辨认 API,真正做到了开箱即用(开辟)的语音交互体系;
  • 对音量控制、电源治理、蓝牙、多媒体播放、LED 灯效和 OTA 等都进行了接口封装;
  • 对物联网开辟者来讲,内置了标准化的 WebSocket、MQTT 等物联网协定的客户端完成;

YodaOS 也支撑 npm 堆栈,开辟者可以依据本身的须要在 OS 中运转所需的模块,不过并不引荐运用一些完成起来很重的模块,由于 YodaOS 须要支撑中低端装备,所以有时刻也须要考虑到机能方面的要素。

假如碰到一些 npm 堆栈确切完成很重,但又不得不必的时刻,在 YodaOS 上,我们平常的做法是运用 N-API 桥接 C/C++ 模块,然后保证 JavaScript API 与对应的 npm 包一致。

同时借助于 N-API,开辟者可以将任何 Linux 的库移植到 YodaOS 上,并经由过程 N-API 以 JavaScript API 体式格局运用,可以这么明白,N-API 之于 YodaOS,就像 JNI 之于 Android。

《YodaOS:一个属于 Node.js 社区的操作系统》

为何是 Node.js

前面提到了 YodaOS 挑选拥抱 Node.js 和 Node.js 开辟者,最大的一个缘由就是在过去快要10年的时候,从最最先 Ryan Dahl 定义的,一个轻量级的 Web 效劳器框架,到如今的 Express、Loopback、Koajs、Midway 和 Egg Framework,在 Web 效劳器框架范畴已逐渐成熟。

依托于 Node.js 供应的运转时,从 Grunt、Gulp 到如今的 Webpack 和 Parcel,在构建东西范畴,社区也不停涌现出异常卓着的开源项目来。Node.js 正在发挥每位开辟者的想象力,社区中险些有你须要的统统,甚至于在社区中,有一句撒布已久的名言:

“any application that can be written in JavaScript, will eventually be

written in JavaScript”

——Atwood’s Law

意义就是说,只要能被 JavaScript 来编写的顺序,终将运用 JavaScript 完成。那为何不必 JavaScript 来写一个操作体系呢?

固然上面的只是一个风趣的引子,Rokid 真正想做的是让 Node.js 开辟者可以以更低的门坎进入语音交互和嵌入式范畴。

Node.js 与 ShadowNode

YodaOS 虽然跟 Android 的架构类似,不过处理的题目,及目的装备并不尽然雷同,关于如今愈来愈廉价的手机,Android 开辟者险些不必忧郁体系机能的题目。但是关于像智能声响、IoT 终端以及其他嵌入式装备,一般硬件资本都是异常紧缺的,在这类情况下,OS 就要处理开辟者“既要节约资本、又要便于开辟”的题目。

因而针对中低端硬件产物(内存介于 128MB 到 256MB 之间),我们制造了 ShadowNode 来处理这个题目,它是 Rokid 基于三星 IoT.js 二次开辟的一款 Node.js 运转时,它具有更快的启动速率和更低的资本占用,比拟 IoT.js,它:

供应了更好的毛病栈信息和机能调试东西;
支撑了基于 N-API 的跨运转时模块实行;
针对特定芯片的机能优化,比方 AmLogic A113 和 Kamino18;

借助于 N-API 的 ABI 兼容特征,我们完成了 OS 上层框架和运用的运转时兼容性。比方开辟者完全可以挑选在更高等的装备上运转 YodaOS,此时内存和 Flash 不再是瓶颈,开辟者只须要替换体系中的 Node.js 运转时,即可取得更快的实行速率,不须要修正一行上层代码。

末了

我们愿望借助 YodaOS,为 Node.js 社区补全终端开辟这一版图,让我们用这门亲热的言语,再次回到我们熟习的“端”的开辟。

假如想一同到场 YodaOS,可以在 GitHub 上关注我们,项目地点:https://github.com/yodaos-pro…

《YodaOS:一个属于 Node.js 社区的操作系统》

关于 YodaOS:

YodaOS 是 Rokid 研发的首个全栈开源 AI 操作体系,由 Linux 内核、硬件笼统层、AI 笼统层和 JavaScript 框架构成,专为下一代人机交互装备开辟,可用于智能音箱、智能家居、智能穿着和车载等多种装备和场景。

    原文作者:Rokid技术团队
    原文地址: https://segmentfault.com/a/1190000018043517
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞