Tengo instalado MinGW y MSYS y nunca me importó realmente cómo funcionan los binarios. Sin embargo, hoy abrí Process Explorer y me di cuenta de que tengo algunos procesos virtualizados :
Sé que generalmente make / gcc / sh / mintty son para sistemas POSIX / unix-like, sin embargo, pensé que los proyectos MinGW / MSYS proporcionarían ejecutables nativos. Virtualizado es generalmente un término que asocio con máquinas virtuales y me confunde un poco. El administrador de tareas en realidad llama a la columna correspondiente "virtualización UAC".
Entonces, ¿qué significa la bandera virtualizada en Windows? ¿Es algún tipo de capa de compatibilidad para ejecutables anteriores a Vista?
Respuestas:
Básicamente es un 'contenedor' de registro y sistema de archivos que redirige los intentos de escritura de archivos si el usuario no tiene los permisos de escritura correctos, consulte el artículo de Wikipedia sobre UAC para obtener más información :
fuente
C:\Windows\System32
aC:\Windows\SysWOW64
, pero de hecho se refiere al redirector WOW64, no al redireccionador de virtualización.Journeyman Geek explica qué es la virtualización. Explicaré cómo Windows determina la necesidad de virtualización.
El sistema operativo busca en el archivo de manifiesto de la aplicación (o recurso PE) y si el manifiesto no se encuentra o no tiene la
compatibility
sección adecuada , Windows asume que la aplicación es "antigua" y permite la virtualización.PD. Virtualización de obras para registro de teclas (sub) gusta
HKEY_LOCAL_MACHINE
aHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE
.fuente