전체 가상화
Full virtualization![]() | 이 글에는 여러 가지 문제가 있다.이 문제를 개선하거나 대화 페이지에서 토의하십시오.(이러한 템플릿 메시지를 제거하는 방법 및 시기 알아보기)
|
컴퓨터 과학에서 가상화는 1990년대 후반에 개발된 현대적인 기술로 시뮬레이션이나 에뮬레이션과는 다르다.가상화는 환경을 모델링하는 시뮬레이션이나 특정 종류의 가상 머신 환경과 같은 대상 환경을 복제하는 에뮬레이션과 달리 환경의 인스턴스를 생성하기 위해 사용되는 기술을 채택한다.완전한 가상화를 위해서는 전체 명령 집합, 입력/출력 작업, 인터럽트, 메모리 액세스 및 베어 머신에서 실행되는 소프트웨어에서 사용되는 다른 요소와 가상 머신에서 실행되도록 설계된 모든 하드웨어의 모든 중요한 기능을 여러 가상 머신 중 하나에 반영해야 한다.이러한 환경에서 원시 하드웨어에서 실행할 수 있는 소프트웨어는 가상 시스템 및 특히 모든 운영 체제에서 실행될 수 있다.완전한 가상화에 대한 분명한 테스트는 독립적으로 사용하도록 설계된 운영 체제가 가상 머신 내에서 성공적으로 실행될 수 있는지 여부다.
전체 가상화 또는 Type-1 가상화의 초석은 OS보다 높은 권한 수준에서 작동하는 하이퍼바이저 또는 슈퍼 운영 체제 입니다.이 하이퍼바이저 또는 슈퍼 OS에는 가상화 환경을 프로비저닝하고 보호하기 위한 두 가지 주요 기능이 필요하다.이 두 가지 특징은 다음과 같다.
- OS 독립 스토리지 관리를 통해 리눅스, 마이크로소프트 윈도우즈 또는 임베디드 환경과 같은 지원되는 모든 가상 환경에 리소스를 프로비저닝하고 이러한 환경을 무단 액세스로부터 보호하며,
- 물리적 컴퓨팅 리소스를 가상 환경에 할당하기 위한 가상화 환경 전환
하이퍼바이저, OS 및 사용자 모드, VMCS, VM-Exit 및 VM-Entry에 대한 권한 수준에 대한 자세한 설명은 Intel VT-x 또는 AMD-V를 참조하십시오.가상화는 60년대 후반과 70년대 초반의 IBM가상 머신혼동해서는 안 된다 구현과가.IBM시스템 아키텍처는 가상 머신의 보안이나 분리를 제공하지 않은 두 가지 형태의 Supervisor와 Program만 지원했기 때문이다.
다른 형태의 플랫폼 가상화에서는 특정 소프트웨어 또는 수정된 소프트웨어만 가상 머신 내에서 실행할 수 있다.완전한 가상화의 개념은 문헌에 잘 나타나 있지만, 항상 이 특정 용어로 언급되는 것은 아니다. 용어는 플랫폼 가상화를 참조하십시오.
에뮬레이션에 의해 구현된 가상화와 혼동하지 않는 가상 머신의 중요한 예는 IBM CP/CMS 운영 체제의 제어 프로그램에서 제공하는 것이었습니다.그것은 1967년에 IBM의 CP-40 연구 시스템으로 처음 입증되었다가, 1967–1972년에 CP/CMS의 오픈 소스를 통해 배포되었고, 1972년부터 현재까지 IBM의 VM 제품군에서 다시 구현되었다.각 CP/CMS 사용자에게는 시뮬레이션된 독립 실행형 컴퓨터가 제공되었다.그러한 각 가상 머신은 기본 머신의 완전한 기능을 가지고 있었고, (사용자의 경우) 가상 머신은 개인 시스템과 구별할 수 없었다.이 시뮬레이션은 포괄적이었으며, 하드웨어의 작동 원리 매뉴얼에 기초하였다.따라서 명령 집합, 주 메모리, 인터럽트, 예외 및 장치 액세스와 같은 요소를 포함시켰다.그 결과는 많은 사용자들 사이에서 멀티플렉스할 수 있는 단일 기계였다.
완전한 가상화는 하드웨어와 소프트웨어 요소의 적절한 결합을 통해서만 가능하다.예를 들어, IBM의 System/360 시리즈 대부분이 IBM System/360-67이라는 예외를 제외하고는 불가능했으며, IBM의 초기 System/370 시스템에서도 가능하지 않았다.IBM은 1972년 시스템/370 시리즈에 가상 메모리 하드웨어를 추가했는데, 이는 하이퍼바이저가 슈퍼바이저 및 프로그램 또는 사용자 모드에 대한 전체 액세스가 필요한 가상 머신을 적절히 제어할 수 있는 더 높은 권한 수준을 제공하는 Intel VT-x 링과 같지 않다.
마찬가지로 2005–2006년 AMD-V 및 Intel VT-x 확장을 추가하기 전까지는 x86 플랫폼에서 완전한 가상화가 가능하지 않았다(x86 가상화 참조).[citation needed]x86 플랫폼용 많은 플랫폼 하이퍼바이저가 AMD-V 및 Intel VT-x를 추가하기 전에도 완벽한 가상화를 주장했으며,예로는 Adeos, Mac-on-Linux, Mac용 Parallels Desktop, Parallels Workstation, VMware Workstation, VMware Server(이전의 GSX Server), VirtualBox, Win4BSD, Win4Lin Pro 등이 있다.예를 들어 VMware는 바이너리 변환이라는 기술을 사용하여 x86 소프트웨어를 즉시 자동 수정하여 "가상 머신을 통과"하는 지침을 다른 가상 머신의 안전 순서에 따라 대체하며, 이 기술은 완전한 가상화의 모습을 제공한다.[1]
완전한 가상화를 위한 핵심 과제는 I/O 지침과 같은 권한 있는 작업의 가로채기와 시뮬레이션이다.지정된 가상 머신 내에서 수행되는 모든 작업의 영향은 해당 가상 머신 내에 유지되어야 하며, 가상 운영은 다른 가상 머신, 제어 프로그램 또는 하드웨어의 상태를 변경할 수 없다.일부 기계 지침은 메모리 위치 및 산술 레지스터와 같이 제어 프로그램에 의해 관리되는 요소 내에 완전히 포함되기 때문에 하드웨어에 의해 직접 실행될 수 있다.그러나 "가상 머신을 뚫는" 다른 지시사항들은 직접 실행할 수 없으며 대신 갇히고 시뮬레이션해야 한다.이러한 지침은 가상 시스템 외부에 있는 상태 정보에 액세스하거나 영향을 준다.
완벽한 가상화는 다음과 같은 이점을 제공하는 데 매우 성공적임:
- 여러 사용자 간에 컴퓨터 시스템 공유
- 사용자 상호 격리(및 제어 프로그램)
- 신뢰성, 보안 및 생산성 향상을 위해 새로운 하드웨어 에뮬레이션
참고 항목
- 플랫폼 가상화 소프트웨어 비교
- CP/CMS
- 하드웨어 지원 가상화
- 하이퍼재킹
- 하이퍼바이저
- I/O 가상화
- LPAR
- 운영 체제 레벨 가상화
- 반가상화
- 플랫폼 가상화
- Popek 및 Goldberg 가상화 요구 사항
- PR/SM
- 가상 시스템
참조
- ^ VMware (11 Sep 2007). "Understanding Full Virtualization, Paravirtualization, and Hardware Assist" (PDF). VMware. Archived (PDF) from the original on 2008-05-11. Retrieved 2021-05-20.
플랫폼 가상화 및 (이력 소스는) CP/CMS에 나열된 특정 소스를 참조하십시오.