web-dev-qa-db-ja.com

ptyデバイスには2つの入力バッファーがありますか?

端末デバイスがクックモードの場合、端末に入力されたバイトはカーネルによってキャッシュおよび処理され、一部のバイトは行の編集および「消費」に使用され、readが一度に1行を返します。

ただし、ptyの場合、マスターfdへの出力はスレーブfdからの入力として読み取ることができ、その逆も可能です。したがって、私の質問は次のとおりです。

Ptyデバイスには、ttyとは異なり、ttyデバイスごとに1つのバッファーという2つの独立した入力バッファーがありますか?

Ptyは通常のttyとして動作します。通常のttyには、入力キュー(rawモードとクックモード)と出力キューがあります。

Ptyを使用すると、tty出力キューはマスター入力に接続され、ttyraw入力はマスター出力に接続されます。つまり、キューが多いということではなく、tty出力キューをマスター側からの入力と見なすことができるということです。

追加

Ptyは通常のttyです。一般的なttyパーツは、ライン編集、rawおよびクックドモード入力、Ctrl + Sなどのフロー制御などを処理します。

すべてのttyには、実際の入力と出力を処理するバックエンドがあります。これはシリアルドライバにすることができます。キーボードおよびVGAまたはフレームバッファーとインターフェイスするドライバーにすることができます。 PTYマスターにすることもできます。 ptyの場合、tty出力はマスターが読み取れるようになり、マスター書き込みはraw入力キューに配置されます。

4
RalfFriedl