IoTにおけるGUI環境
IoTデバイスの高性能化に伴い、様々な分野でIoTデバイスが活用される時代になりました。デジタルサイネージや対話型キオスク、自動車内のエンターテイメントゲートウェイなど、今やGUIを提供するIoTデバイスは一般的になりました。
さてデバイス(ハードウェア)には、それを制御するOSが必要です。
またデバイスでGUI環境を提供するには、GUIを制御・提供するソフトウェアが必要です。
GUIを提供するIoTデバイスは、何らかの仕組みを用いてディスプレイにGUIを出力しています。
しかしIoTデバイスはPCと異なり、利用できるリソースに制約があります。
埋め込み環境でGUIを提供することが常に簡単であるとは限りません。
OSとGUI
IoTデバイスにおいて「Linux」は、最も人気のあるOSです。しかしIoTデバイスでGUI環境を提供するとなると、GUIを提供するソフトウェアの選択肢は限られます。
Qtのようなツールキットと共にフレームバッファーに直接アクセスしてGUIを出力するカスタムソフトウェアを構築する方法もあれば、Xサーバーを利用する方法もあります。
メリットとデメリット
これらの選択肢にはメリットとデメリットがあり、これらはしばしばトレードオフの関係にあります。カスタムソフトウェアの開発には時間がかかり、製品が寿命を迎えるまでコードベースを自社でメンテナンスしていく必要があります。
またQtのようなツールキットを利用すればコストを削減できますが、商用ライセンスを伴うでしょう。
Xサーバーはオープンソースであり、人気のある選択肢です。
しかしXサーバーは30年以上前からあるソフトウェアであり、アプリケーションの分離や権限の昇格周りに関しセキュリティーリスクがあり、グラフィックサーバーを一から再設計する取り組みが行われています。
その取り組みの一つが「Mir」です。
Mir
「Mir」は高速で軽量、そしてセキュリティーに配慮したグラフィックサーバーのシステムレベルの実装です。「Mir」のグラフィックスタックは、異なるプラットフォームやドライバーモデル上でも動作します。
また多くのIoTデバイスに簡単に組み込むことができます。
「Mir」は、デスクトップ、TV、スマフォやタブレットといったモバイルデバイスを含むあらゆるデバイスのグラフィック環境の統一を目的に、6年前に「Canonical」が着想を得たグラフィックサーバーです。
「Mir」は現在も継続的に開発が行われており、新機能の実装や「Waylandプロトコル」のような現代的な実装が行われています。
「Mir」は、IoTデバイスにとって他のグラフィックサーバーよりもメモリー使用量やディスク使用量が少なく、またXサーバーでは提供できないセキュアな環境を提供します。
機能的な対話型UI
UIの中には、Web技術を駆使し機能的な対話型UIを提供するものもあります。これはディスプレイサーバーにとって、ブラウザー環境のサポートが非常に重要であることを意味します。
「Mir」はAppleのSafari等で使用されるWebKit環境を完全にサポートしており、現代的なブラウザーのようにページをレンダリングすることができます。
また「Mir」は、SkypeやSlack、WhatsApp等のアプリで使用されているElectronもサポートしています。
UbuntuとMir
IoTデバイスにおいて「Linux」は最も人気のあるOSですが、その中でも「Ubuntu」は、今日最も人気のある選択肢となっています。「Ubuntu Server」や「Ubuntu Core」など「Ubuntu」にはいくつか種類がありますが、グラフィック環境が必要なら、どの「Ubuntu」でも「Mir」を利用できます。
特に「Ubuntu Core」と「Mir」の組み合わせは、IoT分野での採用例が増加しています。
「Ubuntu」と「Mir」の利用方法は、以下を参照してください。
「Ubuntu Core」と「Mir」の採用例は、以下を参照してください。
音質の温度をモニタリングして結果を小型のLCDディスプレイに出力しています。
mir-kiosk
「mir-kiosk」を利用すれば、非常に簡単に「Linux」上に完全なWeb環境を構築できます。キオスクやスマートディスプレイは、ある特定の機能の提供やある特定の情報を表示するなど、ある一つの目的を実現するため、デバイス上でフルスクリーンのアプリが動作しています。
「mir-kiosk」は「Mir」ディスプレイサーバー上で動作し、そのような目的を実現する実装の一つです。
堅実でセキュアな「Ubuntu」と「Mir」を組み合わせれば、強力なWeb技術の活用を簡単に実現できます。