장치 드라이버
1. 개요
1. 개요
장치 드라이버는 컴퓨터에서 하드웨어 장치를 운영체제에 연결하기 위해 필요한 소프트웨어이다. 주요 목적은 하드웨어의 복잡한 기능을 추상화하여 운영체제나 응용 프로그램이 표준화된 방식으로 장치를 사용할 수 있게 하는 것이다. 예를 들어, 프린터나 디스플레이 모니터와 같은 새 하드웨어를 구입하면, 해당 장치를 정상적으로 작동시키기 위해 관련 드라이버를 설치해야 한다. Windows 95까지는 '장치 제어기'라는 순화어로 불리기도 했다.
드라이버는 일반적으로 하드웨어 제조사가 제공하며, 운영 체제 차원에서도 기본적인 드라이버를 포함하는 경우가 많다. 그러나 장치의 최적 성능이나 특수 기능을 활용하려면 제조사가 제공하는 전용 드라이버를 설치하는 것이 좋다. 사용 중인 드라이버에 문제가 발생하면, 최신 버전으로 업데이트하거나 반대로 이전 안정적인 버전으로 롤백하는 조치가 필요할 수 있다.
이 소프트웨어는 커널 모드 드라이버와 유저 모드 드라이버로 구분될 수 있으며, 관리하는 장치의 종류에 따라 문자 디바이스, 블록 디바이스, 네트워크 디바이스용 드라이버 등으로도 분류된다. GPU 드라이버, 사운드 드라이버, 네트워크 드라이버 등이 대표적인 예시이다.
2. 상세
2. 상세
장치 드라이버는 컴퓨터에서 하드웨어 장치를 운영체제에 연결하기 위해 필요한 소프트웨어이다. 그 주요 목적은 하드웨어의 복잡한 기능을 추상화하여 운영체제나 응용 프로그램이 표준화된 방식으로 장치를 제어하고 데이터를 교환할 수 있게 하는 것이다. Windows 95까지는 '장치 제어기'라는 순화어로도 불렸다.
새로운 프린터나 디스플레이 모니터 같은 하드웨어를 구입하면, 해당 장치를 정상적으로 작동시키기 위해 관련 드라이버를 새로 설치해야 한다. 또한 기존 드라이버에 문제가 발생하면, 최신 버전으로 업데이트하거나 오히려 이전의 안정적인 버전으로 롤백해야 하는 경우도 있다. 이러한 드라이버는 주로 하드웨어 제조사에서 제공하며, 운영 체제 차원에서도 기본적인 드라이버를 포함하고 있지만, 제조사가 제공하는 전용 드라이버를 설치해야 장치의 모든 기능과 최적의 성능을 활용할 수 있다.
드라이버는 하드웨어와 운영체제 사이의 필수적인 번역가이자 관리자 역할을 한다. 따라서 드라이버가 없거나 호환되지 않으면, 물리적으로 컴퓨터에 연결된 장치라도 운영체제가 인식하거나 제어할 수 없다. 이는 제조사가 지원을 중단한 오래된 하드웨어를 최신 운영체제에서 사용할 때 큰 장벽으로 작용하기도 한다.
3. 장치의 종류
3. 장치의 종류
3.1. 문자 디바이스
3.1. 문자 디바이스
문자 디바이스는 바이트 또는 문자 스트림 단위로 순차적인 입출력을 수행하는 장치를 위한 드라이버 범주이다. 이는 블록 디바이스나 네트워크 디바이스와 구분되는 장치 분류 방식으로, 주로 유닉스 계열 운영체제에서 사용되는 개념이다. 문자 디바이스 드라이버는 데이터를 연속적인 스트림으로 처리하며, 임의 접근이 불가능하고 순차 접근만 가능한 것이 특징이다.
대표적인 문자 디바이스의 예로는 키보드, 마우스, 사운드 카드, 직렬 포트(UART) 등이 있다. 이러한 장치들은 데이터를 고정된 크기의 블록이 아닌, 시간에 따라 연속적으로 흐르는 바이트 스트림으로 주고받는다. 따라서 데이터의 타이밍과 지터에 매우 민감하며, 안정적인 전송을 위해 버퍼를 활용하는 경우가 일반적이다.
GPU와 같은 외부 연산장치도 전통적으로는 이 범주에 포함되지만, 실제 내부 구조와 제어 방식은 상당히 다르다. GPU는 자체적인 명령어 세트와 메모리 관리 체계를 갖추고 있어, 일반적인 문자 디바이스 드라이버보다 훨씬 복잡한 드라이버 구조를 요구한다.
이러한 분류는 하드웨어의 근본적인 입출력 방식을 반영한 것으로, 윈도우나 마이크로프로세서와 같은 다른 환경에서도 하드웨어를 직접 제어할 때 유사한 접근법이 적용된다. 문자 디바이스 드라이버는 장치의 하드웨어적 특성을 운영체제 커널이 이해할 수 있는 표준화된 인터페이스로 추상화하는 핵심 역할을 수행한다.
3.2. 블록 디바이스
3.2. 블록 디바이스
블록 디바이스는 블록 또는 페이지라는 고정된 크기의 단위로 데이터를 읽고 쓰는 하드웨어 장치를 말한다. 이는 문자 디바이스가 바이트나 데이터 스트림 단위로 순차 접근하는 것과 대비된다. 블록 디바이스 드라이버는 이러한 장치를 운영체제에 연결하여, 임의 접근이 가능한 블록 단위의 입출력 연산을 관리하는 소프트웨어이다.
주로 HDD, SSD, USB 플래시 드라이브와 같은 저장 장치가 이 범주에 속한다. 이러한 장치들은 내부적으로 데이터를 섹터나 블록으로 구성하여 관리하기 때문에, 드라이버도 이에 맞춰 블록 단위로 데이터를 전송한다. 효율성을 위해 운영체제는 자주 접근하는 블록 데이터를 RAM에 캐싱하며, 이로 인해 시스템 전원이 갑자기 꺼질 경우 캐시에만 존재하는 데이터가 손실될 수 있다.
블록 디바이스 드라이버의 구조는 입출력 단위가 고정되어 있다는 점에서 네트워크 디바이스의 드라이버와 구분된다. 이 드라이버들은 커널 모드에서 실행되어 하드웨어에 직접 접근하며, 파일 시스템이 저장 장치 위에서 동작할 수 있는 기반을 제공한다. 사용자는 파일 탐색기나 터미널을 통해 이러한 복잡한 블록 단위 연산을 인지하지 않고도 파일과 폴더를 쉽게 관리할 수 있다.
3.3. 네트워크 디바이스
3.3. 네트워크 디바이스
네트워크 디바이스는 패킷 단위로 데이터를 입출력하는 하드웨어를 위한 드라이버 범주이다. 이 분류는 주로 유닉스 계열 운영체제에서 사용되며, 네트워크 인터페이스 컨트롤러(NIC)나 USB, PCI-E 컨트롤러와 같은 통신 장치가 여기에 해당한다. 블록 디바이스와 달리 고정된 블록 크기가 아닌, 비교적 자유로운 길이의 패킷을 처리하는 것이 특징이다.
네트워크 디바이스 드라이버는 커널 모드 드라이버로 구현되는 경우가 많다. 이는 낮은 지연 시간과 높은 처리량이 요구되는 네트워크 패킷 처리를 위해 커널의 높은 권한과 직접적인 하드웨어 접근이 필요하기 때문이다. 이러한 드라이버는 운영체제의 네트워크 스택과 하드웨어 사이의 중개자 역할을 하여, 상위 계층의 프로토콜이 물리적 네트워크 카드를 통해 데이터를 송수신할 수 있게 한다.
네트워크 드라이버의 주요 기능은 이더넷 프레임이나 무선 LAN 패킷의 송신과 수신을 관리하는 것이다. 수신된 패킷은 인터럽트를 통해 드라이버에 알려지며, 드라이버는 이를 처리하여 커널의 네트워크 프로토콜 계층으로 전달한다. 반대로 송신 시에는 상위 계층에서 내려온 데이터를 하드웨어가 이해할 수 있는 형태로 포장하여 전송한다.
이러한 드라이버는 가상 장치 드라이버의 형태로 구현되기도 한다. 예를 들어, VPN 소프트웨어는 가상의 네트워크 어댑터를 생성하여 모든 네트워크 트래픽을 암호화된 터널로 우회시키는데, 이 가상 어댑터를 제어하는 것이 바로 네트워크 가상 장치 드라이버이다.
4. 커널 모드 드라이버
4. 커널 모드 드라이버
커널 모드 드라이버는 운영체제의 핵심인 커널과 동일한 권한 수준에서 실행되는 장치 드라이버이다. 이는 시스템 리소스와 하드웨어에 대한 직접적이고 무제한적인 접근이 가능하게 하여 높은 성능과 호환성을 제공한다. 대부분의 주요 하드웨어, 예를 들어 그래픽 처리 장치나 네트워크 인터페이스 컨트롤러의 드라이버는 성능상의 이유로 커널 모드에서 동작한다.
그러나 이러한 높은 권한은 시스템 안정성에 큰 위험을 동반한다. 커널 모드 드라이버에 오류가 발생할 경우, 이를 제대로 처리하지 못하면 커널 패닉이나 블루 스크린과 같은 치명적인 시스템 장애로 이어질 수 있다. 과거에는 드라이버 간 충돌로 인한 시스템 불안정이 흔했으나, 현재는 마이크로소프트의 WHQL 인증과 같은 체계를 통해 드라이버의 안정성을 검증하고 있다.
보안 측면에서도 커널 모드 드라이버는 중요한 취약점이 될 수 있다. 악의적인 코드가 드라이버 형태로 설치되면 시스템 전체를 장악할 수 있기 때문이다. 이에 대한 대응으로 현대 운영 체제는 디지털 서명이 없는 드라이버의 설치를 제한하며, 64비트 시스템에서는 커널 패치 보호 같은 메커니즘을 통해 커널 코드의 무단 변조를 방지한다.
커널 모드 드라이버는 운영체제별로 특정한 형식으로 패키징된다. 마이크로소프트 윈도우의 NT 계열에서는 .sys 확장자를 사용하며, 리눅스 커널에서는 .ko(커널 모듈) 형식을, macOS에서는 .kext(커널 확장) 형식을 사용한다. 이러한 드라이버는 시스템 부팅 시 커널에 로드되거나, 필요 시 동적으로 적재되는 모듈 형태로 제공된다.
5. 유저 모드 드라이버
5. 유저 모드 드라이버
유저 모드 드라이버는 운영체제의 사용자 공간에서 실행되는 장치 드라이버이다. 이는 커널 모드 드라이버와 대비되는 개념으로, 커널 공간이 아닌 일반 응용 프로그램과 동일한 권한 수준에서 동작한다. 따라서 드라이버 자체에 버그나 취약점이 존재하더라도, 문제가 발생하면 해당 드라이버 프로세스만 비정상 종료될 뿐 커널 패닉이나 시스템 전체의 불안정으로 이어지지 않는다는 보안상의 장점을 가진다.
그러나 이러한 안전성에는 대가가 따른다. 유저 모드 드라이버는 하드웨어에 직접 접근할 수 있는 권한이 없기 때문에, 실제로 장치를 제어하려면 반드시 커널을 통해야 한다. 이는 시스템 콜을 반복적으로 호출해야 함을 의미하며, 이 과정에서 발생하는 문맥 교환 오버헤드로 인해 성능이 저하될 수 있다. 이러한 성능 문제로 인해 Windows나 Linux와 같은 주류 운영체제의 대부분의 드라이버, 특히 고성능이 요구되는 GPU 드라이버나 네트워크 드라이버는 여전히 커널 모드로 구현된다.
따라서 유저 모드 드라이버는 주로 하드웨어 제어의 필요성이 상대적으로 낮고 속도가 느린 장치에 활용된다. 대표적인 예가 프린터 드라이버이다. 또한, 마이크로커널 구조를 채택한 운영체제에서는 보안과 안정성을 우선시하여 많은 드라이버를 사용자 공간에서 실행하는 것이 기본 설계 철학이 되기도 한다. 현실적인 절충안으로는, 하드웨어와의 최소한의 통신만을 담당하는 얇은 커널 모드 드라이버를 두고, 복잡한 제어 로직과 대부분의 처리는 유저 모드 드라이버에서 수행한 후 결과만 커널로 전달하는 하이브리드 구조가 사용된다. 최신 그래픽스 드라이버가 이러한 방식을 채택하고 있다.
6. 각종 드라이버
6. 각종 드라이버
6.1. GPU 드라이버
6.1. GPU 드라이버
GPU 드라이버는 그래픽 처리 장치를 운영체제와 응용 프로그램이 인식하고 제어할 수 있게 하는 소프트웨어이다. 이 드라이버는 커널 모드 드라이버와 유저 모드 드라이버가 결합된 형태로 동작하는 경우가 많다. 하드웨어와 직접 통신하는 핵심 제어 부분은 커널 모드에서 실행되어 성능을 보장하고, 사용자 인터페이스나 게임 최적화 프로필 관리와 같은 고수준 기능은 유저 모드에서 처리된다.
주요 GPU 제조사인 엔비디아, AMD, 인텔은 각각 자사의 그래픽 카드 성능을 최대한 끌어내고 새로운 기능을 지원하기 위해 정기적인 드라이버 업데이트를 제공한다. 예를 들어, 엔비디아는 게이머를 위한 'Game Ready' 드라이버와 콘텐츠 제작자를 위한 'Studio' 드라이버를 별도로 관리하며, AMD는 'Radeon Software'라는 통합 제어판을 통해 드라이버와 유틸리티를 배포한다.
이 드라이버들은 디스플레이 출력, 3D 렌더링 가속, 비디오 디코딩 및 인코딩 같은 하드웨어 기능을 표준화된 API를 통해 운영체제와 응용 프로그램에 제공한다. 잘 최적화된 최신 GPU 드라이버를 설치하면 게임의 프레임률이 향상되거나 그래픽 오류가 해결될 수 있으며, 반대로 호환성 문제가 발생하면 이전 버전으로 롤백해야 할 수도 있다. 따라서 하드웨어 제조사가 공식 제공하는 드라이버를 사용하는 것이 일반적으로 권장된다.
6.2. 휴먼 인터페이스 장치 드라이버
6.2. 휴먼 인터페이스 장치 드라이버
휴먼 인터페이스 장치 드라이버는 사용자가 컴퓨터와 상호작용하는 데 사용하는 입력 및 출력 장치를 제어하는 소프트웨어이다. 이 범주에는 키보드, 마우스, 터치패드, 조이스틱, 터치스크린 등이 포함된다. 이 드라이버들은 사용자의 물리적 조작을 운영체제가 이해할 수 있는 디지털 신호로 변환하거나, 그 반대의 과정을 수행하는 역할을 담당한다. 특히 USB HID 규격을 따르는 대부분의 현대 장치들은 운영체제에 내장된 범용 HID 드라이버를 통해 기본 기능을 바로 사용할 수 있다.
주요 하위 범주로는 포인팅 장치 드라이버와 사운드 드라이버가 있다. 포인팅 장치 드라이버는 마우스나 디지타이저의 움직임, 클릭, 압력 감도 등의 정보를 처리한다. 예를 들어, 와콤 태블릿의 정밀한 펜 입력을 지원하기 위한 '와콤 펠 잇' 드라이버가 이에 해당한다. 사운드 드라이버는 사운드 카드나 HDMI, 디스플레이포트를 통한 오디오 출력을 관리하며, 리얼텍이나 크리에이티브 같은 하드웨어 제조사가 제공하는 드라이버를 통해 고품질 사운드와 추가 기능을 활용할 수 있다.
이러한 드라이버들은 사용자 경험에 직접적인 영향을 미치기 때문에 안정성이 매우 중요하다. 최신 운영체제들은 대부분의 기본 HID 장치에 대한 드라이버를 내장하고 있어 플러그 앤 플레이가 가능하다. 그러나 고급 기능이나 맞춤형 설정을 사용하려면 하드웨어 제조사에서 제공하는 최신 전용 드라이버를 설치하는 것이 일반적이다. 드라이버에 문제가 발생할 경우 장치가 제대로 반응하지 않거나 시스템 불안정을 초래할 수 있어, 필요시 업데이트나 롤백이 요구된다.
6.3. 네트워크 드라이버
6.3. 네트워크 드라이버
네트워크 드라이버는 네트워크 인터페이스 컨트롤러나 네트워크 카드와 같은 네트워크 하드웨어를 운영체제에 연결하고 제어하는 소프트웨어이다. 이 드라이버는 컴퓨터가 이더넷, Wi-Fi 또는 기타 네트워크 프로토콜을 통해 데이터를 송수신할 수 있도록 하드웨어의 기능을 추상화하는 역할을 한다. 네트워크 드라이버는 패킷 단위로 데이터를 처리하며, 운영 체제의 네트워크 스택과 하드웨어 사이에서 중요한 중개자 역할을 수행한다.
주로 커널 모드 드라이버로 구현되어 성능과 하드웨어 직접 접근성을 보장한다. 이 드라이버는 하드웨어 제조사에서 제공하며, 네트워크 카드의 모델과 칩셋에 따라 특정 버전이 필요하다. 새 하드웨어를 설치하거나 네트워크 연결에 문제가 발생할 경우 최신 드라이버로 업데이트하는 것이 일반적이다. 리눅스와 같은 일부 운영체제는 커널에 광범위한 네트워크 드라이버를 포함하고 있어 대부분의 하드웨어를 자동으로 인식한다.
네트워크 드라이버는 가상 사설망 소프트웨어나 방화벽과 같은 보안 응용 프로그램에서 가상 네트워크 어댑터를 생성하기 위한 가상 장치 드라이버의 기반으로도 사용된다. 이는 물리적 하드웨어가 아닌 소프트웨어로 구현된 네트워크 인터페이스를 제공한다.
6.4. 저장 장치 드라이버
6.4. 저장 장치 드라이버
저장 장치 드라이버는 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), USB 플래시 드라이브와 같은 저장 장치를 운영체제가 인식하고 제어할 수 있게 하는 소프트웨어이다. 이 드라이버는 블록 디바이스의 한 종류로, 데이터를 고정된 크기의 블록 단위로 읽고 쓰는 방식을 관리한다. 운영체제의 파일 시스템이 저장 매체에 데이터를 안정적으로 기록하고 검색할 수 있도록 하드웨어와의 통신을 중개하는 핵심 역할을 담당한다.
주요 기능으로는 하드웨어 추상화를 통해 다양한 제조사의 저장 장치를 표준화된 방식으로 접근하게 하며, 명령 큐 관리, 오류 수정, 캐싱 정책 수행 등이 있다. 예를 들어, 삼성 매지션 소프트웨어는 해당 회사의 SSD에 최적화된 드라이버 기능과 함께 펌웨어 관리 및 모니터링 유틸리티를 제공하는 대표적인 사례이다.
이 드라이버는 일반적으로 커널 모드 드라이버로 구현되어 운영체제 커널의 일부로 실행되며, 저장 장치의 성능을 최대한 끌어내기 위해 하드웨어에 직접 접근한다. 따라서 드라이버에 결함이 있을 경우 시스템 불안정이나 데이터 손실로 이어질 수 있어, 하드웨어 제조사는 꾸준한 업데이트와 호환성 테스트를 통해 안정성을 유지한다.
6.5. 범용 드라이버
6.5. 범용 드라이버
범용 드라이버는 특정 하드웨어 모델이 아닌, 한 종류의 장치들에 공통적으로 적용될 수 있는 드라이버를 의미한다. 비교적 단순한 제어만 필요로 하는 USB 기기나 휴먼 인터페이스 장치 등은 각 제조사별로 독자적인 드라이버를 개발하기보다, 운영체제가 제공하는 범용 드라이버를 사용하는 경우가 많다. 이는 하드웨어 제조사의 개발 부담을 줄이고, 사용자에게는 별도의 드라이버 설치 없이 장치를 즉시 사용할 수 있는 편의성을 제공한다.
대표적인 예로 윈도우 운영체제의 WinUSB가 있다. 이는 마이크로소프트가 제공하는 USB 장치용 범용 드라이버로, 사용자 모드의 응용 프로그램이 윈도우 API를 통해 직접 USB 장치와 통신할 수 있게 해준다. 마찬가지로 USB HID 규격을 따르는 대부분의 키보드, 마우스, 조이스틱 등은 운영체제에 내장된 HID 범용 드라이버를 통해 바로 인식되고 작동한다.
이러한 방식은 플러그 앤 플레이 경험을 크게 향상시킨다. 사용자는 새로 구입한 주변기기를 컴퓨터에 연결하기만 하면, 별도의 드라이버 설치 과정 없이도 기본 기능을 사용할 수 있다. 다만, 제조사가 제공하는 고유의 추가 기능이나 최적화된 성능을 이용하려면 여전히 전용 드라이버를 별도로 설치해야 하는 경우가 많다.
7. 가상 장치 드라이버
7. 가상 장치 드라이버
가상 장치 드라이버는 실제 물리적 하드웨어를 제어하는 것이 아니라, 운영체제 커널 수준에서 소프트웨어적으로 구현된 가상의 장치를 관리하는 소프트웨어 모듈이다. 이는 가상 머신 내부의 가상 하드웨어를 에뮬레이션하거나, VPN 연결을 위한 가상 네트워크 인터페이스 카드를 생성하는 등 다양한 목적으로 사용된다. 또한, 파일 시스템 필터나 커널에 기본적으로 포함되지 않은 특수 기능을 추가하기 위해 사용되기도 한다.
이러한 드라이버는 커널 모드에서 실행되기 때문에 높은 시스템 권한을 가지며, 방화벽, 안티바이러스 소프트웨어, DRM, 안티 치트 시스템과 같은 보안 및 모니터링 소프트웨어에서도 광범위하게 활용된다. 이들은 사용자 모드 프로그램으로는 구현하기 어려운 낮은 수준의 시스템 활동 감시나 제어를 가능하게 한다. 그러나 높은 권한은 보안 위협으로도 작용할 수 있어, 마이크로소프트와 애플 같은 주요 운영체제 벤더는 디지털 서명이 없는 드라이버의 설치를 제한하는 정책을 시행하고 있다.
주요 활용 분야 | 설명 |
|---|---|
가상화 및 에뮬레이션 | |
네트워크 가상화 | |
시스템 보안 및 모니터링 | 커널 수준의 파일, 프로세스, 네트워크 활동 감시 (방화벽, 안티바이러스) |
접근 제어 및 보호 | |
파일 시스템 확장 | 파일 암호화, 압축, 혹은 특정 파일 작업을 가로채는 필터 드라이버 |
가상 장치 드라이버의 개발과 사용은 시스템의 강력한 제어권을 제공하는 반면, 잘못 구현될 경우 시스템 불안정을 초래하거나 악성 소프트웨어에 악용될 수 있다. 따라서 현대 운영체제는 드라이버 서명 강제, 커널 패치 보호, 가상화 기반 보안 같은 메커니즘을 통해 커널 모드 코드의 무단 접근과 실행을 엄격히 통제하고 있다.
8. 미니필터 드라이버
8. 미니필터 드라이버
미니필터 드라이버는 마이크로소프트 윈도우 NT 계열 운영체제에서 파일 시스템의 입출력 요청을 실시간으로 모니터링하고 필터링하기 위한 커널 모드 드라이버의 한 유형이다. 이 드라이버는 파일 시스템 필터 드라이버의 새로운 아키텍처로, 윈도우 비스타부터 도입되었다. 기존의 레거시 필터 드라이버보다 더 안정적이고 관리하기 쉬운 모델을 제공하는 것이 주요 목적이다.
미니필터 드라이버는 커널의 I/O 매니저와 협력하여 작동한다. 파일 시스템 상위에 여러 개의 미니필터 인스턴스가 스택처럼 쌓여 구성되며, 각 미니필터는 특정 고도(Altitude) 값에 할당되어 요청 처리 순서를 결정한다. 이 구조를 통해 안티바이러스 소프트웨어, 백업 소프트웨어, 암호화 소프트웨어, 시스템 모니터링 도구 등이 파일 생성, 읽기, 쓰기, 삭제와 같은 작업을 가로채어 검사하거나 수정할 수 있다.
주요 응용 분야는 보안과 데이터 관리이다. 예를 들어, 안티바이러스 프로그램은 파일이 열릴 때마다 미니필터를 통해 내용을 검사하여 악성코드를 탐지한다. 파일 암호화 프로그램은 데이터가 디스크에 쓰이기 전에 자동으로 암호화하고, 읽을 때 복호화하는 데 이 기술을 사용한다. 또한 버전 관리 시스템이나 즉시 복원 기능을 구현하는 데에도 활용된다.
미니필터 드라이버 개발은 일반 장치 드라이버 개발보다 복잡하며, 윈도우 드라이버 키트와 같은 전용 도구가 필요하다. 잘못 구현된 미니필터는 시스템 불안정이나 성능 저하를 초래할 수 있으므로, 마이크로소프트는 WHQL 인증을 통해 안정성을 검증한다. 이 아키텍처는 시스템 보안과 기능 확장에 필수적인 요소로 자리 잡았다.
