Как правило, я заметил, что при подключении нового устройства в системе Linux новая запись будет перечислена в /dev
(при условии, что у вас есть правильные драйверы).
Например:
/dev/sdb
. /dev/ttyS0
. Когда я подключаю устройство Ethernet, почему я не получаю что-то вроде /dev/eth0
?
Есть ли список устройств для портов Ethernet?
Я знаю, что вы можете видеть имена портов, используя ifconfig
, мне просто интересно, появляется ли что-то и в /dev
.
Это - хороший вопрос. Причина является чрезвычайно исторической; различные группы с различными целями и приоритетами добавляли части Unix со временем, и различиями среди различных API является отражение этой истории. Я думаю, что понятие файла исходного устройства возвращается в Bell Labs, тогда как сетевые сокеты были добавлены позже в Беркли UC. Bell пытался создать хорошую чистую удобную в сопровождении парадигму для операций AT&T, тогда как Беркли должен был добавить интернет-опции, которые не соответствовали легко той парадигме. Технически было бы возможно возвратиться и создать a /dev/eth0
файл сегодня (см. ниже), но он включил бы перезапись препятствующей суммы унаследованного кода.
Небольшой OT: Если предмет интересует Вас, рассмотрите взгляд на План 9, который взял, "все - файл" к большим экстремальным значениям (просто не ожидают, что это будет иметь очень много современных, применимых приложений):
http://www.faqs.org/docs/artu/plan9.html
много средств, к которым под Unix получают доступ через различные специальные интерфейсы как сокеты BSD, fcntl (2), и ioctl (2), находятся в Плане 9, к которому получают доступ посредством обычных операций чтения и операций записи на специальных файлах, аналогичных файлам устройств
Привет, в настоящее время каталог / dev заполняется демоном udev, который читает каталог / sys и создает эти файлы. Если вы хотите использовать fdisk и gdisk, вы вынуждены использовать устройства, находящиеся в / dev. И чтобы увидеть tty и pty используется. Я думаю, что BSD выделяет интерфейс Ethernet в / dev, где вы можете писать и читать.
Не так давно устройства Ethernet представляли как / dev / eth0, / dev / eth1 и так далее. Есть еще приложения, которые ожидают найти их там, но теперь разочарованы и иногда непригодны. К счастью, не так много.