(중복이 아닙니다./dev, 하위 디렉터리 및 파일 이해)
내 파일 시스템을 검색하고 있는데 처음으로 내 /dev
디렉터리를 구문 분석하는 데 1초가 걸렸습니다. 나는 거기에 있는 장치 파일의 수에 놀랐고 그 파일을 모두 이해할 수는 없습니다.
max@linux-vwzy:/dev> ls
adsp disk fd0u1760 initctl mem root sg0 tty tty21 tty35 tty49 tty62 vboxdrv vcsa2
audio dri fd0u1840 input mixer rtc sg1 tty0 tty22 tty36 tty5 tty63 vboxnetctl vcsa3
autofs dsp fd0u1920 kmem mixer1 rtc0 sg2 tty1 tty23 tty37 tty50 tty7 vboxusb vcsa4
block dvd fd0u360 kmsg net scd0 sg3 tty10 tty24 tty38 tty51 tty8 vcs vcsa5
bootsplash dvdrw fd0u720 log network_latency sda sg4 tty11 tty25 tty39 tty52 tty9 vcs1 vcsa6
bsg fb0 fd0u800 loop0 network_throughput sda1 sg5 tty12 tty26 tty4 tty53 ttyS0 vcs10 vcsa7
btrfs-control fd fd0u820 loop1 null sda2 sg6 tty13 tty27 tty40 tty54 ttyS1 vcs2 vga_arbiter
bus fd0 fd0u830 loop2 nvram sda3 sg7 tty14 tty28 tty41 tty55 ttyS2 vcs3 xconsole
cdrom fd0u1040 full loop3 oldmem sdb shm tty15 tty29 tty42 tty56 ttyS3 vcs4 zero
cdrw fd0u1120 fuse loop4 port sdc snapshot tty16 tty3 tty43 tty57 ttyS4 vcs5
char fd0u1440 fw0 loop5 ppp sdc1 snd tty17 tty30 tty44 tty58 ttyS5 vcs6
console fd0u1600 hidraw0 loop6 psaux sdd sr0 tty18 tty31 tty45 tty59 ttyS6 vcs7
core fd0u1680 hidraw1 loop7 ptmx sde stderr tty19 tty32 tty46 tty6 ttyS7 vcsa
cpu fd0u1722 hidraw2 mapper pts sdf stdin tty2 tty33 tty47 tty60 uinput vcsa1
cpu_dma_latency fd0u1743 hpet mcelog random sdg stdout tty20 tty34 tty48 tty61 urandom vcsa10
sd*
내 디스크와 파일 시스템이라는 것은 알지만 loopx
, fd0uxxxx
, sgx
및 vcsxxx
기타 모든 개별 파일은 무엇입니까? 대부분은 를 기반으로 합니다 ls
.
이 질문에 완전히 답하려면 많은 정보가 필요하다는 것을 알고 있으므로 누군가가 dev
다양한 장치 파일과 그 용도에 대한 자세한 개요가 포함된 링크를 제공할 수 없다면 CW 답변을 작성하는 것이 좋습니다.
답변1
그들 중 일부는 매뉴얼 페이지를 가지고 있습니다.섹션 4sda
;마지막 숫자는 생략하고, 마지막 문자 등 일부 경우에는 생략합니다 .
더 명확하지만 읽기 어려운 답변을 보려면 다음을 확인하세요.커널 문서. 먼저 장치가 다음과 같은지 확인하십시오.블록 장치 또는 문자 장치, 그리고 메이저 및 마이너 번호입니다. 예를 들어
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jul 12 15:54 /dev/sda
sda
b
블록 장치( ) , major:minor = 8:0 의 경우에도 마찬가지입니다 . 지금 찾아보세요devices.txt
:Block 8은 요즘 대부분의 디스크와 같은 SCSI 디스크 장치입니다(커널 컴파일 옵션에 따라 다르지만 대부분의 IDE 및 SATA 디스크는 SCSI 인터페이스를 통해서도 볼 수 있습니다). 블록 장치 8:1( /dev/sda1
)이 첫 번째 파티션입니다 /dev/sda
.
문서화되지 않은 이상한 장치가 있을 수 있습니다. 예를 들어 시스템을 볼 수 있습니다 . 이것은 장치에 대한 다양한 정보를 제공하는 /sys/dev/block/8:0
디렉토리에 대한 심볼릭 링크입니다 . /sys
특히(이 경우) /sys/dev/block/8:0/device/driver
드라이버에 해당하는 디렉터리로 이동하는 추가 링크를 클릭할 수 있습니다. 또 다른 정보 출처는 /proc/devices
드라이버에게 각 주요 장치 번호를 선언하도록 지시한다는 것입니다.
대부분의 Linux 시스템에서는우데브/dev
사용 가능한 드라이버 및 하드웨어를 기반으로 채웁니다. 일반적으로 /lib/udev/rules.d
및 에 있는 장치 파일을 생성하는 규칙을 찾아볼 수 있습니다 /etc/udev/rules.d
(정확한 위치는 배포판에 따라 다름).
이러한 파일 중 일부는 장치가 아닙니다. lsof /dev/NAME
(루트로서) 어떤 프로세스가 이를 사용하고 있는지 알려주고, 어떤 용도로 사용되는지에 대한 힌트를 제공합니다. 디렉토리의 경우 그 안에 있는 파일을 살펴보세요.
이 답변은 Linux에만 해당되지만 다른 Unis도 동일한 원칙을 따릅니다. 매뉴얼 페이지(대부분의 변형은 섹션 4에 있지만 일부는 섹션 7을 사용함)나 기타 시스템 또는 커널 문서를 확인하세요. 관련 정보는 블록/문자 비트와 주요:부 숫자입니다.