Linux内核TTY子系统有什么(5)

接前一篇文章:Linux内核TTY子系统有什么(4)

本文内容参考:

Linux TTY子系统框架-CSDN博客

一文彻底讲清Linux tty子系统架构及编程实例-CSDN博客

linux TTY子系统(3) - tty driver_sys tty device driver-CSDN博客

Linux TTY 子系统框架_linux tty体系-CSDN博客

LinuxTTY 子系统2_tty子系统-CSDN博客

Linux TTY Driver_tty driver配置-CSDN博客

UART驱动学习二(TTY体系)_serdev-CSDN博客

解密TTY - QiuhaoLi - 博客园

特此致谢!

一、TTY是什么?

2. TTY的分类

Linux系统的终端设备一般分为控制台、伪终端pty、串口终端(/dev/ttySn)和其它类型。

(4)伪终端PTY

**伪终端(Pseudo Terminal,简称PTY)**是在Unix和Linux系统中用于模拟真实物理终端的一种机制。它允许程序像与真实终端交互一样与用户或其它进程进行通信,但实际上并不依赖物理设备。

伪终端是终端的发展,为满足现代需求(比如网络登录、Xwindow窗口的管理)。它是成对出现的逻辑终端设备(即master和slave设备,对master的操作会反映到slave上)。它多用于模拟终端程序,是远程登录(telnet、ssh、xterm等)后创建的控制台设备。

伪终端的工作原理

伪终端系统主要分为两部分:

1)主设备(master device)

  • 通常表示为/dev/ptmx或/dev/ptm。
  • 应用程序通过此设备与伪终端进行交互,接收和发送数据。
  • 当一个进程打开/dev/ptmx文件时,会获得一个新的伪终端主设备文件描述符,并自动在/dev/ptx目录下创建一个新的从设备文件。

2)从设备(slave device)

  • 表示为/dev/pts/N,其中N是一个数字,代表伪终端的编号。
  • 提供与真实终端相同的接口,但没有物理硬件依赖。
  • 具有标准输入、标准输出和标准错误输出等功能。

伪终端设备文件详解

1)/dev/ptmx

  • 是伪终端系统的主设备文件。
  • 用于创建一个新的伪终端对(主设备和从设备)。
  • 通过打开此文件并调用相应的系统调用(如ioctl),可以获取与从设备相关的文件描述符和信息。通过ioctl系统调用和TIOCGPTN命令获取从设备的编号。

2)/dev/pts/N

  • 是伪终端系统的从设备文件。
  • 每个从设备文件对应一个唯一的伪终端编号N。
  • 提供与真实终端相似的接口,允许用户或其它进程进行输入/输出操作。

伪终端的使用场景

  • 远程连接

如通过SSH、Telnet等协议进行的远程会话。

  • 窗口管理器中的终端模拟

如GNOME Terminal、Konsole等图形终端模拟器。

  • 脚本自动交互

用于自动化测试、批量操作等场景。

关于伪终端的更多细节介绍,请看下回。

相关推荐
gwf2162 天前
常见驱动问题定位与解决:设备识别、性能不达预期、CQ错误码 —— 资深RDMA驱动调试排错指南
驱动开发·linux内核·性能调优·rdma·故障排查·mlx5·irdma
gwf2165 天前
SSD I/O路径全栈优化与Linux内核存储栈性能调优实战
性能优化·linux内核·nvme·性能调优·固态硬盘·存储技术·io_uring
susplus5 天前
【IMX6ULL Linux系统移植】内核编译裁剪 + rootfs 构建 + 完整启动流程梳理
linux内核·arm·rootfs·linux启动
gwf2167 天前
RDMA事件与异步通知机制:CMA事件与设备事件深度解析
驱动开发·linux内核·rdma·rdma_cm·异构计算·异步事件·cve分析
gwf21612 天前
内核RDMA子系统(ib_core)架构与核心数据结构:从驱动视角解构数据通路
linux内核·rdma·网卡驱动·mlx5·gpudirect·ib_core·内核架构
gwf21614 天前
企业级SSD双端口与高可用架构深度解析(Dual Port / Multipath / ALUA / Active-Active)
linux内核·高可用·存储技术·多路径·企业级ssd·双端口·alua
灿烂的贝壳17 天前
Linux进程状态与转移关系解析
linux内核
灿烂的贝壳17 天前
fork与vfork区别解析
linux内核
gwf2161 个月前
NVMe/RDMA传输层协议深度解析:RDMA原理、Queue Pair映射、内核实现与性能全栈剖析
linux内核·ssd·nvme·性能调优·rdma·存储协议·nvme/rdma
gwf2161 个月前
NVMe/TCP传输层协议深度解析:PDU格式、内核实现、性能调优全栈剖析
linux内核·ssd·nvme·性能调优·nvme-of·存储协议·nvme/tcp