我试图澄清我对终点站的理解。
终端实际上是一种设备(keyboard+monitor)。在CLI模式下,来自键盘的输入直接进入shell,并显示在监视器上。
同时,在使用GUI模式时,必须打开终端仿真器程序与shell进行交互。从您的键盘输入到终端模拟器程序,也显示在终端模拟器窗口上的监视器。输入不直接进入shell。终端仿真器程序会将输入从键盘中继到shell。终端仿真器程序使用伪终端与外壳通信.
当您从引导中直接进入CLI时,没有涉及到终端模拟器程序。
如果我的理解有什么问题,请评论并纠正我。
更新:我读回了神秘莫测。我认为我应该问的是文本终端(直接引导到文本模式)和图形用户界面终端之间的区别,因为我认为terminal=text终端、终端emulator=GUI终端(例如Gnome终端)是错误的。从这个更新之前的答案来看,用户实际上使用的是终端仿真器程序(用户空间),类似于GUI模式。我可以知道是TTY程序吗?因为我在运行命令'ps aux‘时找到了TTY进程。我从来不知道在文本模式中也涉及终端模拟器程序(不指内核空间中的终端仿真器)。
Update2:我读过Linux控制台。据此,文本模式是控制台,而GUI模式下的终端软件是终端模拟器。嗯,这是有道理的,这和我以前的理解是一样的。然而,根据TTY图的神秘化,终端模拟器是在内核空间,而不是用户空间。有趣的是,图表是指文本模式。
发布于 2016-01-10 08:16:57
这里有几个单独的术语需要独立定义:
终端:一个真正的键盘/监视器接口,如VT100:https://en.wikipedia.org/wiki/VT100
终端模拟器(TTY):模拟终端,提供输入和输出。在大多数Linux发行版中按ctrl+alt+F2,您就会在其中。在终端中输入"w“,您将看到w命令由"tty”运行。
伪终端(PTY):一种主/从对(ptmx),其中一些其他软件(如ssh或GUI终端)通过从站(pts)提供类似终端的接口。http://linux.die.net/man/4/ptmx在GUI终端中键入"w“,您将看到列出的w命令来自pts。
Shell:在登录时运行的命令行解释器,并解释输入。例如bash/zsh。
但是,请记住,这些术语在交谈中都是可以互换的。如果有人引用“终端”、“终端模拟器”、“控制台”、“命令行”或"shell",除非上下文另有规定,它们可能更一般地指的是:
“我用来控制电脑的那种基于文字的东西。”
问题更新的
有关与pty或pty匹配的所有进程,请参见下面的内容:
root@localhost tests]# ps fauxww | grep -P [pt]t[ys]
root 2604 2.3 0.8 50728 34576 tty1 Ss+ 07:09 1:15 \_ /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-VRHaoJ/database -nolisten tcp vt1
root 2569 0.0 0.0 2008 500 tty2 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty2
root 2571 0.0 0.0 2008 500 tty3 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty3
root 2573 0.0 0.0 2008 504 tty4 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty4
root 2575 0.0 0.0 2008 500 tty5 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty5
root 2577 0.0 0.0 2008 504 tty6 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty6
sin 3374 0.2 0.7 90668 28564 ? Sl 07:13 0:09 /usr/bin/python /usr/bin/terminator <<< Added this parent of 3377 manually to see the pts source
sin 3377 0.0 0.0 2076 620 ? S 07:13 0:00 \_ gnome-pty-helper
sin 3378 0.0 0.0 5236 1712 pts/0 Ss 07:13 0:00 \_ /bin/bash
root 4054 0.0 0.0 5124 1676 pts/0 S 07:23 0:00 | \_ bash
root 5034 0.0 0.0 5056 1092 pts/0 R+ 08:03 0:00 | \_ ps fauxww
root 5035 0.0 0.0 4416 740 pts/0 S+ 08:03 0:00 | \_ grep -P [pt]t[ys]
sin 4154 0.0 0.0 5236 1708 pts/1 Ss 07:23 0:00 \_ /bin/bash
sin 4485 0.0 0.0 7252 3500 pts/1 S+ 07:41 0:00 \_ python
您将看到pts和tty相关的过程。假设您在ps中看到了tty,这就是您的GUI终端正在使用的东西,但它不是。在这种情况下,我可以用ctrl+shift+F2-6来使用小型TTY进程,而pty是与我的GUI终端进程相关的辅助进程。要确定,请检查GUI终端的进程:
[root@localhost tests]# ps fauxww | grep terminator
sin 3374 0.2 0.7 90668 28564 ? Sl 07:13 0:08 /usr/bin/python /usr/bin/terminator
[root@localhost tests]# lsof -p 3374 | grep '[pt]t[ys]'
/usr/bin/ 3374 sin 17u CHR 136,0 0t0 3 /dev/pts/0
/usr/bin/ 3374 sin 25u CHR 136,1 0t0 4 /dev/pts/1
当您启动到文本模式时,您将进入TTY,就像从桌面按ctrl+alt+f2一样。当您使用SSH/GUI终端时,您使用的是伪终端。
发布于 2016-01-10 08:07:07
(显示器)终端是一种具有键盘和显示器并与主机通信的硬件。终端本身就是一台小型计算机;一种嵌入式系统。
终端仿真器是在通用计算机上运行的软件,它实现了终端的行为.
终端模拟器并不都是图形化的。它们可以基于文本显示模式。这方面的一个例子是Linux内核中的控制台。
终端模拟器也可以使用终端仿真本身。这方面的一个例子是GNU屏幕程序。它需要一个终端,但为在其下运行的程序提供终端仿真。
终端模拟器可以在主机中运行,以便提供虚拟终端来访问该主机本身。运行在主机上的软件将同一台主机视为附加的远程终端。但是终端仿真器也可以用来简单地使用计算机作为终端来访问某些远程主机。例如,使用运行在PC上Windows下的IBM 3270仿真器来访问大型机。这是一个仿真器,因为你使用的是Windows下的软件,而不是桌面上的实际3270。但是你不能用它来访问Windows命令行。这种终端仿真器的另一个例子是一个串行通信包,如Minicom、Hyper终端等等。此外,流行的PuTTY SSH客户端。
https://unix.stackexchange.com/questions/254359
复制相似问题