Hypervisor(하이퍼바이저)
- 가상화 기술을 사용하여 여러 개의 OS를 단일한 호스트 시스템에서 동시에 실행할 수 있게 하는 소프트웨어 레이어

Emulation과 Simulation
- Emulation = 실제 하드웨어나 소프트웨어의 동작을 모방하여 시스템을 복제한 뒤 VM에서 해당 시스템의 동작을 재현하는 것
- Simulation = 호스트 머신에 존재하는 하드웨어 및 아키텍처를 이용하여 가상머신에 제공하는 것
QEMU(Quick-Emulator)
- 다양한 종류의 하드웨어를 소프트웨어로 구현해둔 Hypervisor
- Binary Translation을 수행함으로써 호환성 문제 해결 → 다양한 OS를 VM에서 실행할 수 있도록 함
※ Binary Translation(이진 변환) = 하나의 프로세서 아키텍처에서 생성된 기계어 코드를 다른 아키텍처의 기계어 코드로 변환하는 기술 (재컴파일하여 최적화)
- 호스트 머신과 독립적으로 가상화된 하드웨어 및 아키텍처를 동작 시킬 수 있음
- 폭넓은 가상화 옵션에 비해 성능이 떨어지며 KVM에 비하여 속도가 느림
KVM(Kernel-based Virtual Machine, 커널 기반 가상 머신)
- 같은 종류의 CPU 아키텍처만 가상화할 수 있는 Hypervisor → 하드웨어 가상화
(CPU 아키텍처는 하드웨어의 하위 개념)
- Binary Translation 수행 X -> VM이 생성한 명령어를 호스트 머신이 직접 처리하며 성능이 대폭 향상
- 커널 모듈로 동작하며 반 가상화 인터페이스를 다양한 OS에 대해 지원함으로써 장치 드라이버의 전 가상화로 인해 발생하는 성능 감소를 해결할 수 있음
- 전 가상화(Full Virtualization) = 물리 환경에서 동작하는 OS와 DD를 그대로 가상 머신에서 사용
- 반 가상화(Para-virtualization) = 수정된 Guest OS 혹은 DD를 사용하는 경우
'CS > 네트워크' 카테고리의 다른 글
CORS(Cross-Origin Resource Sharing, 교차 출처 자원 공유) (0) | 2024.10.23 |
---|---|
SSE, Polling, Socket (0) | 2024.04.26 |
클러스터(Cluster) (0) | 2023.12.13 |
CLI vs REST 비교 (0) | 2023.12.13 |
Ceph (0) | 2023.12.11 |
댓글