『PandA KIDs』の「パズルボード」画面通常のAndroidのホーム画面の代わりとして機能する画面で、自由にパズルピースを配置できる。この画面上では通常のアプリはそのままでは動作せず、親にお願いしてそのアプリを「パズルのピース」にして与えてもらう必要がある。

フリービットの子供向け準仮想化スマホサービス『PandA KIDs』

  • このエントリーをはてなブックマークに追加

by [2014年12月26日]

これまで、子供向けスマートフォンというと、OSのサービスにオーバーラップするような形でペアレンタルロック機能を追加し、単純にその設定の中で「何をしてよい/してはいけない」を決めて子供の利用を制限するのが一般的でした。

これは以前ご紹介したポラロイドの『PolaSma』メガハウスの『Fairisia』、それにバンダイの『コドなび!』といった子供向けを謳う端末全てで共通していた要素で、中には子供がインストールしていたアプリを問答無用で消去・初期化してしまう機能を搭載した機種までありました。

こうしたペアレンタルロック機能を搭載した端末の場合、個々のアプリの動作を制限することができるのが一般的なようですが、それは言い換えれば特に制限されていない機能については通常のアプリと同様の挙動を行い、極端なケースではその端末のOSの動作に深刻な問題を引き起こす可能性がある、ということです。

つまり、動作こそ規制できるもののそれらのアプリはOS上で通常のアプリと同じ階層に位置し、それらと混在しているということで、安全性という観点では十分とは言い難い部分があります。

仮想化のアイデア

こうした問題を解決する一番手っ取り早い手段がサンドボックス型の仮想化技術の導入です。

アンチウィルスソフトのメーカーなどが新種のウィルスの挙動を調査する際に用いられることでも知られるこの技術は、サンドボックス(砂箱)という名が示すように通常のOS環境(ホストOS環境)の上に、特定の許された(監視された)入出力を除く全てを外部から隔離した仮想化環境、つまりエミュレータによるOS動作環境(ゲストOS環境=砂箱)を構築し、仮にそのゲストOS環境上でインストールされ動作しているアプリが何かおかしな挙動を行ったとしても、その挙動による影響は全て砂箱の内部で完結し、ホストOSの動作に影響を与えないようにするものです。

当然、そうしておかしな挙動がアプリによって行われ、何らかの改変が施されてしまったたゲストOS環境は以後正常に動作しなくなる可能性があるわけですが、それはそのゲストOSを動作させる度に前回の環境を破棄し、あらかじめ用意してある初期状態のゲストOSデータを読み込ませて使用するようにしてやれば、毎回同じクリーンな状態でアプリを利用できるようになるわけです。

実はこのサンドボックス型の仮想化技術は応用範囲が結構広くて、最近は様々な環境・分野で利用されるようになってきているのですが、スマートフォンでこれを利用できるようにするにはハード・ソフト共にハードルが高くて、なかなか採用例が現れませんでした。

仮想化を阻むもの

というのも、そもそも搭載されている統合プロセッサの処理能力がパソコン向けCPUより明らかに低く、仮想化に必要なハードウェアレベルでの支援機能のサポートがまだ完全ではなく、さらに仮想化を実現する上で必要となるメインメモリやストレージの実装容量も十分とは言い難いスマートフォンの場合、こうしたサンドボックス型の仮想化技術のサポートはゲストOS環境の設定にもよるでしょうが相当な負担となる(※注1)ためです。

  ※注1:極端な言い方をすれば、ホストOS環境に準じたゲストOS環境を1組動作させるには、基本とするホストOS環境で必要なメインメモリ容量やOSインストールなどに必要となるストレージ容量のそれぞれ倍の容量を用意せねばならないためです。

もっとも動作させねばならない仮想マシンの数が桁外れなサーバマシンなどとは異なり、スマートフォンの場合は幸か不幸かゲストOS環境は基本的に1組動作させればそれで済みますから、相当な負担と言っても最近のサーバの仮想化技術で求められるリソースに比べれば大したことはありません。

またウィルスの挙動を見るのならばともかく、単に子供の使うアプリ環境を隔離したいだけなら完全な仮想化環境を構築する必要はなく、ある程度隔離してアプリが専用の環境でなければ動作しないようにするといった手法を用いることで、同様の効果が期待できます。

準仮想化技術を採用した『PandA KIDs』

このほど、コンシューマ向けスマートフォンキャリア事業『freebit mobile』を展開しているフリービットが発表した新サービス『PandA KIDs』は正にそんなサンドボックス型準仮想化環境を提供するサービスです。

フリービットってどんな会社?

このフリービット、インターネット接続業者への接続サービスを提供する事業を日本におけるインターネット普及の黎明期から行ってきた、言わば老舗のネットワーク事業者の一つで、2013年11月からスマートフォンキャリア事業『freebit mobile』に新規参入しています。

そんな会社ですから技術力は非常に高く、『freebit mobile』でも垂直統合形の事業モデルを採用して端末のハードウェア開発からOS上で提供するサービス、通信回線のインフラ、それに販売網やサポート体制の構築・提供まで、スマートフォンキャリア事業で必要となる全要素を自社でまかなっています。

実はauやNTTドコモ、それにソフトバンクモバイルといった大手のキャリアでもここまで完全に垂直統合はできておらず、例えば各キャリアが販売する端末は外部のメーカーに開発が任されているため、キャリアがソフト・ハード両面で端末を完全に意図通りコントロールできているとは言い難い状況です。

以前の記事で、GoogleがChromebookでGPU機能を仮想化するためにGPUメーカーであるNVIDIAと仮想化ソフトウェア開発の最大手であるVMWareと共同開発を行うという発表を行ったことをご紹介しましたが、このように仮想化技術はソフトとハード両面の連携が特に重要で、何社かが連携して研究開発を行わねばならないほど大変なものなのですが、フリービットは上から下まで1社で事業を行っているため、単独で現在のAndroid環境ではサポートされていない仮想化機能の実現に必要な要素を揃えられるわけです。

具体的に言えば、まず最下層となるハードウェアレベルでは端末に搭載される統合プロセッサなどに仮想化を支援するために必要なハードウェアを搭載し、その動作を司るファームウェアについてもそのための対応を行っておく必要があります。

さらに、ホストOS上で動作する仮想化環境がそうした仮想化支援ハードウェアの機能を利用できるようにするには、OSレベルで利用されるそのハードウェアのためのデバイスドライバもまた、仮想化支援のための機能をサポートしていなければなりませんし、そもそもそうした機能を十全に生かせるような独自の仮想化環境を独自で開発せねばなりません。

つまり、端末のハードもソフトも、それからその端末で利用される通信サービスも、全てについて精通し必要に応じて作り替えられるだけの技術力がなければ、少なくとも現在の状況ではまともに機能する仮想化環境を提供することは困難なのです。

少なくともそれが特に問題なく実現できている、というだけでもフリービットがスマホキャリア事業の上から下まで凄い技術力をもっていることは明らかです。

準仮想環境のキモ

『PandA KIDs』アーキテクチャの概念図Google Playで提供される通常のアプリは、シェルとなるパズルボードの直下にKIDs VMが介入するため、親からパズルピースの形で受け取らない限り動作しない。

『PandA KIDs』アーキテクチャの概念図
Google Playで提供される通常のアプリは、シェルとなるパズルボードとの間にKIDs VMが介入するため、親から『パズルのピース』の形で受け取らない限り動作しない。

さて、今回の発表では『PandA KIDs』に採用されている「準仮想環境」の「準」の部分について、(OSの階層構造を示す図は公表されているものの)何がどう「準」なのか具体的な説明が行われていません。

筆者の理解できた(と思われる)範囲で説明すれば、この『PandA KIDs』の仕組みは以下のようなものと推定できます。

ざっくり言ってしまえば、この環境で子供が使用する動作モードでは、Androidに搭載されている通常のJVM(Java Virtual Machine:Java仮想マシン)と併存、あるいはそれを上からラッピングするような形で専用の仮想マシン(『KIDs VM』)を動作させ、子供が利用したいアプリや機能、アクセスしたいURLなどを、親が利用する通常のAndroid環境にてこの専用仮想マシンで解釈・使用できる専用形式に変換してもらい、それを子供が受け取って動作させる、という仕組みになっていると考えられます。

つまり、仮想マシンの部分(およびネットアクセスに関わる機能)だけを隔離していて、それ以外は通常のAndroidのサービスを利用するために、「準」仮想環境と称しているわけです。

この仕組みの上手いところは、使いたいアプリなり機能(※注2)なりURLなりを、子供が親にお願いして『KIDs VM』で利用できるフォーマット変換・カプセル化された形式に変換してもらわなければ、それらが一切使用できないことです。

  ※注2:『PandA Core』と称して提供されている機能を専用VM(およびその上で動作する『PandA KIDs』環境)で利用可能としています。

そこに通常のJVM環境であれば利用できるアプリなり機能なりが目の前にあるのに、『KIDs VM』が動作している状態ではそれらを直接使用することはできないのです。

仮想化・隔離のメタファーとしての「パズル」

『PandA KIDs』の「パズルボード」画面通常のAndroidのホーム画面の代わりとして機能する画面で、自由にパズルピースを配置できる。この画面上では通常のアプリはそのままでは動作せず、親にお願いしてそのアプリを「パズルのピース」にして与えてもらう必要がある。

『PandA KIDs』の「パズルボード」画面
通常のAndroidのホーム画面の代わりとして機能する画面で、自由にパズルピースを配置できる。この画面上では通常のアプリはそのままでは動作せず、親にお願いしてそのアプリを「パズルのピース」に変換して与えてもらう必要がある。

なお、この『PandA KIDs』のホーム画面では、親にお願いしこの環境で利用できるように変換して貰ったアプリや機能・URLなどが、「パズルのピース」という形で表現されます。

こうすることで、「組み合わせて」、あるいはパズルボードと化したホーム画面上で「並べて」使うことを自然に子供に理解させるわけです。

子供に仮想化技術によるユーザー環境の隔離・保護を巡る難しい話を説明してもまず理解できないでしょうから、わかりやすい形のメタファーとして別の形で表現する、というのは理解を深めさせる上で必要不可欠な作業であると言えます。

また、こうして「ピースを並べる」という論理を導入したおかげで、子供に(ホーム画面にあたるパズルボードの)カスタマイズ、という概念を認識・理解させられるというのも大きなメリットです。

親と子のコミュニケーションがまず求められる

以上のように、『PandA KIDs』の準仮想環境の仕組みは、単純な動作の可否を問うだけの一般的なペアレンタルロックの仕組みとは一線を画するものです。

ペアレンタルロックは親がこれは駄目、これはOKと判断して事前にその設定内容を決めるわけですが、この『PandA KIDs』ではそもそも子供の側が親にお願いしない限り、基本的に何もできない仕組みとなっています。

つまり、子供は自発的に親とのコミュニケーションをとらねばスマートフォンを使えず、親は親で一方的に全ての可否を決めて後は放置、ということができず、また子が何をどうするのか/どうしたいのかを否応なく認識させられる仕組みであるわけです。

親と子の対話が欠けがちな昨今、このあたりの仕組みだけでもこの『PandA KIDs』は大いに評価されるべきだと筆者は考えます。

惜しむらくは、先にも触れましたがこのアイデアは垂直統合形の事業構造で、しかも高い技術力を持つフリービットだからこそ実現できたもので、通常のAndroid搭載スマートフォンにおいそれと援用できる性質の技術ではないことです。

このアイデアを通常のAndroid搭載スマートフォンで実現可能とするには、恐らくAndroidそのものの仮想化支援機能の実装がせめて今のWindows並にならねば厳しいでしょう。

良くできたアイデアだがこれは通過点か

もっとも、今後のプロセッサ技術やOSの進歩を考えると、これは現時点でのベストに近い技術・アイデアだと思いますが、同時にこれは「はじめの一歩」にして通過点でしかない、とも思えます。

ARM v8アーキテクチャ、つまり64ビットプロセッサが当たり前になってくると、CPUコアレベルでの仮想化支援機能のサポートが今のARM v7よりも手厚くなり、GPUレベルではAMDの提唱するHSAをはじめ、CPUとGPUの境界をなくすような技術の導入が本格化するでしょう。

また、OSレベルでも最新のAndroid 5.0ではデフォルトの仮想マシンがDalvikからARTに切り替わってJITコンパイラによるリアルタイム逐次変換からAOTコンパイラによる事前一括変換へ移行して仮想マシンの考え方そのものが代わり、またスマートフォンでも遂にマルチユーザー機能がサポートされるようになった(※注3)ため、こうした子供向けの機能制限の方法についても再考を求められる状況になってきています。

  ※注3:つまりWindowsのように個人単位でパスワード入力などによるログインが必要になるということです。ちなみに端末の属人性が低く使用形態の異なるタブレットでは以前のバージョンからマルチユーザー機能がサポートされていました。

こうしたハード・OSの変化を考えると、今はまだスマートフォンではあまりに荷が重い、完全な仮想環境を実行させることがいずれ遠くない将来、当たり前になってくるでしょう。

ことによると、今のWindows 8.1などに搭載されているHyper-Vのようなハイパ-バイザがスマートフォンのファームウェアレベルで搭載され、その仮想マシン上で子供用と大人用、全く異なったOSが相互に連携しつつ動作する、といった時代が来るのかも知れません。

果たしてフリービットがこの辺の問題についてどのような回答を出してゆくのか、今後完全な仮想環境が導入されるのか、色々な問題が絡んでくるためおいそれと結論を出せないと思いますが、筆者としては興味津々です。

▼参考リンク
“スマホを変えるスマホ”のfreebit mobile  お子様にとって世界一安全安心なスマホライフを実現する、キッズスマホの新サービス「PandA KIDs」を発表
PandA KIDs

コメントは受け付けていません。

PageTopへ