장치 드라이버 라고도 불리는 디바이스 드라이버에 대해 알아보겠습니다.

 

디바이스 드라이버(영어: device driver)는 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다. 컴퓨터를 구성하는 다양한 입출력 장치마다 각각 장치드라이버가 프로그램 되어 커널에 통합되어 실행된다. 높은 수준의 컴퓨터 프로그램들이 컴퓨터 하드웨어 장치와 상호 작용하기 위해 만들어진 하나의 컴퓨터 프로그램이다.

장치드라이버는 커널의 일부분이기는 하나 커널과 통합되는 것은 처음부터 해당 드라이버 프로그램 코드소스가 커널 전체 소스에 포함되어 컴파일되는 경우도 있고, 그리고 별도로 컴파일된 파일(윈도의 *.sys, 리눅스의 *.o)의 형태로 존재하고 부팅 시 또는 필요 시 해당 파일이 로드되어 커널과 통합되기도 한다.

드라이버는 흔히 컴퓨터 버스, 또는 하드웨어와 이어진 통신 하위 시스템을 통해 장치와 통신한다. 요청하는 프로그램이 드라이버의 명령어를 호출하면, 드라이버는 장치에 명령어를 전달한다. 장치가 드라이버에게 데이터를 되돌려 주면, 드라이버는 원래 요청한 프로그램의 명령어로 데이터를 다시 전달한다. 드라이버는 하드웨어에 의존하며 특정한 운영 체제를 따른다. 이러한 드라이버는 비동기 시간에 의존하는 하드웨어 인터페이스에 필요한 인터럽트를 다룰 수 있다.

장치 드라이버는 흔히 장치 칩의 레지스터에 접근하여 하드웨어를 제어하며 하드웨어와 주변 기기를 사용하는 프로그램의 중간 다리 역할을 한다.

 

ko.wikipedia.org/wiki/%EC%9E%A5%EC%B9%98_%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84

 

장치 드라이버 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 장치 드라이버/제어기(문화어: 장치구동기, 장치구동프로그람) 또는 디바이스 드라이버(영어: device driver)는 특정 하드웨어나 장치를 제어하기 위한 커널의 일

ko.wikipedia.org

위키백과에서 매우 잘 설명해줬네요.

결국 디바이스를 제어하기 위한 커널의 일부분!

이제 디바이스 드라이버를 이해했으니 더 알아보겠습니다.

 

 

문자 디바이스 드라이버 Character device driver (키보드, 마우스

- 일반 파일과 가장 유사한 방식으로 처리할 수 있는 디바이스 드라이버

- 응용 프로그램은 open(), close(), read(), write() 등의 함수를 사용하여 디바이스 파일들을 다룸 

 

블록 디바이스 드라이버 Block device driver (디스크 드라이버)

- 파일 시스템을 지원하는 구조

 

네트워크 디바이스 드라이버 Network device driver (이더넷, 블루투스, 와이파이)

 

 

리눅스에선 /proc/devices 에서 확인 가능 

확장자 - .sys 윈도우, .ko 리눅스

 

그 외..

블루 스크린의 대부분의 원인이 디바이스 드라이버에서 비롯된다.

(운영체제와 밀접한 관련이 있기 때문에 신중히 작성되어야 한다.)

디바이스 드라이버는 리눅스 커널 소스의 70%를 차지한다. 

 

 

 

 

+ Recent posts