物理终端和Linux虚拟终端的区别是串口线的使用吗?

物理终端和Linux虚拟终端的区别是串口线的使用吗?

在计算的早期,设置通常是这样的:

在此输入图像描述

我们称VT-100为“物理终端”。

Ctrl但在 Linux 中,我们将虚拟终端称为“虚拟”(通过按+ Alt+访问的终端F*)。我不明白的是为什么我们称它们为“虚拟”。当您使用虚拟终端时,您也坐在屏幕前,在键盘上键入时会看到文本,就像使用 VT-100 终端时一样。这怎么是“虚拟”呢?它与使用 VT-100 等“物理终端”有何不同?

我能看到的唯一区别是,当使用物理终端时,您使用串行电缆连接到计算机。使用串行电缆是物理终端和虚拟终端之间的区别吗?

答案1

不,物理终端和虚拟终端的区别并不是串口线的使用。

Linux虚拟终端之所以被称为“虚拟”,是因为Linux本身实现了终端的功能,而不像以前终端的功能是由VT-100等单独的设备来实现的。

在图中,VT-100 接受来自键盘的用户输入,通过串行电缆将字节发送到 VAX-11 计算机,VAX-11 计算机处理从串行端口接收到的内容,通过以下方式将输出发送回终端:以字节形式传输串行电缆,终端解码接收到的内容并将输出文本呈现在屏幕上。将输出渲染到屏幕的不是 VAX-11 等计算机,而是 VT-100 等单独的物理设备。计算机所做的只是通过串行端口接收字节,对其进行处理,然后通过串行端口将输出作为字节发送回终端。它没有在屏幕上呈现文本的机制;该机制是由单独的物理设备完成的。这就是它被称为物理终端的原因。

在现代 Linux 发行版中,物理终端的功能是由 Linux 实现的,也就是说,是 Linux 在屏幕上呈现文本。没有单独的物理设备可以在屏幕上呈现文本。这就是为什么它被称为虚拟终端。

答案2

我们打个比方。

这是一台计算机,通过电缆(在本例中可能是 USB,也可能是 PS/2)连接到它的是键盘:

一台 2006 年戴尔 PC,配有通过电线连接的键盘和鼠标

[来源:杰里米·班克斯,抄送2.0,来自维基共享资源]

键盘负责检测按下了哪个键,并将商定/记录的“扫描码”传输到计算机。计算机不需要知道按键的物理排列方式。

这里还有两台计算机,但这次每台都有一个虚拟的键盘:

平板电脑和手机,屏幕上都显示虚拟键盘

[来源:lolobosse,Mocho(原图),修改:Mielon,CC0,来自维基共享资源]

以前由单独的物理设备担任的角色现在内置于计算机本身中,其提供的功能在通用处理器之上的软件中实现。该软件必须将用户触摸的屏幕位置直接转换为字符输入。


乍一看,图中的 VT-100 可能看起来只是一个键盘和一个屏幕,但它实际上正在执行更复杂的工作。当用户按键时,不会发送VAX-11扫描码,而是直接转换为ASCII字符;作为回报,它接收必须呈现到屏幕上的字符流,以及改变其输出和行为的“控制代码”。

当您使用“虚拟终端”时,所有这些额外的责任都已转移到计算机上的软件中,就像物理键盘的责任转移到平板电脑或手机中一样。该软件必须将键盘活动转换为 ASCII 输入,并将 ASCII 输出转换为屏幕上的显示,而不是通过电缆发送和接收数据并留下单独的终端来“理解”它。

答案3

我想说,区别在于设备(在本例中为终端)是否是物理设备。

  • 物理终端 - 通过某种物理电缆连接的物理设备。如果它是计算机本地的,那么它就是串行线。其他选项可以是多路复用器甚至调制解调器。 (历史:我的六年级学院在 20 世纪 80 年代初有过类似的事情解码器LA120连接到城镇另一边的理工学院/大学。线路的每一端都有一个 150 波特率的调制解调器,允许大约 15CPS。许多理工学院/大学都有通过以下方式连接的物理终端甘道夫多路复用器而不是连接到主机的单独串行电缆。)
  • 虚拟终端 - 用软件实现,通常旨在模拟物理设备的特性。例如,正如您所注意到的,Linux 控制台实现了虚拟终端。xterm和一样gnome-terminal

Linux 控制台可以说是一种物理终端,只不过通过使用 Alt/Fn 键,您可以在多个虚拟终端之间切换,每个虚拟终端彼此独立。在这种情况下,界限确实有点模糊。

相关内容