我发现了两个关于伪终端 (pty) 工作原理的相互矛盾的图像。
第一张图显示了 pty 从属端的进程与线路规则对话:
第二张图显示了 pty 从属端的进程与从属 tty 驱动程序对话:
哪个图是正确的?
第二张图片是正确的。(顺便说一句,它来自这里。)
从这个问题的公认答案来看:
线路规程是一个软件模块(驻留在驱动程序中、内核中),被推送到位于该设备和线路(pty 的主端)之间的串行/pty 设备之上。
(...)
您可以通过发出 stty raw -echo 来查看禁用 tty 线路规则的效果(请注意,bash 提示符或其他交互式应用程序(如 vi)将终端设置为它们所需的确切模式,因此您需要使用像 cat 这样的哑应用程序来有这方面的经验)。然后,写入从终端设备的所有内容都会立即发送到主设备端以供 xterm 读取,并且 xterm 写入主设备端的每个字符都可以立即从从设备中读取。
另请参阅这篇关于 ttys 的文章。