虚拟终端

一個视频终端的模拟的程序
(重定向自终端模拟器

终端模拟器(英語:Terminal emulator)也译为“虚拟终端機”,是在个人电脑上虚拟的一个终端以及为此目的而写的软件。虚拟终端的目的是达到个人电脑及其用户能够与大型计算机的连接。一般来说需要连接的大型计算机是IBM的大型计算机或者所谓的超小型计算机(过去往往是迪吉多VAX)。

XtermX Window系統上一個基本的虛擬終端機。
Windows TerminalWindows 10Windows 11的开源终端模拟器。

虚拟终端使得个人电脑的用户可以直接使用他的个人电脑来与大型计算机联系,而不必使用专门的终端。

通过虚拟终端的软件虚拟终端还可以扩展大型计算机的标准终端的功能,通过虚拟终端不但可以将个人电脑上的数据传递给大型计算机,而且还可以将大型计算机的数据传递给个人电脑,并在个人电脑上继续加工。

一般大型计算机的终端是字母式的输入和输出接口,因此一个虚拟终端至少需要一个能够模拟这样的字母式(比如ASCII)输入和输出接口的能力。最常见的平台是图像式的用户表面。要使得新的、图像式的程序能够使用老的字母式的或者没有图像式输入和输出能力的程序也需要虚拟终端。

现代的大型计算机也内部使用虚拟终端,这样它们可以向老的、需要终端的程序假装一个终端,而实际上它则将程序的显示转到显示卡上。比如Linux以及其它大多数基于个人电脑的类似Unix的操作系统假装有六至十个这样的“虚拟”的终端。

字母程序 <---> 虚拟终端 <---> 图像显示
shell <---> xterm <---> X11

结构

虚拟终端使得一个字母式的程序可以通过图形用户界面与用户通讯。它们使得用户可以使用不能直接使用图像接口的程序(比如因为在它们编程时还没有图像接口,或者因为字母式接口比较简单)。虚拟终端向字母式程序“假装”出一个字母终端,而向图像接口“假装”出一个图像式的程序。

工作方式

虚拟终端完成一个终端程序的任务。不过一个虚拟终端是一个普通的、在一个操作系统上、在电脑中央处理器上运行的普通程序,而不是一个存储在终端唯讀記憶體中的、在终端的中央处理器上运行的程序。虚拟终端分析一个字母式的程序的输出,将它转换为图像接口(比如X11)的输出。

终端窗口内的键盘输入传递给大型计算机中与终端连接的行程,一般这个行程是一个命令行解释器。这个行程以为自己是与一个终端相连,而实际上它是与一个虚拟终端相连。

例子

参考文献