Ruff OS让智能硬件开发变简单

内容来源:2017年7月15日,Ruff CTO 郑晔在“2017 JavaScript 中国开发者大会”进行《如何利用 Ruff OS 物联网操作系统快速开发硬件产品》演讲分享。IT 大咖说(ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:1672 | 4分钟

嘉宾演讲视频回顾及PPT,请点击:http://t.cn/Rga1KNs

摘要

Ruff 是为那些懂 JS 而不懂嵌入式开发,又希望可以最快速实现自己创意设计的创客们服务的。

Ruff 介绍

Ruff 是一个支持 JavaScript 开发应用的物联网操作系统,它面向应用开发者,让 IoT 应用开发更简单。

此处有Demo演示,完整演示 Demo 请戳视频:http://t.cn/Rga1KNs

开发高效,而非执行高效

众所周知,从现在开发者角度来说,我们的时间比机器的时间更值钱。今天大家听了一天前端的讨论,就是为了不断优化开发效率。从硬件方面进行优化的时候,我们的关注点也是能够不断提高开发效率。所以在 Ruff 的设计中,开发高效是我们最核心的设计方向。

IoT 应用平台

在设计 IoT 应用平台的时候,我们的关注点是希望能用现代的设计语言去做开发,能够有一个面向应用的抽象,能提供生产的支持。

现代程序设计语言

我们选择的程序设计语言是 JavaScript 。

可能对于做 JS 的人来说,内存管理是稀松平常的事,但这却是 C 和 C++ 的程序员永远的痛点。

应用开发过程中需要提供一个很好的测试框架去完成相关工作。C 和 C++ 的程序员会觉得测试是一件非常痛苦的事,尤其是 C 和 C++ 的编译模型对测试的支持并不是特别好。

C 和 C++ 的程序员没有一个很好的包管理软件库,他们每拿到一个库都需要重新编译一遍。

以上就是我们选择现代程序设计语言所要考量的几个维度,而 JavaScript 在这些方面都有较为友好的表现。

JavaScript 还有一些特点,比如能支持多种范式的编程模型,支持函数式编程也支持面向对象的程序设计。

选择语言

从流行度来说,Java 是一个很好的选择。无论它的规模怎么下降,目前在全行业还是排名第一的,Android 也用 Java 作为它应用开发的语言。但是在硬件开发的领域里,Java 的虚拟机太大了,在内存上有所限制。

还有就是像 Lua、Ruby 这样的程序设计语言,喜爱它们的人会觉得很好用,但是放在全社区的角度,流行度还不够高。

C 语言在我之前的吐槽中,大家也能看出我对它有多么不看好。

相比之下只能选择了 JavaScript。

面向应用的抽象

$( ‘#light’ ).turnOn( );

传统方式

GPIO.output(11,GPIO.HIGH)

应用抽象

led.turnOn( );

抽象级别

一个 IoT 开发平台能做到的面向应用的抽象,可以把硬件驱动和软件接口隔离开来,应用开发者只要保证软件接口正确的调用,硬件驱动开发者来保证驱动编写的正确性。这样,应用开发者只要保证应用逻辑的正确性即可。

提供生产支持

设备宝 Ruff PI

我们做了一个应用 “ Ruff PI ”,中文名叫设备宝。它是由上海南潮信息科技有限公司利用其物联网操作系统开发的一款工厂的生产力助手应用产品。旨在通过信息化及物联网技术提高工厂生产效率及改善工厂生产管理,让传统工厂快速联网,实现数字化转型。Ruff PI 可以把工业领域里的一些设备监控起来,提供一些事件通知帮助我们对问题进行快速处理。

Ruff 工业领域

Ruff 在光伏领域帮助做一些电量数据的采集,工厂设备数字化,以及对电力进行监控。

Ruff 低功耗领域

我刚才提到了不用 Java 做 Ruff,是因为它占的内存太大了,而我们需要跑在256K 甚至更低的内存上,这才是 IoT 开发的常态。Ruff 在朝着更低的资源占用的方向发展。

Ruff 还兼容 API,并已经支持 TI TM4C1294、ESP32 这几个芯片。从整个体系设计来说,Ruff 是一个开放的体系,我们会根据不同项目的需求往不同芯片上去移植。在 Ruff 上写完的代码也可以平滑地移植到芯片上。

生产视角

站在生产视角上,我们进行了区分。

对于每个不同的硬件可能会有不同的 layout,这样实现了代码在不同的开发板上无缝移植。在 Ruff 的整个体系设计上,代码是可移植的。

基于 Ruff 的硬件应用发布

如果有了 Ruff 这样的平台,未来的开发会变成图上右边的结构。意味着硬件是硬件的发布周期,平台是平台的发布周期,应用是应用的发布周期。但是这个模式目前在 IoT 这个领域中并没有很好地做到,原因就是没有一个平台把它们很好地区分开来。而 Ruff 做得就是通过一个平台把应用和底层硬件隔离开,来实现一种全新的发布模式。这样就不会出现很多应用开发实际上是被硬件开发绑架了的可能性。

Ruff 2.0

我们会把对工业领域做的探索变成未来对社区发布的能力。

我们会提供更多的系统对象,提供系统访问的能力。提供能力描述,应用依赖于能力,不依赖于硬件。未来还会有板卡,可以自己扩展板卡能力,把不同能力暴露出来。

这是我们 Ruff 2.0 未来要做的事情。

我今天的分享就到这里,感谢聆听!

你可能感兴趣的:(Ruff OS让智能硬件开发变简单)