Device Driver   디바이스 드라이버

(2024-01-19)

장치 제어기, 장치 드라이버, 장치 구동기


1. 디바이스 드라이버운영체제가, 키보드,마우스,디스크,LAN카드 같은 디바이스 등과 상호작용할 수 있게 한 S/W
     - 이를통해 디바이스의 인식,엑세스,제어가 가능함
        . 디바이스 드라이버는 H/W 및 OS에 따라 달라짐

  ㅇ 소프트웨어 구성 형태
     - 1 이상의 장치(디바이스)를 제어하고 잘 정의된 인터페이스를 통해,
     - 커널의 다른 부분과 상호작용하는 자료구조함수집합으로 구성됨

  ㅇ 역할
     - 하드웨어 초기화 및 제어 관리
     - 소프트웨어가 하드웨어에 접근하는 것을 지원함
     - 하드웨어,운영체제,미들웨어,어플리케이션 등을 연결시켜주는 고리 역할
 

2. 디바이스 드라이버와 커널 간의 관계 커널은 아니지만, 마치 커널의 일부분 처럼 동작하게됨

  ㅇ 디바이스 드라이버는, 커널의 핵심 구성요소와는 구별되는 특성이 있음
     - 즉, 디바이스 드라이버는 실제의 디바이스와 상호 작용하는 모듈이며, 
     - 통상, 디바이스 공급업체에 의해 작성되어 제공됨

  ㅇ 결국, 커널의 핵심부는, 디바이스 드라이버를 통해서 입출력 장치들과 상호 작용이 가능


3. 디바이스의 구분 (유닉스의 경우)물리,가상 디바이스 구분
     - 물리 디바이스 : 마우스,하드디스크,테이프드라이브 등
     - 가상 디바이스 : 해당 하드웨어가 존재 않고, 
        . 실제 디바이스와 같은 API를 갖는 추상 디바이스를  제공

  ㅇ 문자 디바이스 (Character Device)
     - 순차적 접근으로 문자 단위의 접근 만을 허용, 버퍼 캐시를 사용하지 않음
     - 例) 마우스, 직렬포트, 콘솔 등
        . 가상 터미널 드라이버 (Pseudo Terminal Driver)
           .. 문자들이 마치 터미널에서 들어오는 것처럼 보이게하는 가상의 터미널 장치

  ㅇ 블록 디바이스 (Block Device)
     - 블록 단위 처리, 통상 512 바이트 단위로 처리             ☞ 블록  참조
     - 例) 디스크 등

  ㅇ 네트워크 디바이스

  ※ [참고]  유닉스/리눅스에서는, 
     - 여타 다른 유형의 파일 처럼 파일시스템 내부에 나타남     ☞ 장치 화일 (Device File) 참조
        . 디바이스 마다 각 디바이스 형식에 맞는 디바이스 파일이 존재
        . /dev 디렉토리에 위치함
        . 입출력 동작을 위한 시스템호출 : open(),close(),read(),write(),mmap(),ioctl() 등

I/O 장치 (주변장치)
   1. 주변장치, 제어기   2. DMA, PIO   3. 디바이스 드라이버   4. 디바이스 파일  
운영체제(일반)
   1. 커널   2. 사용자 모드, 커널 모드   3. API   4. 장치 드라이버   5. 공유 라이브러리   6. 로그  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"