Eu tenho o MinGW e o MSYS instalados e nunca me importei com o funcionamento dos binários. No entanto, hoje abri o Process Explorer e percebi que tenho alguns processos virtualizados :
Eu sei que geralmente make / gcc / sh / mintty é para sistemas tipo POSIX / unix, no entanto, pensei que os projetos MinGW / MSYS forneceriam executáveis nativos. Virtualizado é geralmente um termo que associo a máquinas virtuais e me confunde um pouco. Na verdade, o gerenciador de tarefas chama a coluna "virtualização de UAC" correspondente.
Então, o que significa o sinalizador virtualizado no Windows? É algum tipo de camada de compatibilidade para os executáveis anteriores ao Vista?
Respostas:
É basicamente um 'wrapper' de sistema de arquivos e registro que redireciona as tentativas de gravação de arquivos se o usuário não tiver as permissões de gravação corretas; consulte o artigo da Wikipedia sobre UAC para obter mais informações :
fonte
C:\Windows\System32
paraC:\Windows\SysWOW64
, mas, na verdade, isso se refere ao redirecionador WOW64, não ao redirecionador de virtualização.O Journeyman Geek explica o que é virtualização. Vou explicar como o Windows determina a necessidade de virtualização.
O SO procura no arquivo de manifesto do aplicativo (ou recurso PE) e se o manifesto não foi encontrado ou não possui a
compatibility
seção adequada - o Windows assume que o aplicativo é "antigo" e habilita a virtualização.PS. Virtualização obras para Registro (sub) teclas como
HKEY_LOCAL_MACHINE
aHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE
.fonte