Windowsのサンドボックス

サンドボックスは、安全で隔離された環境でアプリケーションを実行できるWindowsの新しい軽量ツールです。



ある種のプログラムを実行する必要がある状況に自分自身を見つけたことがありますが、その起源のソースが完全にはわかりませんか? または別の例-Windowsの「クリーン」バージョンで何かをチェックする必要性。 そのような場合はすべて、出口が1つだけになる前に、別の物理マシンまたは仮想マシンにOSをインストールし、必要な実験を実施します。 しかし、これはもはや事実ではありません。



Microsoftは、 Sandbox (eng。Windows Sandbox)と呼ばれる新しいメカニズムを開発しました。 これは、PCに損害を与えるリスクなしに疑わしいソフトウェアを実行できる孤立した一時的な環境です。 Sandboxにインストールされたソフトウェアは、Sandboxのみに残り、メインOSと対話できません。 サンドボックスを閉じるとすぐに、その内容はすべて回復不能に破壊されます。



サンドボックスの主な機能は次のとおりです。





システム要件





クイックスタート



1. Windows 10 ProまたはEnterprise、ビルド18305以降をインストールします



2.仮想化を有効にします。





3.インストールされているWindowsコンポーネントのリストを(コントロールパネルから)開き、その中のサンドボックスを有効にします。 OKをクリックします。 コンピューターを再起動する要求が表示されたら、確認します。



画像



4. [スタート]メニューからサンドボックスを起動します。 彼女のプロセスの権利の昇格を許可します。



5.実行するバイナリを(クリップボードを介して)Sandboxにコピーします。



6.サンドボックスでバイナリを起動します。 これがインストーラーである場合、インストール手順を実行し、インストールされたアプリケーションを実行します。



7.意図したとおりにアプリケーションを使用します。



8.完了したら、サンドボックスを閉じます。 その内容はすべて削除されます。



9.オプション-メインOSで何も変更されていないことを確認できます。



画像



サンドボックスの内部にあるもの



Windows Sandboxは、Windows Containersと呼ばれるテクノロジーに基づいて構築されています。 コンテナは、クラウドで動作するように開発されています(そして長い間使用されてきました)。 マイクロソフトは、すでにかなり成熟したテスト済みのテクノロジを採用し、デスクトップWindowsのユーザー向けに完成させました。



主な適応策は次のとおりです。



動的に生成された画像



サンドボックスは軽量ですが、それでも仮想マシンです。 また、他の仮想マシンと同様に、起動可能なイメージが必要です。 Sandboxの最も重要な機能は、どこからでもこのイメージをダウンロードまたは作成する必要がないことです。 現在のWindows OSのファイルからその場で作成されます。



私たちは常に、サンドボックスに対して同じ「クリーン」な環境を取得したいと考えています。 ただし、問題があります。一部のシステムファイルが変更される可能性があります。 解決策は、「動的に生成されたイメージ」を作成することでした。変更されたファイルについては、元のバージョンが含まれますが、不変ファイルはこのイメージに物理的に含まれません。 代わりに、ディスク上の実際のファイルへのリンクを使用します。 実践が示しているように、画像内のほとんどのファイルはそのようなリンクになります。 それらのほんの一部(約100 MB)のみが画像に完全に含まれます-これがそのサイズになります。 さらに、Sandboxを使用しない場合、これらのファイルは圧縮形式で保存され、約25 MBを占有します。 Sandboxを起動すると、サイズが約100 MBの非常に「動的なイメージ」に展開されます。



画像



スマートメモリ管理



サンドボックスメモリ管理は、もう1つの大きな改善点です。 ハイパーバイザーを使用すると、同じ物理マシン上で複数の仮想マシンを実行でき、これは一般にサーバー上で適切に機能します。 ただし、サーバーとは異なり、通常のユーザーマシンのリソースははるかに限られています。 許容可能なレベルのパフォーマンスを達成するために、Microsoftは、メインOSとサンドボックスが場合によっては同じメモリページを使用できる特別なメモリモードを開発しました。



実際、メインOSとサンドボックスは同じOSイメージを実行するため、それらのシステムファイルのほとんどは同じになります。つまり、同じライブラリを2回メモリにロードする意味はありません。 メインOSでこれを1回行うことができ、Sandboxメモリに同じファイルが必要な場合、同じページへのリンクを与えることができます。 もちろん、このアプローチのセキュリティを確保するにはいくつかの追加の対策が必要ですが、マイクロソフトはこれを処理しました。



画像



統合スケジューラ



従来の仮想マシンを使用する場合、ハイパーバイザーは、それらで実行されている仮想プロセッサの動作を制御します。 「統合スケジューラ」と呼ばれる、Sandbox用の新しいテクノロジーが開発されました。これにより、メインOSはSandboxにいつどのくらいのリソースを割り当てるかを決定できます。 仮想サンドボックスプロセッサは、サンドボックスプロセス内のスレッドのように機能します。 その結果、メインOSの他のスレッドと同じ「権利」があります。 たとえば、いくつかの高優先度のスレッドが機能している場合、Sandboxは通常の優先度を持つタスクを完了するのに多くの時間をかけません。 これにより、 Linux KVMの動作と同様に、重要なアプリケーションの動作を遅くしたり、メインOSのUIの十分な応答性を維持したりすることなく、サンドボックスを使用できます。



主なタスクは、サンドボックスを一方では通常のアプリケーションにし、他方では従来の仮想マシンのレベルでの隔離を保証することでした。



スナップショットを使用する



前述のように、Sandboxはハイパーバイザーを使用します。 基本的に、Windowsのコピーを別のコピー内で実行します。 そして、これはそれをロードするのに時間がかかることを意味します。 サンドボックスを起動するたびに、またはディスク上に仮想OSのすべての状態(変更されたファイル、メモリ、プロセッサレジスタ)を読み込んで保存した後、一度だけ実行することができます。 その後、この画像からサンドボックスを起動し、同時に開始時間を節約できます。



グラフィックス仮想化



グラフィックスのハードウェアベースの仮想化は、特にグラフィックスアプリケーションの点で「重い」場合、スムーズで高速なユーザーインターフェイスの鍵となります。 ただし、従来の仮想マシンでは、GPUのすべてのリソースを直接使用する能力が当初制限されていました。 そして、この問題を克服し、何らかの形で仮想環境でハードウェアアクセラレーションを使用できるグラフィック仮想化ツールが重要な役割を果たします。 このような技術の例としては、たとえばMicrosoft RemoteFXがあります。



さらに、Microsoftは、グラフィックス仮想化機能をDirectXおよびWDDM(Windowsのドライバーモデル)に直接統合するために、グラフィックスシステムおよびドライバーのメーカーと積極的に協力してきました。



その結果、Sandboxのグラフィックは次のように機能します。





このプロセスは次のように表すことができます。



画像



これにより、仮想環境からハードウェアアクセラレーショングラフィックスへのフルアクセスが可能になり、グラフィックスのレンダリングにCPUの重い計算が使用されなくなるため、パフォーマンスの向上とリソース(ラップトップのバッテリー電源など)の両方が得られます。



バッテリー使用量



サンドボックスは、バッテリーの充電に関する情報にアクセスでき、作業を最適化して保存できます。



レビューとバグレポート



新しいテクノロジーにはバグがある可能性があります。 Microsoftは、 Feedback Hubを通じて、それらに関するメッセージと新機能の提案を送信するよう求めています。



All Articles