組み込みOSイメージ

自動車や医療機器、家電など数多くの組み込み機器がある中、IoT機器の増加などから、これから組み込みシステム開発に取り組む方も多くいると思います。

組み込みシステム開発では、コストや機能など多くの制約がある中で、使用するハードウェアやソフトウェアを決定しなければいけません。

そんな組み込みシステム開発のソフトウェア選びの中で、最も重要なものの1つが組み込みOSに何を選ぶかという事。しかし、開発する組み込みシステムによって最適な組み込みOSが変わるため、適切な組み込みOS選びには非常に悩まれる事でしょう。

そんな方のために本記事では、組み込みOSとは何か?から始まり、組み込みOSの選び方のポイントまで解説します。

記事の最後には、弊社取り扱いの組み込みシステム向けリアルタイムOS「BlackBerry QNX」をご紹介しますので、ぜひ組み込みOS選びの際には候補としてご検討ください。

組み込みOS(Embedded OS)とは

組み込みOSとは、家電製品や医療機器、車載向け電子機器などある特定の機能を果たすための組み込みシステムに搭載されるOSの事です。

最近ではOTAなどにより、製品出荷後も機能が後から追加されることもあるかと思います。

OS(オペレーティングシステム)とは

OS(オペレーティングシステム)とは、様々な機器において搭載されており、システム全体の管理や制御を行っている重要なソフトウェアの一種です。

CPUやメモリに加えてHDDやSSDなどの記憶装置、ネットワークなどの通信機能のコントロールなど、その機器が持つリソースを管理した上で、アプリケーションプログラムへと入力内容を伝達する役割を持っています。

そんなOSは大きく分けて2種類に分類されます。1つは、前述した組み込みシステムに使われる組み込みOS。弊社が取り扱っている「BlackBerry QNX」などは組み込みOSに分類されます。

そしてもう1つは、パソコンやサーバー管理に用いられる汎用OSです。OSとして有名なMicrosoftの「Windows」やAppleの「MacOS」などは汎用OSに分類されます。

組み込みOSと汎用OSの違い

では、組み込みOSと汎用OSでは何が異なるのでしょうか?

1番の大きな違いは、アプリケーションプログラムを動作させるための制御方法が異なります。「Windows」や「MacOS」などの汎用OSは、多種多様な複数のアプリケーションプログラムを要求された操作の順番通りにかつ、並列で実行する制御を行います。

例を挙げると、パソコンを操作している際にエクセルでマクロを実行した後に、パワーポイントで資料を並行して作業している時です。この場合、まず要求されたマクロを優先的に実行し、かつCPUやメモリなど使っていないリソースでパワーポイントを動作させる制御を行っています。

そんな汎用OSに対して、組み込みOSは特定の機能を持ったアプリケーションプログラムを決められた優先順位通りに実行する制御を行います。既に実行している処理Aがあったとしても、優先順位の高い処理Bが命令された場合には、処理Bを優先して実行します。

また、組み込みOSでは基本的に全ての処理に対して、設計時に要求された時間内に処理が完了する様に制御(リアルタイム制御)を行っています。このような制御ができるOSをリアルタイムOSと呼び、組み込みOSとして採用されるOSの多くがリアルタイムOSです。

リアルタイムOSについては、下記の記事で、より詳細に解説しています。

組み込みシステムに求められるOSの特徴と役割

コンピュータ分析

組み込みシステムに使用されるOSのスペックは様々ですが、いくつかの特徴に分類する事ができます。

1つ目は、要求に答えるだけの高いリアルタイム性能がある事。

これは組み込み機器が要求された時間内に処理を実行できなければ、重大な事故に繋がるようなシーンで利用される事があるためです。多くの組み込みシステムは信頼性の高いリアルタイムOSを使用しています。

2つ目は、長時間稼働に耐えられる高い可用性がある事。

24時間稼働している工場などを想定した場合、組み込みシステムは起動してから数か月から数年にわたって一度も再起動する事なく稼働しつづける、という事があります。そのような工場では気軽に再起動をする事ができないため、長時間の稼働に耐えられるだけの性能を求められます。

3つ目は、長いライフサイクルで使用できる保守性がある。

こちらも工場などで利用される生産管理システムを想定した場合、そのシステムは数十年にわたって利用されることも珍しくありません。それだけの長い期間利用し続けるためには、都度発生する障害の対応や機能の拡張などに適応する保守性が求められる事になります。

組み込みOSの使用例とは

汎用OSとは異なり、いくつかの特徴を持つ組み込みOSは多様な機器に使用されており、具体的には下記のようなものがあります。

製造現場などの各種製造ロボット
自動で掃除をしてくれるロボット掃除機
医療分野の手術ロボット
エレベータなどのビル管理
●鉄道システムや自動改札機

組み込みOSの選び方

組み込みOSを選ぶ様子

組み込みシステムを開発するにあたって、OS選びとは非常に重要なポイントでしょう。

OSに求める機能や組み込みシステムの開発にかけられるコスト、そもそも自社が持つ技術力など様々な要因がOS選びに影響します。そんな多種多様な背景がある中、ベストな組み込みOSを選択するのは容易ではありません。

しかし、やはり選ぶ際の重要なポイントは存在します。組み込みOS選びの際に重要なOSそのもののシステムを評価する5つの指標「RASIS」、そして開発するにあたり重要な2つのポイントをご紹介します。

RASISとは?

Reliability(信頼性)、Availability(可用性)、Serviceability(保守性)、Integrity(保全性)、Security(安全性/機密性)の頭文字を取ったシステムの安全な運用のために欠かすことが出来ない要素を表す言葉。

信頼性(Reliability)

信頼性とは「システム障害や不具合などの発生しにくさ」を表します。

つまり高い信頼性とは、この障害や不具合が発生する確率が小さい事になります。

OSは、システム全体の管理を行うソフトウェアのため、当然高い信頼性を備えている必要があるでしょう。

その信頼性の高さを評価する指標には、FIT(Failure In Time:平均故障率)やMTBF(Mean Time Between Failure:平均故障間隔)が用いられます。

可用性(Availability)

可用性とは「システムが稼働している時間の割合」を表します。簡単にいえば、システム稼働率です。

つまり高い可用性とは、故障や不具合で実際に利用できない時間の割合が小さく、長時間稼働し続けられる事を意味します。

組み込みOSにおいて、稼働率の高さは生産性にも影響を及ぼすため、OS選びの重要なポイントの1つになります。

また上述した高い信頼性(壊れにくい)と高い可用性(稼働時間の割合が高い)は一定の相互関係にあると言えるでしょう。

保守性(Serviceability)

保守性とは「システム不具合などにおける修正(復旧)の容易さ」を表します。

高い保守性とは、修正に要するコストが小さい事を意味します。

その保守性を評価する指標には、MTTR(Mean Time To Repair:平均修復時間)が用いられます。1件あたりの不具合に対して修正時間が必要かを表しています。

1日12時間ライン稼働する工場で使われる製造現場のロボットを例にMTTRの重要性を挙げてみましょう。

1ヵ月に1度、システム不具合により1台の製造ロボットが止まってしまった場合、MTTRが1時間であれば工場全体の生産に与える影響は比較的小さいでしょう。しかし、MTTRが12時間、つまり復旧まで1日かかってしまう場合、1ヵ月の稼働日が20日として、1ヵ月あたり約5%/回の生産能力が落ちる事になります。

もしこれが1ヵ月に1度の頻度ではなく、2回・3回と回数が増えるたびに、10%・15%と生産能力が落ちていくという非常に危険な状態に繋がります。

こういったリスクを少しでも下げるために、MTTRが小さい保守性の高いシステムを選ぶのは非常に重要になります。

保全性(Integrity)

システムの保全性とは、一般的にはシステム不具合の発生時などにおいてデータの消失や不整合の起こりにくさを表します。

100%不具合や障害が起こらないシステムはありませんので、もし発生してしまった際にデータがどれだけ残っているかは非常に重要なポイントと言えます。

例えば、不具合により作業データが全て消えてしまったとしても、1日1回バックアップを実行するシステムであれば、前日までのデータは復旧することが出来ます。これが1週間に1度のバックアップ設定であれば、1週間分のデータを失ってしまうことになり、被害が大きくなります。

その他にも、複数のデータが同時に書き込まれる事でどちらかのデータが消失してしまう等、そういったことが起こらないように設計されている事も保全性が考えられていると言えます。

安全性/機密性(Security)

安全性/機密性とは、「情報漏洩の起こりにくさ」を表します。簡単に言えば情報のセキュリティ能力の高さと言えます。

特に近年ではIoTにより、組み込みシステムの多くがインターネットに接続されています。そのため、組み込みシステムを狙った外部からのハッキング攻撃も年々増加しています。システムの安全性/機密性というのは、データを守るために非常に重要なポイントの1つです。

仮にハッキングで攻撃が成功してしまった場合、被るリスクは多岐にわたります。例えば病院の電子カルテ端末などにハッキングされてしまった場合、病院としての機能が停止し、患者の受け入れや治療が止まってしまう等のケースが実際に起こっています。

もしこれが手術を控えている救急患者がいるとなれば、手術を行うことが出来ず、人命にかかわる事にも繋がるため、非常に危険なケースと言えるでしょう。そういったリスクから情報やシステムを守るために、安全性や機密性は欠かすことの出来ないポイントの一つになります。

また、最近ではIoT機器のセキュリティ対策として「OTA(Over The Air)」という無線でソフトウェアをアップデートする技術が活用されるようになってきました。OTAでソフトウェアのバグやセキュリティパッチを迅速に修正・更新をする事で安全性を高められるメリットがあるため、普及が拡大しています。

もちろん弊社が代理店として取り扱っているリアルタイムOS「BlackBerry QNX」も、このOTAを利用したセキュリティ対策を行うことが出来ます。

開発支援機能と支援体制が充実しているか

組み込みOSは、システムに合わせて開発していくことになります。つまり、開発の際には高い技術力が要求される事でしょう。

一方で、OS開発の経験が豊富な技術者は希少であり、自社のみで開発するのは非常にハードであるというのが実態です。そんな際に最も役立つのが、組み込みOSに備えられている開発支援機能と提供元の支援体制です。

開発支援機能が豊富であれば開発難易度は下がり、組み込みOS提供元の支援があれば課題解決に役立つのは間違いありません。OS開発の知見がない、よりシビアな開発目標をクリアしたい等といった背景があるのであれば、開発支援機能と支援体制が充実している組み込みOSを選ぶべきです。

目的とする市場に対して使用実績が豊富であるか

組み込みOSを選ぶ際には、市場実績の豊富さは重要なポイントの1つです。

市場実績があるという事は、想定される開発課題や不具合対処などの知見が豊富であるとも言い換えられます。もちろん高品質であるからこそ他社も選んでいるという信頼もあります。

市場実績のみで組み込みOSを選ぶべきではありませんが、選択肢の1つに加える事はおすすめです。

弊社取り扱いの「BlackBerry QNX」と強みのご紹介

最後に、弊社が国内代理店を請け負っているリアルタイムOS「BlackBerry QNX」とその強みを簡単にご説明いたします。

組み込み向けソリューションであれば「IEC 61508 SIL3」の認証を取得しており、その高い信頼性から、安全要求水準の高い医療機器などにも多く使用されています。

組込み向けソリューション

組込み向けソリューション

また、車載向けでは、高信頼性のリアルタイムOSとして45以上の自動車ブランドで採用されており、現在2億1500万台以上の車両に搭載されている実績がありますが、BlackBerry QNXリアルタイムOSは、「ISO26262 ASIL D」の認証を取得しているため、お客様の認証取得の作業を大幅に軽減が可能です。

車載向けソリューション

車載向けソリューション

上記のような高い信頼性を持ちながら、低いトータルコストで導入する事が可能です。

簡単な紹介はここまでにします。さらに「BlackBerry QNX」について、詳細が知りたい方は下記リンク先の弊社HPに記載しております。ウェビナーでの紹介動画もありますので、ぜひご視聴いただけますと幸いです。

お問い合わせ

本記事の内容に関して、ご質問やご不明点などございましたら、以下よりお気軽にお問い合わせ下さい。