web-dev-qa-db-ja.com

ptyとttyはどういう意味ですか?

いくつかのオープンソースプロジェクトでptyttyについて多くの言及があることに気付きました。ありがとう!

214
why

「tty」は元々「テレタイプ」を意味し、「pty」は「擬似テレタイプ」を意味します。

UNIXでは、/ dev/tty *は「テレタイプ」、つまり端末のように動作するデバイスです。 (テレタイプと呼ばれたのは、それが私たちがその深夜の端末で持っていたものだからです。)

Ptyはpseudottyであり、そこで読み書きするプロセスに対して端末のように動作するデバイスエントリですが、他の何かによって管理されます。 X Windowやスクリーンなどで最初に登場したのは(思い出して)、端末のように振る舞うが別のプログラムから使用できるものが必要でした。

205
Charlie Martin

Ttyは端末です(teletypeを表します-元の端末は、出力にラインプリンターを使用し、入力にキーボードを使用していました!)。端末は基本的に、入力と出力にテキストを使用する単なるユーザーインターフェイスデバイスです。

Ptyは擬似端末です。これは、端末のように接続プログラムに表示されるソフトウェア実装ですが、「実際の」端末と直接通信する代わりに、入力と出力を別のプログラムに転送します。

たとえば、マシンにsshしてlsを実行すると、lsコマンドはその出力を疑似端末に送信し、その反対側はSSHデーモンに接続されます。

222
caf

tty:テレタイプ。通常、端末が接続されているコンピューターのシリアルポートを指します。

pty:擬似テレタイプ。カーネルは、xtermやscreenなどの端末をエミュレートするプログラムに接続された擬似シリアルポートを提供しました。

18
wnoise

システムにマウントされたファイルシステムを表示するコマンドライン引数なしでmountコマンドを実行すると、次のような行が表示されます。/ dev/ptsにnoneタイプdevpts(rw、gid = 5、 mode = 620)これは、特別なタイプのファイルシステムdevptsが/ dev/ptsにマウントされていることを示します。このファイルシステムは、ハードウェアデバイスに関連付けられておらず、 Linuxカーネル。/procファイルシステムに似ています

/ devディレクトリと同様に、/ dev/ptsにはデバイスに対応するエントリが含まれています。ただし、通常のディレクトリである/ devとは異なり、/ dev/ptsはLinuxカーネルによって動的に作成される特別なディレクトリです。ディレクトリの内容は時間とともに変化し、実行中のシステムの状態を反映します。/dev/ptsのエントリは、擬似端末(または擬似TTY、またはPTY)に対応しています。

Linuxは、新しいターミナルウィンドウを開くたびにPTYを作成し、対応するエントリを/ dev/ptsに表示します。PTYデバイスはターミナルデバイスのように動作します。キーボードからの入力を受け入れ、実行するプログラムからのテキスト出力を表示します。 PTYには番号が付けられ、PTY番号は/ dev/pts内の対応するエントリの名前です。

たとえば、新しいターミナルウィンドウのPTY番号が7である場合、別のウィンドウから次のコマンドを呼び出します。%echo 'I am a virtual di' '>/dev/pts/7新しいターミナルウィンドウに出力が表示されます。

17