WIPIVERSE

가상 장치

정의
가상 장치(Virtual Device)는 물리적인 하드웨어가 실제로 존재하지 않지만, 소프트웨어적으로 구현되어 실제 장치와 동일한 인터페이스와 동작을 제공하는 논리적인 장치를 의미한다. 운영 체제나 응용 프로그램은 가상 장치를 실제 장치처럼 인식하고 사용할 수 있다.

주요 특징

특징 설명
소프트웨어 기반 물리적인 부품이 아닌, 커널 모듈, 드라이버 또는 하이퍼바이저 등에 의해 구현된다.
하드웨어 추상화 실제 하드웨어와 동일한 API를 제공함으로써 프로그램이 하드웨어 의존성을 최소화한다.
동적 생성/삭제 필요에 따라 런타임에 생성·삭제가 가능하며, 시스템 재부팅 없이 변경할 수 있다.
자원 절감 물리적인 장치를 추가로 구입하거나 유지보수할 필요가 없어 비용 및 전력 소모를 절감한다.

주요 종류 및 예시

  1. 가상 디스크(Virtual Disk)

    • 파일 시스템 이미지(.iso, .vmdk 등)나 원격 스토리지를 마치 물리 디스크처럼 마운트한다.
    • 예: VMware, VirtualBox의 가상 하드 디스크.
  2. 가상 네트워크 인터페이스(Virtual Network Interface Card, VNIC)

    • 가상 머신이나 컨테이너가 물리 네트워크와 통신할 수 있도록 가상의 NIC를 제공한다.
    • 예: Linux의 veth, Windows의 Hyper-V 가상 스위치.
  3. 가상 시리얼 포트(Virtual Serial Port)

    • 시리얼 통신을 에뮬레이션하여 디버깅이나 장치 시뮬레이션에 사용된다.
    • 예: QEMU의 -serial 옵션.
  4. 가상 입력 장치(Virtual Input Device)

    • 키보드, 마우스, 터치스크린 입력을 소프트웨어적으로 전달한다.
    • 예: X 서버의 xinput 가상 디바이스.
  5. 가상 오디오 장치(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)

참고

  • 위 내용은 일반적인 컴퓨팅 및 가상화 분야에서 인정받는 개념을 기반으로 작성되었으며, 특정 제품이나 구현체에 대한 상세 사양은 해당 제조사의 공식 문서를 참조한다.
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기