/ dev의 장치 파일은 실제로 무엇을합니까?


31

( / dev 및 해당 하위 디렉토리 및 파일 이해와 중복되지 않음 )

파일 시스템을 탐색하고 처음으로 /dev디렉토리 를 분석하는 데 두 번째 시간이 걸렸습니다 . 장치 파일의 양에 놀랐고 모든 것을 이해할 수 없었습니다.

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 답변을 제안합니다.


나는 말하고 싶은 유혹이다 : 당신은 알고 싶지 않다 (이 모든 것에 대해 아님) 귀하의 질문을 다음과 같이 다시 작성하는 것이 좋습니다 /dev. (아마도 당신은 어쨌든 그들 모두에 대한 답을 가질 것입니다, 아마도…)
Stéphane Gimenez

1
제목을 바꿨습니다. 그러나 가능하다면 모두가 무엇을했는지 알고 싶거나 장치 파일을 읽는 방법을 알고 싶습니까?
n0pe

장치를 하나씩 나열하는 것이 유용하지 않다고 생각합니다. 향후 방문자는 목록이 약간 다를 수 있습니다. 내 답변에 표시된 문서를 읽고 여전히 일부를 알아낼 수 없으면 특정 질문을하십시오.
Gilles 'SO- 악마 그만해'

답변:


48

이 중 일부에는 매뉴얼 페이지가 있습니다 ( 섹션 4 ; 최종 숫자와 sda최종 문자 와 같은 몇 가지 경우 제외).

보다 명확하지만 읽기 쉽지 않은 답변은 커널 설명서를 참조하십시오 . 먼저 장치가 블록 장치인지 아니면 문자 장치인지 , 그리고 그 주 번호와 부 번호인지 확인하십시오. 예를 들어

$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jul 12 15:54 /dev/sda

major : minor = 8 : 0 인 sda블록 장치 ( b)도 마찬가지 입니다 . 지금 그것을 찾아 devices.txt: (이것은 커널 컴파일 옵션에 따라 달라집니다하지만, 대부분의 IDE 및 SATA 디스크가 너무 SCSI 인터페이스를 통해 볼 수 있습니다) 8 블록은 요즘 대부분의 디스크입니다 SCSI 디스크 장치입니다. 블록 장치 8 : 1 ( /dev/sda1)은의 첫 번째 파티션입니다 /dev/sda.

문서화되지 않은 홀수 장치가 몇 개있을 수 있습니다. 예를 들어 시스템을 볼 수 있습니다 /sys/dev/block/8:0: 이것은 /sys장치에 대한 다양한 정보를 제공 하는 디렉토리에 대한 심볼릭 링크 입니다. 더 많은 링크를 따라갈 수 있으며 특히이 경우 /sys/dev/block/8:0/device/driver드라이버와 일치하는 디렉토리로 연결됩니다. 또 다른 정보 출처는 /proc/devices드라이버가 각 주요 장치 번호를 주장하는 것을 나타냅니다.

대부분의 Linux 시스템은 udev 를 사용 /dev하여 사용 가능한 드라이버 및 하드웨어를 기반으로 채 웁니다 . 규칙을 탐색하여 일반적으로 /lib/udev/rules.d/etc/udev/rules.d정확한 위치에 배포 된 장치 파일을 만들 수 있습니다 .

파일 중 일부가 장치가 아닙니다. lsof /dev/NAME(루트로)는 어떤 프로세스가 그것들을 사용하고 있는지 알려주므로 그들이 무엇을 원하는지 힌트를 줄 것입니다. 디렉토리에 대해서는 파일을보십시오.

이 답변은 Linux에만 해당되지만 다른 유니스도 동일한 원칙을 따릅니다. 매뉴얼 페이지 (대부분의 변형에 대해서는 섹션 4에 있지만 약간은 섹션 7에 있음) 또는 기타 시스템 또는 커널 설명서를 확인하십시오. 관련 정보는 블록 / 문자 비트와 주요 : 부 숫자입니다.


놀랍습니다. 현재 읽고있는 몇 가지 관심 사항을 자세히 설명했습니다. 고마워
n0pe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.