Почему устройства Ethernet не отображаются в "/dev"?

Как правило, я заметил, что подключение нового устройства в системе Linux приводит к появлению новой записи в /dev (при условии, что у вас есть правильные драйверы).

Например:

  1. Когда вы подключаете новый жесткий диск, вы получаете /dev/sdb,
  2. Когда вы подключаете последовательное устройство, вы получаете /dev/ttyS0,

Когда я подключаю устройство Ethernet, почему бы мне не получить что-то вроде /dev/eth0?

Есть ли список устройств для портов Ethernet?

Я знаю, что вы можете увидеть имена портов, используя ifconfigМне просто интересно, если что-то появляется в /dev тоже.

3 ответа

Решение

Это хороший вопрос. Причина по сути историческая; разные группы с разными целями и приоритетами со временем добавляли кусочки Unix, и различия между разными API являются отражением этой истории. Я думаю, что оригинальная концепция файла устройства восходит к Bell Labs, тогда как сетевые сокеты были добавлены позже в UC Berkeley. Белл пытался создать приятную и понятную для обслуживания парадигму для операций AT&T, тогда как Беркли нужно было добавить функции Интернета, которые нелегко вписывались в эту парадигму. Технически можно было бы вернуться и создать /dev/eth0 файл сегодня (см. ниже), но это будет включать в себя переписывание недопустимого количества устаревшего кода.

Небольшое ОТ: Если субъект вас интересует, подумайте о том, чтобы взглянуть на План 9, в котором "все является файлом" в еще большей степени (просто не ожидайте, что у него будет очень много современных, пригодных для использования приложений):

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

многие средства, доступные в Unix, доступны через различные специальные интерфейсы, такие как BSD-сокеты, fcntl (2) и ioctl(2), доступные в Plan 9 с помощью обычных операций чтения и записи для специальных файлов, аналогичных файлам устройств

Не так давно устройства Ethernet появлялись как /dev/eth0, /dev/eth1 и так далее. Есть еще приложения, которые ожидают найти их там, но теперь разочарованы и иногда непригодны. К счастью, не так много.

Здравствуйте, в настоящее время каталог / dev заполняется демоном udev, который читает каталог / sys и создает эти файлы. Если вы хотите использовать fdisk и gdisk, вы вынуждены использовать устройства, находящиеся в / dev. И чтобы увидеть tty и pty используется. Я думаю, что BSD выделяет интерфейс Ethernet в / dev, где вы можете писать и читать.

Другие вопросы по тегам