首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >终端与终端模拟器

终端与终端模拟器
EN

Unix & Linux用户
提问于 2016-01-10 06:41:38
回答 2查看 21.7K关注 0票数 21

我试图澄清我对终点站的理解。

终端实际上是一种设备(keyboard+monitor)。在CLI模式下,来自键盘的输入直接进入shell,并显示在监视器上。

同时,在使用GUI模式时,必须打开终端仿真器程序与shell进行交互。从您的键盘输入到终端模拟器程序,也显示在终端模拟器窗口上的监视器。输入不直接进入shell。终端仿真器程序会将输入从键盘中继到shell。终端仿真器程序使用伪终端与外壳通信.

当您从引导中直接进入CLI时,没有涉及到终端模拟器程序。

如果我的理解有什么问题,请评论并纠正我。

更新:我读回了神秘莫测。我认为我应该问的是文本终端(直接引导到文本模式)和图形用户界面终端之间的区别,因为我认为terminal=text终端、终端emulator=GUI终端(例如Gnome终端)是错误的。从这个更新之前的答案来看,用户实际上使用的是终端仿真器程序(用户空间),类似于GUI模式。我可以知道是TTY程序吗?因为我在运行命令'ps aux‘时找到了TTY进程。我从来不知道在文本模式中也涉及终端模拟器程序(不指内核空间中的终端仿真器)。

Update2:我读过Linux控制台。据此,文本模式是控制台,而GUI模式下的终端软件是终端模拟器。嗯,这是有道理的,这和我以前的理解是一样的。然而,根据TTY图的神秘化,终端模拟器是在内核空间,而不是用户空间。有趣的是,图表是指文本模式。

EN

回答 2

Unix & Linux用户

发布于 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匹配的所有进程,请参见下面的内容:

代码语言:javascript
运行
复制
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终端的进程:

代码语言:javascript
运行
复制
[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终端时,您使用的是伪终端。

票数 19
EN

Unix & Linux用户

发布于 2016-01-10 08:07:07

(显示器)终端是一种具有键盘和显示器并与主机通信的硬件。终端本身就是一台小型计算机;一种嵌入式系统。

终端仿真器是在通用计算机上运行的软件,它实现了终端的行为.

终端模拟器并不都是图形化的。它们可以基于文本显示模式。这方面的一个例子是Linux内核中的控制台。

终端模拟器也可以使用终端仿真本身。这方面的一个例子是GNU屏幕程序。它需要一个终端,但为在其下运行的程序提供终端仿真。

终端模拟器可以在主机中运行,以便提供虚拟终端来访问该主机本身。运行在主机上的软件将同一台主机视为附加的远程终端。但是终端仿真器也可以用来简单地使用计算机作为终端来访问某些远程主机。例如,使用运行在PC上Windows下的IBM 3270仿真器来访问大型机。这是一个仿真器,因为你使用的是Windows下的软件,而不是桌面上的实际3270。但是你不能用它来访问Windows命令行。这种终端仿真器的另一个例子是一个串行通信包,如Minicom、Hyper终端等等。此外,流行的PuTTY SSH客户端。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/254359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档