注目ブログご紹介

新しいLTSカーネルよ永遠に


投稿者:Andreea Volosincu, 2015/6/6

また今年も最も楽しい季節がやってきました! クリスマスではなく、Linuxの世界で新しいサイクルが始まる季節です。数日前、Linux 4.1カーネルがリリースされ、2015年のLTSカーネルに選ばれました。つまり、最先端の長期サポートリリースになったのです。LTSリリースはほとんどの組み込みシステムの基盤になるという点だけでなく、この数ヶ月以内に、今後2年以上サポートされる新しいLTSIカーネルが登場するという点でも非常に重要です。4.1 LTSIカーネルのマージウィンドウはおそらく11月になる予定で、その後、通常の検証とリリースプロセスを経ます。

それにしても、 略語やプロセスの多いこと! ここでもう一度バックグラウンドについて確認し、理解を深めたいと思います。

すべてのカーネルには特徴がある

2011年はLinuxコミュニティにとって非常に忙しい年でした。誰か(たとえば10社程度のコンシューマエレクトロニクス企業)が、どこか(たとえばプラハ)で、「貴重な革新技術とはいえ、毎月Linuxユーザーに2~3回も定期的にリリースすると、カーネルの変更が頻繁に必要になるため、コンシューマエレクトロニクスデバイス市場にとっては負担になってしまう。」と言い始めた年でした。

その結果、業界内で長い時間をかけて協議した末、新しいLinux FoundationプロジェクトであるLong Term Support Initiative(LTSI)を始動するためにLinuxCon Europeが立ち上げられました。これで略語の説明が1つ終わりました。

Linux FoundationがホスティングしているLTSIプロジェクトは、長期的な業界ツリーを作成・維持することで各種のコンシューマエレクトロニクス製品に共通のLinux基盤を維持するのが目的です。そしてコンシューマエレクトロニクス製品の一般的な寿命、すなわち2年以上、品質を維持することが期待されています。LTSIカーネルは図2に示すように、Long Term Stable(LTS)カーネル候補として選択されています。これで2つ目の略語の説明が終わりました。


図1 Linuxカーネルのバージョン表記


図2 LTSとLTSIカーネルの推移および選択

最近のカーネルリリースでは、平均1万以上のパッチが組み込まれることを考えると、最新のアップストリームコードの機能を2年以上バックポーティングすることで安定したバージョンが得られるのは非常にありがたいことです。オープンソースソフトウェアのようなコラボレーションによる方法で保守の問題を解決します。スイス製の時計のような精密さと予測可能性でシステマティックに作業を進めながら、Linuxカーネルの保守担当者は定期的にパッチを次々と提供してきました。カーネルには短命なものも、長期間存続するものもあります(以下のうち赤字で示したのがLTSカーネルです)。コミットされた内容は、最新のアップストリームバージョンからLTSバージョンにバックポーティングされます。3.14 LTSIは2016年8月に、3.10 LTSIは2015年9月にEOLを迎えます。


図3 LTSカーネル

重要性

LTSIカーネルは追加ルールに準拠し、追加のパッチを反映します。LTSIツリーにはベンダーが必要としている一連のパッチが含まれており、LTSバージョン以外のパッチを収集するために異なる開発プロセスが設けられています。これは業界内で追加のパッチを共有できるようにするためです。この種のパッチはたとえば、SoCの追加ドライバーまたはカーネルツールに特化している場合があります。透明性も主要なコンポーネントです。LTSIパッチセットをコントリビュータがテストし、その結果をLTSIメーリングリストで共有します。また、様々な企業の担当者との面談によって、LTSI要件、使用事例、主な問題点など、多種多様な内容について協議します。社内で開発したパッチとアップストリームのいずれを採用するのかについては、LFのワーキンググループが開発者の作成したコードのアップストリーム化をサポートすることで、技術がロックされないようにします。

毎日毎時間、新しいアプリケーションと新しい機能が開発されています。こうした開発は偶然にも最も安定したカーネルバージョン(LTSカーネル候補)上で行われていることもあれば、LTSIカーネルにバックポーティングされることもあります。開発によって革新と安定性が促進されています。断片化を軽減し、相互運用性を高めるためには、Yocto Projectのような他のプロジェクトが理想的です。そして、オープンソースの技術革新から、安定した、信頼性の高い、予測可能なプラットフォームに最も簡単に移行するために、移行という重労働を手掛けている民間ベンダーがあります。このようなベンダーを活用することで、社内のチームはリスク回避手順やバックポーティング作業に時間をとられることなく、自社製品を差別化する機能だけに専念できます。

一番乗り!

ではウインドリバーはコミュニティとどのように関わっているのでしょうか。そして、ウインドリバーのソリューションによって、オープンソース開発から、リスクを回避した市販のプラットフォームへの移行をスムーズに、そして迅速に行えるのはなぜでしょうか。実はこれは簡単なことで、それをよく表したのが以下のタイムラインです。


図4 オープンソース開発をWind River Linux 7に統合

これはウインドリバーの現行のLinuxプラットフォーム、Wind River Linux 7の場合のタイムライン例です。安定したLinuxカーネルは2014年の6月~7月に発表されました。8月~10月がLTSIマージウィンドウとして設けられ、開発者は新しいパッチとパッケージを提出しました。これにより、ウインドリバーのエンジニアがYocto Projectkernel.orgのような異なるコミュニティグループと一緒に作業し、開発・提出された内容を活用することができました。

Yocto Projectリリースは10月末に提供されました。通常、Yocto Projectは最新のLTSIと、提供されている最新のリリースカーネルでリリースします(Yocto Project 1.7は3.14 LTSIと3.17カーネルでリリースされた)。ウインドリバーはYocto Projectと互換性のある市販のLinux製品を、12月にリリースしました。最新の開発技術をWind River Linuxを使用したいと考えているあらゆるOEMに提供したいと考えたのです。ただしここで忘れてはならないのが、Linuxの使用は長期的なコミットメントだということです。コミュニティで2年以上サポートされている/される製品をベースにしていますが、デバイスの現場導入が終わった2年目以降は、ウインドリバーの厳格な保守作業(毎月の更新)が特に重要になります。

今のところ4.1 LTSIカーネルのマージウィンドウはまだオープンな状態で、約75日間続く予定です。ウインドリバーは今後も緊密なサポートを提供し、今後提供する新たなWind River Linuxリリースは、ハードウェアの可用性の面でも機能面でも、非常に有効かつ効果的になるはずです。