日期:2014-05-16  浏览次数:20668 次

linux 系统tty、pty和pts 的概念及区别
1. tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。

终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

tty指的是七个alt+crtl+F1~F7。

tty1-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换,+F7就是切换回图形界面。
2. pty(虚拟终端):
但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)

3. pts/ptmx(pts/ptmx结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。
man里面是这样说的:ptmx and pts - pseudo-terminal master and slave,pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts /1。
比如用who命令查询当前登录的用户,可以看到每个用户的TTY设备(简单来说就是用户输入命令还有显示信息的设备,比如终端),下面是我机器上的显示:
calabash tty7          2009-12-09 20:04 (:0)
calabash pts/0        2009-12-09 20:20 (:0.0)
calabash pts/1        2009-12-09 20:27 (:0.0) 
有一个tty7是表示图形界面,我当前登录的是GNOME,当然就是图形界面了。
下面两行说明我当前打开了两个终端窗口,所以就有pts/0和pts/1