可能的重复:“终端”,“外壳”,“ tty”和“控制台”之间的确切区别是什么?




使用who命令时,我总是看到pts和tty,但是我不知道它们有何不同?有人可以给我解释一下吗?

评论

另请参见Linux终端如何工作?以及/ dev / pts文件中存储的内容,我们可以打开这些文件吗?

#1 楼

tty是本机终端设备,后端是硬件或内核仿真的。

pty(伪终端设备)是由其他程序仿真的终端设备(例如:xtermscreen,或ssh是此类程序)。 pt是pty的从属部分。

(更多信息可以在man pty中找到。)

简短摘要:

pty是由通过posix_openpt()的进程创建(通常会打开特殊设备/dev/ptmx),并且由一对双向字符设备组成:


主部分,即通过以下方式获得的文件描述符通过此调用的此过程,用于模拟终端。进行一些初始化之后,可以使用unlockpt()解锁第二部分,而主机则用于接收或发送字符到第二部分(从属)。
从属部分,在文件系统中锚定为/dev/pts/x(实数主机可以通过ptsname()获得名称),其行为类似于本机终端设备(/dev/ttyx)。在大多数情况下,将启动将其用作控制终端的外壳。


评论


后端是什么意思?

–动力十足
19年1月14日在17:07

@动机:en.wikipedia.org/wiki/Computer_terminal

–StéphaneGimenez
19年1月14日在17:10

谢谢。我认为这是历史性参考,而不是当代使用,即它曾经有硬件支持。

–动力十足
19年1月14日在17:54



因此,从根本上说,tty是在“另一端”没有用户进程的地方?

–extremeaxe5
19年11月11日在16:21

#2 楼

tty是常规终端设备(例如,服务器上的控制台)。
pts是伪终端从属设备(xtermssh连接)。

man pts对伪终端进行了详细描述。