擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインターフェースを 提供する。端末に接続されることを想定しているプロセスは擬似端末の スレーブをオープンすることができ、それ以降はマスタ側をオープン しているプログラムからそのプロセスを制御することができる。 端末で入力されたのと同じように、 マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。 例えば、マスタデバイスに割り込みキャラクター (通常は control-C) を書き込むと、 スレーブに接続されているフォアグラウンドプロセスグループに対して 割り込みシグナル (SIGINT) が生成される。 反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、 マスタ側に接続されているプロセスから読み出すことができる。
Data flow between master and slave is handled asynchronously, much like data flow with a physical terminal. Data written to the slave will be available at the master promptly, but may not be available immediately. Similarly, there may be a small processing delay between a write to the master, and the effect being visible at the slave.
歴史的に見ると BSD と System V の2種類の擬似端末の API が発展してきている。 SUSv1 は System V API に基づいた擬似端末 API を標準化しており、 擬似端末を使用する新しいプログラムはすべてこの API を採用すべきである。
Linux では BSD 風と (標準化された) System V 風の擬似端末を提供している。 System V 風の端末は、Linux システムでは一般に UNIX 98 擬似端末と呼ばれている。
カーネル 2.6.4 以降では、BSD 風の擬似端末は廃止予定とされている。この機能は、カーネル作成時に CONFIG_LEGACY_PTYS オプションを無効にすることで無効にできる (Linux 2.6.30 以降では、メインラインのカーネルでは、このオプションはデフォルトで無効になっている)。新しいアプリケーションでは、UNIX 98 擬似端末を使用すべきである。
Linux カーネルでは、利用できる UNIX 98 擬似端末の数に上限を設けている。 2.6.3 以前のカーネルでは、この上限はカーネルのコンパイル時の設定 (CONFIG_UNIX98_PTYS) である。許可される擬似端末の数は最大 2048 であり、 デフォルトの設定は 256 である。 カーネル 2.6.4 以降では、この上限は /proc/sys/kernel/pty/max 経由で動的に調整可能となっている。また、 /proc/sys/kernel/pty/nr で現在使用中の擬似端末の数を取得できる。 この 2つのファイルの詳細は proc(5) を参照。
パケットモード操作の制御を行う TIOCPKT ioctl(2) の説明は ioctl_tty(2) に書かれている。
BSD ioctl(2) の TIOCSTOP, TIOCSTART, TIOCUCNTL, TIOCREMOTE はこれまでのところ Linux では実装されていない。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]