linux tty pty pts tts概念区别
时间:2023-04-02 05:41:09 点击:111

  1. tty(终端设备的统称):

  tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 来这东西被键盘与显示器取代,所以现在叫终端比较合适。

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

  2. pty(虚拟终端):

  但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)

  3. pts/ptmx(pts/ptmx结合使用,进而实现pty):

  pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。

  Linux终端:

  在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)是成对的逻辑终端设备(即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看上去是设备文件系统中的 一项,但其实它完全是一种不同的文件系统。

  即: TELNET ---> TTYP3(S3: slave) ---> PTYP3(M3: master) ---> GETTY

  =========================================================================

  实验:

  1、在X下打开一个或N个终端窗口

  2、#ls /dev/pt*

  3、关闭这个X下的终端窗口,再次运行;比较两次输出信息就明白了。

  在RHEL4环境下: 输出为/dev/ptmx /dev/pts/1存在一(master)对多(slave)的情况

  =========================================================================

  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进行写操作 即下例:

  1、# tty(查看当前TTY)

  /dev/tty1

  2、#echo “test tty0“ > /dev/tty0

  test tty0

  5 虚拟终端(/dev/pts/n)

  在Xwindows模式下的伪终端.

  6 其它类型

  Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述。

展开 ↓
标签: 《王者荣耀》全新动作手游《代号:破晓》cg概念片(代号破晓和王者荣耀世界) 暗黑3赛季和非赛季区别在哪(暗黑3赛季和非赛季哪个人多) ps4日版和港版区别在哪(ps4日版和港版能联机吗) mc精灵宝可梦重铸和世代区别(mc精灵宝可梦重铸和世代区别) letsgo伊布皮卡丘区别(letsgo皮卡丘和伊布) 《黑暗之魂3》白色伪装戒指获得方法是什么(黑魂3暗色伪装和白色伪装的区别) 《往日不再》pc版与ps版区别解析一样吗(往日不再有pc版吗) fifa22标准版和终极版有什么区别(fifa22终极版值得买吗) lol手游与王者荣耀对比(lol手游和王者荣耀有啥区别) ps5国行和港版区别解析一样吗(ps5国行和港版) 2k21曼巴永恒版开箱(2k21曼巴永恒版区别) ns和switch区别能玩什么(switch和ns的区别) 6v宝可梦和正常宝可梦有什么区别(6v宝可梦) csgousp消音版多少钱(csgousp消音和不消音有区别么) nba2k20豪华版有什么区别(nba2k20,豪华版) ps5锁服锁区吗(ps5锁服和锁区的区别) 《鬼谷八荒》拳法掌法区别介绍图(鬼谷八荒拳法心法搭配) 宝可梦剑野生精灵有用嘛(宝可梦剑盾野生的区别) ps4手柄一代和二代区别(ps4手柄一代和二代有什么区别) ps3和ps4的游戏一样吗(ps3游戏和ps4游戏区别) 《怪物猎人:崛起》游戏豪华版内容解析(怪物猎人崛起豪华版有什么区别) 《鬼谷八荒》拳法掌法区别介绍图(《鬼谷八荒》拳法掌法区别介绍图解) 2k21不同版本区别(nba2k21两个版本游戏一样么) 《星球大战:前线2》庆典版与普通版区别解析一样吗(星球大战前线2庆典版是什么游戏) apex金色的枪有什么区别(apex金色枪管) lol手游台服跟日服互通吗(lol手游台服日服区别) 宝可梦剑盾怖思壶进化(剑盾怖思壶真品赝品区别) ns版暗黑三和pc版有什么区别(switch暗黑3和pc版本一样吗) fifa23终极版和普通版区别(fifa20终极版和标准版有什么区别) 《荒野大镖客2》全武器弹药属性分析(荒野大镖客2各种弹药区别) ps4仁王2版本区别(仁王2ps4andps5) 暗黑2龙盾和统盾的区别(暗黑2龙盾和统盾的区别在哪) 暗黑3赛季和非赛季(暗黑3赛季和非赛季区别) 《永劫无间》快捷振刀和普通振刀区别解析一样吗(永劫无间快捷振刀修复了吗) 《战地1》近战武器区别介绍图(《战地1》近战武器区别介绍图解) raji远古传奇好玩吗(远古传奇和传奇的区别) 暗黑三武器冰霜伤害什么意思(暗黑3武器伤害和冰霜伤害区别) pokemonletsgo伊布和皮卡丘区别(伊布go和皮卡丘go) wwe2k20有必要豪华版吗(wwe2k豪华版和普通版区别) heroes&generous配置要求(heroes和heros区别) 《艾尔登法环》(艾尔登法环豪华版和标准版区别) 2077三条线的区别(赛博朋克三条剧情) 《孤岛惊魂6》各版本区别解析图(《孤岛惊魂6》各版本区别解析图) 2k2275周年和普通版(2k22普通版和周年版区别) ps4和ps5的区别大吗(ps5与ps4的差别) 《怪物猎人:崛起》单人模式介绍(怪物猎人崛起单人和多人区别) 《恶魔之魂:重制版》和原版区别解析一样吗(恶魔之魂重制版好不好玩) 暗黑地牢勇者和旅者有什么区别(暗黑地牢勇者和旅者有什么区别吗) fifa21标准版与终极版区别(fifa22标准版和终极版有什么区别) 《永劫无间》豪华版内容(永劫无间豪华版和普通版啥区别) ps5国行和港版区别解析一样吗(ps5国行跟港版有什么区别) 《森林》双结局介绍(森林结局区别) nba2k21三个版本有什么区别(nba2k21两个版本游戏一样么) ps4和ps5的区别知乎(ps4与ps5对比) 暗黑破坏神2重制版价格区别(暗黑破坏神2重制版什么价格) 《荒野大镖客2》各个版本区别分享(《荒野大镖客2》各个版本区别分享在哪) lol手游韩服和日服哪个延迟低(lol手游韩服和日服的区别) 宝可梦剑盾的剑和盾有什么区别(宝可梦剑盾剑与盾的区别) cod16冷血动物(cod16冷血和鬼魂区别) new3ds和3dsll区别大吗(3dsll和new3dsll哪个好) 宝可梦剑盾和皮卡丘伊布有什么区别(剑盾和皮卡丘伊布哪个好玩) apex金色(apex金色的枪有什么区别) lol手游日服和韩服哪个更好(lol手游日服和韩服的区别) 《江湖悠悠》剑与诗副本挑战怎么完成任务(江湖悠悠剑招有什么区别) 《往日不再》pc版与ps版区别介绍(往日不再psn) 16位游戏机和8位游戏机的区别(游戏8位16位什么意思) 2dsll和3dsll的区别尺寸(2dsll与3dsll) psv和psp的区别详情(psv和psp游戏哪个好玩) wwe2k20普通与豪华的区别(wwe2k19豪华版与普通版) 《lol手游》台服和日服数据互通吗安卓(lol手游台服和日服有什么区别) 2k23ps4和ps5的区别(2k21ps4跟ps5区别) apex金色的枪有什么区别(apex金色301) new3dsll和2dsll选择(new3dsll和2dsll区别) ps4pro港版和日版(ps4pro国行和港版区和日服的区别) lol手游上路和下路图解(lol手游上下路有什么区别) fifa20黑卡有什么用(fifa20黑卡和金卡区别) 《原神》自噬之蛇成就流程攻略大全(自噬和吞噬的区别) 暗黑2魔法伤害和元素伤害(暗黑2魔法伤害跟元素伤害有什么区别) 宝可梦大探险食谱贴吧(宝可梦大探险食谱区别) 暗黑血统3虚空武器的区别(暗黑血统3虚空力量关卡) ps4和xbox哪个好区别(ps4和xboxone哪个好) nba2k21三个版本有什么区别(nba2k21各个版本的区别) apex子弹种类(apex各种子弹区别) 《怪物猎人:崛起》pc跨平台储存和联机区别(怪物猎人崛起本地联机版本不同) 《荒野大镖客2》各个版本区别(荒野大镖客2各种版本有什么区别) 宝可梦剑盾季票区别(宝可梦剑盾季票什么意思) 薄暮传说选什么难度(薄暮传说难度有什么区别) 薄暮传说ba(薄暮传说半自动手动区别) 《荒野大镖客2》各个版本区别分享图(荒野大镖客2各种版本) switch数码宝贝网络侦探和骇客记忆的区别(ns数码宝贝骇客追忆和网络侦探) cf雷霆闪光弹有什么区别(cf手游雷霆光效) switch二手卡带有什么弊端(switch二手卡带和正版有什么区别) cf王者零和王者零传说之路(王者零和王者零传说之路什么区别) 《恐怖黎明》新地图和新模式展示的区别(《恐怖黎明》新地图和新模式展示的区别) 宝可梦薄荷改的有区别吗(宝可梦剑盾薄荷可以用几次) apex重型子弹和轻型子弹(apex重型子弹和轻型子弹有什么区别) nba2k20体型什么区别(nba2k22体型) 《废土3》战斗速度含义解析(废土3难度区别) linux li

最新游戏更多

最新软件更多

  • 玩家推荐
  • 游戏攻略

金钼软件下载站 Copyright(C) 2008- 601958.cn All Rights Reserved!

闽ICP备2023004188号| 免责声明