Мережеві пристрої не вписуються в звичайну модель читання / запису для пристроїв (за винятком пристроїв мережевого блоку, у яких є спеціальні програми), в Linux вони не входять /dev
. Це не означає, що вони не можуть знаходитися /dev/
, будь-який конкретний драйвер може створити вузол пристрою, а для взаємодії з ним (тобто через ioctsl) можна використовувати інструменти користувача. У мережі Solaris пристрої працюють /dev
саме з цією метою.
Ось що зазвичай цитується ( драйвери пристроїв Linux , 2nd Ed., 2001; Розділ 14 Мережеві драйвери ).
Зараз ми обговорюємо драйвери char та block та готові перейти до захоплюючого світу мереж. Мережеві інтерфейси - це третій стандартний клас пристроїв Linux, і в цій главі описано, як вони взаємодіють з рештою ядра.
[...]
Є кілька важливих відмінностей між встановленими дисками та інтерфейсами доставки пакетів. Для початку диск існує як спеціальний файл у каталозі / dev, тоді як мережевий інтерфейс не має такої точки входу. Звичайні файлові операції (читання, запис тощо) не мають сенсу при застосуванні до мережевих інтерфейсів, тому неможливо застосувати до них підхід Unix "все є файлом". Таким чином, мережеві інтерфейси існують у власному просторі імен та експортують інший набір операцій.
Ви можете побачити, в яких інтерфейсах доступні /proc/net/dev
, і ви можете отримати доступ до конфігурації пристрою та статистики під /sys/class/net/
.
Якщо ви подивитесь у документацію, ви не побачите жодних звичайних мережевих пристроїв, лише TAP / TUN, PPP та мережеві блоки пристроїв .
Стародавні, попередньо 1,0 версії ядра Linux було створювати пристрої в /dev
цілях контролю (це давно, давно ... 1994 або раніше). Якщо ви стрибаєте в машину часу і риби з копії MAKEDEV
з 1994 року ви побачите , що вона підтримується /dev/ne[0-3]
, /dev/wd[0-3]
і інші, ймовірно , поважний NE2000 і клони. Дивіться останнє запитання в пункту 8.1 в версії 1993 на Linux Ethernet HOWTO .
Дивіться також:
/unix/23199/why-are-network-interfaces-not-in-dev-like-other-devices