pty和tty是什么意思?

我注意到在一些开源项目中经常提到ptytty,有人能告诉我它们是什么意思,它们之间有什么区别吗?

150835 次浏览

tty原本意味着“teletype",而"pty"原本意味着“pseudo-teletype"

在UNIX中,/dev/tty*是充当“teletype"的任何设备,即:终端。(之所以叫电传打字机,是因为在那个愚昧的时代,我们的终端就是这样的。)

pty是一个pseudotty,它是一个设备条目,对于在那里读写的进程来说,它就像一个终端,但由其他东西管理。它们首先出现(我记得)在X窗口和屏幕之类的地方,你需要一个像终端一样的东西,但可以从另一个程序使用。

tty:电传打字机。通常是指计算机的串行端口,上面连接着终端。

企业:pseudoteletype。内核提供了伪串口,连接到模拟终端的程序,如xterm或screen。

tty是一个终端(它代表电传打字机 -原来的终端使用一行打印机输出和键盘输入!)。终端基本上就是一个使用文本进行输入和输出的用户界面设备。

pty是一个伪终端——它是一个软件实现,对于附加的程序来说,它看起来像一个终端,但不是直接与"real"终端,它将输入和输出转移到另一个程序。

例如,当您通过ssh登录到一台计算机并运行ls时,ls命令将其输出发送到伪终端,伪终端的另一端连接到ssh守护进程。

如果运行mount命令而不带命令行参数,将显示 挂载到系统上的文件系统,您会注意到一行看起来像什么 是这样的: 无。on /dev/pts type devpts (rw,gid=5,mode=620) 这表明一个特殊类型的文件系统devpts被挂载在/dev/pts上 文件系统不与任何硬件设备相关联,它是一个“神奇”文件系统 它是由Linux内核创建的。它类似于/proc文件系统

和/dev目录一样,/dev/pts包含设备对应的条目。但 与/dev是一个普通目录不同,/dev/pts是一个特殊的目录,即cre- 由Linux内核动态创建。目录内容随时间而变化 并反映运行系统的状态。 /dev/pts中的表项对应伪终端(或伪tty,或pty) Linux为你打开的每个新终端窗口创建一个PTY,并显示相应的 PTY设备就像终端设备一样——它接受 从键盘输入并显示运行在其中的程序的文本输出。 PTY编号,PTY编号为表项的名称 /dev/pts . < / p > < p > 例如,如果新的终端窗口的PTY号是7,从调用此命令 另一个窗口:< / p >

echo ‘I am a virtual di ’ > /dev/pts/7

输出显示在新的终端窗口中。 您可以尝试将7更改为1,2,这取决于打开的终端,您将在另一个终端窗口中看到输出。开发/pts是公共汽车(邮局)做这件事!< / p >

tty是计算机上的物理 __abc3终端-teletype端口(通常是串行端口)。

电传类型tty也可以由在内核空间中作为模块运行的计算机程序来模拟。

电传打字机这个词是20世纪30年代的< >强电报打字机< / >强电传打字机设备的缩写——它本身就是19世纪30年代和19世纪40年代的电报编码机的替代品。

< p > 电传打字机
TTY -电传打字机1930年代 > < /晚餐

pty是计算机操作系统内核提供的一个pseudo-telepe端口,用于连接用户陆地终端仿真软件程序(如ssh、xterm或screen)。

enter image description here PTY - PseudoTeletype < / p >

终端就是使用文本进行输入和输出的计算机用户界面。


操作系统的实现

它们使用pseudo-telepe端口,然而,它们的命名和实现有一些分歧。

Linux/ dev上挂载一个特殊的文件系统开发(“s”大概代表__abc5第七位),它为你打开的每个新终端窗口在/dev/pts中创建一个相应的条目,例如/dev/pts/0


macOS / FreeBSD也使用/ dev文件结构,然而,他们使用一个编号为TTY的命名约定ttys为你打开的每个新终端窗口,例如/dev/ttys002


微软视窗系统在它的命令Shell中仍然有一个用于行打印机终端的LPT端口的概念,用于输出到打印机。