(Não é uma duplicata do Entendimento / dev e seus subdiretórios e arquivos )
Eu estava navegando pelo meu sistema de arquivos e, pela primeira vez, levei um segundo para analisar meu /dev
diretório. Fiquei surpreso com a quantidade de arquivos de dispositivos nele e não consegui entender todos eles:
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
Eu sei que os sd*
's são os meus discos e sistemas de arquivos, mas o que são loopx
, fd0uxxxx
, sgx
, vcsxxx
e todos os outros arquivos individuais. A maioria deles são arquivos de dispositivo de acordo com ls
.
Entendo que responder totalmente a essa pergunta exigiria uma tonelada de informações, portanto, a menos que alguém possa fornecer um link com um grande resumo dos diferentes arquivos de dispositivos dev
e para o que eles são usados, proponho que façamos uma resposta CW.
fonte
/dev
que devo conhecer? (Talvez você tem respostas para todos eles de qualquer maneira, talvez não ...)Respostas:
Algumas delas possuem páginas de manual (na seção 4 ; omitem o (s) dígito (s) final (is) e, em alguns casos, como
sda
a letra final).Para uma resposta mais definitiva, mas geralmente menos fácil de ler, consulte a documentação do kernel . Primeiro, determine se o dispositivo é um dispositivo de bloco ou de caractere e seu número maior e menor. Por exemplo
o mesmo
sda
ocorre com um dispositivo de bloco (b
) com major: minor = 8: 0. Agora, procuredevices.txt
: 8 blocos são os dispositivos de disco SCSI, que são a maioria dos discos atualmente (a maioria dos discos IDE e SATA também são vistos pela interface SCSI, embora isso dependa das opções de compilação do kernel). O dispositivo de bloco 8: 1 (/dev/sda1
) é a primeira partição de/dev/sda
.Pode haver alguns dispositivos estranhos que não estão documentados. Você pode procurar no seu sistema, por exemplo
/sys/dev/block/8:0
: este é um link simbólico para um diretório/sys
que fornece várias informações sobre o dispositivo. Você pode seguir mais links e, em particular (neste caso),/sys/dev/block/8:0/device/driver
direciona você para um diretório que corresponde ao driver. Outra fonte de informação é a/proc/devices
que indica qual driver reivindica cada número de dispositivo principal.A maioria dos sistemas Linux usa o udev para preencher com
/dev
base nos drivers e hardware disponíveis. Você pode procurar as regras para criar arquivos de dispositivo, normalmente em/lib/udev/rules.d
e/etc/udev/rules.d
(os locais exatos dependem da distribuição).Alguns dos arquivos não são dispositivos.
lsof /dev/NAME
(como root) dirá a você para qual processo os está usando e, assim, lhe dará uma dica de para que servem. Para os diretórios, observe os arquivos neles.Esta resposta é específica para Linux, mas outros departamentos seguem os mesmos princípios. Verifique as páginas do manual (na seção 4, na maioria das variantes, mas algumas usam a seção 7) ou outra documentação do sistema ou do kernel. A informação relevante é o bit de bloco / caractere e o principal: números menores.
fonte