Я установил MinGW и MSYS и никогда не задумывался о том, как работают двоичные файлы. Однако сегодня я открыл Process Explorer и понял, что у меня есть некоторые виртуализированные процессы:
Я знаю, что обычно make / gcc / sh / mintty для POSIX / unix-подобных систем, однако я подумал, что проекты MinGW / MSYS предоставят собственные исполняемые файлы. Виртуализация - это термин, который я ассоциирую с виртуальными машинами, и он меня немного смущает. Диспетчер задач фактически вызывает соответствующий столбец «Виртуализация UAC».
Так что же означает виртуализированный флаг в Windows? Это какой-то уровень совместимости для исполняемых файлов до Vista?
Ответы:
Это в основном файловая система и «оболочка» реестра, которая перенаправляет попытки записи в файл, если у пользователя нет необходимых прав записи, см. Статью в Википедии о UAC для получения дополнительной информации :
источник
C:\Windows\System32
наC:\Windows\SysWOW64
, но на самом деле это относится к перенаправителю WOW64, а не к перенаправителю виртуализации.Подмастерье Geek объясняет, что такое виртуализация. Я объясню, как Windows определяет необходимость виртуализации.
ОС просматривает файл манифеста приложения (или PE-ресурс), и если манифест вообще не найден или не имеет соответствующего
compatibility
раздела - Windows предполагает, что приложение «старое» и включает виртуализацию.PS. Виртуализация работы для реестра ключей (суб) нравится
HKEY_LOCAL_MACHINE
вHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE
.источник