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等图形终端模拟器。

  • 脚本自动交互

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

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

相关推荐
内核程序员kevin1 个月前
使用trace-cmd跟踪Linux内核函数:一次愉快的内核探险
linux·运维·linux内核·ftrace
内核程序员kevin2 个月前
使用Go语言开发eBPF入门教程
golang·linux内核·ebpf·系统调用
嵌入式小李5 个月前
Linux并发与竞争
linux·linux内核·并发与竞争
格桑阿sir6 个月前
Docker核心技术:Docker原理之Namespace
linux·docker·容器·linux内核·namespace·隔离性·容器标准
格桑阿sir6 个月前
Docker核心技术:Docker原理之Cgroups
linux·docker·容器·linux内核·cpu·资源限制·cgroups
_三分糖6 个月前
【Linux内核编程--模块机制】
android·linux·运维·服务器·linux内核·c·linux驱动
flashing-c6 个月前
Linux HOOK机制与Netfilter HOOK
linux·运维·网络·linux内核·netfilter·linux hook
橘色的喵7 个月前
针对ARM64嵌入式系统的Linux内核参数优化
性能优化·linux内核·嵌入式·arm·内存管理·arm64·网络优化
回眸&啤酒鸭7 个月前
Linux 内核 (十二)进程间通讯 之 消息队列
linux·linux内核