OSX 上类似 udev 的东西是什么,它是如何工作的?



如果我将 USB 串行适配器插入 Mac,/dev 中会显示一个新设备,例如/dev/tty.usbmodem1421 或/dev/tty.usbserial-A7048O1O。

如果这是Linux,我会寻找一个udev规则来解释设备名称的来源以及创建它的原因。

但这是OSX。如何在Mac上分配设备名称(例如,为什么设备名称中那些有趣的数字),以及哪一段代码执行此操作?

Mac OS X 中的设备名称(如果存在)由所涉及的特定驱动程序分配。不涉及单一机制,特别是因为大多数类别的设备根本不会让节点/dev

对于FTDI设备

,设备名称中的"有趣的数字"是FTDI芯片的序列号。此操作的逻辑是 FTDI 驱动程序的内部逻辑,不幸的是,该驱动程序不是开源的,因此我无法指出所涉及的代码。:(

顺便提一下,您可以使用 ft232r_prog 更改 FTDI 设备的序列号。

关于Linux的一些评论:

如果这是Linux,我会寻找一个udev规则来解释设备名称的来源以及创建它的原因。

严格来说,几年来,udev 不再负责创建主要条目。早在 2004 年,当 udev 被构思时,就有一个巨大的推动力,将所有内容移动到用户空间,以便我们可以正确编写所有内容。 /dev曾经是由 udev 填充的 tmpfs(在它是磁盘上的常规目录之前,所有设备节点都预先填充,通常由一个名为 MAKEDEV 的脚本填充)。

当 udev 的第一次迭代被抛出时,我们有一个伪文件系统(如 proc 或 sysfs)devfs,但它不允许修改条目。条目的名称由内核和加载到其中的驱动程序确定。当时我已经建议(搜索邮件列表)混合使用 tmpfs 和 devfs,并且只做必要的修改,但让内核对条目负责(当时它被击落了)。瞧,几年后我们得到了devtmpfs,就是这样。

相关内容

  • 没有找到相关文章

最新更新