答案1
不,物理终端和虚拟终端的区别并不是串口线的使用。
Linux虚拟终端之所以被称为“虚拟”,是因为Linux本身实现了终端的功能,而不像以前终端的功能是由VT-100等单独的设备来实现的。
在图中,VT-100 接受来自键盘的用户输入,通过串行电缆将字节发送到 VAX-11 计算机,VAX-11 计算机处理从串行端口接收到的内容,通过以下方式将输出发送回终端:以字节形式传输串行电缆,终端解码接收到的内容并将输出文本呈现在屏幕上。将输出渲染到屏幕的不是 VAX-11 等计算机,而是 VT-100 等单独的物理设备。计算机所做的只是通过串行端口接收字节,对其进行处理,然后通过串行端口将输出作为字节发送回终端。它没有在屏幕上呈现文本的机制;该机制是由单独的物理设备完成的。这就是它被称为物理终端的原因。
在现代 Linux 发行版中,物理终端的功能是由 Linux 实现的,也就是说,是 Linux 在屏幕上呈现文本。没有单独的物理设备可以在屏幕上呈现文本。这就是为什么它被称为虚拟终端。
答案2
我们打个比方。
这是一台计算机,通过电缆(在本例中可能是 USB,也可能是 PS/2)连接到它的是键盘:
键盘负责检测按下了哪个键,并将商定/记录的“扫描码”传输到计算机。计算机不需要知道按键的物理排列方式。
这里还有两台计算机,但这次每台都有一个虚拟的键盘:
[来源:lolobosse,Mocho(原图),修改:Mielon,CC0,来自维基共享资源]
以前由单独的物理设备担任的角色现在内置于计算机本身中,其提供的功能在通用处理器之上的软件中实现。该软件必须将用户触摸的屏幕位置直接转换为字符输入。
乍一看,图中的 VT-100 可能看起来只是一个键盘和一个屏幕,但它实际上正在执行更复杂的工作。当用户按键时,不会发送VAX-11扫描码,而是直接转换为ASCII字符;作为回报,它接收必须呈现到屏幕上的字符流,以及改变其输出和行为的“控制代码”。
当您使用“虚拟终端”时,所有这些额外的责任都已转移到计算机上的软件中,就像物理键盘的责任转移到平板电脑或手机中一样。该软件必须将键盘活动转换为 ASCII 输入,并将 ASCII 输出转换为屏幕上的显示,而不是通过电缆发送和接收数据并留下单独的终端来“理解”它。
答案3
我想说,区别在于设备(在本例中为终端)是否是物理设备。
- 物理终端 - 通过某种物理电缆连接的物理设备。如果它是计算机本地的,那么它就是串行线。其他选项可以是多路复用器甚至调制解调器。 (历史:我的六年级学院在 20 世纪 80 年代初有过类似的事情解码器LA120连接到城镇另一边的理工学院/大学。线路的每一端都有一个 150 波特率的调制解调器,允许大约 15CPS。许多理工学院/大学都有通过以下方式连接的物理终端甘道夫多路复用器而不是连接到主机的单独串行电缆。)
- 虚拟终端 - 用软件实现,通常旨在模拟物理设备的特性。例如,正如您所注意到的,Linux 控制台实现了虚拟终端。
xterm
和一样gnome-terminal
。
Linux 控制台可以说是一种物理终端,只不过通过使用 Alt/Fn 键,您可以在多个虚拟终端之间切换,每个虚拟终端彼此独立。在这种情况下,界限确实有点模糊。