Mam zainstalowane MinGW i MSYS i nigdy tak naprawdę nie dbałem o to, jak działają pliki binarne. Jednak dzisiaj otworzyłem Process Explorer i zdałem sobie sprawę, że mam pewne zwirtualizowane procesy:
Wiem, że zazwyczaj make / gcc / sh / mintty są przeznaczone dla systemów podobnych do POSIX / unix, ale myślałem, że projekty MinGW / MSYS zapewnią natywne pliki wykonywalne. Zwirtualizowane jest zwykle terminem, który kojarzy mi się z maszynami wirtualnymi i trochę mnie dezorientuje. Menedżer zadań faktycznie wywołuje odpowiednią kolumnę „wirtualizacja UAC”.
Co więc oznacza zwirtualizowana flaga w systemie Windows? Czy jest to jakaś warstwa zgodności dla plików wykonywalnych starszych niż Vista?
Odpowiedzi:
Jest to w zasadzie „opakowanie” systemu plików i rejestru, które przekierowuje próby zapisu pliku, jeśli użytkownik nie ma odpowiednich uprawnień do zapisu, więcej informacji można znaleźć w artykule na temat UAC w Wikipedii :
źródło
C:\Windows\System32
doC:\Windows\SysWOW64
, ale w rzeczywistości dotyczy to przekierowania WOW64, a nie przekierowania wirtualizacji.Journeyman Geek wyjaśnia, czym jest wirtualizacja. Wyjaśnię, w jaki sposób system Windows określa potrzebę wirtualizacji.
System operacyjny szuka pliku manifestu aplikacji (lub zasobu PE) i jeśli manifest nie został w ogóle znaleziony lub nie ma odpowiedniej
compatibility
sekcji - Windows zakłada, że aplikacja jest „stara” i umożliwia wirtualizację.PS. Wirtualizacja umożliwia dostęp na rejestrze (sub) klawisze podoba
HKEY_LOCAL_MACHINE
sięHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE
.źródło