Netzwerkgeräte passen nicht perfekt in das normale Lese- / Schreibmodell für Geräte (mit Ausnahme von Netzwerkblockgeräten, für die spezielle Anwendungen gelten). Unter Linux befinden sie sich nicht in diesem Modell /dev
. Dies bedeutet nicht , dass sie nicht , kann in sein /dev/
, eine bestimmte Fahrer kann einen Geräteknoten und Userland Werkzeuge erstellen kann damit (dh über ioctsl) zu interagieren , verwendet werden. Auf Solaris-Netzwerkgeräten ist /dev
genau dieser Zweck erfüllt.
Dies wird normalerweise angegeben ( Linux Devices Drivers , 2. Auflage, 2001; Kapitel 14 Netzwerktreiber ).
Wir diskutieren jetzt über Char- und Block-Treiber und sind bereit, in die faszinierende Welt des Networkings einzusteigen. Netzwerkschnittstellen sind die dritte Standardklasse von Linux-Geräten. In diesem Kapitel wird beschrieben, wie sie mit dem Rest des Kernels interagieren.
[...]
Es gibt einige wichtige Unterschiede zwischen bereitgestellten Datenträgern und Paketzustellungsschnittstellen. Zunächst existiert eine Festplatte als spezielle Datei im Verzeichnis / dev, wohingegen eine Netzwerkschnittstelle keinen solchen Einstiegspunkt hat. Die normalen Dateivorgänge (Lesen, Schreiben usw.) sind für Netzwerkschnittstellen nicht sinnvoll, daher ist es nicht möglich, den Unix-Ansatz "Alles ist eine Datei" auf sie anzuwenden. Daher sind Netzwerkschnittstellen in einem eigenen Namespace vorhanden und exportieren eine andere Gruppe von Vorgängen.
Sie können sehen, welche Schnittstellen verfügbar sind /proc/net/dev
, und Sie können auf die Gerätekonfiguration und Statistiken unter zugreifen /sys/class/net/
.
Wenn Sie in der Dokumentation nachsehen, sehen Sie keine normalen Netzwerkgeräte, sondern nur TAP / TUN-, PPP- und Netzwerkblockgeräte .
Alte Linux-Kernel-Versionen vor 1.0 haben Geräte /dev
für Kontrollzwecke erstellt (das ist lange, lange her ... 1994 oder früher). Wenn Sie in eine Zeitmaschine springen und ein Exemplar MAKEDEV
von 1994 herausfischen, werden Sie feststellen, dass es unterstützt /dev/ne[0-3]
wird /dev/wd[0-3]
, und andere, wahrscheinlich das ehrwürdige NE2000 und Klone. Siehe die letzte Frage in §8.1 der 1993er Version des Linux Ethernet HOWTO .
Siehe auch:
/unix/23199/why-are-network-interfaces-not-indev-like-other-devices