Linux 中的终端实际上​​是如何工作的?

Linux 中的终端实际上​​是如何工作的?

我使用 Linux 控制台已有多年,但目前开始思考它的实际工作原理。输入 acommand作为字符串并按下Enter可在同一终端窗口中返回其输出。

打开新的终端窗口并执行tty显示以下结果:

$ tty
/dev/pts/10

pty 上的手册页定义:

一个期望连接到终端的进程,可以打开一个伪终端的从端,然后由打开了主端的程序驱动。在主端写入的任何内容都会提供给从端的进程,就像在终端上输入的一样。[...]反之,写入伪终端从机端的任何内容都可以被连接到主机端的进程读取

我的理解:

实际的终端窗口连接到从机/dev/pts/10,我在终端窗口中输入的所有输入都在从机端写入,然后在主机端读取。连接到主端的进程知道如何处理用户输入的所有字符串,执行它们并将命令结果写入主端,然后在从端读取并显示在终端窗口中。

问题:

连接到主端的进程是什么,它知道如何执行用户以字符串形式输入的命令?

相关内容