ET2011での実演の概観(九工大のブース)
ET2011での実演の概観(九工大のブース)
[画像のクリックで拡大表示]
軽量Rubyのプロジェクトとしては、JIS規格の範囲までカバー予定
軽量Rubyのプロジェクトとしては、JIS規格の範囲までカバー予定
[画像のクリックで拡大表示]
軽量Rubyの各コンポーネント
軽量Rubyの各コンポーネント
[画像のクリックで拡大表示]
ET2011での実演の様子。FPGAボード自体は、東芝情報システムが「組込みRubyチップ評価ボード」として一般に販売予定である。EthernetやCOMポートといったペリフェラルへのアクセスは、C言語で記述してある。
ET2011での実演の様子。FPGAボード自体は、東芝情報システムが「組込みRubyチップ評価ボード」として一般に販売予定である。EthernetやCOMポートといったペリフェラルへのアクセスは、C言語で記述してある。
[画像のクリックで拡大表示]

 プログラミング言語のRubyに、軽量な組み込み版が誕生する。Rubyの開発者であるまつもとゆきひろ氏が中心となって開発しており、名称は「軽量Ruby」である。福岡県の企業や大学などの連合が、経済産業省の「地域イノベーション創出研究開発事業」に応募して採択され、その助成を受けて開発している。2012年4月にオープンソースとして公開する予定である。「Embedded Technology 2011」(2011年11月16~18日、パシフィコ横浜)において、実演を披露した。組み込み分野においても、Rubyの高い生産性を利用したいというニーズに応える。

 軽量Rubyは、コンパイラと仮想マシンによる実行モデルを採用している。Rubyのソース・コードをコンパイラに掛け、ターゲット上ではバイト・コードを実行する形である。仮想マシンは「RiteVM」という名称で、「Ruby Lightweight VM」に由来する。仮想マシン自体は組み込み向けを意識し、わずか数Mバイトのフットプリントで動作する。ライブラリなどを含めた全体は「mruby(eMbeddable Ruby)」という名称である。なお、本家のRuby(CRuby)では、1.8系がインタープリタ方式、1.9系が仮想マシン方式を採用している。

各種の組み込みOSに対応、OSなしでも動作可

 これまでRubyはWebシステムなどで多く利用されてきたが、軽量Rubyは組み込み分野で利用できるよう工夫している。具体的には、仮想マシンやライブラリはすべて、C言語の「C99」の範囲のみで実装されており、高い移植性を持つ。VxWorks、μITRON、Linuxなど組み込み分野で用いられる各種OSに対応するほか、OSなしの環境でも動作する。

 リアルタイム性にも配慮した。ハード・リアルタイムの実現は難しいが、ソフト・リアルタイムに対応した。リアルタイム性を確保する際、ガベージ・コレクション(GC)が障害となるが、RiteVMではインクリメンタルGCを採用することでソフト・リアルタイム性を確保しやすくした。

 また、一部の処理はハード・ワイヤード回路でアクセラレーションできるようにしている。ハッシュ関数などは既に実装済みで、今後、GCのハードウエア化も検討している。これらのアクセラレーション回路は、九州工業大学 准教授の田中和明氏らが開発している。

 ET2011での実演では、Altera社のFPGA上にソフトコアのCPU「NIOS」を実装し、50MHz動作のNIOS上でRiteVMおよびRubyアプリケーションを実行した。具体的には、Rubyで記述されたWebサーバー(Ruby on Railsに添付されているWEBrick)をRiteVM上で動作させ、iPadのブラウザからその情報にアクセスできることを確認した。

ライブラリはほぼJIS規格の範囲に対応

 Rubyは多くの機能をライブラリとして実装している。軽量Rubyのライブラリは、ミニマル、スタンダード、フルの三種類に分類される。このうち今回の経済産業省の助成事業の対象となっているのは、ミニマルの範囲までである。

 フルとは、文字通り本家のCRubyの1.8/1.9系と同じ実装範囲を表し、文字コードやHTTP関連など豊富な機能が含まれる。スタンダードは、RubyのJIS規格「JIS X 3017」の範囲であり、Rubyの組み込みライブラリの機能に相当する。ミニマルは、スタンダードのサブセットであり、下記の表1のクラスやモジュールに対応している。組み込み向けを想定しているため、ミニマルのライブラリには、入出力を司る「IO」クラスは含まれていない。

表1 軽量Rubyのミニマル・ライブラリの内容

 ET2011で実演したのは、このミニマル版である。経済産業省の助成事業自体はミニマルまでが対象だが、今後、軽量Rubyのコミュニティなどが発足したあかつきには、「スタンダードの範囲も実装されるだろう」(九工大の田中氏)という。

ライセンスはBSDライセンスなどを検討

 軽量Rubyは現在、NDAを結んだ企業などにベータ版を配布しており、評価検証中である。富士電機の中国法人、遺伝子解析用のシーケンサを手掛けるManycolors、ASICを手掛けるロジックリサーチといった企業が評価中である。また、組み込み分野以外にも、軽量であることを生かして、アプリケーションそのものへの組み込みなども想定している。

 オープン・ソースとして公開する際のライセンスは現在、検討中である。BSDライセンス、もしくはMITライセンスなどを検討しているという。

 経済産業省からの助成事業は、福岡CSKが代表となってとりまとめている。研究の主体は、まつもと氏の所属するネットワーク応用通信研究所(NaCl)、九州工業大学、福岡CSKの3者である。このほかアドバイザーとして、東芝情報システム、福岡県、九州組込みソフトウェアコンソーシアム(QUEST)、福岡CSKの親会社であるSCSK(住商情報システムとCSKが合併)が参画している。