终端,虚拟终端和伪终端概念之间的区别是:
一、终端
英文为System Console,指的是"键盘和打印机硬件设备组合",或者是“键盘和显示器硬件设备组合”,或者是“其他的输入和输出硬件设备组合”。
System Console的定义跟操作系统和应用软件无关,只跟硬件有关。
二、虚拟终端
英文为Virtual
console,指的是在BSD,UnixWare,Linux等操作系统中提供的特性,在该特性中,通过程序来模拟多个Virtual
console,在每个Virtual
console中都提供了“输入和输出功能”。在Linux中,提供了tty1,tty2,tty3,tty4,tty5,tty6,tty7这7个Virtual
console[通过运行/sbin/getty来得到],分别由Ctrl+Alt+[F1,F2,F3,F4,F5,F6,F7]来指定,其中在具有桌面环境的Linux发行版中,X
Window System在tty7上运行。
Linux中的Virtual console运行在内核层。
备注:
Virtual console的定义跟具体操作系统相关,Vitual
console是BSD,UnixWare,Linux等操作系统基于和扩展于Xenix规范[3]的特定实现,而在Dos操作系统中,基于和扩展于Xenix规范的特定实现是Dos下的命令行界面,这个Dos下的命令行界面不能被称为Virtual
console。
三、伪终端
英文为terminal
emulator,一般是指在操作系统上运行的一个应用程序,用来模拟建立一个“输入和输出的功能界面”。比如在Windows下的Win32
console(就是cmd),在Linux下的gnome-terminal(在GNOME中),guake(在KDE中),xfce4-terminal(在Xfce中)。
Linux下的terminal emulator运行在用户层。
备注:
1)关于终端,虚拟终端,伪终端的概念界限并不是这么分明,有时候可以互相通用,比如可以用“终端”表示(终端,虚拟终端,伪终端)这3个中的任何一个
2)其实只要记住,“终端”其实就是“关于输入和输出功能的组合”而已,可以是硬件的,也可以是软件的。硬件的就有“一、终端”中所说的终端,软件的就有“‘二、虚拟终端‘和‘三、伪终端‘”中所说的终端。我们也可以定义一个具有输入和输出功能组合的图形应用程序为"xxx终端"。