了解tty和pty和pts的区别


linux 系统 tty、pty 和 pts 的概念及区别

Linux 系统中,ttyptypts 是三个常见的概念,都是用于用户与系统进行交互的接口。它们之间存在一定的区别,下面对它们进行简单总结:

  • tty

    • tty 的全称是 Teletypewriter,表示字符终端设备。它最初是指通过串口连接到主机的打字机终端设备,现在指的是 Linux 主机上的虚拟控制台。
    • Linux 系统中,tty1-tty6 代表的是绑定着本地物理控制台的虚拟终端。在 Ubuntu 系统中,可以通过 Ctrl+Alt+F1~F6 进行切换。tty7 代表的是 X11 图形界面会话。
  • pty

    • pty 的全称是 Pseudo Terminal,表示伪终端设备。它实际上是一对字符设备,由 masterslave 两个部分组成,其中 master 类似于一个父进程,而 slave 类似于一个子进程。
    • Linux 系统中,大多数终端程序(如 xterm)都是基于 pty 模拟出来的。当我们在中输入命令时,这些命令会先被传到 slave 端,然后再由 master 端将结果显示到 xterm 中。
  • pts

    • pts 的全称是 Pseudo Terminal Slave,表示通过 pty 打开的终端设备。也就是说,每当我们在用户态启动一个新的终端程序时,系统内核就会为其分配一个 pty 容器,并自动创建一个从属于该 ptypts 终端设备。
    • Linux 系统中,我们使用的终端程序实际上就是管理 pts 终端设备的,比如 GNOME TerminalKonsole 等。

综上所述:

  • tty:物理终端设备或虚拟终端设备,可直接输出文字和命令操作;
  • pty:虚拟伪终端设备,提供双向通讯接口,用于终端程序和 Shell 的连接;
  • pts:通过 pty 打开的终端设备,类似 tty,但不存在实体终端,只能在终端程序中使用。

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !