这可能是一个非常基本的问题,但我想彻底理解它。
- 什么是伪终端? (tty/pty)
- 为什么我们需要它们?它们是如何被引入的以及有什么必要性?
- 它们过时了吗?我们不再需要它们了吗?有什么东西可以代替它们吗?
- 有什么有用的用例吗?
我做了什么:
- 阅读手册页 - 获得一些信息,但不是确切的图片。
- 尝试阅读理查德·史蒂文斯 (Richard Stevens) 的《Unix 网络编程》中的内容。得到了一些信息,但没有
why?
部分。
答案1
什么是伪终端? (tty/pty)
具有物理终端功能但实际上并非物理终端的设备。由 xterm 等终端仿真器创建。更多详细信息请参见联机帮助页 pty(7)。
为什么我们需要它们?它们是如何被引入的以及有什么必要性?
传统上,UNIX 有一组进程的控制终端的概念,并且许多 I/O 功能都是在考虑终端的情况下构建的。例如,伪终端处理一些控制字符,如 ^C。
它们过时了吗?我们不再需要它们了吗?有什么东西可以代替它们吗?
它们并没有过时,并且在许多程序中使用,包括 ssh。
有什么有用的用例吗?
SSH。
答案2
答案就在名字中——“伪”,意思是“不是真实的,但具有……的外观”。
对于第一个终端,总是有一个与相关设备相连的硬件,无论是显示硬件还是串行端口。
有了 xwindows、telnet 和 ssh,就需要软件“伪设备”来代替显示硬件。它们是“伪终端”......模拟终端硬件的软件,以与物理设备相同的方式处理输入和输出,以便连接的软件不知道没有连接真正的设备。
答案3
伪终端是串行线路的模拟器。它们为 telnet、ssh 和 xterm shell 提供端点。