为什么 `/dev/ptmx` 和 `/dev/pts/ptmx` 不是设备文件?

为什么 `/dev/ptmx` 和 `/dev/pts/ptmx` 不是设备文件?

https://unix.stackexchange.com/a/492304/674

在Linux上,使用devpts,没有主设备文件。 master端的进程使用了​​一个文件描述符,它是通过打开ptmx得到的,但是没有对应的设备节点。

作者是否提到了/dev/ptmx/dev/pts/ptmx

为什么是设备文件/dev/ptmx/dev/pts/ptmx不是设备文件?它们是什么类型的文件?

/dev/ptmx和 和有什么区别/dev/pts/ptmx

谢谢。

在 Lubuntu 18.04 上

$ file /dev/ptmx 
/dev/ptmx: character special (5/2)
$ file /dev/pts/ptmx 
/dev/pts/ptmx: character special (5/2)

$ sudo su

# stat -L /dev/fd/3 3<> /dev/pts/ptmx
  File: /dev/fd/3
  Size: 0           Blocks: 0          IO Block: 1024   character special file
Device: 15h/21d Inode: 2           Links: 1     Device type: 5,2
Access: (0000/c---------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-21 13:39:10.544000218 -0500
Modify: 2018-11-21 13:39:10.544000218 -0500
Change: 2018-11-21 13:39:10.544000218 -0500
 Birth: -

# stat -L /dev/fd/3 3<> /dev/ptmx
  File: /dev/fd/3
  Size: 0           Blocks: 0          IO Block: 4096   character special file
Device: 6h/6d   Inode: 87          Links: 1     Device type: 5,2
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    5/     tty)
Access: 2019-01-06 07:19:54.372098540 -0500
Modify: 2019-01-06 07:19:54.372098540 -0500
Change: 2018-11-21 13:39:30.372098540 -0500
 Birth: -

答案1

上下文是“一个伪终端有一对主从”。当我写“没有主设备文件”时,我的意思是文件系统中没有对应于伪终端连接的主端的设备节点,与从端不同。我指的不是/dev/ptmx/dev/pts/ptmx

/dev/ptmx和是设备节点,如或 的/dev/pts/ptmx输出中的类型所示。它们具有相同的主要和次要,这意味着它们提供对相同设备的访问。lsstat

JdeBP的回答`/dev/pts/ptmx` 从哪里来?了解这两个设备节点的历史(以及现在 Linux 上有两个设备节点的原因)。

相关内容