回答:
「tty」は元々「テレタイプ」を意味し、「pty」は「疑似テレタイプ」を意味します。
UNIXでは、/ dev / tty *は「テレタイプ」のように機能する任意のデバイス、つまり端末です。(テレタイプと呼ばれるのは、それが今夜のターミナルにあったものだからです。)
ptyはpseudottyであり、そこに読み書きするプロセスの端末のように機能するデバイスエントリですが、別のものによって管理されます。それらは最初に(私が覚えているように)Xウィンドウやスクリーンなどのために登場しました。そこでは、ターミナルのように振る舞うが、別のプログラムから使用できるものが必要でした。
Ctrl-Alt-F{1..6}
、それらはに接続されてい/dev/tty{1..6}
ます。Linuxコンソールは物理端末ではありませんが、ttyN
(にではなくptyN
)に接続されています。ここで何か不足していますか?
ttyは端末です(これはテレタイプを表します-元の端末は出力にラインプリンターを使用し、入力にキーボードを使用していました!)。端末は基本的に、テキストを入力および出力に使用する単なるユーザーインターフェイスデバイスです。
ptyは疑似端末です。これは、接続されたプログラムからは端末のように見えるソフトウェア実装ですが、「実際の」端末と直接通信する代わりに、入力と出力を別のプログラムに転送します。
たとえば、マシンにsshでログインしてを実行するls
と、ls
コマンドはその出力を疑似端末に送信し、その反対側はSSHデーモンに接続されます。
*nix
ベースのオペレーティングシステムがこの疑似端末を作成するかを支援できますか?
sshd
とxterm
2つの典型的な例です。
システムにマウントされているファイルシステムを表示するコマンドライン引数を指定せずにマウントコマンドを実行すると、次のような行が表示されます。/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出力は新しいターミナルウィンドウに表示されます。
Aは、tty
ある物理的 T erminal- T elet Yコンピュータ(通常シリアルポート)上のPEポート。
テレタイプという言葉は、1930年代のテレタイプライターまたはテレタイプライターデバイスの略語です。それ自体が1830年代と1840年代のテレグラフエンコーディングマシンに代わる電磁気デバイスです。
Aは、pty
であり、P seudo- T ELE TY例えばSSH、xtermの、又はスクリーンのような端子をエミュレートする接続ソフトウェアプログラムにコンピュータのオペレーティングシステムカーネルによって提供されるPEポート。
端末とは、入力と出力にテキストを使用するコンピュータのユーザーインターフェイスです。
これらの使用の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
のコマンドシェルには、プリンターへの出力用にラインプリンターターミナル用のポートの概念がまだあります。