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 框架組成,專爲下一代人機交互設備開發,可用於智能音箱、智能家居、智能穿戴和車載等多種設備和場景。

相關文章
相關標籤/搜索