导读

其实单纯的从

界面与图形界面之间的切换是很容易的,就那么几个

,但是要彻底弄懂这背后的设计架构需要涉及到很多的概念,本文为你讲解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 桌面版,而在另外一台远程机器上运行

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 呢?那是因为在

中,还有虚拟控制台这样的高级特性。只需要同时按下 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进入终端tty3,Linux中终端界面与图形界面之间的切换关系相关推荐

  1. linux 字符界面 office,Linux系统下对比永中office和wps的界面及字体,附对比图

    本文为你介绍Linux系统下对比永中office和wps的界面及字体,附对比图和用户评论.仅是对这两个应用软件直观的界面进行比较,没有没有涉及到功能齐不齐全.兼容性是否良好等问题.如果你使用的是Dee ...

  2. linux更改运行级别错误,Vmware中RedHat命令行和图形界面切换 Linux运行级别 默认界面配置 修改错误配置.ppt...

    <Vmware中RedHat命令行和图形界面切换 Linux运行级别 默认界面配置 修改错误配置.ppt>由会员分享,可在线阅读,更多相关<Vmware中RedHat命令行和图形界面 ...

  3. Linux字符界面和图形界面

    Ubuntu图形界面和字符界面的切换 Ubuntu和其他的Linux系统一样,有图形界面和字符界面,同时能够设置默认的启动界面. linux的显示界面分为命令行的字符界面和图形界面,我们可以设置lin ...

  4. 【Linux使用】Centos 7安装图形界面/切换文本界面与图形界面

    文章目录 安装图形界面 切换到文本界面 切换到图形界面 检查默认的界面 设置默认为图形界面 设置默认为文本界面 安装图形界面 -bash-4.2$ sudo yum -y groups install ...

  5. CentOS 7安装和配置的基础教程,字符界面下安装图形界面,图形界面和字符界面的切换

    CentOS 7安装教程: 准备阶段: 软件:VMware Workstation 镜像文件:CentOS-7-x86_64-bin-DVD1.iso CentOS 7.9(2009) 下载:页面加载 ...

  6. python复杂美观的图形界面_Python图形界面美化的方法论

    很多人都吐槽,使用 Tkinter.PyQt5等工具制作出来的图形界面程序太丑了.既然觉得它丑,我们来想想,它为什么会那么丑. 文章目录 功能性是开发的第一要务 模块提供的都是原生组件 界面的美化的几 ...

  7. ubuntu文字界面与图形界面切换

    redhat: (据说是) 图形界面->文字界面:crtl+alt+F1~6 文字界面->图形界面:crtl+alt+F7 -------------------------------- ...

  8. linux7切换图形界面,CentOS 7 DOS界面与图形界面切换

    一.DOS和图形界面相互切换 1.最新版的应该是默认会进入图形界面,图形界面切换到DOS界面: 在命令上输入 init 3 切换到DOS界面   或者     图形到DOS:Ctrl+alt+f2 2 ...

  9. linux上的字典和数组中,centos安装词典——图形界面的和命令行

    stardict词典:这个词典好像在图形界面下用的,在命令行界面下不能用(stardict词典包可到https://pkgs.org/查找). 安装方法: 在/etc/yum.repos.d/目录下创 ...

  10. ubuntu以及ubuntu类linux系统的运行级别的理解(关闭图形界面)

    原创博客,转载注明出处. 对于linux,老鸟使用多的还是debian,但是更多的人使用的ubutnu或者ubuntu的衍生版, 如:linuxmint,国产的linuxdeepin等 大部分都是怎么 ...

最新文章

  1. Go 语言的包依赖管理
  2. MySQL带ALL关键字的子查询
  3. 使用kubectl查看Kubernetes集群里的node节点信息
  4. Poj 1338 Ugly Numbers(数学推导)
  5. 牛客小白月赛9: F. 暴力出奇迹(思维题)
  6. codeforces 1B 模拟
  7. 手摸手教你阅读和调试大型开源项目 ZooKeeper
  8. 基于MATLAB的一维条码识别
  9. 【JAVA】从0开始写DHT/磁力爬虫 05 INFOHASH转种子
  10. 怎样将Sublime Text 设置成中文版(完整教程)
  11. CSS动画:梦幻西游
  12. Pandas RuntimeWarning: More than 20 figures have been opened. Figures created plt.close()也不起作用
  13. LeetCode198打家劫社(线性动态规划)
  14. 卡图星小机器人怎么过_《瑞奇与叮当》图文攻略 全剧情流程图文攻略
  15. 芝士满满:TikTok快速吸粉视频技巧
  16. midi java_Java程序中添加播放MIDI音乐功能的实现方法详解
  17. 【XML】dom4j解析
  18. 怎样查看服务器操作系统密码,IIS提示:您未被授权查看该页 并弹出输入用户名密码Windows服务器操作系统 -电脑资料...
  19. [学点英语]一些常见的英语词汇缩写及读音纠正
  20. 基于opencv人脸识别

热门文章

  1. VS2013创建Windows服务 || VS2015+Windows服务简易教程
  2. hb100 微波雷达arduino_Arduino Microwave sensor微波传感器模块
  3. ssm基于微信小程序校园商铺购物商城系统
  4. 用matlab对称振子E面方向图,什么天线的E面方向图 H面方向图是具体什么方向图`...
  5. MOSFET 导通条件
  6. 电动车的蓄电池与锂电池
  7. 安卓pdf阅读器_详细解读:除了Kindle,还有哪些电子阅读器可以满足书迷的需求?...
  8. 如何将Flask项目部署在Ubuntu系统的阿里云主机中(详细完整版:下)
  9. 人脸识别的loss总结
  10. Simulink之PWM整流器