web-dev-qa-db-fra.com

Pourquoi les périphériques Ethernet n'apparaissent-ils pas dans "/ dev"?

En règle générale, j'ai remarqué que le fait de brancher un nouveau périphérique sur un système Linux provoque la création d'une nouvelle entrée dans /dev (en supposant que vous ayez les bons pilotes).

Par exemple:

  1. Lorsque vous connectez un nouveau disque dur, vous obtenez /dev/sdb.
  2. Lorsque vous branchez un périphérique série, vous obtenez /dev/ttyS0.

Lorsque je connecte un périphérique Ethernet, pourquoi ne reçois-je pas quelque chose comme /dev/eth0?

Existe-t-il une liste de périphériques pour les ports Ethernet?

Je sais que vous pouvez voir les noms de port en utilisant ifconfig, je me demande simplement si quelque chose apparaît dans /dev aussi.

6
dinkelk

C'est une bonne question. La raison est essentiellement historique; différents groupes ayant des objectifs et des priorités différents ont ajouté des morceaux d'Unix au fil du temps, et les différences entre les différentes API sont le reflet de cette histoire. Je pense que le concept de fichier de périphérique original remonte aux Bell Labs, alors que les sockets réseau ont été ajoutés plus tard à UC Berkeley. Bell essayait de créer un paradigme facile à entretenir propre à Nice pour les opérations d’AT & T, tandis que Berkeley devait ajouter des fonctionnalités Internet qui ne cadraient pas facilement avec ce paradigme. Techniquement, il serait possible de créer un fichier /dev/eth0 aujourd'hui (voir ci-dessous), mais cela impliquerait la réécriture d'une quantité prohibitive de code hérité.

Léger OT: Si le sujet vous intéresse, envisagez de jeter un coup d'œil à Plan 9, qui a poussé "tout est un fichier" à l'extrême (ne vous attendez pas à ce qu'il ait de nombreuses applications modernes et utilisables):

http://www.faqs.org/docs/artu/plan9.html

de nombreuses installations sous Unix sont accessibles via diverses interfaces ad-hoc telles que les sockets BSD, fcntl (2) et ioctl (2), dans Plan 9, sont accessibles par le biais d'opérations de lecture et d'écriture ordinaires sur des fichiers spéciaux analogues aux fichiers de périphérique.

9
Paul

Il n'y a pas si longtemps, les périphériques Ethernet était apparaissent sous la forme/dev/eth0,/dev/eth1 et ainsi de suite. Il y a encore des applications qui s'attendent à les trouver là, mais qui sont maintenant déçues et parfois inutilisables. Heureusement pas trop.

0
Gordon

Bonjour, le répertoire/dev est rempli par udev, un démon qui lit le répertoire/sys et crée ces fichiers. Si vous voulez utiliser fdisk et gdisk, vous devez obligatoirement utiliser les périphériques présents dans/dev. Et pour voir le tty et le pty utilisés. Je pense que BSD alloue une interface Ethernet dans/dev, où vous pouvez écrire et lire.

0
Kouros