Linux tty核心简述 (linux tty core)

Linux TTY核心简述

Linux TTY核心是在Linux内核中提供的一种硬件抽象层,用于处理字符设备。TTY是“teletype”的缩写,最初是指电传打字机,现在它已经泛指所有基于字符设备的终端。在Linux中,TTY包含控制台、串口、虚拟控制台、伪终端等。

控制台

在Linux中,控制台是指一个物理终端或虚拟终端,用户可以通过控制台和系统进行交互。在系统启动时,Linux会为每个控制台都分配一个TTY设备,例如/dev/tty1、/dev/tty2等。用户可以通过按下Ctrl+Alt+F1~F6来进入不同的控制台终端,用于登录、管理系统和运行命令。

串口

串口是一种传统的计算机通信接口,用于将数据逐位传输到其他设备。在Linux中,串口TTY是通过串口转换成字符设备的方式实现的。可以使用ttyS0、ttyS1等设备文件访问串口设备。通常,串口TTY用于一些需要长距离通信的场合,例如远程控制和数据采集。

虚拟终端

虚拟终端是一种模拟的终端,用于在一个屏幕上为用户提供多个虚拟终端。在Linux中,虚拟终端TTY是由虚拟终端交互程序(VTP)来实现的,VTP将用户输入和终端输出映射到虚拟终端中。通常,Linux系统会默认启用6个虚拟终端,用户可以使用Ctrl+Alt+F1~F6快捷键来切换虚拟终端。

伪终端

伪终端是一种虚拟的终端,用于实现进程间通信。在Linux中,伪终端由主设备和从设备组成,主设备作为输入设备接收终端输入,从设备作为输出设备显示终端输出。伪终端通常用于SSH会话、Telnet会话和虚拟终端之间的交互。

Linux TTY核心是在Linux内核中提供的一种硬件抽象层,用于处理字符设备。控制台、串口、虚拟终端、伪终端等都是基于TTY设备实现的。通过了解和掌握Linux TTY核心,可以更好地理解Linux系统运行原理,提高Linux系统的管理和维护能力。

相关问题拓展阅读:

在UNIX或Linux中TTY是什么意思

TTY设备包括虚拟控制台,串口以及伪终端设备。

TTY是TeleTYpe的一个老缩写。Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,和古老的电报机区别并不是很大。之后,当计算机只能以批处理方式运行时(当时穿孔卡片阅读器是唯一一种使程序载入运行的方式),电传打字机成为唯一能够被使用的“实时”输入/输出设备。最终,电传打字机被键盘和显示器终端所取代,但在终端或TTY接插的地方,操作系统仍然需要一个程序来监视串行端口。一个getty“Get TTY”的处理过程是:一个程序监视物理的TTY/终端接口。

在Linux中,TTY也许是跟终端有关系的最为混乱的术语。TTY是TeleTYpe的一个老缩写。Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,和古老的电报机区别并不是很大。之后,当计算机只能以批处理方式运行时(当时穿孔卡片阅读器是唯一一种使程序载入运行的方式),电传打字机成为唯一能够被使用的“实时”输入/输出设备。最终,电传打字机被键盘和显示器终端所取代,但在终端或TTY接插的地方,操作系统仍然需要一个程序来监视串行端口。一个getty“Get TTY”的处理过程是:一个程序监视物理的TTY/终端接口。对一个虚拟网络服务器(VNC)来说,一个伪装的TTY(Pseudo-TTY,即假冒的TTY,也叫做“PTY”)是等价的终端。当你运行一个xterm(终端仿真程序)或GNOME终端程序时,PTY对虚拟的用户或者如xterm一样的伪终端来说,就像是一个TTY在运行。“Pseudo”的意思是“duplicating in a fake way”(用伪造的方法复制),它相比“virtual”或“emulated”更能真实的说明问题。而在的计算中,它却处于被放弃的阶段。

tty也是一个Unix命令,用来给出当前终端设备的名称。

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

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:

串行端口

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

伪终端

伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备,对master的操作会反映到slave上)。

例如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty /m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备念凯对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。telnet主机A就是通过“伪终端”与主机A的登录程序进行通信。

控制终端

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

控制台

在Linux 系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。只有在单用户模式下,才允许用户登录控制台。

虚拟终端

在Xwindow模式下的伪终端.如在Kubuntu下用konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/name, name为当前用户名。

其它类型

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

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

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

Text Telephones (TTY)

聋哑人,在手机插入专用设备后支持收发文本,需网络支持,中国网络不支持TTY.

除聋哑模式外,还支持只听不说(HCO)和只说不听(VCO)两种模式。

关于linux tty core的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux tty核心简述 (linux tty core)