¿Qué es un proceso virtualizado?

10

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 :

Lista de procesos

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?

Zeta
fuente
Respuesta corta: sí, es una capa de compatibilidad para ejecutables anteriores a Vista. (Respuesta Ligeramente más largo:. Porque muchos de esos ejecutables asumido el proceso que siempre tienen privilegios de administrador, que en Vista era mucho menos probable que sea cierto)
Harry Johnston

Respuestas:

8

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 :

Las aplicaciones escritas con el supuesto de que el usuario se ejecutará con privilegios de administrador experimentaron problemas en versiones anteriores de Windows cuando se ejecutan desde cuentas de usuario limitadas, a menudo porque intentaron escribir en directorios de todo el equipo o del sistema (como Archivos de programa) o claves de registro (notablemente HKLM). UAC intenta aliviar esto mediante la virtualización de archivos y registros, que redirige las escrituras (y las lecturas posteriores) a una ubicación por usuario dentro del perfil del usuario.

Por ejemplo, si una aplicación intenta escribir en un directorio como "C: \ Archivos de programa \ nombre_aplicación \ settings.ini" para el cual el usuario no tiene permiso de escritura, la escritura será redirigida a "C: \ Users \ username \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini ". La función de redireccionamiento solo se proporciona para aplicaciones de 32 bits no elevadas, y solo si no incluyen un manifiesto que solicite privilegios específicos.

Journeyman Geek
fuente
1
No No hay redirección de "archivos de programa (x86)" a "Archivos de programa". Hay redirección de C:\Windows\System32a C:\Windows\SysWOW64, pero de hecho se refiere al redirector WOW64, no al redireccionador de virtualización.
Maximus
7

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 compatibilitysección adecuada , Windows asume que la aplicación es "antigua" y permite la virtualización.

<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>

PD. Virtualización de obras para registro de teclas (sub) gusta HKEY_LOCAL_MACHINEa HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE.

Maximus
fuente