大家好,很高兴地宣布YodaOS开源。他将主持Rokid在人工智能和语音交互领域4年的沉淀,选择Node.js作为操作系统的一流开发公民,全部开放给社区。YodaOS的架构类似于Android,从下到上,由LinuxKernel、系统服务和应用框架组成。然而,YodaOS有以下不同之处:开发者可以直接使用JavaScript/Node.YodaOS除了支持默认的Node.jsAPI外,还提供:内置语音激活和语音识别API,真正的开箱即用(开发)语音交互系统;音量控制、电源管理、蓝牙、多媒体播放器、LED灯效、OTA接口全部封装;对于物联网开发人员,有内置的物联网协议标准化客户端实现,例如WebSocket和MQTT;YodaOS也支持npm仓库,开发者可以根据自己的需要在OS中使用,但是不建议使用一些很重的模块来实现,因为YodaOS需要支持中低端设备,所以有时性能需要考虑的因素。如果有些npm库实现起来确实很繁重,又不得不使用,在YodaOS上,我们一般的做法是使用N-API来桥接C/C++模块,然后保证JavaScriptAPI与对应的npm包一致。同时,在N-API的帮助下,开发者可以将任何Linux库移植到YodaOS,并通过N-API将其作为JavaScriptAPI使用。可以理解为N-API之于YodaOS,就像JNI之于Android一样。为什么前面提到Node.js?YodaOS选择拥抱Node.js和Node.js开发者。最大的原因是在过去的10年里,RyanDahl从一开始就定义了一个轻量级的Web服务器框架,以及如今的Express、Loopback、Koajs、Midway、EggFramework,在Web服务器框架领域逐渐成熟。依托于Node.js提供的运行时,从Grunt、Gulp到现在的Webpack、Parcel,在构建工具领域,社区也不断涌现出优秀的开源项目。Node.js正在开发每一位开发者的想象力,你需要的社区几乎应有尽有。社区中甚至流传着一句名言:“任何可以用JavaScript编写的应用程序,最终都将用JavaScript编写”——阿特伍德定律的意思是,只要可以用JavaScript编写的程序,最终都会用JavaScript来实现。那么为什么不用JavaScript编写操作系统呢?当然,以上只是一个有趣的介绍。Rokid真正想做的是让Node.js开发者能够以更低的门槛进入语音交互和嵌入式领域。Node.js和ShadowNodeYodaOS虽然类似于Android的架构,但是它们解决的问题和目标设备并不完全相同。对于越来越便宜的手机,Android开发者几乎不用担心系统性能问题。然而,对于智能音响、物联网终端等嵌入式设备来说,硬件资源通常非常匮乏。在这种情况下,OS需要解决开发者“节省资源,方便开发”的问题。所以对于低端硬件产品(内存在128MB到256MB之间),我们创建了ShadowNode来解决这个问题。它是Rokid基于三星IoT.js开发的Node.js运行时。它具有更快的启动速度和更低的资源占用。与IoT.js相比,它:提供了更好的错误堆栈信息和性能调试工具;支持基于N-API的跨运行时模块执行;针对特定芯片的性能优化,例如AmLogicA113和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框架组成。专为下一代人机交互设备开发,可用于智能音箱、智能家居等。、智能穿戴和车载设备及场景。
