https://unix.stackexchange.com/a/492304/674 říká
V Linuxu pomocí devpts neexistuje žádný soubor hlavního zařízení. Proces na hlavní straně používá deskriptor souboru, který získá otevřením ptmx, ale neexistuje žádný odpovídající uzel zařízení.
Odkazoval autor na /dev/ptmx
nebo /dev/pts/ptmx
?
Proč jsou /dev/ptmx
a /dev/pts/ptmx
nejsou soubory zařízení? Jaké typy souborů to jsou?
Jaký je rozdíl mezi /dev/ptmx
a /dev/pts/ptmx
?
Děkuji.
Na 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: -
Přijatá odpověď:
Kontext byl „Pseudoterminál má dvojici pána a otroka“. Když jsem napsal „neexistuje žádný soubor hlavního zařízení“, myslel jsem tím, že v systému souborů není žádný uzel zařízení odpovídající hlavnímu konci pseudoterminálního připojení, na rozdíl od podřízeného konce. Neměl jsem na mysli ani /dev/ptmx
nebo /dev/pts/ptmx
.
/dev/ptmx
a /dev/pts/ptmx
jsou uzly zařízení, jak je naznačeno jejich typem ve výstupu ls
nebo stat
. Mají stejnou hlavní a vedlejší, což znamená, že poskytují přístup ke stejnému zařízení.
Viz odpověď JdeBP na Odkud pochází `/dev/pts/ptmx`? pro historii obou uzlů zařízení (a důvod, proč jsou v dnešní době na Linuxu dva).