콘텐츠로 이동

디바이스 드라이버

Jan 23, 2026 · Updated Jan 27, 2026

디바이스 드라이버는 다양한 I/O 장치들의 제어 방식 차이를 숨기고, 커널 I/O 서브시스템에 통일된 인터페이스(read, write, open, close 등)를 제공하는 커널 모듈이다. 새로운 장치가 추가될 때마다 OS를 재작성할 필요 없이, 해당 장치용 드라이버만 작성하면 된다.

I/O 요청 흐름
Application system call: read/write
Kernel I/O Subsystem 표준 인터페이스
Device Driver keyboard / disk / network 등
Device Controller
Physical Device
여러 드라이버가 통일된 인터페이스 위에서 동작
Keyboard Driver
Disk Driver
Network Driver
Kernel I/O Subsystem read · write · open · close
I/O 요청 처리 흐름
1 인터페이스 정의
커널 I/O 서브시스템이 표준 인터페이스 정의
2 드라이버 구현
각 장치 드라이버가 해당 장치에 맞게 인터페이스 구현
3 시스템 콜
애플리케이션이 통일된 시스템 콜로 I/O 수행
4 요청 전달
커널이 적절한 드라이버로 요청 전달
분류 기준유형예시
데이터 전송 모드블록/문자디스크/터미널
접근 방식순차/랜덤모뎀/CD-ROM
전송 스케줄동기/비동기테이프/키보드
공유전용/공유테이프/키보드

USB 키보드와 PS/2 키보드는 내부적으로 다르게 동작하지만, 둘 다 같은 키보드 드라이버 인터페이스를 통해 OS에 문자 입력을 전달한다. 사용자 프로그램은 어떤 종류의 키보드인지 알 필요 없이 동일한 방식으로 키 입력을 받을 수 있다.

장점:

  • 장치 독립성: 애플리케이션이 장치 세부사항을 몰라도 됨
  • 확장성: 새 장치 추가 시 드라이버만 작성하면 됨
  • 유지보수: 드라이버만 수정하면 장치 지원 가능

단점:

  • 추상화 오버헤드: 드라이버 계층 통과 비용
  • 드라이버 품질: 버그가 있는 드라이버는 시스템 불안정 유발
  • OS별 별도 개발: Windows, Linux 등 각 OS용 드라이버 필요