|
[51CTO.com クイック翻訳]この記事では、モノのインターネット向けの新しいオープンソースオペレーティングシステムを多数紹介しています。 過去10年間で、新しいオープンソースOSのほとんどがモバイル市場からモノのインターネット(IoT)市場へと移行しました。この記事では、IoT向けのこれらの新しいオープンソースOSを数多く紹介します。以前の記事では、オープンソースIoTフレームワークに加え、IoTおよびコンシューマー向けスマートホームデバイス向けのLinuxおよびオープンソース開発ハードウェアについても取り上げました。 モノのインターネット(IoT)向けの新しい組み込みLinuxディストリビューションの紹介に加え、OpenWrtなど、この分野で再注目されている旧来の軽量ディストリビューションについても解説しました。Linuxディストリビューションは主にゲートウェイやハブを対象としていますが、IoT向けのLinux以外のオープンソースOSも同様に急速な成長を遂げています。これらのOSはマイクロコントローラユニット(MCU)上で動作し、主にIoTエッジデバイスを対象としています。 現在、ほぼすべてのオペレーティングシステムが何らかのIoT接続機能を備えていると主張しているため、このリストは多少恣意的なものであることをご承知おきください。ここで取り上げるオープンソースオペレーティングシステムのほとんどは、メモリフットプリントの低さ、高い電力効率、モジュール式で構成可能な通信スタック、特定の無線およびセンサー技術への強力なサポートといった基準を満たしています。一部のプロジェクトはIoTセキュリティに重点を置いていますが、Linux以外のオペレーティングシステムプロジェクトの多くは、産業用IoT(IIoT)の要件となることもあるリアルタイムの決定性に重点を置いています。 私は通常、「軽量」と分類されているものの、周辺機器のないデバイスではなく、デスクトップやポータブルUSBドライブ向けに設計されているLinuxディストリビューションは避けています。しかし、LXLEやLinux Liteのような軽量Linuxディストリビューションは、モノのインターネット(IoT)に適しているかもしれません。 Linux以外のオープンソース・プラットフォームを選ぶのは、より困難です。結局のところ、軽量なリアルタイム・オペレーティング・システムのほとんどは、モノのインターネット(IoT)に適しています。ここでは、主要なプラットフォーム、あるいはIoTに最も有望と思われるプラットフォームに焦点を当てています。その他の候補プラットフォームについては、このオープンソース・リアルタイム・オペレーティング・システムのウェブサイト(http://www.osrtos.com)をご覧ください。 本稿ではWindows 10 for IoT Coreについては触れていません。Windows 10 for IoT Coreはメーカー向けに無料で提供されており、AllJoynとIoTivityをサポートしていますが、完全なオープンソースではありません。IoT分野では、MicriumのµC/OSなど、商用リアルタイムOSも主要プレーヤーとして数多く存在します。 LinuxベースのオープンソースIoTディストリビューション9つ 1. Brillo — GoogleがBrilloをリリースした翌年、この軽量なAndroidベースのディストリビューションは、Intel EdisonやDragonboard 410cなどの組み込みボード、さらには一部のモジュール型コンピュータの間で人気が高まりました。Brilloの将来は、Brilloに必要なGoogleのWeave通信プロトコルと密接に結びついています。WeaveはBrilloに検出、設定、認証機能を提供し、32MBのRAMと128MBのフラッシュストレージしか搭載していないデバイスでも動作することを可能にします。 関連リンク: https://developers.google.com/brillo/ 2. Huawei LiteOS — HuaweiのLiteOSをオープンソースのUnix系OSと混同しないでください。Linuxベースと謳われていますが、非常に合理化された実装です。1年以上前に発表されたLiteOSは、わずか10KBのカーネルで導入可能と謳っています。LiteOSは、MCUベースのデバイスからAndroid対応のアプリケーション処理システムまで、幅広いアプリケーションに対応しています。このカスタマイズ可能なオペレーティングシステムは、ゼロコンフィギュレーション、自動検出、自動ネットワーク構築、高速起動、リアルタイム動作など、数多くの機能を備えています。LTEやメッシュネットワークを含む幅広い無線サポートも提供しています。LiteOSは、HuaweiのAgile IoTソリューションに統合されており、Narrowband IoT (NB-IoT)ソリューションを強化します。 関連リンク: http://www.huawei.com/minisite/iot/en/liteos.html 3. OpenWrt/LEDE/Linino/DD-Wrt — IoTブームの波に乗り、ネットワークに特化した定評ある組み込みLinuxであるOpenWrtが復活しました。軽量なOpenWrtは、ルーターやMIPSベースのWi-Fiボードでよく使用されています。初期の派生版(DD-WrtやArduino用のLininoなど)は、最近フォーク版が登場しています。Linux組み込み開発環境(LEDE)プロジェクトは、より透明性の高いガバナンスと、より安定したリリースサイクルを約束しています。 関連リンク: https://openwrt.org 4. Ostro Linux – Yocto Projectベースのこのディストリビューションは、Intelが今年8月にIntel Jouleモジュール(最新のクアッドコアAtom T5700システムオンチップで動作)に採用したことで大きな注目を集めました。Ostro LinuxはIoTに準拠しており、多数の無線技術をサポートし、センサーフレームワークを提供します。IoTセキュリティを重視し、オペレーティングシステム、デバイス、アプリケーション、データレベルでの保護を提供し、暗号化やMACアドレス認証も備えています。このディストリビューションには、ペリフェラルフリー版とメディア(XT)版の両方が含まれています。 関連リンク: https://ostroproject.org 5. Raspbian — Raspberry Piには、モノのインターネット(IoT)に特化したディストリビューションが他にも存在しますが、急速に成熟しているRaspbianは依然として有力な選択肢です。最も広く利用されているIoTプラットフォーム上でのDIYプロジェクト向けとして最も人気のあるディストリビューションであるため、開発者は数多くのプロジェクトやチュートリアルから助けを得ることができます。RaspbianはNode-JSのビジュアル設計ツールであるNode-REDをサポートしているため、Raspberry PiとIoT向けに特別に設計されたThingboxを選択する強い理由はないと感じました。 関連リンク: https://www.raspbian.org 6. Snappy Ubuntu Core — この組み込み版Ubuntu Core(Ubuntu Core with Snapsとも呼ばれる)は、Snapパッケージメカニズムを採用しています。Canonicalはこれを汎用Linuxパッケージ形式と定義し、単一のバイナリパッケージを「あらゆるLinuxデスクトップ、サーバー、クラウド、デバイス」で実行できるようにします。Snappy Ubuntu CoreはSnapsによって、トランザクションロールバック、セキュリティアップデート、クラウドサポート、アプリケーションストアプラットフォームを提供します。Snappyは600MHzのプロセッサと128MBのRAMのみで動作しますが、4GBのフラッシュメモリも必要とします。Piやその他の組み込みボードで動作し、Erle-Copterドローン、Dell Edgeゲートウェイ、Nextcloud Box、LimeSDRなど、数多くのデバイスに搭載されています。 関連リンク: https://developer.ubuntu.com/en/snappy/ 7. Tizen – Linux Foundationがホストし、主にSamsungがサポートするこの組み込みLinuxスタックは、モバイル市場ではあまり注目されていません。新型Gear S3を含むSamsung製テレビやスマートウォッチで広く採用されており、Samsung製カメラやコンシューマー向けデバイスにも散発的に実装されています。TizenはRaspberry Piでも動作可能です。Samsungは、スマートホームシステム「SmartThings」にTizenを統合し始めており、Samsung製テレビからSmartThingsを制御できるようになりました。SamsungのArtikモジュールやArtik Cloudとの統合強化も期待できます。ArtikはFedoraに付属していますが、Tizen 3.0は最近Ubuntu Coreとともに移植されました。 関連リンク: https://www.tizen.org/ko?langredirect=1 8. uClinux — 定評のあるuClinuxの簡素化版は、MCU、特に一部のCortex-M3、M4、M7モデルで動作可能な唯一のLinuxディストリビューションです。uClinuxはMCU内蔵のメモリコントローラを必要としますが、メモリ要件を満たすために外付けDRAMチップを使用することもできます。Linuxの広範な無線サポートのおかげで、uClinuxは現在、メインラインLinuxカーネルに統合されています。しかし、Mbedのような新しいMCU向けオペレーティングシステムは、無線のギャップを急速に埋めつつあり、設定も容易です。EmCraftはMCU向けuClinuxの最大の支持者の1つであり、数多くのCortex-Mベースのモジュールを提供しています。 関連リンク: http://www.uclinux.org 9. Yocto Project — Linux FoundationのYocto ProjectはLinuxディストリビューションではなく、開発者にカスタム組み込みスタックを構築するためのモジュール、ツール、および手法を提供するオープンソースの共同プロジェクトです。最小限のオーバーヘッドでスタックをカスタマイズできるため、モノのインターネット(IoT)でよく使用されています。Yocto Projectは、ほとんどの商用組み込みLinuxディストリビューションの基盤となっており、Ostro LinuxやQt for Device Creationなどのプロジェクトにも参加しています。QtはQt 5.8向けにQt Liteテクノロジーを準備しており、これにより小型のIoTターゲットデバイス向けにデバイス作成が最適化されます。 関連リンク: https://www.yoctoproject.org Linux以外のオープンソースIoTオペレーティングシステム9つ 1. Apache Mynewt — オープンソースで無線対応のApache Mynewtは、32ビットMCU向けに設計されています。Runtime社が開発し、Apache Software Foundationがホストするモジュール型のApache Mynewtは、無線サポート、同時接続のための正確な設定、デバッグ機能、きめ細かな電源制御といった特長を備えています。5月、Runtime社とArduino Srl社は、Arduino Srl社のPrimoおよびSTAR Otoo SBC向けにApache Mynewtを提供すると発表しました。このオペレーティングシステムは、Arduino ZeroなどのArduino LLC社製ボードもサポートしています。(最近、Arduino Srl社とArduino LLC社は訴訟で和解に達し、Arduino Holdings社とArduino Foundation社の下で再統合する計画を発表しました。) 関連リンク: http://mynewt.apache.org 2. ARM Mbed — ARMのIoTオペレーティングシステムは、Cortex-M MCU上で動作する小型でバッテリー駆動のIoTエンドポイントを対象としており、メモリ容量が8KBしかない場合もあり、BBC Micro:bit SBCにも搭載されています。当初はセミプロプライエタリでシングルスレッドであり、確定的な機能を備えていませんでした。しかし、現在はApache 2.0ライセンスの下でオープンソース化され、マルチスレッドとリアルタイムオペレーティングシステムのサポートを提供しています。多くの軽量リアルタイムオペレーティングシステムとは異なり、Mbedは無線通信を念頭に設計されており、最近スレッドサポートが追加されました。このオペレーティングシステムは、Mbedデバイスコネクタを介して安全なデータ取得を可能にするクラウドサービスをサポートしています。今年初めには、ウェアラブルデバイス向けのリファレンスデザインもリリースされています。 関連リンク: https://www.mbed.com/en/ 3. Contiki — オープンソースのContikiは、RAMが10KB、フラッシュメモリが30KBしか必要としないため、Tiny OSやRiot OSほど小型ではなく、Riotなどの一部のオペレーティングシステムのようなリアルタイム性も提供できません。しかし、広く普及しているContikiは、広範な無線ネットワークサポートを提供し、IPv6スタックはCiscoから提供されました。このオペレーティングシステムは、無線ネットワークのデバッグ用にCoojaネットワークシミュレータにロードできる動的モジュールなど、幅広い開発ツールを提供しています。Contikiはメモリを効率的に割り当てると謳っています。 関連リンク: http://www.contiki-os.org 4. FreeRTOS — FreeRTOSは、組み込み開発プラットフォームにおいてLinuxに匹敵する存在となりつつあり、特にIoTエンドデバイスの開発に適しています。FreeRTOSには、デバイスドライバ、ユーザーアカウント、高度なネットワークおよびメモリ管理といったLinuxの機能は搭載されていません。しかし、Linux、さらにはVxWorksなどの主流のリアルタイムOSと比べても、消費リソースは大幅に少なく、オープンソースGPLライセンスで提供されています。FreeRTOSは、RAMが0.5KB未満、ROMが5~10KBのデバイスでも動作可能ですが、TCP/IPアーキテクチャと組み合わせて使用されることが多く、実質的には24KBのRAMと60KBのフラッシュメモリを搭載したデバイスとして機能します。 関連リンク: http://www.freertos.org 5. Fuchsia – 8月に一部公開されたGoogleの最新オープンソースOSは、答えよりも多くの疑問を残しました。FuchsiaはLinuxとは全く関係ありませんが、FreeRTOSなどのMCU向けOSとの互換性を考慮して設計されたLKディストリビューションをベースとしているため、IoT向けOSではないかと推測する声が多くありました。しかし、Fuchsiaはモバイルデバイスやノートパソコンもサポートしており、この初期段階のプロジェクトに対するGoogleの高い野心を示しています。 関連リンク: https://github.com/fuchsia-mirror 6. NuttX — 制限のないBSDライセンスのNuttXは、オープンソースドローン向けの最も一般的なリアルタイムオペレーティングシステムとして知られています。Dronecodeプラットフォームの一部であるAPM/ArduPilotおよびPX4 UAVプラットフォームで動作します。NuttXは、リソースが限られた他の組み込みシステムでも広く使用されています。x86、Cortex-A5、および-A8プラットフォームをサポートしていますが、このPOSIXおよびANSIベースのオペレーティングシステムは、主にCortex-M MCU向けに設計されています。NuttXは完全なプリエンプティブなオペレーティングシステムで、固定優先度、ポーリング、散発的なスケジューリングを備えています。このオペレーティングシステムは、「大幅に簡素化された機能を備えた小型の汎用Linuxオペレーティングシステム」と謳われています。 関連リンク: http://nuttx.org 7. Riot OS – リリースから8年を迎えるRiot OSは、効率的な電力消費と幅広いワイヤレスサポートで知られています。Riot OSのハードウェア要件は、1.5KBのRAMと5KBのフラッシュメモリで、Tiny OSとほぼ同等です。しかし、マルチスレッド、動的メモリ管理、ハードウェア抽象化、部分的なPOSIX準拠、C++サポートなど、軽量リアルタイムOSよりもLinuxで多く見られる機能も豊富に備えています。その他の機能としては、低割り込みレイテンシ(約40クロックサイクル)と優先度ベースのスケジューリングなどが挙げられます。LinuxまたはOS Xで開発し、ネイティブポートを使用して組み込みデバイスに展開できます。 関連リンク: https://www.riot-os.org 8. TinyOS – BSDライセンスに基づく成熟したオープンソースOSで、非常に小型で低消費電力を実現しています。MCUをターゲットとするデバイスは、「わずか数KBのメモリと数十KBのコード空間」しか持たない場合があります。イベント駆動型のTinyOSはC言語、具体的にはnesCで記述されており、低消費電力無線ネットワーク(マルチホップネットワークを含む)を研究する研究者によって頻繁に使用されています。プロジェクトチーム自身も「計算負荷の高いアプリケーションの開発は困難である可能性がある」と認めています。このプロジェクトはCortex-M3のサポートを目指していますが、現在はローエンドMCUと無線チップ向けに設計されています。 関連リンク: http://webs.cs.berkeley.edu/tos/ 9. Zephyr — Linux Foundationが提供する軽量でセキュリティ対応のZephyr RTOSは、メモリ容量が2~8KBのデバイスでも動作します。Zephyrはx86、ARM、ARCシステムで動作し、主にBluetooth/BLEおよび802.15.4無線(6LoWPANなど)を搭載したMCUベースのデバイスを対象としています。ZephyrはWind RiverのRocket OSをベースにしており、Rocket OSはVxWorksの簡素化版であるViperをベースとしています。当初のターゲットデバイスには、Arduino DueやIntelのArduino 101などが含まれていました。Zephyrは最近、SeeedStudioの96Boards IoT Edition BLE Carbon SBCに搭載され、新しいLinaro LITEワーキンググループによってサポートされています。 関連リンク: https://www.zephyrproject.org 原題: IoT向けオープンソースオペレーティングシステム、著者: Eric Brown [この記事は51CTOによって翻訳されました。提携サイトへの転載の際は、元の翻訳者と出典を51CTO.comとして明記してください。] |