I/O SUBSYSTEM

장치 추상화

사용자 프로그램은 open/read/write를 호출하고, 커널과 드라이버가 장치별 차이를 숨긴다.

Application장치를 파일처럼 열고 읽고 쓴다.
Kernel I/O요청을 큐잉하고 권한과 버퍼를 관리한다.
Driver컨트롤러 레지스터와 실제 하드웨어를 제어한다.
Block Device디스크, SSD처럼 고정 크기 블록 단위로 접근한다.
Character Device키보드, 터미널처럼 바이트 스트림으로 전달한다.
Network소켓이라는 별도 인터페이스로 통신한다.

장치 추상화 핵심: major 번호는 드라이버를, minor 번호는 같은 드라이버 안의 개별 장치를 식별한다.