仮想化プロセスとは何ですか?


10

MinGWとMSYSをインストールしましたが、バイナリがどのように機能するかを気にしていません。しかし、今日私はProcess Explorerを開いて、仮想化されたプロセスがあることに気づきました。

プロセスリスト

私は通常make / gcc / sh / minttyがPOSIX / unixのようなシステム用であることを知っていますが、MinGW / MSYSプロジェクトがネイティブ実行可能ファイルを提供すると思いました。仮想化は通常、仮想マシンに関連する用語であり、少し混乱します。タスクマネージャーは、実際に対応する列を「UAC仮想化」と呼びます。

では、Windows の仮想化フラグはどういう意味ですか?それはVista以前の実行可能ファイルに対するある種の互換性レイヤーですか?


短い答え:はい、これはVista以前の実行可能ファイルの互換性レイヤーです。(少し長い答え:そのような実行可能ファイルの多くは、プロセスが常に管理者特権を持っていると想定していたため、Vistaではそれが真実である可能性ははるかに低かった。)
Harry Johnston

回答:


8

これは基本的に、ユーザーが適切な書き込み権限を持っていない場合にファイル書き込みの試行をリダイレクトするファイルシステムとレジストリの「ラッパー」です。詳細については、UACに関するWikipediaの記事を参照してください

ユーザーが管理者特権で実行されることを想定して作成されたアプリケーションは、限られたユーザーアカウントから実行すると、以前のバージョンのWindowsで問題が発生しました。 (特にHKLM)。UACは、ファイルとレジストリの仮想化を使用してこれを軽減しようとします。これにより、書き込み(およびその後の読み取り)がユーザーのプロファイル内のユーザーごとの場所にリダイレクトされます。

たとえば、アプリケーションが「C:\ Program Files \ appname \ settings.ini」など、ユーザーが書き込み権限を持っていないディレクトリに書き込もうとした場合、書き込みは「C:\ Users \ username」にリダイレクトされます。 \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini " リダイレクト機能は、昇格されていない32ビットアプリケーションにのみ提供され、特定の特権を要求するマニフェストが含まれていない場合に限られます。


1
いいえ。「プログラムファイル(x86)」から「プログラムファイル」へのリダイレクトはありません。からC:\Windows\System32へのリダイレクトがありますC:\Windows\SysWOW64が、これは仮想化リダイレクタではなく、WOW64リダイレクタを指します。
Maximus

7

Journeyman Geekが仮想化とは何かを説明します。Windowsが仮想化の必要性をどのように判断するかを説明します。

OSはアプリケーションマニフェストファイル(またはPEリソース)を調べ、マニフェストがまったく見つからないか、適切なcompatibilityセクションがない場合、Windowsはアプリケーションが「古い」と見なし、仮想化を有効にします。

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
 <application>
   <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
   <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
 </application>
</compatibility>

PS。レジストリのための仮想化作品は、(サブ)のキーが好きHKEY_LOCAL_MACHINEHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.