กระบวนการเสมือนจริงคืออะไร


10

ฉันติดตั้ง MinGW และ MSYS แล้วและไม่เคยใส่ใจเลยว่าไบนารีทำงานอย่างไร อย่างไรก็ตามวันนี้ฉันเปิดProcess Explorerและรู้ว่าฉันมีกระบวนการเสมือนจริงบางอย่าง:

รายการกระบวนการ

ฉันรู้ว่าโดยปกติแล้วการสร้าง / gcc / sh / mintty นั้นใช้สำหรับระบบ POSIX / UNIX ที่เหมือนกัน แต่ฉันคิดว่าโครงการ MinGW / MSYS จะให้โปรแกรมแบบเนทีฟ virtualizedมักจะเป็นคำที่ฉันเชื่อมโยงกับเครื่องเสมือนและมันทำให้ฉันสับสนเล็กน้อย ตัวจัดการงานเรียกจริง ๆ ว่าคอลัมน์ตาม "UAC virtualization"

ดังนั้นการตั้งค่าสถานะเสมือนจริงใน Windows หมายถึงอะไร มันเป็นเลเยอร์ความเข้ากันได้บางอย่างสำหรับ executables ก่อน Vista หรือไม่?


คำตอบสั้น ๆ : ใช่มันเป็นเลเยอร์ที่ใช้งานร่วมกันได้สำหรับปฎิบัติการ pre-Vista (คำตอบที่ยาวขึ้นอีกเล็กน้อย: เพราะว่าโปรแกรมปฏิบัติการหลายอย่างถือว่ากระบวนการนี้มักจะมีสิทธิ์ผู้ดูแลระบบซึ่งใน Vista นั้นมีโอกาสน้อยกว่าที่จะเป็นจริง)
Harry Johnston

คำตอบ:


8

มันเป็นระบบไฟล์และ 'wrapper' รีจีสตรีซึ่งเปลี่ยนเส้นทางการพยายามเขียนไฟล์หากผู้ใช้ไม่มีสิทธิ์ในการเขียนที่ถูกต้องดูบทความ Wikipedia เกี่ยวกับ UAC สำหรับข้อมูลเพิ่มเติม :

แอปพลิเคชันที่เขียนขึ้นโดยมีข้อสันนิษฐานว่าผู้ใช้จะทำงานด้วยสิทธิ์ผู้ดูแลระบบที่ประสบปัญหาใน Windows รุ่นก่อนหน้าเมื่อเรียกใช้จากบัญชีผู้ใช้ที่ จำกัด เนื่องจากมักจะพยายามเขียนไปยังเครื่องทั้งระบบหรือไดเรกทอรีระบบ (เช่น Program Files) หรือรีจิสตรีคีย์ (สะดุดตา HKLM) UAC พยายามบรรเทาปัญหานี้โดยใช้ไฟล์และการจำลองเสมือนของรีจิสทรีซึ่งเปลี่ยนเส้นทางการเขียน (และการอ่านครั้งถัดไป) ไปยังตำแหน่งต่อผู้ใช้ภายในโปรไฟล์ของผู้ใช้

ตัวอย่างเช่นหากแอปพลิเคชันพยายามเขียนไปยังไดเรกทอรีเช่น "C: \ Program Files \ appname \ settings.ini" ซึ่งผู้ใช้ไม่มีสิทธิ์ในการเขียนการเขียนจะถูกเปลี่ยนเส้นทางไปที่ "C: \ Users \ ชื่อผู้ใช้ \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini " คุณลักษณะการเปลี่ยนเส้นทางมีให้เฉพาะสำหรับแอปพลิเคชัน 32 บิตที่ไม่ได้รับการยกระดับและเฉพาะในกรณีที่ไม่มีการแสดงรายการที่ขอสิทธิ์พิเศษ


1
Nope ไม่มีการเปลี่ยนเส้นทางของ "ไฟล์โปรแกรม (x86)" เป็น "ไฟล์โปรแกรม" มีการเปลี่ยนเส้นทางจากC:\Windows\System32ไปC:\Windows\SysWOW64เป็น แต่ที่จริงแล้วสิ่งนี้อ้างถึงตัวเปลี่ยนเส้นทาง WOW64 ไม่ใช่ไปที่ตัวเปลี่ยนเส้นทางเสมือน
Maximus

7

Journeyman Geek อธิบายว่า virtualization คืออะไร ฉันจะอธิบายวิธีที่ Windows ตัดสินความต้องการการจำลองเสมือน

ระบบปฏิบัติการดูในไฟล์ Manifest ของแอปพลิเคชัน (หรือ PE-resource) และหากไม่พบไฟล์ Manifest หรือไม่มีcompatibilityส่วนที่เหมาะสม- Windows ถือว่าแอปพลิเคชันนั้นเป็น "เก่า" และเปิดใช้งานการจำลองเสมือน

<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 Virtualization งานสำหรับสตรี (ย่อย) ปุ่มชอบที่จะHKEY_LOCAL_MACHINEHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.