Apa itu proses tervirtualisasi?

10

Saya telah menginstal MinGW dan MSYS dan tidak pernah benar-benar peduli tentang cara kerja binari. Namun, hari ini saya membuka Process Explorer dan menyadari bahwa saya memiliki beberapa proses virtual :

Daftar proses

Saya tahu bahwa biasanya membuat / gcc / sh / mintty adalah untuk sistem POSIX / unix-like, namun saya berpikir bahwa proyek MinGW / MSYS akan menyediakan executable asli. Virtualisasi biasanya istilah yang saya kaitkan dengan mesin virtual dan itu sedikit membingungkan saya. Manajer tugas sebenarnya menyebut kolom yang sesuai "virtualisasi UAC".

Jadi apa arti bendera tervirtualisasi di Windows? Apakah ini semacam lapisan kompatibilitas untuk executable pra Vista?

Zeta
sumber
Jawaban singkat: ya, ini adalah lapisan kompatibilitas untuk executable pra-Vista. (Jawaban yang sedikit lebih panjang: karena banyak executable yang diasumsikan proses akan selalu memiliki hak administrator, yang di Vista jauh lebih kecil kemungkinannya benar.)
Harry Johnston

Jawaban:

8

Pada dasarnya ini adalah sistem file dan 'pembungkus' registri yang mengalihkan upaya menulis file jika pengguna tidak memiliki izin menulis yang benar, lihat artikel Wikipedia tentang UAC untuk informasi lebih lanjut :

Aplikasi yang ditulis dengan asumsi bahwa pengguna akan berjalan dengan hak administrator mengalami masalah dalam versi Windows yang lebih lama ketika dijalankan dari akun pengguna yang terbatas, seringkali karena mereka berusaha menulis ke direktori mesin atau direktori sistem (seperti File Program) atau kunci registri (terutama HKLM). UAC berupaya meringankan ini dengan menggunakan Virtualisasi File dan Registri, yang mengarahkan ulang penulisan (dan selanjutnya dibaca) ke lokasi per pengguna dalam profil pengguna.

Misalnya, jika suatu aplikasi mencoba untuk menulis ke direktori seperti "C: \ Program Files \ appname \ settings.ini" di mana pengguna tidak memiliki izin menulis, penulisan akan diarahkan ke "C: \ Users \ username \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini ". Fitur pengalihan hanya disediakan untuk aplikasi 32-bit yang tidak ditinggikan, dan hanya jika mereka tidak menyertakan manifes yang meminta hak khusus.

Journeyman Geek
sumber
1
Nggak. Tidak ada pengalihan "file program (x86)" ke "File Program". Ada pengalihan dari C:\Windows\System32ke C:\Windows\SysWOW64, tetapi sebenarnya ini merujuk pada pengalih WOW64, bukan pengalih arah Virtualisasi.
Maximus
7

Journeyman Geek menjelaskan apa itu virtualisasi. Saya akan menjelaskan bagaimana Windows menentukan kebutuhan virtualisasi.

OS terlihat dalam file manifes aplikasi (atau sumber daya PE) dan jika manifes tidak ditemukan sama sekali atau tidak memiliki compatibilitybagian yang tepat - Windows menganggap aplikasi tersebut "lama" dan memungkinkan virtualisasi.

<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. Virtualisasi bekerja untuk registry (sub) kunci seperti HKEY_LOCAL_MACHINEuntuk HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE.

Maximus
sumber