device stack

I/O 드라이버 번역 계층

문자 장치, 블록 장치, 컨트롤러, MMIO, 포트 I/O, 드라이버를 층으로 보면 장치 접근과 커널 모드 책임이 분명해집니다.

요청 경로
01프로그램 02I/O 계층 03드라이버 04컨트롤러 05장치
장치 분류

문자 장치는 스트림처럼, 블록 장치는 주소가 있는 블록 묶음처럼 다루며 캐시 전략도 달라집니다.

레지스터 접근

포트 I/O와 MMIO는 CPU가 컨트롤러 레지스터를 읽고 쓰는 주소 지정 방식의 차이입니다.

드라이버 책임

드라이버는 장치 초기화, 요청 큐 처리, 인터럽트 응답, 에러 복구를 커널 규칙에 맞춥니다.

계층 장점

상위 소프트웨어는 장치마다 다른 명령 대신 open, read, write 같은 공통 인터페이스를 사용합니다.