J'ai installé MinGW et MSYS et je ne me suis jamais vraiment soucié du fonctionnement des binaires. Cependant, aujourd'hui, j'ai ouvert Process Explorer et j'ai réalisé que j'avais des processus virtualisés :
Je sais que le plus souvent make / gcc / sh / mintty est pour les systèmes de type POSIX / unix, cependant je pensais que les projets MinGW / MSYS fourniraient des exécutables natifs. Virtualisé est généralement un terme que j'associe aux machines virtuelles et cela m'embrouille un peu. Le gestionnaire de tâches appelle en fait la colonne correspondante "Virtualisation UAC".
Alors, que signifie le drapeau virtualisé dans Windows? Est-ce une sorte de couche de compatibilité pour les exécutables pré Vista?
Réponses:
Il s'agit essentiellement d'un système de fichiers et d'un «wrapper» de registre qui redirige les tentatives d'écriture de fichiers si l'utilisateur n'a pas les autorisations d'écriture correctes, consultez l'article Wikipedia sur l'UAC pour plus d'informations :
la source
C:\Windows\System32
versC:\Windows\SysWOW64
, mais en fait, il s'agit du redirecteur WOW64, pas du redirecteur de virtualisation.Journeyman Geek explique ce qu'est la virtualisation. Je vais expliquer comment Windows détermine le besoin de virtualisation.
Le système d'exploitation regarde dans le fichier manifeste de l'application (ou ressource PE) et si le manifeste n'est pas trouvé du tout ou n'a pas la
compatibility
section appropriée - Windows suppose que l'application est "ancienne" et active la virtualisation.PS. La virtualisation fonctionne pour les (sous-) clés de registre comme
HKEY_LOCAL_MACHINE
pourHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE
.la source