「これから組み込みソフト開発に取り組むWindowsプログラマ」を対象に,組み込みLinuxを用いた開発の基本について解説します。第1回は,アプリケーション開発におけるWindowsと組み込みLinuxの違いについて説明します。

 組み込みソフト開発における技術者不足が広く喧伝されつつあります。今後,これまでPC向けにWindowsプログラミングを行ってきたエンジニアが,組み込みソフト開発に転進するケースも増えてくると予想されます。

 本連載は,そのような「組み込みソフト開発に転進しそう,または転進したいWindowsプログラマ」,あるいは「組み込みソフト開発の入門者」を対象に,様々な組み込みOS(Operating System)の中でも特に注目を集める組み込みLinuxを用いた開発の基本について,順を追って解説します。

 実際に手を動かして学べるよう,組み込み機器のエミュレータを使った事例を交えながら説明していく予定です。なお,Linuxプログラミング全般の入門記事については,こちらをご覧ください。

組み込み向けの主要OSになったLinux

 従来,組み込み機器向けのOSとしては主に,組み込み向けの商用OSやメーカー独自のOSが使われてきました。ただし,ここ数年,Linuxおよびその上で動くオープンソース・ソフトウエアに注目が集まっており,組み込み機器の市場においてLinuxが主要なOSの一角を占めています。

 家電製品の分野では特に,組み込みLinuxを搭載した製品が増えているようです。例えば国産の薄型テレビの多くに使われています(関連記事「薄型テレビを制したLinux,開発現場の“守護霊”と“中央線」)。携帯電話においてもLinuxを採用する動きが広まっています(関連記事「ベールを脱いだグーグルの『Android』」「携帯電話向けLinux推進団体『LiMo』にVerizonなど8社が参加」)。

組み込みに使われる理由は? 期待される3つのメリット

 では,なぜ,組み込み機器分野でLinuxの利用が広まっているのでしょうか。

 注目すべき背景として,「Linuxがオープンソースであること」および「Linuxをはじめとするオープンソース・ソフトウエアの存在感が高まっていること」が挙げられます。

 PC向けWindowsでは通常,そのソースコードに自由にアクセスできません。一方,Linuxでは,誰もがソースコードを閲覧して改変できます。開発プロセスもオープンで,誰もが開発に参加したり,開発状況を把握したりできます(表1)。

表1●Linuxの開発状況を知ることができる情報源
オンラインの議論 Linuxカーネルメーリングリスト(通称LKML)にて行われている。ここにメールを投稿することで,誰もが機能を提案することができる。通常,毎月1万通超のメールがやり取りされる。アーカイブはこちらから参照できる
オフラインの会合 主要開発者が集まるLinux Kernel Summit,広く開発者が集まるOttawa Linux Symposiumなど。議事録は公開される
ソースコードの管理 Gitと呼ばれるソースコード管理システムを使ってソースコードが管理されている。開発途上のLinuxのソースコードは,ここから誰でも閲覧できる

 加えて,Linux上で動くアプリケーションも,オープンソースのものが数多く開発,公開されています。十分に実用できる豊富なアプリケーション・ソフトウエアが揃っているのです。

 ちなみに,組み込み向けのWindowsでは条件付きながら,ソースコードにアクセスして修正できるようになっています。しかし,誰でも開発に参加できるほどの自由度はありません。

 このようにオープンソース・ソフトウエアのおかげで,組み込みシステムにLinuxを採用する3つのメリットが期待できます。

(1)開発コストの削減

 組み込み機器もインターネット接続ができて当然になるなど高機能化が進み,開発規模・開発コストが大きくなってきています。Linuxは,インターネット接続機能を備えており,PC分野での稼働実績も豊富です。

 さらに,豊富なオープンソース・ソフトウエアのアプリケーション資産も使い回せるため,開発コストの削減が期待できます。

(2)カスタマイズの自由

 組み込み機器の構成はPCと違って,標準化されていません。家電,携帯電話,車載システムなど,多様なシステムが存在します。Linuxならば,ソースコードを変更できるため,多彩な構成に合わせたカスタマイズが自由です。

(3)障害対応のしやすさ

 障害が発生した場合も,OSのソースにテストコードを直接挿入して検査できるなど,より突っ込んだデバッグが可能です。また,オープンソース・コミュニティに集まるエンジニアたちの協力を得た形での問題解決も期待できます。