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


237

私は多くの言及があることに気づきました、ptyそしてttyいくつかのオープンソースプロジェクトでは、誰かが彼らが何を意味し、それらの違いは何であるか教えてもらえますか?ありがとう!

回答:


225

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

UNIXでは、/ dev / tty *は「テレタイプ」のように機能する任意のデバイス、つまり端末です。(テレタイプと呼ばれるのは、それが今夜のターミナルにあったものだからです。)

ptyはpseudottyであり、そこに読み書きするプロセスの端末のように機能するデバイスエントリですが、別のものによって管理されます。それらは最初に(私が覚えているように)Xウィンドウやスクリーンなどのために登場しました。そこでは、ターミナルのように振る舞うが、別のプログラムから使用できるものが必要でした。


Unixに主に追加されたptyは、主にTelnet、rsh、rloginをサポートしていると思います。
Fred Foo

5
@CharlieMartin ptyが「ターミナルのように振る舞う」ものとはどういう意味ですか?なぜ私たちはそのようなものを望みますか?そして、他のプログラムはこのptyをどのように利用しますか?私の推測では、ptyはコマンドまたは何かをプログラムの実際の端末(tty)にリレーします。これは正しいです?そうでない場合は、私の推測を無視して、コメントの最初の部分に答えてください。
OKGimmeMoney 2014年

16
端末をオブジェクトと考えてください。これは、一端をstdinに接続し、もう一端をstdoutに接続します。実際のTTYは物理端末に接続します。PTYは、xtermなどのプログラム、コマンドウィンドウ、またはシェルウィンドウに接続します。また、プログラムに嘘とそれが本当に言いそうで、端末、正直。PTY以前は、このようなプログラムをパイプで接続していましたが、パイプにはフロー制御がないなど、大きな違いがあります。PTYはこれを解決するために登場しました。
チャーリーマーティン

3
@CharlieMartin "実際のTTYは物理端末に接続します"。Linuxコンソールはどうですか?たとえば、UbuntuシステムではLinuxコンソールがオンになっていてCtrl-Alt-F{1..6}、それらはに接続されてい/dev/tty{1..6}ます。Linuxコンソールは物理端末ではありませんが、ttyN(にではなくptyN)に接続されています。ここで何か不足していますか?
Utku 2017年

1
奇妙なエッジケースのないLINUXについて明確なことはほとんど言えません。この場合、Linuxコンソールは、/ dev / tty devエントリーを使用するカーネル機能ですが、その後、一連の物事に接続してユーザーに提供します。en.wikipedia.org/wiki/Linux_console
チャーリーマーティン

235

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

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

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


1
PTYのもう少し「正確な」例を挙げていただけますか?私はまだ彼らがどこに来るのか、彼らがどのように呼ばれるのかさえ理解していませんでした。ありがとう
user3085931 14

誰かが、いつどのようにして*nixベースのオペレーティングシステムがこの疑似端末を作成するかを支援できますか?
クリシュナオザ

@darth_coder:アプリケーションがリクエストしたときに作成されます。これは、新しいグラフィカルターミナルウィンドウを開いたり、リモートでログインしたりすると発生します。
2017

@cafでは、ターミナルの生成を担当するカーネルモジュールまたはデーモンに名前を付けることができます。
クリシュナオザ

@darth_coder:どのアプリケーションでも実行できます。 sshdxterm2つの典型的な例です。
カフェ

21

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

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


19

システムにマウントされているファイルシステムを表示するコマンドライン引数を指定せずにマウントコマンドを実行すると、次のような行が表示されます。/dev/ptsタイプ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出力は新しいターミナルウィンドウに表示されます。


2

Aは、ttyある物理的 T erminal- T elet Yコンピュータ(通常シリアルポート)上のPEポート。

テレタイプという言葉は、1930年代のテレタイプライターまたはテレタイプライターデバイスの略語です。それ自体が1830年代と1840年代のテレグラフエンコーディングマシンに代わる電磁気デバイスです。

テレタイプライター
TTY-テレタイプライター1930年代

Aは、ptyであり、P seudo- T ELE TY例えばSSH、xtermの、又はスクリーンのような端子をエミュレートする接続ソフトウェアプログラムにコンピュータのオペレーティングシステムカーネルによって提供されるPEポート。

ここに画像の説明を入力してください
PTY-PseudoTeletype

端末とは、入力と出力にテキストを使用するコンピュータのユーザーインターフェイスです。


OSの実装

これらの使用のp seudo- トン ELE TY PEポートは、しかし、彼らの命名および実装が少し分岐しています。

Linuxは、特殊なファイルシステムをマウントdevptsをの/ dev(「s」はおそらく放置のS erial)内の対応するエントリ作成している/dev/ptsあなたが開くすべての新しいターミナルウィンドウを、例えば/dev/pts/0


macOS / FreeBSD/ devファイル構造も使用しますが、新しいターミナルウィンドウを開くたびに番号付きのTTY命名規則ttysを使用します。/dev/ttys002


Microsoft WindowsLPTのコマンドシェルには、プリンターへの出力用にラインプリンターターミナル用のポートの概念がまだあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.