Che cos'è un processo virtualizzato?


10

Ho installato MinGW e MSYS e non mi è mai importato davvero di come funzionano i binari. Tuttavia, oggi ho aperto Process Explorer e mi sono reso conto di avere alcuni processi virtualizzati :

Elenco dei processi

So che di solito make / gcc / sh / mintty sono per sistemi POSIX / unix-like, tuttavia ho pensato che i progetti MinGW / MSYS avrebbero fornito eseguibili nativi. Virtualizzato è di solito un termine che associo alle macchine virtuali e mi confonde un po '. Il task manager in realtà chiama la colonna corrispondente "Virtualizzazione UAC".

Cosa significa quindi il flag virtualizzato in Windows? È una sorta di livello di compatibilità per eseguibili pre Vista?


Risposta breve: sì, è un livello di compatibilità per gli eseguibili pre-Vista. (Risposta leggermente più lunga: poiché molti di questi eseguibili presumevano che il processo avrebbe sempre avuto il privilegio di amministratore, che in Vista aveva molte meno probabilità di essere vero.)
Harry Johnston,

Risposte:


8

È fondamentalmente un 'wrapper' di file system e registro che reindirizza i tentativi di scrittura dei file se l'utente non dispone delle autorizzazioni di scrittura corrette, vedere l'articolo di Wikipedia su UAC per ulteriori informazioni :

Le applicazioni scritte con il presupposto che l'utente eseguirà i privilegi di amministratore hanno riscontrato problemi nelle versioni precedenti di Windows quando eseguito da account utente limitati, spesso perché hanno tentato di scrivere su directory di sistema o di sistema (come Programmi) o chiavi di registro (in particolare HKLM). Controllo account utente tenta di alleggerirlo utilizzando la virtualizzazione di file e registro, che reindirizza le scritture (e le successive letture) in una posizione per utente all'interno del profilo dell'utente.

Ad esempio, se un'applicazione tenta di scrivere in una directory come "C: \ Programmi \ nome app \ settings.ini" in cui l'utente non dispone dell'autorizzazione di scrittura, la scrittura verrà reindirizzata a "C: \ Users \ nome utente \ AppData \ Local \ VirtualStore \ Programmi \ nome app \ settings.ini ". La funzione di reindirizzamento viene fornita solo per applicazioni a 32 bit non elevate e solo se non includono un manifest che richiede privilegi specifici.


1
No. Non esiste il reindirizzamento di "file di programma (x86)" su "Programmi". C'è il reindirizzamento da C:\Windows\System32a C:\Windows\SysWOW64, ma in realtà si tratta del redirector WOW64, non del redirector di virtualizzazione.
Massimo

7

Journeyman Geek spiega cos'è la virtualizzazione. Spiegherò come Windows determina la necessità di virtualizzazione.

Il SO cerca nel file manifest dell'applicazione (o risorsa PE) e se manifest non viene trovato o non ha una compatibilitysezione corretta - Windows presume che l'applicazione sia "vecchia" e abilita la virtualizzazione.

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

PS. Virtualizzazione lavori per registro chiavi (sub) piace HKEY_LOCAL_MACHINEa HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.