2022/3/3
【mrubyとは】軽量Ruby普及・実用化促進ネットワーク
mruby(エムルビー)は平成22年度(2010 年)経済産業省の「地域イノベーション創出研究開発事業」にてRubyの生みの親まつもとゆひろ氏を中心にRubyの持つ生産性の高さ、使いやすさを組込開発にという思想で福岡県の企業、九州工業大学、福岡県により開発が進められ2012年4月に公開されました。その後活発に開発が進められており2022年3月にはmruby3.0がリリースされています。 | |
mrubyの特徴 | |
◆Rubyの持つ高い生産性と使いやすさをそのままに省メモリ化 | |
・mrubyは100KB程度のRAMで動作可能 | |
・言語仕様はRuby ISO Ruby(1.9系)をベースにCRuby3系の仕様を追加。Rubyの使いやすさをそのまま組込開発に応用 できます。 |
|
・mrbgemによる高い拡張性 RubyGemのmruby版ライブラリ「mrbgem」によりmrubyの機能拡張が容易です。 (2022.3現在、400を超えるmrgemが利用可能) |
|
◆組込開発を意識した構造 | |
・Rubyスクリプトをコンパイルしてバイトコードでmruby VM(virutual machine)を実行 環境に合わせたVMを用意することでmrubyアプリケーションは動作します。このため開発において ハードウェアと同時にソフトウェアの開発を開始することが可能です。また開発時にはスクリプト言 語として利用することで開発生産性を高めることが出来ます。 ・インクリメンタルGCによる安全なメモリ管理 緩やかにGCを行うことでシステムのリアルタイム性を損ないません。GCの実行時間やタイミングは APIで設定可能で、Generational ModeというGCの頻度を最適化する手法も取り入れています。 ・CPU、OSに非依存 C99対応のコンパイラが動く環境であれば動作します。またOSがなくても動作可能です。 ・商用利用しやすいMITライセンス 利用/改造した場合でもソース公開の必要のないMITライセンスを適用していますので組込開発にも 利用しやすい開発言語です。 |
|
◆C言語との高い互換性 | |
・既存C/C++言語アプリに組込Cアプリケーション機能を拡張 mruby VMを組み込むことでmrubyからのCモジュール呼び出し等、より多機能に活用することが可能です。 |
|
mrubyの利用例 | |
mrubyは組込向けとして開発されており、大きく2つの用途に分けられます。 1.組込システムに組み込む これはもともと考えられていたハードウェアの制御にmrubyを使う方法です。Routerなどの通信機器、 ペイメントシステムや人工衛星に組み込まれてその制御などに利用されています。 2.アプリケーションに組み込む mrubyはアプリケーションに組み込んで利用することが可能です。例としてはゲーム(PS4 ニーア・ オートマタ)、エディタ、Apache、Nginx等に組み込み、機能拡張やアプリケーション設定変更を Rubyで行います。 また近年ではIoTにも応用され、センサー等の制御や通信、IoTフレームワークにも応用されています。 実際のユースケースはNPO法人軽量RubyフォーラムHPをご参照ください。 |
|