tty驱动和线路纪律有什么关系

Yoa*_*ein 8 drivers terminal tty pseudoterminal

在著名的《The TTY揭秘》中,如下图所示:在此输入图像描述

由此看来,用户进程正在与“TTY 驱动程序”通信,而“TTY 驱动程序”又与线路规则通信。然而,在奥莱利的书中

在此输入图像描述

看起来用户应用程序正在与“tty 核心”进行通信,而“tty 核心”又与线路规则进行通信,而 tty 驱动程序是硬件之前的最后一层。有人可以解释一下“tty 驱动程序”到底是什么吗?我想尖锐地提出我的问题:

据我所知,驱动程序是用于与硬件通信的软件。例如,有一个设备驱动程序知道如何与磁盘控制器通信。该驱动程序实际上负责读取和写入设备控制器的寄存器。另一方面 - 有些驱动程序不用于与硬件通信,例如文件系统驱动程序,它们基本上是一种知道如何以特定方式组织数据的软件。

tty 驱动程序是哪种类型的驱动程序?生产线纪律适用于哪里?

编辑

经过进一步阅读和观察 O'Reilly 章节,在我看来,O'Reilly 所说的“TTY 驱动程序”实际上就是“The TTY demystified”所说的“UART 驱动程序”,而 O'Reilly 所说的“TTY 驱动程序”实际上是指“UART 驱动程序”。 “TTY 核心”就是“TTY 揭秘”中“TTY 驱动程序”的意思。

意思是,O'Reilly 的“TTY 驱动程序”是用于与硬件交互的设备驱动程序,而“TTY 核心”是用于从用户进程接收数据的内核软件(因此 - 驱动程序(?)),通过线路规则将其发送到正确的驱动程序(让它成为 UART 驱动程序或 pty 主设备)。

那是对的吗?

Edu*_*ani 6

tty驱动和线路纪律有什么关系

该过程与学科进行沟通。但纪律可能是raw(无操作、空纪律),在这种情况下,它除了传递消息之外什么也不做。

这就是为什么 O'Reilly 书中的堆栈在左侧有一个直通,在右侧有一个线路规则。这是他们解释 no-op/raw/null 行规则的方式(raw是实际名称,您可以使用 来设置它stty raw)。

  • 从技术上讲,“stty raw”不会改变生产线规则。它只是调整 *tty 线路规则* 以禁用其所有效果(结果与没有线路规则或无操作线路规则被推送到串行/pty...设备顶部相同) (2认同)
  • 实际上,您需要“stty raw -echo”来禁用其所有效果。 (2认同)