如果 udev 服务创建 /dev 文件,那么为什么需要 mknod 命令?

如果 udev 服务创建 /dev 文件,那么为什么需要 mknod 命令?

我正在尝试理解 mknod 命令,但在这里卡住了。在 Linux 中,udev 服务检测连接到 Linux 机器的设备,那么为什么需要 mknod 命令。请帮忙..

答案1

Udev 是一个用于自动化硬件配置的子系统,而 mknod 是一个用于创建 POSIX 定义的特殊文件(主要是 FIFO)的工具。尽管它的大部分功能已被 mkfifo 等其他工具取代。但它的存在是为了兼容性。

编辑:好吧,让我们提供更多背景信息。mknod 也是一个 Unix 系统调用,它是一个实现该系统调用部分功能的命令。该系统调用会创建任何类型的文件“节点”,包括常规文件。这就是内核创建每个文件节点的方式。

命令 mknod 主要用于创建 FIFO 和设备文件。在 POSIX 中,mknod 命令用于将设备文件连接到设备驱动程序。POSIX 还将 mkfifo 定义为更具体的 FIFO 命令。它不能用于创建常规文件或 UNIX 套接字文件。

由于 udev 负责加载驱动程序并创建这些设备文件,因此系统管理员实际上不需要使用 mknod 来创建它们。这是 Linux 提供的自动化功能,而“类 Unix”系统仍然保留使用 mknod 的能力。此外,非 POSIX 函数 makedev 也可用于创建设备文件。这是 Linux 用于设置设备的底层系统调用,可以使用相应的命令代替 mknod。

相关内容