特集
» 2019年10月07日 11時00分 公開

組み込みLinuxと「Yocto」の深イイ関係、そしてクラウドネイティブへ組み込み基礎解説(2/3 ページ)

[朴尚洙,MONOist]

組み込みLinuxとIT機器向けLinuxの違い

 さて、組み込み機器にもLinuxの採用が広がっているわけだが、あらためて「組み込みLinux」とは何なのか考えてみよう。

 組み込みLinuxは、基本的には一般的なLinuxと同じ機能を備えている。ただし、それぞれ組み込み機器が持つ特性に合わせた最適化が必要であり、プロセッサも組み込み用のものを用いることが多い。起動方法もさまざまだ。

組み込みLinuxとは 組み込みLinuxとは(クリックで拡大) 出典:ウインドリバー

 IT機器に用いるLinuxは、ファイルシステムの容量がGBレベルに達し、プロセッサは基本的にx86もしくはその互換アーキテクチャを用いる。HDDやSSDなどのストレージに格納したファイルシステムから起動するのが一般的だ。

 一方、組み込みLinuxでは、ファイルシステムの容量は数十MB程度に抑えられている。また、一般的なIT機器にはない機能に対応するデバイスのサポート(ドライバなど)が求められるため、半導体メーカーなどが提供する評価用のBSP(Board Support Package)が必要になる。使用するプロセッサは、x86だけでなく、Arm、PowerPC、MIPSなどさまざまで、ハードウェアアーキテクチャもそれぞれ異なり、搭載メモリ容量に制限があることも多い。起動方法としては、ストレージを使用していないことが多いので、オンボードのフラッシュROMなどを用いている。

組み込みLinuxは、特定の目的に合わせた最適が必要で(左)、組み込み用プロセッサを使うことが多い(右)(クリックで拡大) 出典:ウインドリバー

組み込みLinuxで存在感を増す「Yocto」

 それでは組み込みLinuxにはどのようなLinuxが用いられているだろうか。大まかには、IT機器向けのLinuxディストリビューションを活用する場合と、組み込み機器向けに作られたLinuxディストリビューションを用いる場合とに分かれる。

 組み込み機器で利用されているIT機器向けのLinuxディストリビューションとしては、CentOS、Ubuntu、Debianなどがある。非Windowsの産業用PCや、ROS/ROS2のベースOSとしてはこれらのディストリビューションが広く用いられている。組み込み機器向けLinuxディストリビューションとしては、Wi-Fiルーターなどに用いられているOpenWRT、そして近年の組み込みLinux市場で急速に存在感を増しているYoctoがある。

組み込み機器で使われるLinuxYocto Projectの概要 組み込み機器で使われるLinux(左)とYocto Projectの概要(右)(クリックで拡大) 出典:ウインドリバー

 国際単位(SI)系の最小単位に由来するYoctoは、Linux Foundation傘下のプロジェクト「Yocto Project」で進められている、組み込み機器向けにカスタムのLinuxディストリビューションを構築するための開発環境のことだ。CentOS、Ubuntu、Debianなどの一般的なLinuxディストリビューションは、ソフトウェアがコンパイルされたバイナリベースで提供される。Yoctoは、あくまで独自のLinuxディストリビューションを作るための仕組みであり、Linuxディストリビューションそのものではない。

一般的なLinuxディストリビューションとYoctoの違い 一般的なLinuxディストリビューションとYoctoの違い(クリックで拡大) 出典:ウインドリバー

 Yoctoを使ったビルドフローとしては、独自ディストリビューションの設計図に当たるレイヤーを作成し、関連するパッケージのリポジトリをダウンロードしてbitbakeなどのビルドツールでビルドを行うことになる。

Yoctoを使ったビルドフロー Yoctoを使ったビルドフロー(クリックで拡大) 出典:ウインドリバー

 組み込みLinuxにYoctoを使うメリットは大きく分けて2つある。1つは、組み込みLinux開発環境として実質デファクトスタンダードになっていることだ。2010年に最初のバージョンがリリースされて以降、多くの組み込みLinuxベンダーに採用されている。例えばウインドリバーの「Wind River Linux」や、メンター・グラフィックスの「Mentor Embedded Linux」といった商用組み込みLinuxパッケージの他、先述した半導体メーカーのBSPに添付されている組み込みLinuxもYoctoベースだ。最近の例では、Armが発表した「Mbed Linux OS」などもある。

 もう1つは、必要な機能だけを取り込んだ「マイ・ディストリビューション」を作成できることだ。リソースの限られた組み込み機器からサーバまで対応可能であり、さまざまな出力イメージを選択できる。また、ホスト側のツールも開発環境として取り込める。

 そして何よりオープンソースソフトウェアとして開発されているので、IT機器向けのLinuxをはじめとする最新の技術や知見を取り込める。

組み込みLinuxにYoctoを使うことのメリット 組み込みLinuxにYoctoを使うことのメリット(クリックで拡大) 出典:ウインドリバー

Copyright © ITmedia, Inc. All Rights Reserved.