问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在linux下看到tty与pts,这两个有什么不同?麻烦通俗一点的说

发布网友 发布时间:2022-04-22 23:09

我来回答

1个回答

热心网友 时间:2022-05-14 03:51

展开1全部终端解释
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:

1.串行端口终端(/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)端口的设备上。

2.伪终端(/dev/pty/)

伪终端(Pseudo Terminal)是成对的逻辑终端设备,例如/dev/ptyp3和/dev/ttyp3(或着在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ttyp3看作是一个串行端口设备,则它对该端口的读/写操作会反映在该逻辑终端设备对的另一个上面(ttyp3)。而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看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。

3.控制终端(/dev/tty)

如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。

4.控制台终端(/dev/ttyn, /dev/console)

在Linux系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。只有系统或超级用户root可以向/dev /tty0进行写操作,

5 虚拟终端(/dev/pts/n)
在Xwindows模式下的伪终端.如果用telnet远程登录的话,一般会启用这个。

6.其它类型

Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求大学生谈恋爱的各种弊端 大学生恋爱的利大于弊吗? 大学生谈恋爱的弊处 dnf现在站街16000的物攻 增加100物攻能张多少 家里养的蚕宝宝是要蜕皮了吗 富贵包硬和软的区别 【已完成】为什么腋窝突然有异味? 女生为什么有狐臭症状? 为什么会狐臭 万视宝这个牌子是做什么的?有人了解嘛? 微信朋友圈之前设置了部分好友可见,现在加了新的好友,怎么让他们看到以前我发的部分可见的朋友圈 支付宝中佘额宝里的钱管家设定定时转入能盗刷到别人吗 ubuntu 查看进程里tty什么意思 我微信朋友圈设置了部分人可见,新加的好友能看到我之前发的朋友圈吗 支付宝钱管家是干什么的 利用ps命令查看进程时,主要输出项pid表示什么,tty表示什么? 微信朋友圈设置了除部分人外可看,那后面新加的朋友可看到吗? 支付宝钱管家靠谱吗 公积金提前还款需要拿什么材料 如何查看linux下tty0与tty1是否联通 微信朋友圈发照片设置了除部分人外可看,那后面新加入朋友可看到吗 余额宝钱管家转入500元是什么意思 微信朋友圈设置部分人可见,还能再重新设置全部人可见吗? 余额宝钱管家刚开通就关闭了,里面的钱怎么提现出来? 住房公积金贷款应该怎么提前还款??? 我微信朋友圈设置了部分人可见,新加的好友能看到我之前发的朋友圈... 钱管家执行中什么意思 公积金提前还款手续费是多少 微信上设置部分可见的朋友圈动态,如果再有新朋友添加是否会看到_百度知 ... 支付宝的钱管家怎么取出来 微信发朋友圈的时候选了部分人可看怎么重新让全部人看到? 微信朋友圈发送了部分朋友可见的消息,之后可以打开改为所有人可见吗?如... 怎么用tty1去查看tty3的top的pid 微信朋友圈设置了部分人可见,新加的好友能看到我之前发的朋友圈吗? linux root怎样查看其它控制台 微信朋友圈照片原先设的部分人可见现在能不能设成所有人可见啊? Linux下如何确认安全终端为tty1下 微信朋友圈设置部分人可见,新加的好友能看到吗? 如何区分Linux下的几种终端类型:tty 如何查看linux下串口是否可用?串口名称等? 微信朋友圈之前设置的对部分人可见的部分现在想公开可以吗? linux w命令看到的 TTY :0.0是什么意思啊 微信朋友圈部分人可见怎么添加? 微信发表的动态设置了部分好友可见,怎么才能修改成所有人可见? linux系统的文字登录界面tty1tty6终端有什么区别 蒜蓉鲍鱼的做法 如何在家做巨好吃的蒜香鲍鱼? 蒜香鲍鱼的做法,蒜香鲍鱼怎么做好吃,蒜香鲍鱼 鲜嫩多汁,蒜香味十足的蒜蓉鲍鱼有哪些好吃又操作简单的制作方法呢?_百 ... 生煎蒜香鲍鱼怎么做好吃又简单,做法图解