• スターロスト

ウィンドウズにもアンドロイドアプリ実行環境が搭載されたが、同様の機能の搭載は、クロームブックのほうが早かった。いまやアンドロイドアプリは、クロームブックの主要なアプリでもある。このクロームブックのアンドロイド実行環境は「ARC」(Android Runtime for Chrome)という。

このARCには3つの実装がある。最初の実装は、クロームブラウザでバイナリコードを実行するNaCL(Native Client)を利用するもの。実験的な実装であり、特定のクロームブックでしか利用できなかった。

実用として作られたのが二つ目の実装で“ARC++”と呼ばれている。2016年からクロームブックへの配布が開始された。ARC++は、当初Android 6に対応したが、2017年にはAndroid 7、2018年にAndroid 9に対応した。現在広く使われているのは、このARC++である。ARC++は、コンテナ技術を使って、ChromeOSの中にアンドロイドの実行環境を作っている。

一般的にコンテナとは、OS上に独立した実行環境を作り、その中でファイル化したイメージを実行できるもの。多くの場合仮想マシン技術を使わず、他のアプリケーションやコンテナ同士を分離する。仮想マシンと比べると制限が多いが、動作効率は高い。

三つ目の実装は、仮想マシンを使うもので“ARCVM”と呼ばれている。ARC++とARCVMの区別だが、実行環境がAndroid 9以下になっているものがARC++(写真01)で、Android 11以上になっているのがARCVM(写真02)だ。確認は、クロームブックの「設定 ⇒ アプリ ⇒ Google Playストア ⇒ Android設定を管理」から、Android設定ページを開き、「システム ⇒ 端末情報/デバイス情報 ⇒ Androidバージョン」で行う。

  • 写真01: ARC++が搭載されている場合、「端末情報」に表示される“Androidバージョン”は、9(Android 9)になる

  • 写真02: ARCVMが搭載されている場合、「デバイス情報」の“Androidバージョン”は、11(Android 11)だ

現状のARC++でも十分な性能があり、仮想マシンの利用には、実行効率や電力効率悪化、要求リソース増大の懸念がある。しかし、クロームブックには仮想マシン技術をどうしても導入しなければならない理由がある。

というのは、クロームブックでは、ChromeOSをアップデートしても、搭載しているLinuxカーネルのバージョンは更新されないからだ。本連載の第89回「メトセラのパターン」でもちょっと書いた。もちろん、パッチなどでバイナリは更新されるが、カーネルバージョンは変わらない。

ARC++はコンテナ技術を使うため、アンドロイド側でも同じカーネルを使う。しかし、アンドロイドでは、バージョンにより対応可能なカーネルバージョンが変わる。ChromeOSのLinuxカーネルバージョンと、アンドロイドが必要とするカーネルバージョンが一致しないと、ARC++は新しいアンドロイドに対応ができなくなる。

現在、グーグルPlayストアでは、新規に登録、あるいはアップデートするアプリが、対応しなければならないAPIレベル(おおまかにはアンドロイドのバージョンと一致)の下限が指定されている。これにより、古いアンドロイドを対象に作られたアプリは、新規登録や更新版の登録が禁止される。原稿執筆時点では、アプリの新規登録や更新版はAndroid 12(APIレベル31)以上が必須とされ、来年にはAndroid 13対応が必須になる。

こうした制限がかかるため、アンドロイドのアプリは、速いペースで対応バージョンが更新されていく。また、アンドロイド自体も毎年バージョンが上がる。これに合わせてARCも対応アンドロイドバージョンを上げていく必要がある。しかし、ARC++では、簡単に対応バージョンを上げていくことができない。

これを解決するには、ChromeOSのカーネルとARCで使うアンドロイドのカーネルを別にするしかない。そのためにはどうしても仮想マシン環境が必要になるわけだ。また、仮想環境とすることで、アンドロイド実行環境用のプログラムを共通化することが可能になる。現在のLinux実行環境(Crostini)のように、ChromeOSのアップデートとは独立して仮想マシン側をアップデートすることも可能になるだろう。

ARCVMは、今年の3月にブログ“Making Android Runtime on ChromeOS more secure and easier to upgrade with ARCVM”で一般向けに公表された。すでに配布は開始されているとのことだが、筆者の手元のクロームブックでは、ChromeOSのStableチャンネルではARC++のままだったが、BetaチャンネルにするとARCVMになった。

今回のタイトルの元ネタは、カナダのSFドラマ「The Starlost」(1973)で日本では「スターロスト宇宙船アーク」としてNHKで放送された。綴りは違うが「アーク」つながりである。ドラマは、巨大な宇宙船「Earthship ARK」が制御を失ったまま長期間が経過したという設定。主人公が2001年宇宙の旅のボーマン役キュア・デリア、原作はハーラン・エリスン、プロデューサーには、ダクラス・トランブルという有名どころが関わる。話は面白いが、1970年台のテレビドラマなので本編の特撮はイマイチ。しかし、使い回される宇宙船のシーンは、さすがトランブルという感じ。