User:D dandrew/伪终端

维基百科,自由的百科全书
使用 脚本操作伪终端

在一些 Unix 操作系统,伪终端(Pseudoterminal)伪tty(Pseudotty)、或 PTY 都是一对 伪设备,其中 从设备 模拟一个硬件 终端 设备,而 主设备 提供终端模拟进程控制 从设备 的方法。

历史[编辑]

伪终端早在1967年就出现在 DEC PDP-6 分时系统中,并用于实现批处理。[1] 在 TOPS-10 的继任者 PDP-10 的文档中描述了这些内容。[2] 其他 DEC 操作系统也有 PTYs,包括 PDP-11的 RSTS/E,以及 PDP-10 的第三方 TENEX 操作系统。

Unix 伪终端起源于1983年 第八版Unix 的开发过程,它基于 TENEX 中的一个类似特性。[3] 它是 BSD 4.2 版本的一部分。 AT&T 的 System V 提供了伪终端在 STREAMS 设备模型中作为驱动的支持,以及伪终端多路复用器。

2010年的 Linux 编程接口 包含了一个解释伪终端的章节(第64章 "Pseudoterminals" p1375-1399) 。另外,第62章 "Terminals" 专门用于解释终端

应用[编辑]

虚拟终端进程的作用是:

  • 与用户互动。
  • 将文本输入输入到 主伪设备,以供 shell (如 bash)使用,该设备与 从伪装置 相连接。
  • 读取 主伪设备 的文本输出并显示给用户。

虚拟终端进程还必须处理终端控制命令,例如调整屏幕大小。广泛使用的虚拟终端程序如 xtermGNOME TerminalKonsoleTerminal。 远程登录程序如 sshtelnet 服务器发挥相同的作用,但与远程用户而不是本地用户进行通信。 还有如 expect 这样的项目。

ScreenTmux 用于添加一届会议上下文来伪终端,使得对于一个更强大和灵活的解决方案。 例如,每一个提供终端的持久性,从而允许用户断从一台计算机连接,后来从另一个计算机。

变种[编辑]

在 BSD PTY 系统中,一般有一个表单 / dev / tty 的名称,支持所有适用于文本终端设备的系统调用。 因此,它支持登录会话。 主设备文件通常有表单 / dev / pty 的名称,是与虚拟终端通信的终点。 有了这个命名方案,最多可以有256对。 另外,除非采用锁定方案,否则找到第一个免费的 pty 主人可能会有些猥亵。 因此,最近的 BSD 操作系统,例如 FreeBSD,实现 Unix98 PTYs。[4]

BSD PTY 已被 Unix98 PTY 淘汰,后者的命名系统没有限制伪终端的数量,并且在没有种族条件危险的情况下进入这些终端。 / dev / ptmx 是"pseudo-terminal master multiplexer"。 打开它返回一个主节点的文件描述符,并导致创建关联的从节点 / dev / pts / n。[5]

参考文献[编辑]

外部链接[编辑]

[[Category:終端模擬器]]