Chrome OS 上の Linux アプリ

Project Crostini のおかげで、Google Pixelbook をはじめとする Linux アプリが間もなく Chrome OS 上で利用可能になります。 クロスティーニとは何ですか? なぜそれほど重要なのでしょうか? Android アプリの統合以来、Chrome OS に加えられた最大の変更について詳しく説明します。

ここでは、Google が 1 年にわたって秘密裏に進めてきた Chrome OS での Linux アプリ機能の開発 (Project Crostini とも呼ばれます) について知っておくべきことをすべてご紹介します。

一言で言えば、セキュリティを危険にさらしたり開発者モードを有効にしたりすることなく、Chrome OS 上で通常の Linux アプリケーションを実行する方法です。 (まだ利用できません) 公式設定状態 それは、「Chromebook で Linux ツール、エディタ、IDE を実行する」ことです。

Crostini は、Chrome OS の高度なセキュリティ標準を満たす機能を安全に実行できるようにする、数年間の開発の集大成です。 なぜそれがたった今現れたのかを理解するには、以前のものを見るのが最善です。

Crostini を文脈に置き換える – Chrome OS の暗黒時代

Android アプリが登場する前は、Chrome OS には便利な生産性向上アプリはおろか、オフライン機能もあまりありませんでした。 まともな人ならなぜ Chromebook を買うのでしょうか? 「これは単なるウェブブラウザです」というのが、Chromebook のレビューの締めくくりの言葉でした。 Chrome ウェブストアは入手可能なものはたくさんありましたが、アプリの品揃えはかなり貧弱で、更新されることもほとんどありませんでした。 冒険好きな人は、と呼ばれるツールを使用して Android アプリケーションを実行してみることもできます。 アーク溶接機, しかし、それは行き当たりばったりで、パフォーマンスは悪かったです。

オフラインの制限を回避するために、イライラしたユーザーは Chrome OS を消去して Linux をインストールするか、オープンソース ツールを使用しました クルトン Chrome OS カーネル上で動作する同時デスクトップ環境 [例: Ubuntu Unity] をセットアップします。

オープンソース ツールキットである Crouton のインストールは、以前は Chrome OS 上の Linux アプリにアクセスするための事実上の方法でしたが、間もなく非推奨になります

代替の GNU/Linux ディストリビューションや Crouton を実行するには、かなりのノウハウが必要で、多くの場合バグだらけで、どちらのオプションも特にユーザーフレンドリーでも安全でもありませんでした。 間違ったキーを押すと、デバイスをワイプしたり、デバイスをブロックしたりすることになります。Crouton 環境を暗号化しないままにしておくと、ゲスト ユーザーがアクセスできる可能性があります。

Android アプリの統合、先例となる

Android アプリは 2016 年に Chrome OS に登場し、オフライン機能において大きな進歩を遂げましたが、この機能を実現するのは単なるプラグ アンド プレイではありませんでした。 セキュリティを重視する OS 上で動作する唯一の方法は、効果的にサンドボックス化されている場合です。

Chrome OS 開発者が選んだ斬新なソリューションは次のとおりです。 コンテナ化、アプリケーションをスタンドアロンの実行可能パッケージにバンドルする方法。 コンテナといくつかの調整を使用して、完全な Android 環境とすべての機能を取得することができました。 その依存関係はコンテナ内で実行され、Chrome OS の残りの部分から分離されていますが、同じ上で実行されます。 カーネル。

ただし、Android アプリは通常、デスクトップ/ラップトップのフォームファクターを念頭に置いて開発されていません。 これに Chrome OS のタッチ エクスペリエンスが劣悪であることが加わると、アプリが正常に動作したとしても、生産性セッションはイライラすることになります。

互換性に関する問題 - Chrome OS 上の Android アプリ

これまで Android アプリは生産性のギャップを埋めるのに役立ってきましたが、完全なデスクトップ アプリの膨大なライブラリに対する憧れは依然としてありました。 Android の最初の問題と同様に、単に Linux アプリケーションを実行できるようにするだけでも、 悪意のあるアプリケーションが Chrome OS 上のあらゆるものにアクセスできるため、Chrome OS の攻撃対象領域が増加します。 ホストOS。 そこで今回、開発者は Android で既に学んだことをベースに、Linux アプリの機能を可能な限りサイロ化して設計しました。

多層防御

名前が示すように、Crostini は Crouton に似ていますが、Chrome OS の隣に安全でないユーザー スペースがあるのではなく、間に 2 つの壁があります。 最初の壁は、Chrome OS KVM (カーネルベースの仮想マシン) 実装である Termina VM です。 VM が起動すると、実際に実行したいアプリを配置する第 2 の壁 (コンテナ) が構築されます。 したがって、本格的な Klondike デスクトップ アプリを実行する場合は、VM 内のコンテナーで実行されます。

開発者は公開ドキュメントを非技術的な観点から特に理解しやすいものにしていませんでしたが、私の非公式な素人の解釈によると、ソフトウェアは 現在の Chrome OS のアーキテクチャはおそらく次のようになります [注: すべて私が独自に作成したものであり、間違いなく Chrome OS チームの公式文書ではありません。おそらく完全に真実ではありません。やめてください。 私を傷つけなさい]:

私たちが考えるクロスティーニのアーキテクチャとは次のようなものです。 公式文書ではありません。

つまり、VM コンポーネントには個別のユーザー空間と仮想デバイス (vCPU、IP、MAC など) があり、コンテナーはそれらのリソースを利用するパッケージ化されたアプリです。 この時点で、VM コンポーネントが 実際にはハードウェアをエミュレートしません.

富裕層のみ…今のところ

Reddit のコミュニティなど、一部のコミュニティ /r/Crostiniはすでにクロスティーニをいじり始めています。 Google ピクセルブック. 残念ながら、 Pixelbook は、これまでのところ Crostini 機能を備えた唯一のデバイスです, しかし、兆候は、ARM システムオンチップを搭載したデバイスであっても、将来的にサポートを受ける他のデバイスを示しています。 でもひょっとしたら 32 ビット マシンではまだ完成していません. Crostini を実行するために VM 機能の一部が必要であるというヒントもあります。 カーネル バージョンが古いデバイスでは利用できません.

ここまで読んだあなたはおそらく、「何を実行できるのか?」と疑問に思っているでしょう。 成功は限られています。 Chrome 開発者は、Visual Studio を実行していることを示唆しています。 Reddit ユーザーは WINE と Android Studio を動作させ、ChromeUnboxed は便利な機能を実現しました。 ビデオデモ. しかし、Google が実際に何かを紹介するまでは、おそらく完全な機能と制限は分からないでしょう。 私たちが知っていることは、 アプリは永続的ですこれは、中断したところから続行でき、開発者が最近使用したアプリのリストで利用できるように取り組んでいることを意味します。

次は何? 考慮すべきいくつかの点

Pixelbook 以外の Chromebook で開発者チャネルに参加している場合は、ターミナル アプリが Chromebook に搭載されている可能性があります。 「コンシェルジュの起動に失敗しました」というエラーが表示される場合があります。 それは、Pixelbook 以外のデバイスでは VM 機能がまだ有効になっていないためです。

リソースがどのように割り当てられるのか、また、これらの入れ子になったアプリがどのようなオーバーヘッドを生成するのかはまだわかりません。 Linux 互換の Steam ゲームでゲームをするというアイデアは魅力的ですが、GPU アクセラレーションが利用できない場合は、現時点では無理です。

ホスト/コンテナーのエアギャップによってどのような制限が生じるか (存在する場合) はわかりません。 コンテナと Chrome OS の間の通信は制御されているため、遅延が発生したり、一部の周辺機器が無効になったりすることはありますか?

答えのない疑問はたくさんありますが、すべてが明らかになるのも時間の問題です。 多くの人が確信しています Google I/O 2018 数週間以内に大きな発表が行われる予定です。これは開発者カンファレンスなので当然のことです。 それまでの間、クロスティーニの動向に注目してください。


出典:

Maksim Lin – Chrome OS コンテナ

クロムギット - ARCコンテナバンドル, vm_tools, プロジェクトの終了, クロスVM