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终端设备等。这里不再赘述

linux基础:tty pty pts tts介绍相关推荐

  1. linux tty pty pts tts概念 区别

    1. tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 来这东西被键盘与显示 ...

  2. Linux开启可视化进程传递pts,Linux下tty/pty/pts/ptmx详解(转)

    基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这 ...

  3. linux下echo /dev/ttys* 到字符设备文件,linux之tty pty pts

    一.基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 ...

  4. linux pts设备,Linux中tty和pts指的是什么

    Linux中tty和pts指的是什么 发布时间:2020-11-17 14:55:05 来源:亿速云 阅读:135 作者:小新 这篇文章将为大家详细讲解有关Linux中tty和pts指的是什么,小编觉 ...

  5. linux内核去掉pty,Linux tty pty pts观念区别

    基本观点: 1. tty(终端装备的统称): tty一词源于Teletypes,或许teletypewriters,原来指的是电传打字机,是议决串行线用打印机键盘议决阅读和发送信息的东西,后来这东西被 ...

  6. linux下tty, ttyn, pts, pty, ttySn, console理解

    这一下涉及很多概念:终端,伪终端,虚拟终端,控制终端,串行终端,控制台,--.历史原因这些概念有些模糊,我也理不太清楚.就我直观对dev下设备而言来稍微解释下: /dev/tty 控制终端,即当前用户 ...

  7. Android之linux基础教学之八 内核同步介绍

    1.第一个问题:为什么要同步? 如果这两件事情操作了共同的数据,就需要干完一件,接着干另一件. 2.第二个问题:读和写? 数据是一整块不可分割的东西.在同步的概念里面,写数据和读数据是不同的.两个进程 ...

  8. Linux基础知识——常用shell命令介绍(三)

    一.改变文件权限 chmod:change mode 语法:# chmod [选项-option] 权限 FILE 选项:-R 递归修改权限 --reference= 参照文件或目录给予权限 权限定义 ...

  9. Linux基础知识——常用shell命令介绍(一)

    一直都找借口,赶脚很忙的样子.最后还是花时间把作业完成了,实践证明,时间挤一挤还是有很多的,其实很多时间都被自己浪费掉了.好吧,有了同学们的看视频进度刺激,我也不得不给自己施加点压力.完成作业的同时也 ...

最新文章

  1. 清华大学:刘洋——基于深度学习的机器翻译
  2. GIT SSH连接遇到到的问题
  3. oracle表行列权限,Oracle行列互换 横表和纵表
  4. android 名片识别 简书,iOS 自己实现 名片识别 三 图片处理
  5. SpringBoot—Entity父子类表@Inheritance和@MappedSuperclass
  6. Android报加密错误,在android中解密使用aes/gcm/nopadding加密的消息时出错
  7. Gstreamer之gst_element_set_state (pipeline, GST_STATE_PLAYING)播放视频流程(二十一)
  8. 使用go语言解析xml
  9. Matlab2016b和Matlab2020b安装包
  10. wps文字表格制作拼音田字格模板_用wps表格快速制作拼音田字格的方法_wps office...
  11. 本地软件仓库配置及NFS安装
  12. MySQL生成连续数字
  13. Android屏幕计算公式
  14. Android studio 模拟器启动黑屏解决办法
  15. 华硕飞行堡垒 新机子安装双系统 linux
  16. 基于大恒相机的VS工程配置
  17. ROS-Melodic-Moveit 实时控制UR5机械臂
  18. 安徽财贸职业技术学院计算机专业老师,安徽财贸职业学院首届“十佳老师”评选结果揭晓...
  19. 基于神经网络的语音识别,神经网络语音合成
  20. Djan过滤器之django-filter

热门文章

  1. 烽火运维-20180829day
  2. 狠狠拿捏 南京工业大学 智慧南工在线考试
  3. 写一个点击图片进入浏览图片界面的第三方库思路
  4. wsl Error: 0x80070003
  5. 【MATLAB APPdesigner ui设计实现软件动态页面启动 】(启动无标题栏)
  6. mysql fulltext_MySQL(FullText)
  7. 《逆袭大学》文摘——9.1 一切让代码行数说话
  8. Linux无法识别显示器信息,Deepin Linux 15.10 无法识别集显的HDMI
  9. Windows 进程之四 CreateProcess函数
  10. 老徐WEB:js入门学习 - javascript变量