- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux中tty、pty和pts概念及区别Linux中tty、pty和pts概念及区别
Linux 中tty、pty 和pts 概念及区别
基本概念
①tty(终端设备的统称):
tty 一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,
是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被
键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty 来简称各种类型
的终端设备
②pty(虚拟终端):
但是如果我们远程telnet 到主机或使用xterm 时不也需要一个终端交互
么?是的,这就是虚拟终端pty(pseudo-tty)
③pts/ptmx(pts/ptmx 结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty 的实现方法,与ptmx(pseudo-terminal
master)配合使用实现pty。
Linux 终端
在Linux 系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以
下几种:
①串行端口终端(/dev/ttySn)
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端
设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串
行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接
终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0),
/dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于
DOS 系统下的COM1、COM2 等。若要向一个端口发送数据,可以在
命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行
提示符下键入:echo test /dev/ttyS1 会把单词”test”发送到连接在
ttyS1(COM2)端口的设备上。可接串口来实验。
②伪终端(/dev/pty/)
伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master 和slave 设
备, 对master 的操作会反映到slave 上)。
例如/dev/ptyp3 和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3
和 /dev/pty/s3) 。它们与实际物理设备并不直接相关。如果一个程序把
ptyp3(master 设备)看作是一个串行端口设备,则它对该端口的读/ 写操
作会反映在该逻辑终端设备对应的另一个ttyp3(slave 设备)上面。而
ttyp3 则是另一个程序用于读写操作的逻辑设备。
这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使
用ttyp3 的程序则认为自己正在与一个串行端口进行通信。这很象是逻
辑设备对之间的管道操作。对于ttyp3(s3),任何设计成使用一个串行端
口设备的程序都可以使用该逻辑设备。但对于使用ptyp3 的程序,则需
要专门设计来使用 ptyp3(m3)逻辑设备。
例如,如果某人在网上使用telnet 程序连接到你的计算机上,则telnet
程序就可能会开始连接到设备 ptyp2(m2)上(一个伪终端端口上)。此时
一个getty 程序就应该运行在对应的ttyp2(s2)端口上。当telnet 从远端
获取了一个字符时,该字符就会通过m2、s2 传递给 getty 程序,而getty
程序就会通过s2、m2 和telnet 程序往网络上返回”login:”字符串信息。
这样,登录程序与telnet 程序就通过“伪终端”进行通信。通过使用适当
的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口
上。
在使用设备文件系统 (device filesystem)之前,为了得到大量的伪终端
设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16 个
ttyp(ttyp0—ttypf) 的设备文件,为了得到更多的逻辑设备对,就使用了
象q、r、s 等字符来代替p。例如,ttys8 和ptys8 就是一个伪终端设备
对。不过这种命名方式目前仍然在RedHat 等Linux 系统中使用着。
但Linux 系统上的Unix98 并不使用上述方法,而使用了”pty master”方
式,例如/dev/ptm3 。它的对应端则会被自动地创建成/dev/pts/3 。这样
就可以在需要时提供一个pty 伪终端。目录 /dev/pts 是一个类型为
devpts 的文件系统,并且可以在被加载文件系统列表中看到。虽然“文
件”/dev/pts/3 看上去是设备文件系统中的一项,但其实它完全是一种不
同的文件系统
您可能关注的文档
- HCG孕酮的关系HCG孕酮的关系.doc
- HDPE高密度聚乙烯双壁波纹管安装施工方案1HDPE高密度聚乙烯双壁波纹管安装施工方案1.doc
- HBTK-1000XQ探测器-技术说明书HBTK-1000XQ探测器-技术说明书.doc
- HD_Tune使用教程HD_Tune使用教程.pdf
- HE75xxH赫尔微CMOS线性稳压芯片HE75xxH赫尔微CMOS线性稳压芯片.pdf
- HE73XXM赫尔微CMOS线性稳压芯片HE73XXM赫尔微CMOS线性稳压芯片.pdf
- Henrik Parl-亚洲汇款与邮政组织、其他金融机构及支付提供者三者之间的新型合作关系_贷帮Henrik Parl-亚洲汇款与邮政组织、其他金融机构及支付提供者三者之间的新型合作关系_贷帮.pdf
- HE71XXM线性稳压芯片赫尔微半导体HE71XXM线性稳压芯片赫尔微半导体.pdf
- herbert演讲稿1021herbert演讲稿1021.ppt
- HFSS v9边界条件和激励设置培训HFSS v9边界条件和激励设置培训.pdf
文档评论(0)