温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何分析Linux中终端界面与图形界面之间的切换关系

发布时间:2022-01-21 14:16:38 来源:亿速云 阅读:149 作者:柒染 栏目:开发技术

如何分析Linux中终端界面与图形界面之间的切换关系,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

其实单纯的从命令界面与图形界面之间的切换是很容易的,就那么几个命令,但是要彻底弄懂这背后的设计架构需要涉及到很多的概念,下面为你讲解Ubuntu 18.10操作系统中的X Window,内容是了解自己机器上的 X Window、理解 display 和虚拟控制台、远程连接 X Server、理解 DisplayManager 和 X Window 桌面环境的启动过程和运行嵌套的 X Server等这些基本概念。
一、 什么是X Window

X Window不是某一个具体的窗体界面,X Window 本质是一个分层的架构,它分为 Server 和 Client。X Server 负责图形界面的显示和用户的输入,而Client 程序需要连接到 X Server,然后请求 X Server 绘制图形界面,同时从 X Server 接受用户的输入。在桌面系统上,X Server 和 Client 程序往往安装在同一台机器上,日常使用基本感觉不到它是分层的。就像我们的一台电脑,X Server和Client是在同一台电脑的。

既然X Window是分层的架构,很显然,X Server 和 Client 也可以分别运行在不同的机器上,在一台机器上运行程序,而在另外一台机器上显示图形界面。

很多人考到这里就有点蒙了,我们在编写网站的时候也有Server-Client分层架构啊,那这有区别吗?当然有了。

X Window 中的 Server 和 Client 的概念和我们平时接触到的“Server/Client”概念刚好相反。很多熟悉 Internet 原理的人,第一次接触 X Window 的这两个概念都会搞错。在Internet里面的Server/Client,是Server负责处理相关的业务,然后将结果返回到Client客户端,但是X Window恰好是相反的,它是Client负责处理,Server负责显示。

比如,我有两台电脑,一台本地机器上运行 Ubuntu 18.10 桌面版,而在另外一台远程机器上运行 CentOS 7(纯字符界面),如果是Internet里面的Server/Client架构,Ubuntu 是 Client,而 CentOS 是 Server。

但是在 X Window 中,Server 偏偏是我面前的这台 Ubuntu,X Server 运行在 Ubuntu 上。我可以在 CentOS 中运行 GVim,但是窗口显示在 Ubuntu 中,这时,GVim 是一个 Client 程序,它在远程机器上运行,而它的窗口显示在本地。

二、理解 display 和虚拟控制台

网上很多介绍 X Window 的文章都是先让系统进入字符界面,然后手动启动一个 X Server。其实这完全没有必要,因为在同一台机器上完全可以运行多个 X Server,只需要让每个 X Server 的 display 不同即可。那么 display 究竟是什么?

实际上,display 就是计算机配备的一套输入输出设备,一个电脑可以有多个输入输出设备,当然也可以只有一个。

在 X Window 中,可以通过 hostname:display_number.screen_number 来指定一个屏幕。可以这样理解:一台计算机可以有多个 display,一个 display 可以有多个屏幕。所以,display 相当于是计算机配备的一套输入输出设备,一般情况下,一台电脑只配一套键盘鼠标和一个显示器,特殊情况下,可以配多个显示器。

现在问题出来了,我的电脑只有一套键盘鼠标和一个显示器,也就是只有一个 display,那又怎么能运行多个 X Server 呢?那是因为在 Linux 中,还有虚拟控制台这样的高级特性。只需要同时按下 Ctrl+Alt+F1、Ctrl+Alt+F2、…、Ctrl+Alt+F7,就可以在不同的虚拟控制台中进行切换。就相当于是给这个电脑配备了7个不同的显示器。

注意:默认情况下,Linux会提供6个Terminal 来让用户登录,切换的方式为Ctrl+Alt+F1到F6.而且,系统会为这6个终端界面以 tty1、tty2、tty3、tty4、tty5、tty6 的命名方式命名,除此之外,Linux还有一个默认的X窗口桌面,使用Ctrl+Alt+F7,姐可以切换到图形桌面进行登录了。为什么用tty来命名呢?

tty:终端设备的统称。

tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。Linux默认情况下

tty1~6是文本型控制台,tty7是X Window图形显示管理器。

但是Linux不同的发行版本上面的图形桌面和用户终端可能会有所不同。

比如在 Ubuntu 18.10 中,虚拟控制台 3 到 6 运行的是 tty,也就是字符界面,即Ctrl+Alt+F3到F6分别显示tty3、tty4、tty5、tty6,虚拟控制台 2 运行的是 Xorg,虚拟控制台 1 运行的是图形界面。

三、Terminal与X Window的互相转化

前面的使用Ctrl+Alt+Fn的形式来回切换只是形式上的转换,每一个都在运行,只不过显示的那一个不同,但是实际上,Terminal与X Window在Linux中的运行等级是不一样的,Linux一共有7中运行等级(run level),在不同的运行级下,系统有着不同的状态,它们分别是:

0:停机(记住不要把initdefault 设置为0,因为这样会使Linux无法启动 )

1:单用户模式,就像Win9X下的安全模式。

2:多用户,但是没有 NFS 。

3:完全多用户模式,标准的运行级。

4:一般不用,在一些特殊情况下可以用它来做一些事情。

5:X11,即进到 X-Window 系统。

6:重新启动 (记住不要把initdefault 设置为6,因为这样会使Linux不断地重新启动)。

Terminal默认的run level是3,而X Window默认的run level是5,现在如果我在中断输入如下命令:

init 3

那么会杀死X Window,这样就没有X Window了,只存在Terminal,此时如果我想要重新进入到X Window,我需要在Terminal进行登录,然后执行

startx

重新打开X Window。

关于如何分析Linux中终端界面与图形界面之间的切换关系问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI