문자 장치는 스트림처럼, 블록 장치는 주소가 있는 블록 묶음처럼 다루며 캐시 전략도 달라집니다.
I/O 드라이버 번역 계층
문자 장치, 블록 장치, 컨트롤러, MMIO, 포트 I/O, 드라이버를 층으로 보면 장치 접근과 커널 모드 책임이 분명해집니다.
01프로그램
02I/O 계층
03드라이버
04컨트롤러
05장치
포트 I/O와 MMIO는 CPU가 컨트롤러 레지스터를 읽고 쓰는 주소 지정 방식의 차이입니다.
드라이버는 장치 초기화, 요청 큐 처리, 인터럽트 응답, 에러 복구를 커널 규칙에 맞춥니다.
상위 소프트웨어는 장치마다 다른 명령 대신 open, read, write 같은 공통 인터페이스를 사용합니다.