Windows 控制台和终端定义 - Windows Console

36578130 2025-10-22 03:19:06 作者: admin 阅读: 8096
Windows 控制台和终端定义 - Windows Console

本文档提供此空间中特定字词和短语的定义,并在整个文档集中用作参考。

命令行应用程序

命令行应用程序(有时称为“控制台应用程序”和/或称为控制台子系统的“客户端”)是主要在文本或字符信息流上运行的程序。 它们通常不包含自己的用户界面元素,并将输出/显示和输入/交互角色委托给宿主应用程序。 命令行应用程序在其标准输入句柄上接收文本流,该流表示用户的键盘输入 STDIN ,处理该信息,然后使用其标准输出 STDOUT 上的文本流进行响应,以便显示回用户的监视器。 当然,对于其他输入设备和远程方案,这在一段时间内不断发展,但相同的基本理念保持不变:命令行客户端在文本上运行,其他人管理显示/输入。

标准句柄

标准句柄是作为进程空间启动时引入的系列、STDINSTDOUT和STDERR。 它们代表在出路时接受信息的位置,并发送回出路(包括报告错误的特殊地点)。 对于命令行应用程序,在应用程序启动时必须始终存在这些应用程序。 它们是从父级自动继承的,由父级显式设置,或者由作系统自动创建(如果两者均未指定/允许)。 对于经典 Windows 应用程序,启动时这些应用程序可能为空。 但是,它们可以隐式或显式继承自父级或分配的、附加的,并在运行时由应用程序本身释放。

标准句柄并不意味着特定类型的附加设备。 但是,对于命令行应用程序,设备通常是控制台设备、文件(从 shell 中的重定向)或管道(从一个实用工具的输出连接到下一个实用工具的输入)。 它也可能是套接字或任何其他类型的设备。

TTY/PTY

在非 Windows 平台上,TTY 和 PTY 设备分别表示真正的物理设备或与 Windows 控制台会话相同的软件创建的伪设备:命令行客户端应用程序与服务器主机交互应用程序或物理键盘/显示设备之间的通信通道可以交换基于文本的信息。

客户端和服务器

在此空间中,我们将“客户端”称为执行处理信息和运行命令工作的应用程序。 “服务器”应用程序是负责用户界面的应用程序,是代表客户端将输入和输出转换为标准表单的辅助角色。

控制台子系统

这是一个 catch-all 术语,表示影响控制台和命令行作的所有模块。 它特别指一个标志,该标志是可移植可执行文件标头的一部分,该标头指定启动应用程序是命令行/控制台应用程序(并且必须具有标准句柄才能启动)还是 Windows 应用程序(且不需要它们)。

控制台主机、命令行客户端应用程序、控制台驱动程序、控制台 API 图面、伪控制台基础结构、终端、配置属性表、进程加载程序内的机制和存根,以及与这些形式的应用程序工作相关的任何实用程序都被视为属于此组。

控制台主机

Windows 控制台主机,或 conhost.exe,既是所有 Windows 控制台 API 的服务器应用程序,也是用于处理命令行应用程序的经典 Windows 用户界面。 此二进制文件(API 服务器和 UI)的完整内容以前属于 Windows csrss.exe(一个关键系统进程),出于安全性和隔离目的而不同。 今后, conhost.exe 将继续负责 API 调用服务和翻译,但用户界面组件旨在通过伪控制台委托给终端。

伪console

这是来自其他平台的伪终止或“PTY”的 Windows 模拟。 它尝试匹配 PTY 的一般接口理念,提供基于文本的简单双向通信通道,但它在 Windows 上补充了它,其兼容性层较大,用于将设计理念从经典控制台 API 图面更改为简单文本通道通信表单之前编写的 Windows 应用程序广度。 终端可以使用伪规则从控制台主机中获取用户界面元素的所有权, conhost.exe同时负责 API 服务、翻译和兼容性工作。

终端

终端是命令行应用程序的用户界面和交互模块。 如今,它是一种软件表示形式,它过去是具有显示监视器、键盘和双向串行通信通道的物理设备。 它负责以各种形式从用户收集输入,将输入转换为单个文本流,并将其编码为单个文本流,并将其提交到 PTY 以传输到 STDIN 命令行客户端应用程序的通道。 它还负责通过 PTY 接收来自客户端应用程序 STDOUT 通道、解码有效负载中的任何特殊信息、设置所有文本和其他命令以及以图形方式向最终用户呈现该信息的信息。

相关推荐