日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時間:2023/12/10 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YodaOS: 一个属于 Node.js 社区的操作系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)四年只會寫業(yè)務(wù)代碼,分布式高并發(fā)都不會還做程序員? >>>??

大家好,很開心在這里宣布 YodaOS開源了。他將承載 Rokid 4年以來對于人工智能和語音交互領(lǐng)域的沉淀,并選擇 Node.js 作為操作系統(tǒng)的一等開發(fā)公民,全部開放給社區(qū)。

YodaOS(YODAOS)的架構(gòu)跟 Android 類似,從下至上,由 Linux Kernel、系統(tǒng)服務(wù)和應(yīng)用框架組成。不過 YodaOS 有以下不同:

  • 開發(fā)者可以直接使用 JavaScript / Node.js 來開發(fā)本地應(yīng)用(技能);

  • 封裝了 AI 抽象層,可以通過 JavaScript 直接調(diào)用到諸如語音激活、語音識別、人臉識別等接口;

除了支持默認(rèn)的 Node.js API 外,YodaOS?還提供:

  • 內(nèi)置的語音激活和語音識別 API,真正做到了開箱即用(開發(fā))的語音交互系統(tǒng);

  • 對音量控制、電源管理、藍(lán)牙、多媒體播放、LED 燈效和 OTA 等都進(jìn)行了接口封裝;

  • 對物聯(lián)網(wǎng)開發(fā)者來說,內(nèi)置了標(biāo)準(zhǔn)化的 WebSocket、MQTT 等物聯(lián)網(wǎng)協(xié)議的客戶端實(shí)現(xiàn);

YodaOS 也支持?npm 倉庫,開發(fā)者可以根據(jù)自己的需要在 OS 中運(yùn)行所需的模塊,不過并不推薦使用一些實(shí)現(xiàn)起來很重的模塊,因?yàn)?YodaOS 需要支持中低端設(shè)備,所以有時候也需要考慮到性能方面的因素。

如果遇到一些 npm 倉庫確實(shí)實(shí)現(xiàn)很重,但又不得不用的時候,在 YodaOS 上,我們一般的做法是使用 N-API 橋接 C/C++ 模塊,然后保證 JavaScript API 與對應(yīng)的 npm 包一致。

同時借助于 N-API,開發(fā)者可以將任何 Linux 的庫移植到 YodaOS上,并通過 N-API 以 JavaScript API?方式使用,可以這么理解,N-API 之于 YodaOS,就像 JNI 之于 Android。

為什么是 Node.js

前面提到了 YodaOS 選擇擁抱 Node.js和 Node.js 開發(fā)者,最大的一個原因就是在過去將近10年的時間,從最開始 Ryan Dahl?定義的,一個輕量級的 Web 服務(wù)器框架,到如今的 Express、Loopback、Koajs、Midway 和 Egg?Framework,在 Web 服務(wù)器框架領(lǐng)域已經(jīng)漸漸成熟。

依托于 Node.js 提供的運(yùn)行時,從 Grunt、Gulp?到現(xiàn)在的 Webpack和 Parcel,在構(gòu)建工具領(lǐng)域,社區(qū)也不斷涌現(xiàn)出非常卓越的開源項(xiàng)目來。Node.js 正在發(fā)揮每位開發(fā)者的想象力,社區(qū)中幾乎有你需要的一切,甚至于在社區(qū)中,有一句流傳已久的名言:

any application that can be written in JavaScript,will eventually be written in JavaScript ??——?Atwood’s Law

意思就是說,只要能被 JavaScript 來編寫的程序,終將使用 JavaScript 實(shí)現(xiàn)。那為什么不用 JavaScript 來寫一個操作系統(tǒng)呢?

當(dāng)然上面的只是一個有趣的引子,Rokid 真正想做的是讓 Node.js 開發(fā)者能夠以更低的門檻進(jìn)入語音交互和嵌入式領(lǐng)域。

Node.js 與 ShadowNode

YodaOS 雖然跟 Android 的架構(gòu)相似,不過解決的問題,及目標(biāo)設(shè)備并不盡然相同,對于現(xiàn)在越來越便宜的手機(jī),Android 開發(fā)者幾乎不用擔(dān)心系統(tǒng)性能的問題。然而對于像智能音響、IoT 終端以及其他嵌入式設(shè)備,通常硬件資源都是非常緊缺的,在這種情況下,OS 就要解決開發(fā)者“既要節(jié)省資源、又要便于開發(fā)”的問題。

于是針對中低端硬件產(chǎn)品(內(nèi)存介于 128MB 到 256MB 之間),我們創(chuàng)造了 ShadowNode來解決這個問題,它是 Rokid 基于三星 IoT.js 二次開發(fā)的一款 Node.js 運(yùn)行時,它具備更快的啟動速度和更低的資源占用,相比 IoT.js,它:

  • 提供了更好的錯誤棧信息和性能調(diào)試工具;

  • 支持了基于 N-API 的跨運(yùn)行時模塊執(zhí)行;

  • 針對特定芯片的性能優(yōu)化,比如 AmLogic A113和 Kamino18;

借助于 N-API的 ABI 兼容特性,我們實(shí)現(xiàn)了 OS 上層框架和應(yīng)用的運(yùn)行時兼容性。比如開發(fā)者完全可以選擇在更高級的設(shè)備上運(yùn)行 YodaOS,此時內(nèi)存和 Flash 不再是瓶頸,開發(fā)者只需要更換系統(tǒng)中的 Node.js 運(yùn)行時,即可獲得更快的執(zhí)行速度,不需要修改一行上層代碼。

最后

我們希望借助 YodaOS,為 Node.js 社區(qū)補(bǔ)全終端開發(fā)這一版圖,讓我們用這門親切的語言,再次回到我們熟悉的“端”的開發(fā)。

如果想一起加入 YodaOS,可以在 GitHub 上關(guān)注我們,項(xiàng)目地址:https://github.com/yodaos-project/yodaos。

總結(jié)

以上是生活随笔為你收集整理的YodaOS: 一个属于 Node.js 社区的操作系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。