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() 등