この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "組み込みLinux"
組み込みLinux(くみこみリナックス、英: Embedded Linux)は、組み込みシステムに特化したLinuxカーネルやLinuxオペレーティングシステム、またはそれら搭載する組み込み機器を指す用語である。携帯電話や携帯情報端末、メディアプレイヤーなどの家電機器、ネットワーク機器、ファクトリーオートメーション装置、カーナビ、医療機器など様々な組み込みシステムにて利用されている。米VDC (Venture Development Corporation) の2008年における調査によると、Linux は18%の組み込みエンジニアが使用しているとされる[1]。 デスクトップおよびサーバなどの汎用的なシステムと異なり、組み込みシステムではリソースが制限されており、例えばRAMや二次記憶装置の容量が小さい。組み込みLinuxを使った機器は、二次記憶装置としてハードディスクドライブの代わりにより小さいフラッシュメモリを使うことが多い。組み込みLinuxはアプリケーションや対象ハードウェアに必要な機能に特化されていることが多く、Linuxカーネルもそのアプリケーションに対し最適化し構成されている。最適化の具体的な例は、OSのリアルタイムオペレーティングシステム化などである。 一般的にLinuxは移植性にすぐれるシステムであると言われており、デスクトップコンピュータやサーバにあまり採用されていないコンピュータ・アーキテクチャにも移植されている。その中には組み込みシステムも含まれている。 組み込みシステムへのオペレーティングシステムの移植にはプロプライエタリなアセンブラやCコンパイラ、標準Cライブラリを利用するケースもあるが、それらと比較して、OS自体のソースコードを修正して再配布でき、ロイヤルティーやライセンス料が発生しないといったフリーソフトウェア/オープンソースソフトウェアとしての特徴だけではなく技術的な優位点もあり、使用メモリ量が比較的少なく(2MB以下のメモリで起動可能)、安定した動作、比較的サポートベースが大きい、などの利点がある。組み込みLinuxは、Linuxカーネルに少数のフリーソフトウェアを組み合わせたものである。標準Cライブラリにはglibcの代わりに、もっとリソース消費量の少ない dietlibc、uClibc、Newlibが採用される場合もある。 2006年05月、Linuxカーネル開発者のグレッグ・クロー=ハートマンによりLinuxのドライバ開発キットがリリースされた[2]。また、Linux Foundation(以前はOSDL)によって開発のトレーニング講座や無料のウェビナーが開かれている。 組み込みLinuxに使われるオープンソースのミドルウェアとしては、BusyBoxなどのオールインワンなものや、SambaやWebKit、FreeTypeなどのプロプライエタリな代替が少なくかつ重要なものも多い。また、MaemoやMoblin、Androidのようにミドルウェアの大部分をオープンソースで改めて開発するものや、Palm WebOSのようにミドルウェアの多数の部分にオープンソースソフトウェアを組み合わせて使うものもある。マルチメディアに関してはオープンソースで扱う場合、GStreamer経由でハードウェアデコーダとFFmpegをバックエンドにして使われることが多いが、AndroidにおいてはOpenCore 開発環境としてはEclipseか、商用製品が使われることが多い。Eclipseでは組み込みにおいて以下のプラグインが使われる。 また、EclipseにはMoblin Eclipse Plug-in Gartnerのプレスリリースによると、2008年のLinuxのシェアは8.1%としている[3]。AdMobのレポートによると、全世界のモバイルデバイスにおいてLinuxカーネルを採用しているOSであるAndroidとPalm WebOSを合わせたシェアは2009年8月時点で11%であり、2009年2月の2%と比べ9%伸びている[4]。また、AdMobの2010年2月のレポートによると、スマートフォンにおけるAndroidのシェアは24%に達し、2位になったとしている[5]。 日本では、NTTドコモの制定したMOAP(L)及びALPベースのFOMA端末用オペレータパックに使われている。 日本では、ネットワーク接続可能なハイエンド機種のテレビにはほぼLinuxが搭載されている[6]。 ゲームコンソール(コンシューマーゲーム)において、Linuxが使われる例は少ない。 PS2においては、PS2 Linuxがハード込みで発売された。また、PlayStation BB UnitにはLinuxが使われている。PS3においてはLinuxがインストールできることを売りにしていたが、新型を出した際にオミットされた。また、旧型PS3においてもファームウェア更新によって無効化された。 近年[いつ?]ではスマートフォンのゲーム市場が活性化されており[7]、Androidでのゲーム市場も急速に成長している[8]。そのためXperia Play 以下は、組み込み機器に特化したLinuxカーネルの機能である。"CONFIG_*"という表記はカーネルコンフィグレーションであり、コンパイルする際に機能を有効化するための識別子となる。Linuxカーネルはモノリシックであるため、カーネルコンパイル時に必要とする機能を有効化する。
通常のLinuxとの違い
開発
Eclipse C/C++ Development Tooling (CDT) - EclipseでのCやC++の開発に必須
Target Management (RSE)
Linux Tools Project - プロファイラや動的解析などの機能を統合
Tools for mobile Linux (TmL)
EGit - バージョン管理システムの一つ、Gitの統合
Mylyn - バグトラッカの統合
シェア
スマートフォン
テレビ
ゲームコンソール
Linuxカーネルの組み込み向け機能