I/O subsystem 커널은 장치 차이를 파일과 드라이버 경계로 숨긴다 사용자 프로그램은 open, read, write를 호출하고 커널과 드라이버가 버퍼, 권한, 장치 레지스터 차이를 처리한다.
역할 장치 차이 점검 기준
Application시스템 호출 파일처럼 장치를 열고 읽고 쓰는 요청을 만든다. 장치 세부 제어 대신 파일 디스크립터와 권한만 본다. open, read, write 실패 코드와 권한 오류를 구분한다.
Kernel I/O공통 계층 요청 큐, 버퍼, 캐시, 보호 검사를 관리한다. 블록, 문자, 네트워크 장치를 공통 인터페이스로 연결한다. 동기·비동기 요청과 버퍼링 지점을 확인한다.
Driver장치 제어 컨트롤러 레지스터, 인터럽트, DMA 같은 하드웨어 작업을 수행한다. 장치별 명령과 상태 비트를 드라이버가 알고 있다. major 번호가 올바른 드라이버로 연결되는지 본다.
Block device블록 단위 디스크, SSD처럼 고정 크기 블록을 읽고 쓴다. 위치 지정, 캐시, 스케줄링이 성능에 크게 영향을 준다. 블록 크기, 큐 깊이, 캐시 적중률을 확인한다.
Character device스트림 키보드, 터미널처럼 바이트 흐름을 순서대로 전달한다. 임의 위치 접근보다 입력 이벤트와 버퍼 상태가 중요하다. 읽기 대기, EOF, 인터럽트 처리를 구분한다.
Network소켓 네트워크는 별도 소켓 인터페이스로 패킷과 연결을 다룬다. 장치 파일보다 프로토콜, 주소, 포트 상태가 중심이다. 연결 상태, 송수신 버퍼, 타임아웃을 함께 본다.