近年、数多くのシステムにLinuxが採用されています。組み込みシステム(特定用途に特化したシステム)も例外ではありません。ウェアラブル製品のようにコンパクトな製品から、車載や航空・宇宙といったハイエンドで信頼性を求められる製品まで、様々な分野の製品にLinuxが導入されています。こうした導入の背景には、組み込み機器に搭載されるプロセッサの処理能力の向上、オープンソースであることから新しい技術が導入されやすいことなど、「Linuxを採用し、開発効率をはじめとする現場の課題を改善したい」という期待があります。そこで本初心者講座では、活用が進む組み込みLinuxについて、初心者の方や、改めて情報を整理したい方へ実践的な活用方法、関連する技術情報を連載形式で発信していきます。
第1回は「組み込みLinuxディストリビューション」の特徴や要件について説明します。Linuxディストリビューション(後述)の種類は年々増え続けており、製品開発のプロジェクトでは「自社製品にどのLinuxディストリビューションを採用すべきか」という検討に多くの時間を費やさなければなりません。外部のシステムと連携できるネットワーク機能が豊富なLinuxディストリビューションを使いたい、しかしGUIの設計を考えると別のLinuxディストリビューションが良い、といったトレードオフが設計者を悩ませています。
8本すべて無料!組み込みLinuxウェビナー
組み込みLinuxの基礎知識から、Docker/コンテナ技術の開発方法、さらには起動シーケンスを理解し、実際のLinuxアプリ開発も学べる。開発デモはRaspberry Pi 4を使用しているので、受講後すぐにお試しいただくことで可能です。
視聴申込はこちらから
組み込みLinuxディストリビューションとは
まず、組み込みシステム向けのLinuxディストリビューションについて説明します。
Linuxディストリビューションとは
狭義の「Linux」は、Linuxカーネル(OSの中核)のことを意味します。LinuxカーネルはCPUやメモリといったシステムの根幹をなすハードウェアを制御し、アプリケーションやサービスを最適に管理・実行するためのプログラムです。
LinuxをOSとして動作させるには、Linuxカーネルに加え(図1:③)、ハードウェアを制御するデバイスドライバなどを含んだBSP(図1:④)(詳細は後述)、ユーザーインターフェイスやネットワークを制御するユーザースペースパッケージ(図1:① – アプリケーション)、その実行や構築を支援するマイクロサービスやライブラリなど(図1:②)が必要です。Linuxカーネルを中核として、システムに必要な各種コンポーネントを統合したものを「Linuxディストリビューション(図1:⑤)」と呼びます。
組み込みシステムの開発者は、まず、入手したLinuxディストリビューションに組み込みシステムの実現に必要となるユーザースペースパッケージ(図1:⑥)と、その実行に必要なマイクロサービスやライブラリ(図1:⑦)を追加しソフトウェアのプラットフォーム(図1:⑧)を構築します。
そして、システムの価値となるサービスを提供するアプリケーション(図1:⑨)をプラットフォーム上に実装し、組み込みシステムを実現させます。
このように、Linuxディストリビューションは、より高機能で付加価値の高い組み込みシステムを実現するために不可欠な、莫大なソフトウェア資産であり、洗練されたアプリケーションの実行基盤です。
注目される組み込みLinuxディストリビューション
従来の組み込みシステムでは、製品毎にプログラムを実装していました。しかし、現在の組み込みシステムは様々な機能が統合された複雑なシステムとなっており、ゼロからの開発は現実的ではありません。例えば、近年注目されているインテリジェントエッジでは、AI(ニューラル・ネットワーク)や機械学習(Machine-Learning)といった複雑な技術のコンポーネントが必要となります。「入力(センシング or 通信)」×「AIによる解析」×「出力(表示 or 通信)」のように、組み込みシステムは様々な機能の集合体です。そのため、既存の開発リソースをいかに再利用できるかが、優れた製品を短期間でリリースするための鍵となります。そこで、オープンソースソフトウェア(OSS)のプログラムや豊富なマイクロサービス・ライブラリといった、多数の開発リソースを備えたLinuxを中核とした、効率的にシステムを開発する手法が注目されています。それが、組み込みLinuxディストリビューション(組み込みディストリビューション)です。その中でも、採用実績の多いLinuxディストリビューションを選択することで、より安定した不備のない組み込みシステムを構築することができます。
組み込みLinux入門に最適な1冊
「市場投入までの期間の短縮」「サポートとメンテナンスコストの削減」「コンプライアンス問題への対応」「クラウドネイティブアーキテクチャとコンテナ技術」など、気になるTopicsを網羅したeBookが無料でダウンロードできます。是非ご覧ください。 無料のeBookをダウンロード
パッケージ型Linuxディストリビューション
Linuxディストリビューションと聞いてまず頭に浮かぶのが、Ubuntu, Debian, CentOS、Red Hat Enterpriseなどのパッケージ型Linuxディストリビューションかもしれません。2020年現在、既に数え切れないほどのパッケージ型Linuxディストリビューションが公開されています。
Wikipedia – 派生したLinuxディストリビューションのタイムライン
パッケージ型Linuxディストリビューションはテンプレート化されたシステムを構築する際にとても効果的です。例えば、数多くのサーバーに採用されているRed Had Enterprise Linux(RHEL)には、サーバーを実現するソフトウェアや、システムを監視するコンポーネント、サーバー運用に効果的なツール類が統合されているため、簡単にWEBサービスを構築可能です。
近年の組み込みシステムは、ダッシュボード(車載ディスプレイ)のようなグラフィカル表示で人間の操作を手助けしつつ、周辺ハードウェアと連携するものから、5Gネットワーク基幹装置のように人の手(UI)の助けを受ける事なく淡々と高スループット/低レイテンシを達成するシステムまで、幅広い用途で利用されています。そのため、組み込みシステムへLinuxを導入するには、パッケージ型Linuxディストリビューションではカバーしきれない、複雑多岐な要件を解決しなければなりません。
Raspbian Lite と Ubuntu Core の実情
PoCで活用される組み込みLinuxボードとして「Raspberry Pi」があります。Raspberry Piでは、限られたハードウェアリソースを最大限に活用できる軽量なLinuxディストリビューション「Raspbian Lite」や「Ubuntu Core」を利用できます。これらは必要最低限のコンポーネントのみで構成されているため、他のリッチなLinuxディストリビューション(図2:①)で課題となる、サービスに利用していないコンポーネントの不具合やセキュリティホールへ対応するためのコスト(図2:②)を将来に渡って削減できます。
しかし、軽量Linuxディストリビューション(図2:③)では、同梱されているコンポーネントがディストリビューターによって必要最低限まで絞られていることから(図2:④)、自社の組み込みシステム製品へ採用する前に、製品に必要となる追加のコンポーネント(ユーザースペースパッケージ、マイクロサービス、ライブラリ、デバイスドライバ)を、他のLinuxディストリビューション以上にリストアップし、インストールする必要があります(図2:⑤)。そして、追加した大量のコンポーネントそれぞれの品質や整合性をテストするための工数や、将来セキュリティホールが発見された場合の対策チームの編成・計画の検討といった莫大なコストを費やさなければなりません(図2:⑥)。商用の組み込みシステムは特に品質や管理体制を問われることから、最小のフットプリントは実現できるものの、これらの軽量Linuxディストリビューションを選択することは開発効率やコスト面において大きな課題があります。
組み込みLinuxディストリビューション選択のポイント
次に、組み込みLinuxディストリビューションに求められる要件を考えてみましょう。
高いカスタマイズ性
組み込みシステムへ導入するLinuxディストリビューションには、高いカスタマイズ性が求められます。例えば、スマート家電を実現するためには、周囲の情報を収集するセンシング機能、可視化するGUI機能、スマートデバイスと連携するためのネットワーク機能、さらには、悪意ある攻撃からシステムを保護するためのセキュリティ機能などを備えたLinux ディストリビューションが不可欠です。一方、ロボットに代表される、状況に応じて高速に動作するシステムには、わずかなリソースを最大限に活用できる、極小フットプリントのLinuxディストリビューションが求められます。さらに、これらの要件は製品のアップデートとともに高度化し続けます。だからこそ、Linuxディストリビューションには、現在のシステムはもちろん、将来的な製品の進化に合わせて成長し、追従できる高いカスタマイズ性が求められるのです。
長期のメンテナンスとセキュリティ対策に費やすコスト
組み込みシステムはサーバー製品やデスクトップ製品に比べ、長期に運用される傾向にあります。組み込みシステムに搭載したLinuxは、バグを修正するメンテナンスや、セキュリティホールを改修するセキュリティ対策を、長期に渡って実施する必要があります。しかし、対策の中には、自社内のエンジニアでは知見のない分野に関するものもあるでしょう。そのため、組み込みLinuxディストリビューションのライフサイクル全体を管理するチームづくりを、自社のリソースのみで解決することは非常に困難です。高品質な製品を実現するには、Linuxに精通した人材と、メンテナンスやセキュリティ対策、展開前のテストを実行できる体制が不可欠です。
製品専用のLinuxディストリビューションを作れる「Wind River Linux」
長期のメンテナンスやセキュリティ対策など、組み込みLinuxを取り巻く様々な要件の解決策として「組み込みLinux専門ベンダの製品を活用する」という選択肢があります。その製品のひとつが商用Linux業界をリードする「Wind River Linux」です。Wind River Linuxは、最大15年という長期サポートが提供されているほか、コンテナ技術やKubernetes、多くのAIの基盤となるTensorFlowといった最新技術が盛り込まれています。Wind River Linuxは「Linuxディストリビューション」ではなく「Linuxディストリビューションを要件に合わせて生成できる」、Yocto Project(後述)をベースとした製品です。商用Linuxでありながら、無償版も提供されています。まずは無償版で構築して検証を行い、その後、商用版に移行してサポートやメンテナンスを受けるといった段階的な導入も可能です。
優れたカスタマイズ性と、商用ならではの手厚いサポートサービスにより、Wind River Linuxは車載をはじめ、産業、医療、航空・宇宙など、幅広い分野のシステムに活用され、商用の組み込みLinuxマーケットシェアNo.1*の実績につながっています。
*出典:VDC Research The Global Market for IoT & Embedded Operating Systems (2018)
Yocto Projectとは
Yocto Projectは、Linux Foundation傘下のオープンソースプロジェクトのひとつで、組み込み製品へLinuxを導入する際に求められる「ハードウェア・アーキテクチャーに依存しないカスタムのLinuxディストリビューション」を構築するための開発環境です。Yocto Projectは組み込み/IoT業界全体で広く採用されています。
豊富なBSP(Board-Support-Packages)の提供
BSPは、OSやアプリケーションの各処理を、実際のハードウェアが提供する機能に結びつける役割を果たすコンポーネントです。そのため、BSPが提供されているかは、組み込みLinuxディストリビューションを選定する際のポイントとなります。
組み込みシステムの場合、製品毎にハードウェアが大きく異なり、多種多様のSoC、様々なリファレンスボードへの対応が求められ、これらのハードウェアに対応できるBSPが不可欠です。BSPを自社で開発することも可能ですが、ベンダが提供するBSPを活用すると、開発時間を大幅に短縮することができるほか、信頼性と品質の向上も期待できます。
Wind River Linuxは下記リンクにあるとおり、多数のBSPを提供し、数多くのハードウェア上ですぐに使い始めることができます。さらにウインドリバー社は、リストにないハードウェア利用者に向けたBSP受託開発サービスも提供しています。
Board Support Packages|Wind River Market Place
ウインドリバー社では、すべてのボードに対して設計、実装、テストを実施しています。こうした長年の積み重ねにより、同社は技術のノウハウやテストのノウハウを獲得し、BSPの品質を向上させ続けています。
組み込みLinux入門に最適な1冊
「市場投入までの期間の短縮」「サポートとメンテナンスコストの削減」「コンプライアンス問題への対応」「クラウドネイティブアーキテクチャとコンテナ技術」など、気になるTopicsを網羅したeBookが無料でダウンロードできます。是非ご覧ください。 無料のeBookをダウンロード
まとめ
第1回では、組み込みシステムと組み込みLinuxディストリビューションの関係、Linuxディストリビューション選択のポイント、Wind River Linuxについて紹介しました。次回以降は、記事の最後に挙げた無償版のWind River Linuxを使って、誰もが簡単に入手しやすいボードのRaspberry Pi 3上に、自身が思い描くLinuxディストリビューションを構築する、開発方法について紹介します。ご期待ください。
Wind River Linuxについて
Wind River Linux®は、商用組み込みLinuxマーケットシェアNo.1!※の業界最先端の組み込みLinux開発プラットフォームです。最大15年の長期サポートや継続的デリバリーにも対応し、信頼性の高いエッジデバイスの開発を支援します。
※出典:VDC Reserch The Global Market IoT & Embedded Operating Systems (2018)
Wind River Linux 製品ウエブサイト Wind River Linux 製品カタログ Wind River Linux ダウンロード
Wind River Linux インタビュー記事
Wind River Linuxが誕生して15年となる。Wind River Linux誕生の背景やこれまでの取り組み、採用事例などについて話を聞いた。
Wind River Linux インタビュー記事
- Linuxは、Linus Torvaldsの米国およびその他の国における商標または登録商標です。
- Raspberry PiはRaspberry Pi財団の登録商標です。
- Red HatおよびRed Hat Enterprise Linuxは、米国およびその他の国におけるRed Hat, Inc.の商標または登録商標です。
- Ubuntuは、Canonical Ltd.の商標または登録商標です。
- Wind RiverおよびVxWorksはWind River Systems, Inc.の登録商標です。
- その他記載の会社名、製品名は、それぞれの会社の商標または登録商標です。
こちらも是非
“もっと見る” 初心者講座
はじめての公開鍵署名|署名検証のプログラムをサクッと試してみる
公開鍵署名(Public Key Signature)は、デジタル署名の一種で、公開鍵暗号方式を用いた署名方法です。公開鍵署名は、電子メールのセキュリティ、ソフトウェアやファームウェアに対する署名、オンライン取引など、多くのセキュリティが必要なアプリケーションで広く使用されています。