Por que os dispositivos Ethernet não aparecem em “/ dev”?

6

Geralmente tenho notado que conectar um novo dispositivo em um sistema Linux faz com que uma nova entrada seja listada em /dev (supondo que você tenha os drivers corretos).

Por exemplo:

  1. Quando você conecta um novo disco rígido, obtém /dev/sdb .
  2. Quando você conecta um dispositivo serial, obtém /dev/ttyS0 .

Quando eu conecto um dispositivo Ethernet, por que não consigo algo como /dev/eth0 ?

Existe uma listagem de dispositivos para portas Ethernet?

Eu sei que você pode ver nomes de portas usando ifconfig , só estou querendo saber se algo aparece em /dev também.

    
por dinkelk 10.06.2013 / 22:31

3 respostas

9

É uma boa pergunta. A razão é essencialmente histórica; diferentes grupos com diferentes objetivos e prioridades adicionaram peças do Unix ao longo do tempo, e as diferenças entre várias APIs são um reflexo dessa história. Eu acho que o conceito de arquivo de dispositivo original remonta ao Bell Labs, enquanto soquetes de rede foram adicionados mais tarde na UC Berkeley. Bell estava tentando criar um bom paradigma de manutenção limpa para as operações da AT & T, enquanto Berkeley precisava adicionar recursos de internet que não se encaixassem facilmente nesse paradigma. Tecnicamente, seria possível voltar e criar um arquivo /dev/eth0 hoje (veja abaixo), mas isso envolveria reescrever uma quantidade proibitiva de código legado.

Ligeira OT: Se o assunto lhe interessar, considere dar uma olhada no Plan 9, que levou "tudo é um arquivo" para extremos maiores (só não espere que ele tenha muitos aplicativos modernos e úteis):

link

  

muitas facilidades que sob Unix são acessadas através de várias interfaces ad-hoc como sockets BSD, fcntl (2) e ioctl (2) estão no Plan 9 acessadas através de operações comuns de leitura e gravação em arquivos especiais análogos a arquivos de dispositivos

    
por Paul 10.06.2013 / 22:55
0

Olá, hoje em dia, o diretório / dev é preenchido pelo udev, um daemon que lê o diretório / sys e cria esses arquivos. Se você quiser usar fdisk e gdisk, será forçado a usar dispositivos encontrados em / dev. E para ver o tty e pty usado. Eu acho que o BSD aloca uma interface ethernet em / dev, onde você pode escrever e ler.

    
por Kouros 10.06.2013 / 23:33
0

Não há muito tempo, os dispositivos Ethernet apareceram como / dev / eth0, / dev / eth1 e assim por diante. Ainda há aplicativos que esperam encontrá-los lá, mas agora estão decepcionados e às vezes inutilizáveis. Felizmente não são muitos.

    
por Gordon 09.12.2014 / 16:54