さて、組み込み機器にもLinuxの採用が広がっているわけだが、あらためて「組み込みLinux」とは何なのか考えてみよう。
組み込みLinuxは、基本的には一般的なLinuxと同じ機能を備えている。ただし、それぞれ組み込み機器が持つ特性に合わせた最適化が必要であり、プロセッサも組み込み用のものを用いることが多い。起動方法もさまざまだ。
IT機器に用いるLinuxは、ファイルシステムの容量がGBレベルに達し、プロセッサは基本的にx86もしくはその互換アーキテクチャを用いる。HDDやSSDなどのストレージに格納したファイルシステムから起動するのが一般的だ。
一方、組み込みLinuxでは、ファイルシステムの容量は数十MB程度に抑えられている。また、一般的なIT機器にはない機能に対応するデバイスのサポート(ドライバなど)が求められるため、半導体メーカーなどが提供する評価用のBSP(Board Support Package)が必要になる。使用するプロセッサは、x86だけでなく、Arm、PowerPC、MIPSなどさまざまで、ハードウェアアーキテクチャもそれぞれ異なり、搭載メモリ容量に制限があることも多い。起動方法としては、ストレージを使用していないことが多いので、オンボードのフラッシュROMなどを用いている。
それでは組み込みLinuxにはどのようなLinuxが用いられているだろうか。大まかには、IT機器向けのLinuxディストリビューションを活用する場合と、組み込み機器向けに作られたLinuxディストリビューションを用いる場合とに分かれる。
組み込み機器で利用されているIT機器向けのLinuxディストリビューションとしては、CentOS、Ubuntu、Debianなどがある。非Windowsの産業用PCや、ROS/ROS2のベースOSとしてはこれらのディストリビューションが広く用いられている。組み込み機器向けLinuxディストリビューションとしては、Wi-Fiルーターなどに用いられているOpenWRT、そして近年の組み込みLinux市場で急速に存在感を増しているYoctoがある。
国際単位(SI)系の最小単位に由来するYoctoは、Linux Foundation傘下のプロジェクト「Yocto Project」で進められている、組み込み機器向けにカスタムのLinuxディストリビューションを構築するための開発環境のことだ。CentOS、Ubuntu、Debianなどの一般的なLinuxディストリビューションは、ソフトウェアがコンパイルされたバイナリベースで提供される。Yoctoは、あくまで独自のLinuxディストリビューションを作るための仕組みであり、Linuxディストリビューションそのものではない。
Yoctoを使ったビルドフローとしては、独自ディストリビューションの設計図に当たるレイヤーを作成し、関連するパッケージのリポジトリをダウンロードしてbitbakeなどのビルドツールでビルドを行うことになる。
組み込みLinuxにYoctoを使うメリットは大きく分けて2つある。1つは、組み込みLinux開発環境として実質デファクトスタンダードになっていることだ。2010年に最初のバージョンがリリースされて以降、多くの組み込みLinuxベンダーに採用されている。例えばウインドリバーの「Wind River Linux」や、メンター・グラフィックスの「Mentor Embedded Linux」といった商用組み込みLinuxパッケージの他、先述した半導体メーカーのBSPに添付されている組み込みLinuxもYoctoベースだ。最近の例では、Armが発表した「Mbed Linux OS」などもある。
もう1つは、必要な機能だけを取り込んだ「マイ・ディストリビューション」を作成できることだ。リソースの限られた組み込み機器からサーバまで対応可能であり、さまざまな出力イメージを選択できる。また、ホスト側のツールも開発環境として取り込める。
そして何よりオープンソースソフトウェアとして開発されているので、IT機器向けのLinuxをはじめとする最新の技術や知見を取り込める。
Copyright © ITmedia, Inc. All Rights Reserved.