가상화 프로세스 란 무엇입니까? mintty가 POSIX / 유닉스 계열 시스템을위한 것이라는

나는 MinGW와 MSYS를 설치했고 바이너리가 어떻게 작동하는지 결코 신경 쓰지 않았다. 그러나 오늘은 열었습니다. 프로세스 탐색기 내가 가지고있는 걸 깨달았 어. 가상화 된 프로세스 :

Process list

나는 보통 / gcc / sh / mintty가 POSIX / 유닉스 계열 시스템을위한 것이라는 것을 알고 있지만 MinGW / MSYS 프로젝트는 원시 실행 파일을 제공 할 것이라고 생각했다. 가상화 일반적으로 가상 컴퓨터와 연관시키는 용어이며 조금 혼란 스럽습니다. 작업 관리자는 실제로 “UAC 가상화”열을 호출합니다.

그렇다면 가상화 된 Windows에서 플래그 란 뜻입니까? Vista 이전 실행 파일을위한 호환성 레이어일까요?



답변

이것은 기본적으로 사용자가 올바른 쓰기 권한을 갖고 있지 않은 경우 파일 쓰기 시도를 리디렉션하는 파일 시스템 및 레지스트리 ‘래퍼’입니다. 자세한 내용은 UAC에 관한 Wikipedia 기사 :

사용자가 관리자 권한으로 실행될 것이라는 가정하에 작성된 응용 프로그램은 컴퓨터 전체 또는 시스템 디렉터리 (예 : Program Files) 또는 레지스트리 키에 쓰기를 시도했기 때문에 이전 버전의 Windows에서 제한된 사용자 계정으로 실행할 때 문제가 발생했습니다 (특히 HKLM). UAC는 파일 및 레지스트리 가상화를 사용하여 쓰기 작업 (및 후속 읽기)을 사용자 프로필 내의 사용자 별 위치로 리디렉션하여이를 완화하려고 시도합니다.

예를 들어, 응용 프로그램이 사용자에게 쓰기 권한이없는 “C : \ Program Files \ appname \ settings.ini”와 같은 디렉토리에 쓰기를 시도하면 쓰기가 “C : \ Users \ username \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini “에 있습니다. 리디렉션 기능은 승격되지 않은 32 비트 응용 프로그램에만 제공되며 특정 권한을 요청하는 매니페스트가 포함되어 있지 않은 경우에만 제공됩니다.


답변

Journeyman Geek은 가상화가 무엇인지 설명합니다. Windows가 가상화의 필요성을 어떻게 결정하는지 설명하겠습니다.

OS가 응용 프로그램 매니페스트 파일 (또는 PE 리소스)을 조사하고 매니페스트가 전혀 발견되지 않았거나 적절하지 않은 경우 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>

추신. 가상화는 레지스트리 (하위) 키와 같이 작동합니다. HKEY_LOCAL_MACHINEHKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE.


답변