Ruff OS讓智能硬件開發變簡單


內容來源:2017年7月15日,Ruff CTO 鄭曄在「2017 JavaScript 中國開發者大會」進行《如何利用 Ruff OS 物聯網操做系統快速開發硬件產品》演講分享。IT 大咖說做爲獨家視頻合做方,經主辦方和講者審閱受權發佈。
前端

閱讀字數:1672 | 4分鐘閱讀程序員

嘉賓演講視頻地址:t.cn/RWtmcIp編程

摘要

Ruff 是爲那些懂 JS 而不懂嵌入式開發,又但願能夠最快速實現本身創意設計的創客們服務的。bash

Ruff 介紹

Ruff 是一個支持 JavaScript 開發應用的物聯網操做系統,它面向應用開發者,讓 IoT 應用開發更簡單。框架

此處有演示 Demo 請戳視頻:t.cn/RWtmcIp函數式編程

開發高效,而非執行高效

衆所周知,從如今開發者角度來講,咱們的時間比機器的時間更值錢。今天你們聽了一天前端的討論,就是爲了避免斷優化開發效率。從硬件方面進行優化的時候,咱們的關注點也是可以不斷提升開發效率。因此在 Ruff 的設計中,開發高效是咱們最核心的設計方向。函數

IoT 應用平臺

在設計 IoT 應用平臺的時候,咱們的關注點是但願能用現代的設計語言去作開發,可以有一個面向應用的抽象,能提供生產的支持。測試

現代程序設計語言

咱們選擇的程序設計語言是 JavaScript 。優化

可能對於作 JS 的人來講,內存管理是稀鬆日常的事,但這倒是 C 和 C++ 的程序員永遠的痛點。spa

應用開發過程當中須要提供一個很好的測試框架去完成相關工做。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 TM4C129四、ESP32 這幾個芯片。從整個體系設計來講,Ruff 是一個開放的體系,咱們會根據不一樣項目的需求往不一樣芯片上去移植。在 Ruff 上寫完的代碼也能夠平滑地移植到芯片上。

生產視角

站在生產視角上,咱們進行了區分。


對於每一個不一樣的硬件可能會有不一樣的 layout,這樣實現了代碼在不一樣的開發板上無縫移植。在 Ruff 的整個體系設計上,代碼是可移植的。

基於 Ruff 的硬件應用發佈


若是有了 Ruff 這樣的平臺,將來的開發會變成圖上右邊的結構。意味着硬件是硬件的發佈週期,平臺是平臺的發佈週期,應用是應用的發佈週期。可是這個模式目前在 IoT 這個領域中並無很好地作到,緣由就是沒有一個平臺把它們很好地區分開來。而 Ruff 作得就是經過一個平臺把應用和底層硬件隔離開,來實現一種全新的發佈模式。這樣就不會出現不少應用開發其實是被硬件開發綁架了的可能性。

Ruff 2.0

咱們會把對工業領域作的探索變成將來對社區發佈的能力。

咱們會提供更多的系統對象,提供系統訪問的能力。提供能力描述,應用依賴於能力,不依賴於硬件。將來還會有板卡,能夠本身擴展板卡能力,把不一樣能力暴露出來。

這是咱們 Ruff 2.0 將來要作的事情。

我今天的分享就到這裏,感謝聆聽!

相關文章
相關標籤/搜索