linux下的tty是什么设备
linux下的tty是什么设备详细介绍
在 Linux 系统中,tty(Teletypewriter 的缩写)是用于表示终端设备的通用术语,其本质是操作系统与用户或外部设备之间交互的输入输出接口。以下是关于 tty 设备的详细解析:
一、
tty 的核心概念
- 历史起源
最早源于电传打字机(硬件终端),现代 Linux 中演变为软件层面的终端抽象,用于管理用户与系统之间的交互,包括键盘输入、屏幕输出及终端控制。 - 设备文件
所有tty设备在/dev/目录下以文件形式存在,常见类型包括:- 控制台终端(Console)
- 虚拟终端(Virtual Terminal)
- 串行终端(Serial Terminal)
- 伪终端(Pseudoterminal,简称
pts)
二、
tty 的主要类型
1.
控制台终端(Console)
- 物理终端:早期连接到计算机的真实硬件终端(如显示器 + 键盘),现代多指代系统启动后的默认交互终端。
- 设备文件:
/dev/console:系统控制台,通常映射到第一个虚拟终端或串行终端。/dev/tty:指向当前终端的符号链接(通过tty命令可查看实际指向)。
2.
虚拟终端(Virtual Terminal)
- 功能:通过快捷键(如
Ctrl+Alt+F1~F6)切换的文本终端会话,无需物理设备,由系统虚拟生成。 - 设备文件:
/dev/tty1~/dev/tty6(对应 6 个默认虚拟终端),第 7 个及以上通常用于图形界面(如 Xorg 的终端模拟器)。
3.
串行终端(Serial Terminal)
- 用途:连接串口设备(如 RS-232 串口、USB 转串口设备),用于工业控制、嵌入式设备或旧硬件交互。
- 设备文件:
- 传统串口:
/dev/ttyS0(COM1)、/dev/ttyS1(COM2)等。 - USB 转串口:
/dev/ttyUSB0、/dev/ttyUSB1等(由驱动自动生成)。 - 蓝牙串口:
/dev/rfcommX(X 为通道号)。
- 传统串口:
4.
伪终端(Pseudoterminal, pts)
- 核心场景:网络连接(如 SSH、Telnet)或终端模拟器(如 Xshell、GNOME Terminal)创建的虚拟终端对。
- 原理:由两个关联的设备文件组成(主设备
ptm和从设备pts),实现进程间的输入输出转发。 - 设备文件:位于
/dev/pts/目录下,如pts/0、pts/1等,数量无固定限制(由系统配置决定)。
三、
tty 的核心功能
- 交互接口
接收用户输入(键盘、串口等)并输出系统响应(文本、错误信息等),是命令行操作的基础。 - 终端控制
- 通过
stty命令配置终端属性(波特率、奇偶校验、停止位、回显等),例如:bashsttystty
- 通过
- 进程关联
每个终端对应一个或多个进程(如登录 shell),通过tty命令可查看当前进程关联的终端设备:
bash - 串口通信
在嵌入式开发或硬件调试中,通过操作tty设备文件(如/dev/ttyUSB0)实现串口数据收发(需配合open()、read()、write()等系统调用)。
四、常见命令与应用
- 查看当前终端设备
bash - 配置终端参数
bashsttystty raw
- 重定向终端输入输出
在脚本中,可通过0(标准输入)、1(标准输出)、2(标准错误)关联的tty设备控制输入输出,例如:
bash/dev/tty - 串口设备操作
使用工具如minicom、screen或编写程序操作串行终端设备(如/dev/ttyS0),实现与外部硬件的通信。
五、总结
tty 是 Linux 中终端设备的抽象,涵盖物理终端、虚拟终端、串行设备和伪终端等类型,是用户交互、设备通信和进程控制的核心基础设施。理解 tty 的不同形态(如 pts 用于网络终端、ttyUSB 用于串口设备)有助于高效使用命令行、调试硬件或开发终端相关程序。