Linux 中为什么要提出伪终端这个概念呢?shell 等命令行程序不可以直接从显示器和键盘读取数据吗?

news/2025/10/29 10:50:01/文章来源:https://www.cnblogs.com/imust2008/p/19173696

这是一个非常好的问题,它触及了 Linux/Unix 系统设计中的一个核心概念。简单回答是:为了实现灵活性和复用性,将终端硬件管理与会话逻辑分离开来。

下面我们来详细拆解这个问题。

为什么不能直接从键盘和显示器读取?

在计算机的远古时代(大型机、小型机时代),用户是通过一个物理终端(比如电传打字机或后来的 CRT 终端)连接到主机的。这个终端就是一套实实在在的硬件,包括键盘和显示器。

对于运行在主机上的 Shell 来说,它只需要一个简单的“对话”接口:

  • 标准输入:从某个地方读取用户的命令。
  • 标准输出:将结果输出到某个地方。
  • 标准错误:将错误信息输出到某个地方。

如果 Shell 被设计成直接与物理键盘和显示器驱动打交道,会带来几个严重问题:

  1. 缺乏灵活性:Shell 程序将与特定的硬件绑定。换一种终端设备,可能就需要修改 Shell 的代码。
  2. 无法实现远程登录:这是最关键的一点。当网络出现后,用户希望通过 telnetssh 从远程登录。这时,用户的键盘和显示器在本地,而 Shell 进程运行在远端的服务器上。它们之间隔着网络,而不是直接的硬件连接。
  3. 无法实现图形终端模拟:像 GNOME Terminal、Konsole、iTerm2 这样的图形界面终端程序将无法工作。这些程序在图形界面里用一个窗口来模拟物理终端的行为。

伪终端的解决方案:一个“演员”代替“实物”

为了解决上述问题,Unix/Linux 引入了 伪终端 的概念。你可以把它想象成一对双向的、虚拟的管道,或者一个双向的 FIFO 队列。这对管道由两部分组成:

  • 主设备/dev/ptmx
  • 从设备/dev/pts/#(例如 /dev/pts/0, /dev/pts/1 ...)

工作流程如下:

  1. 当你打开一个终端模拟器(如 GNOME Terminal)或通过 SSH 登录时,终端模拟器或 SSH 守护进程会首先打开主设备
  2. 操作系统会自动创建一个对应的从设备,比如 /dev/pts/1
  3. 终端模拟器会 fork() 一个新的进程,并让这个新进程去打开那个从设备,并将其作为自己的标准输入、标准输出和标准错误。
  4. 这个新进程通常就是你运行的 Shell(如 bash、zsh)。

现在,数据流是这样的:

  • 你的键盘输入 -> 终端模拟器 -> 主设备 -> 从设备 -> Shell 的标准输入
  • Shell 的标准输出 -> 从设备 -> 主设备 -> 终端模拟器 -> 你的显示器

伪终端带来的巨大好处

  1. 对 Shell 透明
    Shell 程序本身完全不知道另一端连接的是物理终端、网络连接还是一个图形窗口。它只是像往常一样,从自己的标准输入读取数据,向标准输出写入数据。它认为自己是在和一个真正的终端对话,但实际上它是在和伪终端的“从设备”对话。这实现了完美的抽象

  2. 实现远程登录
    在 SSH 的场景中,本地的 SSH 客户端和远程的 SSH 守护进程建立了网络连接。远程的 SSH 守护进程就扮演了“终端模拟器”的角色。它创建一个伪终端,并启动用户的 Shell 连接到其从设备。这样,本地的键盘输入通过网络传到远程的 SSH 守护进程,再通过主设备写入从设备,最后被 Shell 读取。输出则反向流动。

  3. 实现图形终端模拟器
    GNOME Terminal 等程序也是同样的原理。它作为一个图形应用程序,创建了一个伪终端,然后启动 Shell。它将从主设备读取到的数据渲染到图形窗口上,并将窗口接收到的键盘事件写入主设备。

  4. 支持行编辑、作业控制等高级功能
    伪终端不仅仅是一个管道。它模拟了真实终端的很多行为,比如行缓冲(在按下回车键前可以编辑)、信号(如 Ctrl+C 发送 SIGINTCtrl+Z 发送 SIGTSTP)。终端模拟器(主设备端)负责解释这些特殊的控制字符和按键,并将其转换为相应的信号或操作,通过伪终端发送给 Shell。

总结

特性 没有伪终端(直接读写硬件) 有伪终端
硬件依赖 强,与特定终端绑定 无,统一的抽象接口
远程登录 无法实现 核心基础
图形终端 无法实现 核心基础
设计哲学 紧耦合,不灵活 松耦合,符合 Unix“一切皆文件”

所以,提出伪终端这个概念,是 Unix/Linux 设计哲学中 “通过抽象和组合来解决复杂问题” 的完美体现。它将终端的会话管理逻辑(由 Shell 负责)和终端硬件管理逻辑(由终端驱动/终端模拟器负责)清晰地分离开,使得两者可以独立发展和复用,从而极大地增强了系统的灵活性和功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DevSecOps在中国市场迎来爆发式增长:技术融合驱动软件安全新范式

DevSecOps在中国市场迎来爆发式增长:技术融合驱动软件安全新范式 安全左移战略下的DevSecOps市场蓬勃发展 中国DevSecOps市场正经历前所未有的高速增长期,这背后是国家政策推动与企业数字化转型需求的双重驱动。根据…

GaussDB 数据操作

处理大数据量 -- 批量插入1000条数据 DO $$ DECLAREbatch_size INT := 1000; BEGINWHILE TRUE LOOP-- 插入数据sqlINSERT INTO target_table (column1, column2) values (batch_size,"111");--循环判断条件b…

hashmap 和currenthashmap 的原理?详解一下

HashMap 和 ConcurrentHashMap 是 Java 中用于存储键值对(Key-Value)的哈希表实现,但前者是非线程安全的,后者是线程安全的,且两者的底层原理和设计目标有显著差异。以下从数据结构、核心机制、线程安全(仅 Conc…

2025年咖啡生豆供货商权威推荐:烘培咖啡豆/进口咖啡豆/商用咖啡豆源头供应商精选

一杯高品质的咖啡,始于一粒优质的咖啡生豆。在全球咖啡产业链中,生豆供应商是决定咖啡品质与风味的基础环节。 随着中国咖啡消费市场的持续增长,2024年中国咖啡生豆进口量已突破15万吨,年均增长率稳定在10%-15% 之…

2025年固体柜优质厂家权威推荐榜单:固体环网柜/固体绝缘环网柜/固体绝缘柜源头厂家精选

在电力设备升级浪潮中,固体绝缘柜以其环保、紧凑、高可靠性的优势,正成为配电网领域的新宠。 据最新行业调研数据显示,2025年中国固体绝缘柜市场规模预计将达到28亿元,同比增长19%,占环网柜市场总份额的35%。这一…

gda 操作

拖入apk 按菜单栏搜索按钮 搜索结果中双击定位到位置 F5 切换汇编和java代码 M键 修改指令 修改完 R键 应用到apk并重新签名,你应该能在目录中看到重签名后的 appname_sig.apk 手机拿到apk安装.作者:xuejianxiyang出…

基于光滑L0范数和修正牛顿法的压缩感知重建算法MATLAB实现

1. 算法理论基础 1.1 压缩感知问题描述 压缩感知旨在从少量线性测量中恢复稀疏信号: \[y = \Phi x + e \]其中:\(y \in \mathbb{R}^M\):观测向量 (M << N) \(\Phi \in \mathbb{R}^{M\times N}\):测量矩阵 \(…

如何利用Spring Initializr快速搭建项目

利用Spring Initializr快速搭建Spring Boot项目是开发中的常用方式,以下是详细步骤说明: 1. 访问Spring Initializr 打开浏览器,输入官方地址:https://start.spring.io/这是Spring官方提供的项目初始化工具,界面简…

[题解]QOJ #8520. Xor Partitions

QOJ #8520. Xor Partitions 给定非负整数序列 \(A_1,A_2,\dots,A_n\),求所有非空划分的权值之和。一个划分的权值定义为每一段的异或和之积。 \(n\le 3\times 10^5,a\in[0,10^{18}]\)。 Sample in: 4 7 3 1 2Sample …

lora技术在无线抄表行业中的应用及方案优点

随着社会不断的发展,几乎家家户户都已经安装了家庭用电,但是大量的用户也造成了管理不便的麻烦,传统的抄表方式往往需要投入大量的人工和时间成本,所以现在急需一种自动化、方便、简单的抄表方式。传统的人工抄表方…

基于MATLAB的遗传算法优化支持向量机实现

一、算法框架设计二、完整MATLAB代码实现 %% 清空环境 clc; clear; close all;%% 数据加载与预处理(以鸢尾花数据集为例) load fisheriris X = meas(:,1:2); % 使用前两个特征 Y = species;% 数据归一化 [X,norm_par…

机器学习算法——线性回归

一、 基本定义 线性回归是一种用于建模和分析一个或多个自变量(X)与一个因变量(Y)之间线性关系的统计方法。其核心目标是找到一条最佳拟合直线,用以描述变量间的关系,从而实现预测或因果分析。 二、 模型构成 线…

2025年垃圾分类房标准解析与智能垃圾分类房品牌评测:为什么选择合肥荣东?

文章摘要 本文深入解析2025年垃圾分类房标准,详细指导智能垃圾分类房如何使用,并提供品牌推荐和评测。重点推荐合肥荣东智能环保科技有限公司,其拥有ISO认证、先进生产设备和丰富客户案例,如淮南寿县文旅等,确保产…

2025年垃圾分类房标准全面解析及智能垃圾分类房品牌评测:合肥荣东领跑行业

文章摘要 本文深入解读2025年垃圾分类房的最新标准,提供智能垃圾分类房的使用指南,并进行品牌评测推荐。重点介绍合肥荣东智能环保科技有限公司的产品优势,包括ISO认证、先进生产工艺和客户案例,帮助用户选择可靠品…

E - Hit and Away

E - Hit and Away Problem Statement You are given a simple connected undirected graph $G$ with $N$ vertices and $M$ edges.The vertices and edges of $G$ are numbered as vertices $1,2,\ldots,N$ and edges …

2025年耙式机械格栅除污机工厂权威推荐榜单:破碎格栅机 /回转式机械格栅/拦污格栅源头厂家精选

在污水处理领域,机械格栅作为预处理环节的关键设备,其性能直接影响后续处理流程的效率与效果。根据最新市场调研数据显示,2024年我国污水处理设备市场规模已达到约1500亿元,预计到2025年将保持稳定增长态势。 机械…

数组与字典解决方案第三十讲:如何将记录集的数据记入数组 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年旗台石栏杆制造企业权威推荐榜单:旗台座栏杆 /汉白玉旗台/汉白玉栏杆旗台源头厂家精选

在石雕艺术与建筑装饰领域,这四家标杆企业以精湛工艺与创新设计引领着旗台石栏杆行业的发展方向。 在建筑装饰与园林景观领域,旗台石栏杆作为兼具功能性与艺术性的重要构件,其品质优劣直接关系到工程项目的整体效果…

2025年知识管理系统推荐:几款融合AI能力的智能知识库全面对比

2025年知识管理系统推荐:几款融合AI能力的智能知识库全面对比“小李,新来的实习生问你咱们项目的API鉴权机制文档在哪,你找找?” 那天下午,技术主管突然给我抛来这个问题。我心头一紧——这文档上次更新还是半年前…

2025 年机箱机柜厂家最新推荐榜,技术实力与市场口碑深度解析含 Q235/304 不锈钢 / 5052 铝等多材质优质品牌

引言 在数字化与工业化融合加速的背景下,机箱机柜作为设备防护核心载体,其品质直接影响数据中心、工业控制等场景的运行稳定性。据电子设备工业协会 2025 年 Q3 测评数据显示,国内机箱机柜市场品牌超 800 家,但通过…