オープンIoTオペレーティングシステム

過去10年間で、多数のオープンソースOSプロジェクトがモバイル市場からモノのインターネットに移行しました。 この記事では、どのオープンソースプロジェクトがIoT(モノのインターネット)をターゲットにしているのかを検討します。



ほぼすべての最新のオープンOSは、ある程度まで、IoTでの使用に適していると宣言していることに注意してください。 ただし、低メモリ消費、高エネルギー効率、モジュール式でカスタマイズ可能な通信スタック、ワイヤレスおよびセンサーテクノロジーの強力なサポートなどに本当に注意を払うもののみを取り上げます。 また、一部のプロジェクトでは、IoTセキュリティとリアルタイムの分野での基礎を強調しています。 リアルタイムは、産業用IoTでは非常に重要ですが、日常生活ではほとんど役に立ちません。



ここでは、たとえ実際に軽量であるとしても、いわゆる軽量ディストリビューションは考慮しませんが、IoTタスクを設定せず、通常のワークステーションでの通常の使用に限定します。



また、IoT Core向けのWindows 10には目を向けません。 このプロジェクトはIoT固有のタスクを実行できますが、オープンソースとは関係ありません。



それでは始めましょう。



LinuxベースのOS



BrilloはGoogleの開発であり、軽量のAndroidであり、Intel EdisonやDragonboard 410cで使用されているものなど、過去1年間である程度の人気を得ています。 ただし、このOSはGoogleの開発であるWeaveプロトコルに関連付けられており、他では使用されていません。 システムは、32MiB RAMおよび128MiBフラッシュを備えた機器で動作可能です。



Huawei LiteOS - HuaweiのLiteOSはLinuxに基づいていますが、Linuxの多くは残っていません。 彼らは約1年前にシステムについて話し始め、カーネルのサイズは10KBからであると言われています。 LiteOSは、MCUデバイスからAndroid互換まで、幅広い機器で使用できます。 主な機能:簡単な構成、あらゆるものの自動検出、さまざまなネットワーク(LTEおよびメッシュネットワークを含む)の幅広いサポート、高速ダウンロード。



OpenWrt / LEDE / Linino / DD-Wrtは、ルーターや他のMIPSネットワーク機器で最も需要のある有名なプロジェクトです。 最初のネットワークの制限を考えると、彼はIoTを通過できませんでした。 これらのフォークは、互いに根本的な違いはなく、NIH症候群または組織的な混乱のために生まれました。



Ostro LinuxはYocto Project(別途説明)に基づいており、IntelがAtom SoC T5700に基づいてIntel Jouleに選択したことで知られるようになりました。 Ostro LinuxはIoTivityと互換性があり、多くのワイヤレステクノロジーをサポートし、さまざまなセンサーと連携するためのフレームワークも提供します。 暗号化を含むセキュリティに特に注意が払われます。



Raspbian -DebianはRaspberry Piで動作するように改良されました。 IoTのニュアンスにより焦点を当てたRaspberryの他のディストリビューションがありますが、Raspberry Piに基づくDIYプロジェクトの事実上の標準となったのはRaspbianでした。



Snappy Ubuntu Core -Snapパッケージを含むUbuntu Coreバージョン。 Canonicalは、このシステムは「任意のLinuxデスクトップ、サーバー、クラウド、またはデバイス」で実行できると主張しています。 原則として、Raspberry Piで動作しますが、通常は600MHz CPU、128MiB RAM、4GiBフラッシュが必要です。 かなり広く使われています。 例:Erle-Copterドローン、Dell Edge Gateway、Nextcloud Box、LimeSDR。



Tizen -Samsungのサポートで開発されました。 当初はスマートフォン用のOSとして計画されていましたが、何かがおかしくなり、現在はテレビなどでしか見つかりません。 スマートウォッチ。 このプロジェクトは死ぬことはありませんが、その将来は明確ではありません。 「ラズベリー」から始められる



uClinuxは、マイクロコントローラー上で動作する、多かれ少なかれ正気で一般的なLinuxの唯一のバージョンです。 ただし、これまでのところ、一部のCortex-M3、M4、およびM7のみです。 そして、そこには、仕事のために、外部RAM接続が必要です。



Yocto Projectはディストリビューションではなく、サポートおよび開発されたLinux Foundationユーティリティ、テンプレート、および組み込みディストリビューションの開発方法のセットです。 IoTの下で研ぎ澄まされた非常に成功したプロジェクトは、最も成功した商用ディストリビューションの基盤です。



有名な非Linuxディストリビューション



Apache Mynewt -Apache Software Foundationのサポートを受けて、32ビットマイクロコントローラー用にランタイムによって開発されました。 優れたワイヤレスサポート、広範なデバッグ機能、消費電力の微調整で際立っています。 Arduinoで間もなく利用可能になると予想されます。



ARM Mbed -Cortex-Mマイクロコントローラーに基づいた低電力、バッテリー駆動のマザーボードを対象としています。 8KiBのRAMで十分です。 BBC Micro:bit SBCに初めて登場しました。 当初は、シングルスレッドの半所有のBLOBでしたが、現在はマルチスレッドとリアルタイムをサポートするApache 2.0でのオープンプロジェクトです。



Contiki -Tiny OSやRIOT OSと競合することはできませんが、動作に必要なのは10KiB RAMと30KiBフラッシュのみで、ワイヤレス接続で優れた動作をし、IPv6と友好的です。 OSには、無線ネットワークをデバッグするためのCoojaネットワークシミュレーターなど、開発とテスト用の印象的なユーティリティセットが付属しています。 主な機能は、低メモリ消費です。



FreeRTOSは、組み込みプラットフォームの中でLinuxの主要な競争相手です。 そして、ドライバー、ユーザーアカウント、および本格的なOSの世界からのその他の快適なもので問題が発生しますが、1KiBメモリと5-10 KiBROMで動作することができます。 通常のTCP / IPとの完全なネットワーク相互作用には、24KiB RAMと60KiBフラッシュが必要です。



フクシアは、Googleによるもう1つの開発です。 データはほとんどありませんが、会社はOSがFreeRTOSと競合できると主張しています。 麺バケツはあなた自身をもたらします。 耳から麺を取り除くための熊手も出ません。 マーケティング担当者が黙って技術者と話をするのを待っています。



Minoca-コードはGPLv3ライセンスの下で開かれています。 アセンブリは、Raspberry Pi 2、Raspberry Pi、BeagleBone Black、Asus C201、PandaBoard、およびGalileoボードのブートイメージ、およびQEMUエミュレータを含む、x86、ARMv6、およびARMv7アーキテクチャ用に準備されました。 システムはモジュール式です。カーネルサブシステムは互いに分離されており、機器との相互作用は抽象化されています。 デバイスドライバーはカーネルに関連付けられておらず、カーネルバージョンに依存しないユニバーサル実行可能ファイルとして実行されます。 5 MiB RAMで起動できます。



NuttX -quadrocoptersおよび他のドローンの開発者の間で広く使用されています。 BSDライセンス。 x86、Cortex-A5、-A8、およびCortex-M MCUを搭載。 開発者は「機能が限られているLinuxのように見える」と位置付けています。



RIOT OS - 8年間、このOSはエネルギー効率と無線ネットワークの幅広いサポートで知られています。 1.5KiB RAMと5KiBフラッシュで十分動作します。これはTiny OSとほぼ同じです。 同時に、システムは、マルチスレッド化、メモリ管理、POSIXの部分的な互換性、および軽量RTOSよりもLinuxに典型的なその他の機能を提供します。 ところで、LinuxまたはOS XからこのOS用に開発できます。



TinyOS-このOSはBSDライセンスの下で開発されており、すべての健全なシステムからの最小限のリソースを必要とします。 システムは、nesCと呼ばれるC方言で書かれています。 主な用途:低パフォーマンスのマイクロコントローラー。ただし、Cortex-M3をサポートするための作業が現在進行中です。



Zephyr -Linux Foundationによって開発され、2-8KiBのRAMを消費します。 x86、ARM、ARCで動作しますが、Bluetooth / BLEおよび6LoWPANなどの802.15.4無線局を備えたマイクロコントローラーに焦点を当てています。 Zephyrは、RiverのRocket OSに基づいています。これは、Viperに基づいています。Viperは、VxWorksの簡易バージョンにすぎません。



All Articles