DUICUO

IoTオペレーティングシステムZephyrを使用した「継続的インテグレーション」オープンソースソフトウェアの開発

IoT オペレーティング システムは、IoT ハードウェア デバイス上に構成されるソフトウェアの最初の層であり、IoT ハードウェア システムの初期拡張を表します。

メモリ制約のあるIoTデバイス向けに特別に設計されたオープンソースのリアルタイムオペレーティングシステムであるZephyrは、高度なオープンソース性が特徴です。Zephyrオペレーティングシステムはどのようにして「継続的インテグレーション」によるソフトウェア開発を実現するのでしょうか?デモの例を見てみましょう。

このデモでは、マイクロコントローラベースのLinaroおよびZephyrオペレーティングシステムを使用しています。これは非常にオープンで透明性の高い開発プロセスです。開発者はGitツールをローカルで実行するだけで、残りの統合プロセス(コードレビューやテストを含む)はすべてクラウドで処理されます。それでは、この例を実際に見ていきましょう。

Zephyr クラウドワークフローと CI

上図に示すように、このデモ例はZephyrオペレーティングシステムに基づいています。ソースコード、ツールの使用、ソフトウェア構成の面で、ソフトウェア開発プロセスにおいて達成可能なオープン性のレベルをユーザーに示し、複雑な組み込みRTOSコードプロジェクトにおけるソフトウェアコラボレーションにおいて達成可能な透明性のレベルを実証します。

この例では、ユーザーが共同処理を実現するのに役立つ業界標準のオープンソースツールをいくつか紹介します。内容は次のとおりです。

  • Git ソースコード管理とコラボレーション。
  • 標準 C 言語と Make ツールに基づいてインフラストラクチャを構築します。
  • QEMU を仮想テスト プラットフォームとして使用します。

さらに、Linaro の既存コンテンツと新しくリリースされたコンテンツの一部が次のようにコミュニティに追加されます。

  1. Linaro のオープンソーステスト財団 - LAVA;
  2. 以前は Linux カーネル インフラストラクチャで見られていた継続的インテグレーション ツール。
  3. IoT Edition Cortex-M MCU をベースにした開発ボード。
  4. LITE チームによるプラットフォームとブートローダの側面における革新的なサポート。

上記の要素に基づいて、この例では、リモート仮想ターゲット プラットフォームまたはローカルの実際のハードウェア プラットフォーム (IoT エディション Cortex-M4 開発ボード) を使用して実行できる「継続的インテグレーション」の周期的なテスト プロセスを示します。

このテストの目的は、オープンソース オペレーティング システム Zephyr を実証し、最も実用的なオープンソース開発ツールを使用してターゲット プロジェクトを実行する方法を示し、「継続的インテグレーション」環境を促進することです。

上の画像に示すように、このデモでは、Zephyr プロジェクトのソースコードを変更し、https://github.com/linaro/zephyr にコミットしました。このプロセスでは、git ツールはローカルでのみ使用しました。まず、ローカルの git リポジトリでコードを変更し、次にこれらの変更をプッシュしました (git push)。変更を継続的インテグレーションの Zephyr リポジトリにプッシュしたことに注意してください。git push コマンドは、100 を超えるテストアプリケーションのリモートビルド、これらのアプリケーションを Qemu 仮想マシン上で実行し、結果を開発者にリアルタイムで返すという、テストプロセス全体を開始します。

仮想デバイスからのテスト結果が実行されると、重要なターゲット アプリケーションがビルドされ、クラウド経由で小規模なテスト サイトに展開され、そこで複数の実際のハードウェア プラットフォーム上でプログラムがリアルタイムでテストされます。

開発、テスト、展開

さらに、ビルドおよびテストインフラストラクチャ全体において、スケーラビリティ確保のため、ビルドプロセス中にコンテナと分散設計パターンを採用しました。ELCが実演したローカルテスト環境でも、テスト分散を担うコンテナインスタンスがラップトップ上で実行されていました。テストプロセス全体は、完全にシミュレートされたリアルタイムハードウェアテストでした。

ゼファープロジェクトについて

Zephyrプロジェクトは、小型でスケーラブルなリアルタイムオペレーティングシステムであり、特にリソースが限られたシステムに適しており、様々なアーキテクチャをサポートしています。このシステムは高度にオープンソース化されており、開発者コミュニティに完全に公開されています。開発者コミュニティは、必要に応じてシステムを開発し、最新のハードウェア、ツール、デバイスドライバをサポートすることができます。このシステムは高度にモジュール化されたプラットフォームであり、サードパーティ製のライブラリやあらゆるアーキテクチャの組み込みデバイスを容易に統合できます。

リナロについて

Linaroは、メンバー資金による非営利団体で、オープンソースのLinuxソフトウェアとツールをARMアーキテクチャに統合・最適化することに注力しています。複数の企業が共同でソフトウェアエンジニアリングチームに投資し、透明性と協力性を備えた環境下で、コアとなるオープンソースソフトウェアを共同開発するというビジネスモデルを採用しています。

Linaroはチーム中心の組織であり、オープンソースを採用するだけでなく、メンバーが効果的に協力し、共有し、差別のないレベルで革新を起こせるよう組織化することで、業界の同業他社に差別化された追加リソースを提供しています。Linaroは、最新のLinuxカーネルプログラム3.0から3.7に最も大きく貢献した企業の1つであり、Linaroの協調的アプローチの有効性を実証しています。