基本观点:

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

FAQ: 终端和控制台

RROM:http://blog.footoo.org/?p=73

由于在许多伙伴对终端的观点不断不是很清楚,因而写了这个FAQ,期盼能够协助群众明白这些观点。不妥之处,还请群众来信指出。

Q:/dev/console 是什么?

A:/dev/console即控制台,是与操作系统交互的装备,系统将一些信息直接输出到控制台上。现在只需在单用户方式下,才准许用户登录控制台。

Q:/dev/tty是什么?

A:tty装备包括虚拟控制台,串口以及伪终端装备。

/dev/tty代表现在tty装备,在现在的终端中输入 echo “hello” > /dev/tty ,都会直接显示在现在的终端中。

Q:/dev/ttyS*是什么?

A:/dev/ttyS*是串行终端装备。

Q:/dev/pty*是什么?

A:/dev/pty*即伪终端,所谓伪终端是逻辑上的终端装备,多用于模拟终端顺序。比如,咱们在X Window下翻开的终端,以及咱们在Windows运用telnet 或ssh等方式登录Linux主机,此时均在运用pty装备(准确的说应该pty从装备)。

Q:/dev/tty0与/dev/tty1 …/dev/tty63是什么?它们之间有什么区别?

A:/dev/tty0代表现在虚拟控制台,而/dev/tty1等代表第一个虚拟控制台,比如当运用ALT+F2执行切换时,系统的虚拟控制台为/dev/tty2 ,现在的控制台则指向/dev/tty2

Q:如何确定现在所在的终端(或控制台)?

A:运用tty命令能够确定现在的终端或许控制台。

Q:/dev/console是到/dev/tty0的符号链接吗?

A: 现在的大非少数文本中都称/dev/console是到/dev/tty0的链接(包括《Linux内核源代码情形分析》),但是这样说是不确切的。依据内 核文档,在2.1.71之前,/dev/console依据不一样系统的设定能够链接到/dev/tty0或许其他tty*上,在2.1.71版本之后则完 全由内核控制。现在,只需在单用户方式下能够登录/dev/console(能够在单用户方式下输入tty命令执行确认)。

Q:/dev/tty0与/dev/fb*有什么区别?

A: 在Framebuffer装备没有启用的系统中,能够运用/dev/tty0访问显卡。

Q:关于终端和控制台的区别能够参考哪些文本

A: 能够参考内核文档中的 Documents/devices.txt 中关于”TERMINAL DEVICES” 的章节。另外,《Linux内核源代码情形分析》的8.7节 以及《Operating Systems : Design and Implementation》中的3.9节(第3版中为3.8节)都对终端装备的观点和历史做了很好的简介。另外在《Modern Operating system》中也有对终端装备的简介,由于与《Operating Systems : Design and Implementation》的作者一样,所以文本内容也大致一样。须要留意的一点是《Operating Systems : Design and Implementation》中将终端装备分为3类,而《Modern Operating system》将终端硬件装备分为2类,差异在于前者将 X Terminal作为一个类别。

PS:

只需2410的2.6才叫ttySAC0,9200等的仍旧叫ttyS0

本文来自ChinaUnixblog,假设检查原文请点:http://blog.chinaunix.net/u/6436/showart_1003495.htm

linux内核去掉pty,Linux tty pty pts观念区别相关推荐

  1. 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )

    文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...

  2. 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )

    文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...

  3. linux标准c和c编译器6,linux内核中GNU C和标准C的区别

    linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编 ...

  4. 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)

    1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...

  5. 武汉linux内核好找吗,Linux内核入门

    Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补 ...

  6. linux 内核优化实战,Linux编译优化必须掌握的几个姿势总结

    01.编译选项和内核编译 Linux内核(英语:linux kernel),是一种计算机操作系统内核,已C语言和汇编语言写成,匹配POSIX标准,以GNU通用公共许可证发布.从技术上说Linux只是一 ...

  7. 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装

    这里不只是讲怎样编译.安装Linux内核的,更主要的是介绍内核的编译系统和各个重要的文件.最后还利用学到的编译.安装Linux内核去修改Linux的01调度变成随机调度.如果你只是需要编译.安装内核的 ...

  8. Linux内核及主流Linux发行版对应关系汇总

    Linux内核及主流Linux发行版对应关系汇总 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 Linux内核及主流Lin ...

  9. linux的头文件下载,Linux内核头文件(linux headers)

    更新 Linux 内核头文件(linux headers) 三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文 ...

  10. 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )

    文章目录 一.安装内核模块 二.安装内核 三.重启系统 四.查看当前内核版本 一.安装内核模块 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 [Linux 内核]编译 Linux 内 ...

最新文章

  1. 学术报告 | 模拟液态和薄结构之间相互作用的多尺度模型
  2. lua学习笔记之元表和元方法
  3. c++ using namespace std; - 海明威 - 博客园
  4. 为了OFFER,继续深入学习树和二叉树
  5. Android 反射 换一种方式编程
  6. 如何使用spring配合mybatis配置多个数据源并应用?
  7. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...
  8. 程序员思维看爱情是什么?
  9. oracle一个表拆成多个表,oracle拆分函数,将字符串拆分成多行多字段表数据
  10. 初、中、高级Java工程师有哪些区别?
  11. 房产纠纷官司费用是多少
  12. 农学院计算机考试题,天津农学院计算机考试参考.doc
  13. 使用Native API查询Windows硬盘分区系统设备名称
  14. 2021美赛什么时候出成绩?
  15. 计算机硬件损坏的处理方法,处理电脑系统提示winload.exe丢失或是损坏的方法
  16. W ndows10开机密码设置,Win10系统开机密码输入正确却提示微软帐户无法登录的三种解决方法...
  17. python—马氏距离
  18. vue项目接入eslint、prettier、husky+lint-staged
  19. 国际禁毒日 | 和TcaplusDB一起向毒品say NO!
  20. 模型误差、观测误差、截断误差(或称方法误差)、舍入误差

热门文章

  1. 嵌入式系统考试复习大全
  2. 离散数学 —— 二元关系(图、零图与平凡图、度、握手定理、平行边、简单图与完全图、补图、子图与生成子图、同构、通路与回路、点与边割集、最短路线问题、强弱联通图、邻接矩阵与可达矩阵、欧拉图、平面图等)
  3. eclipse java配色_eclips配色
  4. 聋校计算机教材教法培训Ppt,聋校语文教材教法学习心得
  5. 2030肢解中国-美国全球战略与中国危机(戴旭)
  6. php获取x509证书信息,创建X509证书,并获取证书密钥的一点研究
  7. ASP.NET Core MVC 之视图组件(View Component)
  8. 传奇私服服务器怎么增加npc,传奇私服装备打造NPC设置方法
  9. POJ - 2528 (线段树区间染色 + 离散化)
  10. [含文档+源码等]高校科研项目管理系统[包运行成功]