Network devices don't fit neatly into the normal read/write model for devices (with the exception of network block devices, which have special applications), on linux they are not in
/dev. This doesn't mean they cannot be in
/dev/, any particular driver can create a device node and userland tools can be used to interact with it (i.e. via ioctsl). On Solaris network devices are in
/dev for exactly that purpose.
This is what's usually quoted (Linux Devices Drivers, 2nd Ed., 2001; Chapter 14 Network Drivers).
We are now through discussing char and block drivers and are ready to move on to the fascinating world of networking. Network interfaces are the third standard class of Linux devices, and this chapter describes how they interact with the rest of the kernel.
There are a few important differences between mounted disks and packet-delivery interfaces. To begin with, a disk exists as a special file in the /dev directory, whereas a network interface has no such entry point. The normal file operations (read, write, and so on) do not make sense when applied to network interfaces, so it is not possible to apply the Unix "everything is a file" approach to them. Thus, network interfaces exist in their own namespace and export a different set of operations.
You can see what interfaces are available in
/proc/net/dev, and you can access device configuration and statistics under
If you look in the documentation you won't see any normal network devices, only TAP/TUN, PPP and network block devices.
Ancient, pre-1.0 linux kernel versions did create devices in
/dev for control purposes (that's a long, long time ago... 1994 or earlier). If you jump in a time machine and fish out a copy of
MAKEDEV from 1994 you'll see it supported
/dev/wd[0-3], and others, likely the venerable NE2000 and clones. See the final question in §8.1 of the 1993 version of the Linux Ethernet HOWTO.