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

你们好,很开心在这里宣布 YodaOS 开源了。他将承载 Rokid 4年以来对于人工智能和语音交互领域的沉淀,并选择 Node.js 做为操做系统的一等开发公民,所有开放给社区。git

图片描述

YodaOS 的架构跟 Android 相似,从下至上,由 Linux Kernel、系统服务和应用框架组成。不过 YodaOS 有如下不一样:github

  • 开发者能够直接使用 JavaScript / Node.js 来开发本地应用(技能);
  • 封装了 AI 抽象层,能够经过 JavaScript 直接调用到诸如语音激活、语音识别、人脸识别等接口;

除了支持默认的 Node.js API 外,YodaOS 还提供:npm

  • 内置的语音激活和语音识别 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。架构

图片描述

为何是 Node.jsapp

前面提到了 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 Lawoop

意思就是说,只要能被 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:

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

相关文章
相关标签/搜索