아래 답변에 많은 것을 추가했지만 원래의 답변은 그대로 유지했습니다.
TL : DR : 가상 머신은 하나의 도구이며 다른 OS 내에서 하나의 OS를 쉽게 사용할 수 있지만 시스템을 최대한 활용하기 위해서는 컴퓨터의 기본 용도가 무엇인지 잘 알고 있어야합니다. .
귀하의 질문은 가상 머신 사용의 그래픽 및 인터페이스 성능 가능성에 크게 기울어 진 것이므로 그 가능성에 대해 대답하겠습니다.
주된 문제는 게스트 운영 체제가 장치에 대한 액세스를 안전하게 관리하고 (따라서 게스트 OS가 호스트를 짓밟거나 침입하는 것을 방지하기 위해) 사용하려는 모든 장치를 "에뮬레이션"해야한다는 것입니다.
이는 게스트 OS에서 볼 수 있는 그래픽 카드가 호스트 OS에서 볼 수있는 그래픽 카드와 동일 하지 않다는 것을 의미합니다. 게스트에서 3D 렌더링과 같은 기능을 활성화 할 수 있지만 게스트의 중간 드라이버가 처리하여 3D를 렌더링하기 위해 요청을 안전한 방식으로 호스트에 전달합니다.
지원되는 HDMI 디스플레이에 블루 레이 디스크를 안전하게 재생하는 데 필요한 기능과 같은 기능이 게스트 그래픽 카드 드라이버에 의해 에뮬레이션되므로 작동하지 않을 가능성이 매우 높습니다.
기본적으로 호스트에서 하드웨어 지원이 필요한 것은 게스트에서 제대로 작동하지 않을 수 있습니다. WiDi의 작동 방식을 모르지만 비디오 카드 메모리를 텔레비전에 공유하기 위해 비디오 카드 메모리에 직접 액세스해야하는 경우 호스트 (Linux) 운영 체제에서 사용하지 않으면 작동하지 않습니다.
성능 측면에서 VM은 기본 OS 인 경우와 거의 비슷하지만 하드 드라이브 장치 액세스 또는 호스트가 사용중인 다른 리소스와의 경합 측면에서는 항상 위약금이 부과됩니다.
처음에는 ...
처음에는 컴퓨터가 있었는데 그 컴퓨터는 하나의 운영 체제 만 실행할 수있었습니다. 이 운영 체제는 시스템에있는 특정 프로세서 및 기타 하드웨어에서만 제대로 실행되는 경향이 있었으며, 다른 운영 체제는 사용 가능한 기본 하드웨어에서만 제대로 실행되지 않았습니다.
사람들이 다른 플랫폼의 특정 플랫폼에 대해 소프트웨어를 사용할 수 있으려면 (예 : Commodore Amiga에서 Pre-OSX MacOS 소프트웨어 사용) "소프트웨어 설치"이상이 필요했습니다. 이 두 시스템은 완전히 다른 프로세서 아키텍처와 보조 하드웨어를 사용했습니다. 하나의 OS가 다른 시스템의 하드웨어에서 실행될 수있는 방법은 없었습니다.
에뮬레이션
에뮬레이션은 가상화의 사촌과 유사하며 실제로 관련이 있으며 유사한 목표를 가지고 있습니다. 한 사람은 다른 사람을 그대로 be습니다.
이러한 서로 다른 하드웨어 플랫폼의 의미는 컴퓨터의 다른 OS에서 하나의 소프트웨어를 사용하려면 해당 컴퓨터의 모든 기능 을 분석하여 작동 방식을 확인한 다음 하드웨어 부분과 같은 방식으로 이것은 모든 부분, 프로세서, 그래픽 컨트롤러, 메모리 컨트롤러, 모든 것에 대해 수행되어야했습니다 .
그런 다음이 모든 조각들이 합쳐지고 각 조각이 약간의 하드웨어를 모방 할 때 우리는 이것을 에뮬레이트 된 기계 라고 불렀습니다 . 그런 다음이 에뮬레이트 된 머신 위에서 운영 체제를 실행합니다.
문제는이 방법이 느리다는 것입니다. 원래 하드웨어 속도의 1/10 속도를 달성 할 수 있다면 운이 좋았습니다. 최고 속도 근처의 어느 곳에서나 에뮬레이트 된 컴퓨터를 실행하려면 말 그대로 대상 에뮬레이션 된 머신보다 몇 배 더 빠른 머신이 필요했습니다.
그래서 무엇이 바뀌 었습니까?
글쎄, 여기 멋진 것이 있습니다. 별로. 유일한 큰 변화는 하드웨어 플랫폼이 표준화되었다는 것입니다. 우리는 모든 OS에 대한 커스텀 하드웨어를 얻지 못했고 OS는 모두 단일 표준 플랫폼으로 이동했거나 생성되었습니다.
요즘 Mac을 구성하는 구성 요소는 대체로 PC를 구성하는 구성 요소와 동일합니다. 리눅스는 항상 PC 하드웨어에서 실행되었으므로 새로운 것은 없습니다.
한 OS에서 다른 OS로 소프트웨어를 실행하려는 경우 오랫동안 에뮬레이션이 표준이었습니다. 또는 원하는대로 운영 체제를 이중 부팅하고 실행할 수 있지만 Linux 코딩에서 Windows 게임으로 이동하려는 경우 고통스럽고 성가신 일입니다.
그리고..
기본 하드웨어가 동일하므로 두 OS가 모두 공유 할 수없는 이유는 무엇입니까?
우리는 QEMU와 WiNE 및 유사한 소프트웨어 솔루션으로 끝났습니다. QEMU는 오랫동안 컴퓨터의 하드 에뮬레이션으로 선호되어 왔으며 WiNE는 OS API 호출을 트랩 및 패치하고 코드가 프로세서에서 기본적으로 실행되도록하여 Windows 응용 프로그램을 Linux에서 실행할 수있었습니다.
QEMU는 WiNE와 비슷한 작업을 수행했지만 훨씬 낮은 수준에서 수행했습니다. 여전히 효과적으로 에뮬레이터이지만 모든 하드웨어 호출에 대해 "패치 및 리디렉션"방법을 사용하여 모든 호출이 자체 에뮬레이트 된 하드웨어 플랫폼으로 이동했습니다. 프로그램에서 대부분의 작업 코드는 실제로 하드웨어 호출을 포함하지 않았기 때문에 (대부분은 결과를 표시하기 위해 호출이있는 간단한 계산 스트림입니다).
이로 인해 실제 에뮬레이션되지 않은 머신의 거의 모든 프로그램에 대해 즉각적인 속도 향상이 이루어졌습니다 . 프로그램은 머신을 얼마나 잘 에뮬레이트 할 수 있는지가 아니라 "가상"하드웨어에 얼마나 많이 액세스했는지에 따라 속도가 느려졌습니다. 속도의 1/10 속도로 달리기보다는 이제 마치 기본 속도와 거의 같은 속도로 달리고있었습니다.
이제 프로세서에서 실행중인 경우 왜 그래픽 카드가 작동하지 않습니까?
이 새로운 가상 머신의 유일한 문제점은 운영 체제 가 컴퓨터에있는 모든 하드웨어를 직접 제어 할 수 있으므로 메모리 관리 및 하드웨어 액세스 제어와 같은 기능을 제공 할 수 있다고 가정한다는 것 입니다.
이것이 의미하는 바는 가상 머신이 적어도 방법으로는 에뮬레이션에서 완전히 벗어날 수 없다는 것입니다. "게스트"운영 체제가 해당 하드웨어를 완전히 제어 할 수 있도록 가상 시스템에서 실행중인 OS에 그래픽 카드 또는 네트워크 카드와 같은 소프트웨어의 특정 기능을 에뮬레이션해야합니다 . 기본 OS (보안 요구 사항에 따라)는 하드웨어에 직접 액세스하는 프로그램으로부터 보호해야하며 이로 인해 게스트 운영 체제가 제한됩니다.
이를 위해서는 컴퓨터의 모든 부분에 대해 "가상"하드웨어 조각을 에뮬레이션해야합니다. 모든 코드는 현재 프로세서에서 기본적으로 실행되므로 느리지는 않지만 가상 하드웨어의 각 부분은 소프트웨어로 작성해야하며, 성능면에서 약간의 페널티와 기능면에서 큰 페널티가 발생할 수 있습니다. .
즉, 가상 그래픽 카드는 실제 그래픽 카드 와 동일한 기능을 가질 수없고 가질 수 없습니다 . 최고의 성능을 얻기 위해 가상 하드웨어는 가장 많이 사용되는 기능을 지원하도록 작성 될 수 있으며 이제 가상 머신에서 3D 렌더링이 가능하지만 실제 하드웨어와 동일하지는 않습니다.
이는 호스트 운영 체제가 최상의 하드웨어 옵션을 얻는 반면 게스트 운영 체제는 일반 하드웨어 옵션을 얻는다는 것을 의미 합니다.
가상 머신은 실제 하드웨어만큼 좋지 않으며, 한 시스템에서 다른 시스템으로 도구를 사용하여보다 쉽게 작업 할 수있는 도구 일뿐입니다.
어떻게해야합니까?
컴퓨터의 주요 목적을 원하는 것을 선택해야합니다.
고성능 그래픽 카드에서 최신 게임을 플레이하고 동일한 그래픽 카드를 사용하여 400 "HDMI TV에서 풀 1080p 영화를 재생하지만 때로는 일부 Linux 프로그래밍 만 원한다면 Windows가 최선의 방법 일 것입니다 Linux를 게스트로 사용합니다.
Linux 커널에서 작업하고 컴퓨터의 장치에 대한 하드웨어 드라이버를 만들고 때로는 Windows 용 소프트웨어를 작성하여 "표준"Windows 시스템과 비슷한 수준으로 테스트하려는 경우 Linux를 사용하는 것이 좋습니다. 호스트로서 그리고 게스트로서 Windows.
Mac의 사용 편의성을 좋아하지만 Windows 용 프로그램을 원하거나 Windows 전용 소프트웨어 패키지가 필요한 경우 옵션이기도합니다.
나는 리눅스가 게임을 할 수 없거나 MacOS가 프로그래머에게 적합하지 않다는 말은 아닙니다. 어떤 OS가 당신이하고 싶은 것에 더 적합 할 수 있는지 말할 수있는 사람은 바로 당신 입니다.
당신은 정말 당신이 당신의 컴퓨터가 수행 할 작업을 이해해야 첫째 . 그래야만 가상 머신이 할 수있는 일을 해결할 수 있습니다.
질문에 대답하려면 :
Will the graphics and video rendering quality will be just as good?
에뮬레이트 된 그래픽 카드는 호스트 그래픽 카드의 일부 기능을 제공 할 수 있지만 하드웨어 비디오 가속 또는 CUDA 프로그래밍 기능과 같은 복잡한 기능은 지원하지 않을 수 있습니다.
Will there be any hardware issue such as using HDMI or WiDi?
다시 말하지만, 이러한 추가 기능은 사용 가능한 에뮬레이트 / 가상 하드웨어의 기능이 아닐 수 있습니다.
Will applications run just as smoothly as long as enough RAM is allocated?
대부분의 응용 프로그램 (특정 하드웨어 기능이 필요하지 않은 한)은 호스트 나 메모리 게스트가 굶주 리지 않는 한 실제 하드웨어에서와 거의 같은 속도로 실행 됩니다.