“Rubyの良さを組み込みに”を合言葉に開発された「mruby」とは何か:mruby概論(1)(2/2 ページ)
Rubyを軽量化、組み込み向けとして開発された「mruby(軽量Ruby)」が今、IoTでの開発言語として注目されています。Cに比べてコード量を1/4まで低減するmrubyについて、この連載では“mrubyはIoTでこう使え”までを分かりやすく解説します。
さらにmrubyは組み込み開発での利用を意識した開発がされており、以下のような特徴を持っています。
コンパクトな処理系「mruby VM」の採用
・少ないメモリ(RAM100Kバイト)程度で動作
・VM(仮想マシン)上で動作するため環境依存しません。また組み込み開発での安全性を考慮し、Rubyアプリケーションはスクリプトですが、mrubyアプリケーションはmrubyコンパイラによりバイトコードに変換して利用したり、スクリプトのまま利用できたりと自由度が高くなっています(動作確認済OS: Windows、Linux、Mac OS、ITRON、VxWorks、μCLinux、Android、iOS)。
既存C言語資産との高い互換性
・mrubyからC/C++の呼び出し可能
・C/C++からmrubyアプリの呼び出し
・mrbgemsというライブラリフレームワークによって容易に機能拡張可能(ビルド時に必要なライブラリを組み込めます)
mrubyソフト構成図 「mrbgems(mrubyライブラリ)」の追加によりmrubyの機能拡張が可能で、「mrbgems」はCまたはmrubyで記述可能です。既存のC/C++アプリケーションとハイブリット構成になっています
mrubyに標準で用意されているライブラリ(ミニマルライブラリ)は下記の通りです。
インクリメンタルGC(ガベージコレクション)採用
緩やかにGCを行うことでシステムのリアルタイム性を損ないません。GCの実行時間やタイミングはAPIにて設定可能ですし、Generational ModeというGCの頻度を最適化する手法も取り入れています。
クロス開発不要のコンパイラ言語
環境に合わせたVMを用意することでmrubyアプリケーションは動作しますので、クロス開発は不要になります。また、一般的な組み込み開発ではハードウェア開発の後にソフトウェア開発を行いますが、mrubyではPC上でシミュレートすることで、製品開発を待たずにソフト開発を開始できるのも大きなメリットです。このため、開発環境でのトライ&エラーの繰り返しが容易に行えます。
mrubyのライセンス
MITライセンスのオープンソースソフトウェアとして公開されています。利用/改造した場合にソース公開の必要はありません。
mrubyのソフトリアルタイム性
mrubyは十分高速とはいえ、C言語に比べると動作が遅いこともあり、ハードリアルタイムが必要な部分にはC/C++を、mrubyはソフトリアルタイムな部分にと使い分けていきます。また、mrubyはRuby同様に、メモリの割り当てや解放などの管理が言語処理系により自動で行われ、動的型付け言語(型等も実行時に判断される)であることも特徴です。
その他の特長として、Rubyは2011年にJIS X 3017として制定され、翌年の2012年には日本発のプログラミング言語としては初めて国際標準規格 ISO/IEC 30170として承認されました。mrubyはそのRubyに準拠しています。
ここまでmrubyの概略、そのメリット、C/C++との主な相違点について紹介しました。次回は「IoT開発にmrubyを投入する」状況を想定し、mrubyを実際に触ってみることにします。
お知らせ
「軽量Ruby・実用化促進ネットワーク」設立総会が2015年7月23日(木)、福岡にて行われます。Ruby開発者 Matzとのトークセッションやmrubyライブコーディング、mrubyのリファレンスボードである「enzi」が当たる抽選会もあるようです。詳しくはこちら 軽量Ruby普及・実用化促進ネットワーク設立記念講演会・交流会をご参照ください。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- “組み込みRuby”こと「mruby」をセットアップしてみよう
Rubyの特長を組み込み開発に反映させたプログラミング言語が「mruby」です。今回は実際のセットアップと基本的な構文について解説します。 - 組み込み開発にも高い生産性を――製造業技術者に“軽量Ruby”「mruby」アピール
コードの肥大化/開発期間短縮/コスト削減などで厳しさを増す組み込みソフトウェア開発に、Rubyの高い生産性が期待されている。ETWest2012の基調講演で、まつもとゆきひろ氏が話題の組み込み機器向け“軽量Ruby”「mruby」について語った。 - 組み込み向けRubyから“不死身”のマイコンまで――Embedded Technology West 2012
組み込み技術展「ET」の関西版「Embedded Technology West(ETWest)2012」が大阪で開催された。スマートエネルギーの専門展との同時開催で例年以上の盛り上がりを見せたETWestから、MONOist編集部が注目した展示をピックアップ。