/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/tty1
Linux 시스템의 첫 번째 가상 콘솔에 대한 공통 이름, /dev/ttyS0
첫 번째 직렬 포트에 대한 공통 이름) 유형(블록/문자) 및 주/부 번호입니다. 그것이 작동하게 만듭니다.