![Ubuntu GUI 本身就是 TTY 吗?](https://linux22.com/image/892953/Ubuntu%20GUI%20%E6%9C%AC%E8%BA%AB%E5%B0%B1%E6%98%AF%20TTY%20%E5%90%97%EF%BC%9F.png)
将 Ubuntu GUI 本身称为 TTY 是否准确?我知道 TTY 这个术语不一定与终端控制台或终端仿真器(CLI 环境)有关,如果定义足够广泛的话,也可以指 GUI。
因此,我的问题实际上可以由以下两个问题组成:
- 将 Ubuntu GUI(或任何其他操作系统 GUI)命名为“TTY”是否准确?
- 是否可以说任何窗口(例如目录窗口或 gedit/geany 窗口)本身都是一个 TTY 或者仅仅是更大的 GUI TTY 的一部分(窗口)?
答案1
将 Ubuntu GUI(或任何其他操作系统 GUI)命名为“TTY”是否准确?
桌面需要 tty 才能运行,但这并不意味着 GUI 就是 tty。您应该将其称为会话,并将其称为用于登录命令行会话或桌面会话的 tty。
是否可以说任何窗口(例如目录窗口或 gedit/geany 窗口)本身都是一个 TTY 或者仅仅是更大的 GUI TTY 的一部分(窗口)?
不,那些是(会话内的)过程。
答案2
TTY 实际上是虚拟终端的一个实例。早期的计算机只是巨大的盒子,上面连接着一个真实的物理终端,通常称为 TTY(电传打字机的缩写)。虚拟终端之所以被称为虚拟,正是因为这个原因 - 您的计算机现在是一个单一单元,并且您有几个不同的虚拟软件电传打字机(更具体地说,对于 Ubuntu 来说,它是 6 个 tty,但您可以生成更多。请参阅我的回答:https://askubuntu.com/a/817859/295286)。在 TTY 中,您可以运行进程,无论是基于文本的 shellbash
还是运行图形 shell 的图形服务器。
具体发生的事情是,你有特定的实例在特定 tty 中运行 GUI(或者更专业的术语是,您正在运行 X11 服务器)。在 Ubuntu 中,它默认为 TTY #7。当我使用 Fedora 21 时,它默认为 TTY1。并且您可以拥有多个 GUI 实例,例如:在不同的 TTY 上启动另一个 GUI
因此实际上,GUI 会话只不过是在 TTY 内运行的单独进程。
附加信息:
答案3
桌面在 TTY 上运行。窗口是不同的进程,与 TTY 无关。它只显示在桌面环境中。
答案4
阅读这里的答案后,我明白了这一点:
在以前某个时代的计算机中,tty 是一种插入计算机的打字机,它是一种带有小型输出屏幕的键盘。
现代操作系统有多种虚拟的tty。
基于现代tty,我们至少有一个GUI或至少一个CLI。
这两个 GUI 或 CLI 都是基于 tty 的会话,并且可以有子会话(有时实际上是窗口)。
tty 是特殊文件,而 GUI 和 CLI 基本上都是不同的进程。