`
lunaedge
  • 浏览: 32248 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

什么是 tty

阅读更多

        终端是一种字符型设备,它有多种类型,通常使用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看作是一个串行端口设备,则它对该端口的读/写操作会反映在该逻辑终端设备对的另一个上面(ptyp3)。而ptyp3则是另一个程序用于读写操作的逻辑设备。这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用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系统中使用着。-W{m1S
    但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则是当前所使用虚拟终端的一个别名,Linux系统所产生的信息都会发送到该终端上。因此不管当前我们正在使用哪个虚拟终端,系统信息都会发送到我们的屏幕上。
    你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话存在。但只有系统或超级用户root可以向/dev/tty0进行写操作,而且有时/dev/console会连接至/dev/tty0或/dev/tty1上。


5.其它类型


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

分享到:
评论

相关推荐

    tty.zip_linux tty_linux tty_linux tty driver_tty_tty.zip

    首先,我们需要理解什么是TTY。TTY最初是指一种古老的电传打字机设备,但现在它更多地被用作一个术语来指代任何类型的文本模式终端。在Linux中,TTY包括物理控制台(如键盘和显示器)以及通过串行端口或网络连接的...

    tty.rar_linux tty_tty

    "tty.rar_linux tty_tty"这个压缩包文件可能包含了一些关于Linux TTY工作台驱动的详细资料,对于理解Linux内核中的串行通信以及终端管理非常有价值。 TTY系统在Linux中由多个部分组成,包括硬件设备、驱动程序、...

    计算机控制工程,TTY接受程序

    在这样的系统中,TTY(Teletype)接受程序是一个关键组件,尤其在早期的计算机通信中,TTY设备是人机交互的主要方式之一。 TTY(Teletype)是一种古老的电传打字机,它能够通过串行通信接口与计算机进行数据交换。...

    对于Linux内核tty设备的一点理解

    Linux操作系统中的TTY(Teletype的简称)设备是一种用于文本用户界面的通信接口,它最早源自于电传打字机(Teletypes或Teletypewriters),最初由Teletype公司生产。TTY设备是Unix系统中的一种重要字符型设备,它...

    tiny_tty_kernel_2.6.32

    《Linux设备驱动开发详解——基于2.6.32内核的tiny_tty模块解析》 在Linux系统中,TTY(Teletype)是字符型终端设备的抽象,它为用户提供了与操作系统交互的文本界面。Linux Device Driver Development (LDD3) 是一...

    linux tty驱动源码分析

    Linux系统中的TTY驱动是操作系统中非常重要的一部分,TTY驱动主要负责处理用户与Linux内核之间的串行通信。在Linux系统中,TTY是终端(terminal)的一个泛称,其中包括了物理串口、虚拟控制台、伪终端(pseudo-...

    Linux的TTY介绍

    ### Linux的TTY概念详解 #### TTY的基本定义与历史背景 TTY是TeleTYpe的缩写,最初指的是一种能够通过串行线路进行信息发送和接收的设备——电传打字机(Teletypes),其功能类似于早期的电报机。随着计算机技术的...

    tty.rar_linux tty

    "tty.rar_linux tty"这个标题暗示我们这里关注的是与Linux TTY设备驱动程序相关的压缩包,其中包含了`tty.c`和`tty.h`两个源代码文件。这些文件通常涉及到Linux内核中的TTY层实现。 `tty.c`通常是实现TTY设备驱动的...

    tty.rar_linux tty驱动_tty_tty驱动详解

    在Linux操作系统中,TTY(Teletype)是用于终端设备通信的一种接口,它不仅包括物理的串行端口,还涵盖了虚拟控制台和通过网络连接的远程终端。本压缩包"tty.rar"提供了有关Linux TTY驱动程序的详细资料,这对于理解...

    TTY.rar_tty

    TTY,全称是Teletype Terminal,是一种早期的交互式终端设备,用于连接计算机系统,让用户通过键盘输入数据,同时接收计算机输出的信息。在现代操作系统中,TTY通常指的是文本模式的终端模拟器,如Linux或Unix系统中...

    WIN TTY 源代码

    【标题】"WIN TTY 源代码"指的是一个针对Windows平台实现的TTY(TeleTYpeWriter)源代码项目,通常用于串口通信。TTY在早期的计算机系统中扮演着重要角色,允许用户通过终端设备与主机进行交互。在Windows环境中,...

    TTY驱动及串口驱动分析.doc

    TTY驱动的核心在于其分层结构,这使得它能够高效地处理输入输出数据,并与其他系统组件协同工作。下面将详细阐述TTY驱动的主要组成部分及其功能。 1. TTY核心层: TTY核心层是整个驱动的基础,它负责管理和调度各个...

    TTY技术简介

    TTY,全称Text Telephones,是一种专为听障人士设计的通信技术,使得聋哑人可以通过文本方式进行电话交流。TTY最初的设计是基于电传打字机(Teletype Machine),利用特定的音调来代表字母和标点符号,然后通过电话...

    tty_driver.rar_If..._linux tty_tty

    首先,我们需要理解TTY是什么。TTY是“Teletype”的缩写,最初指的是机械式的打印机和键盘设备,但现在这个词主要指代任何提供文本输入和输出的设备,包括物理终端、串行端口、虚拟控制台,甚至网络上的模拟终端。 ...

    tty_driver

    Linux TTY驱动程序是操作系统内核中的一个关键组件,它负责与终端设备进行通信,包括物理的控制台终端和通过网络连接的虚拟终端。TTY(Teletype)这个词源自早期的电传打字机,但现在它代表的是任何提供文本输入和...

    前端开源库-tty-table

    **前端开源库-tty-table** 在现代的软件开发中,前端开发者经常需要处理各种数据的展示,尤其是在命令行界面(CLI)应用中。TTY(TeleTYpe Writer)是早期计算机时代的设备,现在常用于指代命令行接口。`tty-table`...

    linux 下利用tty 发送PTZ CMD的测试程式

    在Linux操作系统中,TTY(Teletype)是与终端设备交互的一种接口,广泛用于串行通信。本测试程式主要是为了实现通过TTY接口发送PTZ(Pan-Tilt-Zoom,即云台控制)命令,这对于远程监控系统或者视频会议等应用来说至...

Global site tag (gtag.js) - Google Analytics