xterm
ターミナルエミュレータ(たとえば)を開くと、xterm
マスター(/dev/ptmx
)とスレーブ(/dev/pts/#
)があります。
しかし、仮想端末を開くと(押すCtrl+Alt+F#
)仮想端末もメインデバイスに接続されますか?それとも/dev/tty#
マスターなしでスレーブ()に直接接続されていますか?
ベストアンサー1
マスターはありません(したがって奴隷ではありません)。
これを使用すると、xterm
プロセスxterm
は一端でキーとピクセル間の変換を実行し、もう一方の端ではシリアルポートバイトストリームをエミュレートします。カーネルはxterm
pty マスターを介してコンテンツを前後に渡します。
カーネルを使用すると、tty1
カーネルはこれらすべての操作を独自に実行します。のコードはdrivers/tty/vt/keyboard.c
キー押下を解釈し、drivers/tty/vt/vt.c
出力を解釈します。 VT100と同様の動作を実装するすべてのロジックがxterm
ここに複製されます。
この実装はカーネルにあるため、ユーザースペースプロセスを介して中継する必要なく、関連する低レベルドライバ(GPU、キーボード付きUSBバスなど)と直接通信できます。他のユーザ空間プロセスが関係しない場合、ttyの「マスター側」は必要ありません。