리눅스의 가장 우아한 설계 철학 하나는 **"모든 것은 파일이다(everything is a file)"**다. 디스크도, 키보드도, 사운드 카드도, 심지어 난수 생성기도 /dev 아래의 **장치 파일(device file)**로 표현된다. 그래서 디스크에 데이터를 쓰는 일과 파일에 글을 쓰는 일이 같은 시스템 콜(read/write)로 처리된다. 오늘은 이 장치 파일의 구조, 그것을 자동으로 만들어 주는 udev, 그리고 대표적 응용 장치인 프린터(CUPS·lp 계열 명령)를 다룬다.
리눅스마스터 1급 실기는 (1) 블록 장치와 문자 장치의 차이, (2) 주/부 번호(major/minor)의 의미, (3) udev가 장치를 동적으로 관리하는 방식, (4) CUPS 인쇄 명령(lp, lpr, lpstat, lpq)을 묻는다. 장치 파일의 첫 글자(b/c)와 인쇄 명령의 두 계열(System V vs BSD)을 구분하는 것이 핵심이다.
핵심 통찰: 장치 파일은 실제 데이터를 담지 않는다. 그것은 커널의 장치 드라이버로 가는 "문 손잡이"일 뿐이다. ls -l /dev/sda의 권한 첫 글자가 b(또는 c)이고 크기 대신 두 개의 숫자(주·부 번호)가 보이는 이유가 여기 있다 — 이 숫자가 "어느 드라이버의 몇 번째 장치인가"를 가리킨다.