像ubuntu这样的操作系统,debian有GNOME终端用于实时使用。但是,同时ctrl + alt + f2将终端显示为完全成熟的CUI。 如果在GNOME终端中执行tty命令,它会显示/ dev / pts / 3,4等输出。但是,在CUI环境中它显示" / dev / tty2"。那么,这些终端之间有什么区别。
答案 0 :(得分:3)
当你在unix盒子上安装了许多固定屏幕时,就会出现这种情况。它们具有/dev/tty1
,2
,...作为设备文件,因为该数字是事先已知的,并且物理设备与设备文件的分配是固定的。
当您拨入机器或进行远程连接时,"终端"将被动态分配并被称为"伪终端",因此设备文件/dev/pts/3
,4
...可能他们有自己的文件夹,因为可以有这么多的它如果它们全部在那里,它会使/dev
目录混乱。数量可能因连接数而异,设备号可以回收。
/dev/ttyN
仍然适用于那些"默认"您可以使用ctrl-alt-f2等访问的终端
顺便说一句,名字tty
本身甚至来自终端之前的时代,源于"电话打字机",见https://en.wikipedia.org/wiki/Teleprinter
答案 1 :(得分:0)
Linux(与BSD一样)有一个或多个virtual consoles(在20世纪80年代中期至少可追溯到Xenix的一个特征),它们作为内核中的程序实现。如果您通过其中一个连接,则其名称为/dev/tty01
。从您的角度来看,这些是(尽管是“虚拟的”)真正的终端。
相反,有些终端不是真实的(“伪”),因为它们没有明确的“硬件”分配。 Linux(与其他系统一样)提供Unix98 pseudo-terminals,其中tty
显示为slave side device /dev/pts3
/等。(请参阅 Pseudo Terminals 在 Text-Terminal-HOWTO 中。伪终端的早期中间阶段在不同平台上有所不同; Linux在20世纪90年代实现了BSD风格。
终端仿真器(折扣虚拟控制台,技术上 终端仿真器,但被广泛认为是“硬件”),无法直接访问计算机的真实/虚拟控制台。他们使用伪终端接口来访问内核的终端驱动程序。这需要终端仿真器对可见的“终端”(你看到的)执行实际的输入/输出。虚拟终端和伪终端在内核的终端驱动程序中共享大部分相同的代码,这些代码实现了诸如擦除字符之类的内容。
在OP的问题中,gnome-terminal碰巧是使用此功能的几个终端仿真器之一。
有关其他讨论,请参阅