为什么以太网设备没有出现在“/dev”中?

为什么以太网设备没有出现在“/dev”中?

一般来说,我注意到在 Linux 系统中插入新设备会导致列出新条目/dev(假设您有正确的驱动程序)。

例如:

  1. 当您插入一个新的硬盘时,您就会得到/dev/sdb
  2. 当您插入串行设备时,您会得到/dev/ttyS0

当我插入以太网设备时,为什么我没有得到类似的信息/dev/eth0

是否有以太网端口的设备列表?

我知道您可以使用 查看端口名称ifconfig,我只是想知道是否也会出现一些内容/dev

答案1

这是个好问题。原因本质上是历史性的;随着时间的推移,具有不同目标和优先级的不同团队添加了 Unix 的部分内容,各种 API 之间的差异反映了这一历史。我认为最初的设备文件概念可以追溯到贝尔实验室,而网络套接字后来被加州大学伯克利分校添加。贝尔试图为 AT&T 的运营创建一个干净、可维护的范例,而伯克利需要添加不容易适应该范例的互联网功能。从技术上讲,/dev/eth0今天可以返回并创建一个文件(见下文),但这将涉及重写大量的遗留代码。

轻微 OT:如果您对该主题感兴趣,请考虑看看 Plan 9,它将“一切都是文件”发挥到了极致(只是不要指望它有很多现代的、可用的应用程序):

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

在 Unix 下,许多功能可以通过各种临时接口(如 BSD 套接字、fcntl(2) 和 ioctl(2))访问,而在 Plan 9 中,这些功能可以通过对类似于设备文件的特殊文件进行普通的读写操作来访问

答案2

您好,现在 /dev 目录由 udev 填充,udev 是一个守护进程,它读取 /sys 目录并创建这些文件。如果您想使用 fdisk 和 gdisk,则必须使用在 /dev 中找到的设备。并查看所使用的 tty 和 pty。我认为 BSD 在 /dev 中分配了一个以太网接口,您可以在其中写入和读取。

答案3

不久前以太网设备做过显示为 /dev/eth0、/dev/eth1 等。仍有一些应用程序期望在那里找到它们,但现在却失望而归,有时无法使用。幸运的是,这种情况并不多见。

相关内容