장치 드라이버란 무엇인가?
장치 드라이버(Device Driver)는 컴퓨터의 커널(Kernel)이 하드웨어의 작동 원리를 일일이 알 필요 없이 다양한 하드웨어와 통신할 수 있도록 해주는 소프트웨어입니다. 즉, 컴퓨터에 연결된 하드웨어 부품을 제어하고 적절한 인터페이스를 제공함으로써 운영체제가 해당 하드웨어를 사용할 수 있게 만들어주는 역할을 합니다. 덕분에 운영체제나 커널은 하드웨어의 세부 작동 방식을 몰라도 되며, 표준화된 공통 인터페이스를 통해 하드웨어와 소통할 수 있습니다.
결국 장치 드라이버의 목적은 해당 하드웨어가 원활하게 작동하도록 돕고, 다양한 운영체제 환경에서도 하드웨어를 문제없이 사용할 수 있도록 하는 것입니다.

장치 드라이버의 종류 – 커널 드라이버와 사용자 모드 드라이버
BIOS부터 가상 머신에 이르기까지, 컴퓨터와 관련된 거의 모든 장치에는 각각의 드라이버가 존재합니다. 장치 드라이버는 크게 두 가지로 분류할 수 있습니다.
- 커널 장치 드라이버(Kernel Device Drivers)
- 사용자 모드 장치 드라이버(User Mode Device Drivers)
커널 장치 드라이버
커널 장치 드라이버는 운영체제와 함께 메모리에 로드되는 기본적인 드라이버입니다. 드라이버 전체가 아니라 포인터 형태로 상주하여, 필요할 때 즉시 호출될 수 있도록 준비됩니다. BIOS, 메인보드, 프로세서 등과 관련된 드라이버들이 여기에 속합니다.
다만 커널 드라이버에는 한 가지 단점이 있습니다. 호출되면 RAM에 로드되며 페이지 파일(가상 메모리)로 옮겨질 수 없기 때문입니다. 따라서 여러 개의 장치 드라이버가 동시에 실행되면 시스템 성능이 저하될 수 있습니다. 이것이 바로 각 운영체제마다 최소 시스템 요구 사항이 존재하는 이유입니다. 운영체제는 이미 커널 드라이버에 필요한 리소스를 계산에 포함하고 있으므로, 최종 사용자는 추가 메모리 요구 사항을 걱정할 필요가 없습니다.
사용자 모드 장치 드라이버
사용자 모드 장치 드라이버는 사용자가 컴퓨터를 사용하는 동안 실행되는 드라이버로, 커널 장치 외에 사용자가 컴퓨터에 새로 연결한 장치들을 위한 것이라고 볼 수 있습니다. 대부분의 플러그 앤 플레이(Plug and Play) 장치용 드라이버가 이 범주에 속합니다. 사용자 모드 드라이버는 디스크에 저장할 수 있어 시스템 리소스에 큰 부담을 주지 않습니다. 다만 게임 기기 관련 드라이버는 반응 속도를 위해 주 메모리(RAM)에 유지하는 것이 좋습니다.
참고: .INF 파일을 이용해 드라이버를 수동으로 설치하는 방법도 함께 확인해 보세요.
블록 드라이버와 문자 드라이버
데이터를 읽고 쓰는 방식에 따라 장치 드라이버는 블록 드라이버(Block Driver) 또는 문자 드라이버(Character Driver)로 나뉩니다. 하드 디스크, CD-ROM, USB 드라이브 등은 사용 방식에 따라 어느 쪽에 속할 수 있습니다.
문자 드라이버
문자 드라이버는 직렬 버스에서 사용되며, 한 번에 한 문자(일반적으로 1바이트)씩 데이터를 전송합니다. 직렬 포트에 연결된 장치는 문자 드라이버를 사용합니다. 마우스가 대표적인 직렬 장치로, 문자 장치 드라이버를 사용합니다.
블록 드라이버
블록 드라이버는 한 번에 여러 문자, 즉 데이터 블록 단위로 읽고 씁니다. 보통 블록 장치 드라이버는 하나의 블록을 생성하고 그 블록이 담을 수 있는 만큼의 정보를 한꺼번에 가져옵니다. 하드 디스크가 대표적인 예이며, CD-ROM 역시 블록 장치 드라이버를 사용합니다. 단, CD-ROM은 응용 프로그램이 호출할 때마다 커널이 장치가 여전히 컴퓨터에 연결되어 있는지 확인해야 한다는 특징이 있습니다.
범용 드라이버와 OEM 드라이버
장치 드라이버는 범용(Generic) 드라이버이거나 OEM 전용 드라이버일 수 있습니다. 운영체제에 기본 포함된 드라이버는 대개 범용 드라이버입니다. 범용 드라이버는 특정 유형의 장치라면 브랜드에 관계없이 사용할 수 있는 드라이버입니다. 예를 들어 Windows 10에는 별도의 소프트웨어 설치 없이 바로 작동하는 범용 드라이버가 다수 내장되어 있습니다.
하지만 범용 드라이버만으로는 부족한 경우도 있습니다. 이럴 때 원본 장비 제조사(OEM)가 자체적으로 개발한 드라이버, 즉 OEM 드라이버가 필요합니다. OEM 드라이버는 운영체제 설치 후 별도로 설치해야 합니다. 과거의 컴퓨터는 표준화되어 있지 않아 메인보드 드라이버까지 외부에서 설치해야 했지만, 그것은 Windows XP 시절의 이야기입니다. 요즘은 일부 브랜드를 제외하고 대부분의 기본 드라이버 세트가 운영체제에 이미 포함되어 있습니다.
참고: 펌웨어(Firmware)란 무엇인지도 함께 알아두면 도움이 됩니다.
가상 장치 드라이버
가상 장치를 위한 드라이버를 가상 장치 드라이버(Virtual Device Driver)라고 합니다. 우리는 종종 소프트웨어로 하드웨어를 에뮬레이션하는데, 이런 가상 하드웨어를 구동하는 소프트웨어가 바로 가상 장치 드라이버입니다. 예를 들어 VPN을 사용하면 인터넷에 안전하게 연결하기 위한 가상 네트워크 카드가 생성될 수 있습니다. 실제 물리적 카드가 아니라 VPN 소프트웨어가 만든 것이지만, 이 카드 역시 장치 드라이버가 필요하며 해당 VPN 소프트웨어가 가상 장치 드라이버를 설치해 줍니다.
이처럼 장치 드라이버에는 여러 종류가 있으며, 한두 가지 범주만으로 설명하기는 어렵습니다. 이 글에서는 장치 드라이버가 무엇인지 살펴보고, 커널·사용자 모드 드라이버, 범용·OEM 드라이버, 가상 장치 드라이버 등 다양한 드라이버 유형과 그 차이점까지 정리해 보았습니다.
다음 글: Windows는 장치 드라이버를 어디에 저장할까요?