擬似端末内で擬似端末を実行する

擬似端末内で擬似端末を実行する

私はプログラムがどのようにI / Oを好みscreen制御するかを理解しようとしています。script

端末、ttyなどに関する私の知識は読書から来ています。「ティーオープン」記事と私が見つけることができるすべてのSEの答え。私が理解したのは、コンポーネント間の相互作用は次のとおりです。

Console(Keyboard+Screen) ---- xterm(pty master) ----- tty line discipline ---- bash/other programs(pty slave)

行ルールがカーネルにある場合、xtermとbashはユーザースペースで実行されます。

  1. そうですか?

さて、次のプログラムについて考えてみるとscreenscript、彼らはユーザースペースプログラムです端末で実行(既存のxterm)ですが、他のプログラムでI / Oを制御できます。この記事では、xterm内で別の擬似端末(既存の擬似端末)を実行しているためです。

  1. これは、新しいマスターとスレーブのペアを作成し、ptyこの新しいペアのマスターを制御し、ここで開始されたすべてのプロセスがpty新しいスレーブで実行されることを意味しますか?たとえば、新しい「画面」を起動してコマンドを実行するたびに、tty同じように実行され/dev/pts/xますか?script

  2. 最後に、誰かがそれについての詳細を得ることができる記事/本を教えてもらえますか(まだ見つかりません)。

私も参考にしたいです。これ答えは短いですが。

ベストアンサー1

①はい、xtermとbashはユーザースペースで実行されます。画面やスクリプトも同様です。

②はい、そうです。 Screenは基本的にXTermと同様に端末エミュレータです。もちろん、XTermはX11サーバーにコマンドを出力してターミナルを表示し、画面は他のターミナル(ターミナルエミュレータまたは実際のターミナルかもしれません)に制御シーケンスとテキストを出力します。

③おそらく、このプログラムがどのように機能するかについての最も詳細な情報はソースコードです。もちろん、ここや次のサイトで質問することができます。スタックオーバーフロー

おすすめ記事