운영체제 관리/윈도우(Windows)

리소스 관리 - 윈도우 운영체제의 장치 독립적 작동 개념(디바이스 드라이버)

본클라쓰 2011. 11. 14. 12:10

 

도스 시절에는 응용 프로그램이 하드웨어어 관련된 모든 것을 다 처리해 주어야 했다. 운영체제가 하드웨어를 관리하는 인프라를 지원해 주지 않았기 때문이다. 그런데 같은 종류의 하드웨어라도 제조업체에 따라 제어하는 방법이 다 다르기 때문에 응용 프로그램은 굉장히 많은 일을 해야만 했습니다.

 

예를 들면, ATI 그래픽 카드를 제어하는 방법과 Gforce 그래픽 카드를 제어하는 방법은 다르기 때문에 ATI 그래픽 카드와 Gforce 그래픽 카드에서 다 동작할 수 있는 응용 프로그램을 작성하기 위해서는 각각의 그래픽 카드에서 동작하는 방법을 응용 프로그램에서 자체적으로 구현해 가지고 있어야 했다.

 

윈도우는 디바이스 드라이버라는 개념을 도입하여 이러한 문제를 해결했다. 응용 프로그램을 하드웨어를 제어하기 위해 직접 하드웨어를 건드리지 않고, 운영체제에게 이러이러한 기능을 수행해 달라고 요청한다. 운영체제는 디바이스 드라이버에게 명령을 내리고, 디바이스 드라이버가 하드웨어를 제어하게 된다. 이것은 프로그래머의 입장에서 보면 실로 대단한 것이고, 어떠한 하드웨어에서도 범용적으로 실행되는 프로그램을 만드는 것이 굉장히 쉬워졌다는 것을 의미한다.

 

디바이스 드라이버는 하드웨어 제조업체에서 만들어 제공하는 시스템 소프트웨어로서, 운영체제로부터 표준화된 하드웨어 제어 명령을 받아, 제조업체 나름대로의 방법으로 하드웨어를 제어하는 역할을 한다. 즉, 디바이스 드라이버 위쪽은 하드웨어의 종류의 관계없이 표준화된 명령 체계를 구축되어 있고, 하드웨어는 제조업체마다 고유한 방식으로 동작한다. 디바이스 드라이버가 중간에서 표준화된 명령을 제조업체마다 고유한 명령어로 통역해 주는 역할을 한다.

 

[참고] 영진닷컴, Visual C++ 완벽가이드