• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版

HOMEエレクトロニクス電子設計 > プログラミング言語Rubyに組み込み版が登場、その名も「軽量Ruby」

プログラミング言語Rubyに組み込み版が登場、その名も「軽量Ruby」

  • 進藤 智則=日経エレクトロニクス
  • 2011/12/05 12:15
  • 1/1ページ
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が合併)が参画している。

【技術者塾】
「1日でマスター、実践的アナログ回路設計」(2016年8月30日(木))


コツを理解すれば、アナログ回路設計は決して難しくはありません。本講義ではオペアンプ回路設計の基本からはじめて、受動部品とアナログスイッチや基準電圧などの周辺回路部品について学びます。アナログ回路設計(使いこなし技術)のコツや勘所を実践的に、かつ分かりやすく解説いたします。。詳細は、こちら
日時:2016年8月30日(火)10:00~17:00
会場:エッサム神田ホール(東京・神田)
主催:日経エレクトロニクス

おすすめ ↓スクロールすると、関連記事が読めます↓