/dev 디렉토리는 Linux에서 장치 파일을 저장할 수 있는 유일한 장소입니까?

/dev 디렉토리는 Linux에서 장치 파일을 저장할 수 있는 유일한 장소입니까?

/dev디렉토리가 장치 파일을 저장한다는 것을 알고 있지만 /dev디렉토리가 장치 파일을 저장할 수 있는 유일한 장소입니까, 아니면 장치 파일을 디렉토리에 저장하는 것이 단지 관례입니까 /dev?

답변1

그것은 단지 컨벤션일 뿐입니다. 실제로 chroot환경이나 컨테이너(예: docker)에서는 장치 항목이 다른 곳에 존재할 수 있습니다.

장치 항목을 장치 항목으로 만드는 것은유형이름이 아니라 항목의

예를 들면 다음과 같습니다.

% ls -ld /dev/vda
brw-rw---- 1 root disk 253, 0 May 26 07:00 /dev/vda

첫 번째 "b"는 이것이 블록 장치임을 의미합니다. "253"은 주요 장치 번호이고 "0"은 보조 장치 번호입니다. 이 경우

% grep virt /proc/devices
253 virtblk

따라서 주요 장치 253은 가상 블록 계층과 관련됩니다.

여기서 "vda"라는 이름은 중요하지 않습니다.

나는 할 수 있다

sudo mknod /tmp/foo b 253 0

이제 /tmp/foo정확히 동일한 데이터에 액세스합니다.

% sudo dd if=/dev/vda bs=256b count=1 | sum
....
40545   128

% sudo dd if=/tmp/foo bs=256b count=1 | sum
....
40545   128

공통 이름은 사람과 구성 파일에 중요하지만(예: /dev/tty1Linux 시스템의 첫 번째 가상 콘솔에 대한 공통 이름, /dev/ttyS0첫 번째 직렬 포트에 대한 공통 이름) 유형(블록/문자) 및 주/부 번호입니다. 그것이 작동하게 만듭니다.

관련 정보