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. 로그  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"