GNU/Linux >> Linux の 問題 >  >> Linux

Linux – `/ dev/ptmx`と`/dev / pts / ptmx`がデバイスファイルではないのはなぜですか?

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

Linuxでは、devptsを使用して、マスターデバイスファイルはありません。マスター側のプロセスは、ptmxを開くことで取得するファイル記述子を使用しますが、対応するデバイスノードはありません。

著者は/dev/ptmxを参照しましたか または/dev/pts/ptmx

/dev/ptmxはなぜですか および/dev/pts/ptmx デバイスファイルではありませんか?それらはどのような種類のファイルですか?

/dev/ptmxの違いは何ですか および/dev/pts/ptmx

ありがとう。

Lubuntu18.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: -

承認された回答:

コンテキストは「疑似端末にはマスターとスレーブのペアがあります」でした。 「マスターデバイスファイルがない」と書いたとき、スレーブエンドとは異なり、疑似端末接続のマスターエンドに対応するデバイスノードがファイルシステムにないことを意味しました。 /dev/ptmxも参照していませんでした または/dev/pts/ptmx

/dev/ptmx および/dev/pts/ptmx lsの出力でタイプによって示されるように、デバイスノードです またはstat 。メジャーとマイナーは同じです。つまり、同じデバイスへのアクセスを提供します。

`/ dev / pts / ptmx`はどこから来たのですか?に対するJdeBPの回答を参照してください。両方のデバイスノードの履歴(および最近Linuxに2つある理由)


Linux
  1. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  2. /dev とそのサブディレクトリとファイルについて

  3. カーネル:/dev/kmem と /dev/mem を無効化

  1. Linux が /dev/tty と /dev/tty0 を使用する方法

  2. なぜ Linux は `/dev/cdrom` と `/media/cdrom` の両方を持つ必要があるのですか?

  3. Linux テープ、dev のテープ デバイスの最後にある l a と m は何ですか?

  1. echo または print /dev/stdin /dev/stdout /dev/stderr

  2. /lib と /lib64 があるのに /bin しかないのはなぜですか?

  3. `/dev/console` は何に使われますか?