tty 核心概览如下图所示:
可以看到,tty 架构的划分层次,由下至上的逻辑关系为:硬件 -> tty 驱动 -> tty 线路规程(也译为行规程)-> tty 核心 -> 用户层。
内核负责控制 tty 设备的数据流,并且格式化这些数据。这使得 tty 驱动程序把重点放在硬件数据处理上,而不必重点考虑使用常规方法与用户空间交互。为了控制数据流,有许多不同的线路规程(line discipline)可虚拟地“插入”任何的 tty 设备上,这由不同的 tty 线路规程驱动程序实现。
数据发送流程:tty core 从用户得到要下发到 tty 设备的数据,然后把数据发送给 tty 线路规程驱动程序,该驱动程序负责把数据传递给 tty 驱动程序。tty 驱动程序对数据进行格式化然后发送硬件。所谓格式化,就是在驱动中转换成硬件支持的协议和格式。
数据接收流程:从 tty 硬件那里接收的数据将回溯至 tty 驱动程序,然后流入 tty 线路规程驱动程序,接着是 tty 核心,最后用户从 tty 核心那里得到数据。
有时 tty 线路规程驱动程序不是必须的,但是一般情况下是存在的。tty 线路规程对于 tty 驱动程序是不透明的,也即相互之间不能直接通信,tty 驱动程序的作用是将发送给它的数据格式化成硬件能理解的格式,并从硬件接收数据。tty 线路规程的作用是使用特殊的方法,把从用户或硬件那里接收的数据格式化。这种格式化通常使用一些协议来转换,如 PPP 或者 BlueTooth。