Linux のターミナルは実際どのように動作するのでしょうか?

Linux のターミナルは実際どのように動作するのでしょうか?

私は何年も Linux コンソールを使用していますが、現在、それが実際にどのように機能するかについて考え始めています。command文字列として a を入力して押すと、Enter同じターミナル ウィンドウにその出力が返されます。

新しいターミナル ウィンドウを開いて実行すると、tty次の結果が表示されます。

$ tty
/dev/pts/10

pty のマニュアルページ次のように定義します。

端末への接続を期待するプロセスは、疑似端末のスレーブ側を開き、マスター側を開いたプログラムによって駆動することができます。マスター側で書き込まれたものはすべて、端末で入力されたかのように、スレーブ側のプロセスに提供されます。[...]逆に、擬似端末のスレーブ端末に書き込まれたものは、マスター端末に接続されたプロセスによって読み取ることができます。

私の理解:

実際のターミナル ウィンドウはスレーブに接続されており/dev/pts/10、ターミナル ウィンドウに入力したすべての入力はスレーブ エンドに書き込まれ、その後マスター エンドで読み取られます。マスター エンドに接続されたプロセスは、ユーザーが入力したすべての文字列の処理方法を認識し、それらを実行し、マスター エンドにコマンドの結果を書き込みます。その後、それがスレーブ エンドで読み取られ、ターミナル ウィンドウに表示されます。

質問:

ユーザーが文字列として入力したコマンドを実行する方法を知っている、マスター エンドに接続されたプロセスは何ですか?

関連情報