본문 바로가기

프로그램

VDD(Virtual Device Driver(가상 장치 드라이버))

출처 : 한국표준협회
http://www.kisi.or.kr/information/information_detail.asp?page=5&idx=1525&selCd=05&txtKey=
제목   VDD(Virtual Device Driver(가상 장치 드라이버))
작성자     조회수   196
기술분류   컴퓨터/주변장치
전문위원회분류   사무기기
표준구분   기술정보
개요   윈도우에서, 가상 장치 드라이버는 하드디스크 컨트롤러, 키보드, 그리고 직렬 및 병렬 포트 등을 포함한 컴퓨터의 주요 하드웨어 주변 장치들을 위한 프로그램이다. 이것들은 수정 가능한 설정치들을 가지고 있는 하드웨어 장치의 상태를 유지하는데 사용된다. 가상 장치 드라이버들은 하드웨어 인터럽트가 아니라, 시스템으로부터 발생하는 소프트웨어 인터럽트를 처리한다.
윈도우에서 가상 장치 드라이버는 VxD라는 이름을 가지고 있다. V는 가상(Virtual)을 의미하며, D는 장치 드라이버(Device Driver)를 의미한다. 마지막으로 x는 가상화 시킬 장치의 약자가 들어가는 자리이다. 예를 들어 VDD(Virtual Display Device driver), VKD(Virtual Keyboard Driver), VCOMMD(Virtual Communication Driver), VDMAD(Virtual DMA Driver), VPIC(Virtual Programmable Interrupt Controller)등이 있다.
Windows95/98에서부터 OS는 가상기계(VM : Virtual Machine)를 다루는 본격적인 운영체제가 되었으며, 이러한 VM의 개념은 원래의 미니컴퓨터 이상의 UNIX에서 온 것이다. VM은 각각 자기 혼자 컴퓨터의 모든 자원, 예를 들면 키보드, 모니터, 마우스 등을 혼자서 차지하고 있는 것처럼 어플리케이션을 속이는 완벽한 환경이다. 여기서부터 윈도우 디바이스 드라이버에 "가상"이라는 말이 들어가게 된다. 왜냐하면 실제로 하나뿐인 장치가 각각의 VM마다 개별적으로 각각 존재하는 것처럼 속여주는 책임을 가상 디바이스 드라이버가 하게 되었기 때문이다.
이때부터 디바이스 드라이버의 확장자는 *.vxd가 되었고 그 역할도 단순히 하드웨어를 제어하는 것을 넘어서서 VM을 관리하고 결국은 OS의 속 모습이 되어버린 것이다. MOUSE.drv와 같은 구식 윈도우 드라이버들은 Windows98에서는 일종의 껍데기에 불과하며, 실제의 모든 동작은 VxD에서 하고 있다. Windows98에서는 이러한 *.drv의 디바이스 드라이버들을 Ring 3 DLL드라이버(Ring 3 DLL Driver)라고 부른다. 즉, *.drv가 Windows98에서 원래의 디바이스 드라이버 역할을 한 다기 보다는 일종의 Windows 3.1의 16비트 DLL과 똑같은 역할을 하고 있기 때문이다. 실제로 OS는 단지 VxD의 하위 서비스를 DLL등으로 껍데기를 하나 씌워서 편리한 인터페이스를 구축하는 역할이 되어버렸고, 실제 모든 OS의 서비스는 사실상 VxD가 해주어야만 한다.
Windows NT에서는 NTVDM하에서 도스용 응용 프로그램이 실행되는데, 대체로 도스용 응용 프로그램들은 시스템 하드웨어를 직접 제어하려는 경향이 있다. NTVDM에서 실행되는 VDD(virtual device driver)는 이러한 요구를 가로채서 Windows NT의 32비트 디바이스 드라이버로 해당 요구를 전달하는 역할을 한다. 물론 이는 도스 기반의 응용 프로그램에게는 감춰진 시스템 내부 작용이다.
각 디바이스 드라이버는 디바이스 제작자가 해당 드라이버를 제작하여 공급하고 있다
표준화 기관/단체   Microsoft
관련표준   VDI(Virtual Device Interface:가상 장치 인터페이스)
연구개발프로젝트   Jan. 2001 ­Apr. 2001. Virtual Device Driver for Linux
제품   Windos 9x,Windows NT, Wndows XP
Windows 95/98 Device Driver Development Kit