Linuxおよびオープンソースソフトウェア
組込み業界がLinuxを受け入れた理由
- ――現在、
さまざまな製品にLinuxが組込まれて活用されています。このように組込み領域でLinuxが広まった理由をどのように分析されていますか。 一番のモチベーションはネットワークでしょう。情報家電などさまざまなものがネットワークにつなげるといった際、
TCP/ IPのプロトコルスタック、 あるいはHTTPなどといった上位レイヤーのプロトコルを用意しなければなりません。こういったプロトコルのリファレンス実装として、 一番標準的だったLinuxが組込み領域で使われるようになったという流れです。 ただそれまでの組込み開発は、
わずかなメモリをスタティックにアロケートし、 予定調和で使うという世界でした。一方でLinuxは非常にインテリジェントなOSで、 OSが賢く自動的にメモリを割り当ててくれます。つまりそれまでの組込み開発とは正反対の考え方で、 組込み開発とは相容れない部分もありました。 それでもLinuxが広まったのは、
ネットワークにつながるメリットに加え、 組込み用OSに求められるものが変わったためです。スマートフォンのようにユーザーがアプリを後から追加する、 あるいはソフトウェアを更新したり機能を追加したりといったことが当たり前になった。これに対応するために、 しっかり作り込む従来の組込み開発から、 柔軟性のあるOSを使うといったように考え方がだんだん変わったということです。CPUの高速化やメモリの大容量化といった、 ハードウェアの進化も大きな理由になっています。
専門家の目から見た組込み領域におけるLinuxの課題
- ――組込み領域におけるLinux利用で、
現状の課題としてはどういったことが挙げられるでしょうか。 いくつかありますが、
大きいものとして標準のディストリビューションがないことが挙げられます。エンタープライズ領域ではRedHat Enterprise Linuxをはじめとするディストリビューションがあり、 その上でさまざまなアプリケーションが動きます。しかし組込み領域には、 そういった決定版と言えるディストリビューションがなく、 各々のメーカーが独自に作り込みをしなければなりません。組込み領域でも標準のディストリビューションがあれば、 こうした負担を大きく軽減できるはずです。 ハードウェアの多様性も大きな課題です。PCの世界はPC/
ATと呼ばれる基本的なデザインがあるほか、 BIOSやUEFIのおかげでOSから見るとハードウェアは同じように見えます。しかし組込みで使われるハードウェアは、 CPUに同じARMを使っていても割り込みコントローラーやタイマーが違うなど、 製品によってさまざまな違いがあります。その結果としてLinuxのバリエーションが増えてしまい、 さらに各チップや各ボードごとの定義が増えたことで肥大化してしまうという問題が起きました。 それでこの数年間は、
PCと同じように1つのバイナリーでさまざまなハードウェアをカバーする、 シングルバイナリーの実現に向けた動きが加速しています。具体的には、 ハードウェアごとの定義をデバイスツリーとしてデータベース化し、 それを参照しながら起動するというもので、 コミュニティにおいて積極的に取り組みが進められています。 メンテナンスやセキュリティの問題も見逃せません。以前の製品は、
よほどのことがない限りソフトウェアを更新することはありませんでしたが、 現在のスマートフォンなどでは頻繁にアップデートが行われています。たとえばOSのセキュリティホールを放置し、 それによってユーザーが不利益を被れば大きな問題になるでしょう。そのため、 開発が完了して製品をリリースした後も、 メンテナンスして更新しなければなりません。これは組込み開発の新しい課題であると言えます。
組込み業界でのLinux活用をサポートするLTSI
- ――組込み業界という枠組みの中で、
そうした問題意識は共有されているのでしょうか。 そうですね。最近になり、
こうした課題があることに気付いて議論が始まったという段階です。そこで立ち上げられたのがLTSIで、 組込み領域におけるLinux利用の課題を業界内で共有し、 その解決に向けた取り組みを進めています。 LTSIの活動として、
選定したカーネルをLTSIカーネルとしてリリースし、 共同で長期間のメンテナンスを行うというものがあります。具体的には、 毎年1つのカーネルを選び、 それを2年間メンテナンスするというものです。 実はLinuxコミュニティにも、
LTS (Long Term Stable) という長期間のサポートが行われるカーネルがあります。ただ、 従来はそれがいつ提供されるのかについてルールがありませんでした。そこでLTSIカーネルのメンテナであるGreg Kroah-Hartman氏が中心となり、 ルール作りに向けた議論を行いました。そこで毎年1つのカーネルを選び、 それを2年間メンテナンスするという方針が決まったんです。 現時点のLTSIカーネルは3.
10で、 最新のLinuxカーネルから約3000個ほどのパッチがバックポートされています。ちなみに、 今回は初めてインテルがLTSIカーネルの開発に参加するなど、 LTSIの取り組みは産業界の中で着実に根付きつつあると感じています。 - ――LTSIカーネルの提供以外では、
どのような活動をされているのでしょうか。 LTSIが提供しているのはカーネルのみであるため、
ディストリビューションとどうやって組み合わせていくのかは課題だと考えています。そこで現在、 同じくLinux Foundation内のプロジェクトであるYocto Projectとのコラボレーションを進めています。 Yoctoはディストリビューションを開発するツール、
正確に言えばカーネルやアプリケーションなどを組み合わせてビルドし、 パッケージを作るための仕組みを提供しています。このYoctoでLTSIカーネルを使うことができるようになりました。つまり、 LTSIカーネルをベースとした独自ディストリビューションを作るための下地を整えられたわけです。 また、
最近始まったのがテストの共通化に向けた取り組みです。当然ですが、 製品としてリリースする前には各社それぞれ苦労しながらテストを行っています。そのテストの中には、 各社固有のノウハウが詰まった部分もあれば、 各社で共通しているテストもあります。LTSIカーネルを提供する際、 その共通しているテストを実施してから出せば各社の負担を軽減できるでしょう。そこでLTSIでは、 テストの共通化に向けたトライアルを始めています。
将来に渡って使える財産を協力して作る
- ――LinuxCon 2014の基調講演に登壇されるということですが、
どのような内容のプレゼンテーションを行われるのでしょうか。 我々が企業としてコミュニティの中で行っている活動の内容と、
それによって得られた効果をご紹介したいと考えています。OSSの活動について、 自社の成果を他社に提供するというように捉えられることがありますが、 それは最終的に自分たちに返ってくるんですよね。Invest for the Futureという言葉がありますが、 将来に渡って使える財産を作るために、 みんなで協力してやっていきましょうということなんです。 これまでのソフトウェアは、
一品料理を毎回作っているようなものだったわけです。これに対してLinuxは、 1回作ったものをどんどん改善することで継続して使うことができます。当然ビジネスとして製品を開発する上では他社との競争があります。ただ将来のための取り組みを放棄すれば、 新たな製品を開発するたびにゼロから作ることになってしまいます。これは無駄でしょう。こうしたOSSに取り組む意義について、 我々の成果も交えながらお伝えしたいと思います。 - ――本日はありがとうございました。