/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첫 번째 직렬 포트의 일반 이름). 그러나 유형(블록/문자) 및 메인/ 이렇게 하면 작동합니다.

관련 정보