리눅스 장치 파일
IT 위키
- 하드웨어 장치를 파일처럼 다루기 위해
/dev아래에 만들어 두는 특수 파일
- 경로 : /dev
유닉스 계열의 모든 것은 파일이다(everything is a file)라는 설계 원칙에 따라, 디스크·터미널·프린터 같은 장치도 파일 인터페이스로 접근한다. 응용 프로그램은 장치마다 다른 방식을 알 필요 없이 open·read·write 만 쓰면 된다.
| 구분 | 표시 | 설명 | 예 |
|---|---|---|---|
| 블록 장치 | b
|
정해진 크기의 블록 단위로 입출력하고 버퍼를 사용한다 | 하드디스크, USB, CD-ROM |
| 문자 장치 | c
|
바이트 단위로 순차 입출력한다 | 터미널, 프린터, 사운드 카드 |
ls -l 로 보면 파일 크기 자리에 주 번호(major)와 부 번호(minor)가 표시된다. 주 번호는 장치 드라이버를, 부 번호는 그 드라이버가 다루는 개별 장치를 가리킨다.
# ls -l /dev/sda /dev/lp0 brw-rw----. 1 root disk 8, 0 Jan 1 09:00 /dev/sda crw-rw----. 1 root lp 6, 0 Jan 1 09:00 /dev/lp0 │ │ └ 부 번호 │ └ 주 번호 └ b = 블록 장치, c = 문자 장치
| 이름 | 장치 |
|---|---|
/dev/sda, /dev/sdb …
|
SCSI·SATA·USB 저장 장치. 파티션은 /dev/sda1 처럼 번호를 붙인다
|
/dev/hda
|
예전 IDE 방식 하드디스크 |
/dev/sr0, /dev/cdrom
|
광학 드라이브(CD/DVD) |
/dev/fd0
|
플로피 디스크 |
/dev/lp0
|
병렬 포트에 연결된 프린터. lp 는 line printer 의 약자다 |
/dev/ttyS0
|
직렬 포트. 도스의 COM1 에 해당한다 |
/dev/tty, /dev/pts/0
|
콘솔 터미널, 의사 터미널 |
/dev/null
|
쓰면 버려지고 읽으면 즉시 EOF. 출력을 없앨 때 쓴다 |
/dev/zero
|
읽으면 0으로 채워진 데이터를 무한히 준다 |
/dev/random, /dev/urandom
|
난수 생성기 |
/dev/mapper/*
|
LVM 논리 볼륨, 암호화 볼륨 등 디바이스 매퍼가 만드는 장치 |
- 요즘 배포판은 udev 가 커널의 장치 인식 이벤트를 받아
/dev항목을 자동으로 만들고 지운다. 예전처럼 수작업으로 만들 일은 거의 없다. - 규칙 파일은
/etc/udev/rules.d/에 둔다. 특정 장치에 고정된 이름을 붙이고 싶을 때 쓴다. - 필요하면
mknod로 직접 만들 수 있다.
# mknod /dev/mydev c 240 0
