정의
가상 장치(Virtual Device)는 물리적인 하드웨어가 실제로 존재하지 않지만, 소프트웨어적으로 구현되어 실제 장치와 동일한 인터페이스와 동작을 제공하는 논리적인 장치를 의미한다. 운영 체제나 응용 프로그램은 가상 장치를 실제 장치처럼 인식하고 사용할 수 있다.
주요 특징
| 특징 | 설명 |
|---|---|
| 소프트웨어 기반 | 물리적인 부품이 아닌, 커널 모듈, 드라이버 또는 하이퍼바이저 등에 의해 구현된다. |
| 하드웨어 추상화 | 실제 하드웨어와 동일한 API를 제공함으로써 프로그램이 하드웨어 의존성을 최소화한다. |
| 동적 생성/삭제 | 필요에 따라 런타임에 생성·삭제가 가능하며, 시스템 재부팅 없이 변경할 수 있다. |
| 자원 절감 | 물리적인 장치를 추가로 구입하거나 유지보수할 필요가 없어 비용 및 전력 소모를 절감한다. |
주요 종류 및 예시
-
가상 디스크(Virtual Disk)
- 파일 시스템 이미지(.iso, .vmdk 등)나 원격 스토리지를 마치 물리 디스크처럼 마운트한다.
- 예: VMware, VirtualBox의 가상 하드 디스크.
-
가상 네트워크 인터페이스(Virtual Network Interface Card, VNIC)
- 가상 머신이나 컨테이너가 물리 네트워크와 통신할 수 있도록 가상의 NIC를 제공한다.
- 예: Linux의
veth, Windows의 Hyper-V 가상 스위치.
-
가상 시리얼 포트(Virtual Serial Port)
- 시리얼 통신을 에뮬레이션하여 디버깅이나 장치 시뮬레이션에 사용된다.
- 예: QEMU의
-serial옵션.
-
가상 입력 장치(Virtual Input Device)
- 키보드, 마우스, 터치스크린 입력을 소프트웨어적으로 전달한다.
- 예: X 서버의
xinput가상 디바이스.
-
가상 오디오 장치(Virtual Audio Device)
- 소리 출력을 가상화하여 여러 애플리케이션이 공유하거나 원격 전송이 가능하게 한다.
- 예: PulseAudio의 가상 싱크.
사용 분야
- 가상화: 하이퍼바이저(예: VMware ESXi, Microsoft Hyper‑V, KVM)에서 가상 머신에 물리적 자원을 할당하고 관리한다.
- 컨테이너: Docker, Kubernetes 등에서 네트워크와 스토리지 인터페이스를 가상화한다.
- 시뮬레이션·테스트: 실제 하드웨어가 없거나 비용이 높은 경우, 가상 장치를 이용해 소프트웨어를 검증한다.
- 임베디드 시스템 개발: 개발 단계에서 실제 장치가 아직 준비되지 않은 경우, 가상 장치를 통해 펌웨어·드라이버를 테스트한다.
구현 방식
- 커널 모드 드라이버: OS 커널 내부에 가상 장치 드라이버를 로드하여 인터페이스를 제공한다. (예: Linux
loop디바이스) - 유저 모드 프로세스: 사용자 공간 프로그램이 가상 장치와 통신하도록 설계한다. (예:
fuse파일 시스템) - 하이퍼바이저: 하이퍼바이저 레이어에서 물리 자원을 추상화하고 가상 장치를 생성한다.
어원
- 가상(假想): 한자 ‘가(假)’는 ‘거짓, 가짜’를, ‘상(想)’은 ‘생각, 상상’을 의미한다. 합쳐서 ‘실제와는 다른, 상상에 의한 것’이라는 의미를 갖는다.
- 장치(裝置): ‘설비·기구’를 나타내는 한자어로, 물리적 혹은 논리적인 시스템 요소를 지칭한다.
따라서 “가상 장치”는 “실제 물리적 형태를 갖지 않은, 소프트웨어적으로 구현된 장치”라는 의미로 사용된다.
관련 표준·문서
- IEEE 802.1Q (가상 LAN)
- Linux Kernel Documentation – “Virtual Devices”
- Open Virtualization Format (OVF)
참고
- 위 내용은 일반적인 컴퓨팅 및 가상화 분야에서 인정받는 개념을 기반으로 작성되었으며, 특정 제품이나 구현체에 대한 상세 사양은 해당 제조사의 공식 문서를 참조한다.