Yin的笔记本

vuePress-theme-reco Howard Yin    2021 - 2025
Yin的笔记本 Yin的笔记本

Choose mode

  • dark
  • auto
  • light
Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Rust
  • Tex
  • Shell
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
author-avatar

Howard Yin

303

Article

153

Tag

Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Rust
  • Tex
  • Shell
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
  • 【纯转载】linux下的X server:linux图形界面原理

    • 一、linux本身没有图形界面
      • 二,X是协议,不是具体的某个软件
        • 三,X和XFree86的关系
          • 四,X和X11R6又是什么关系?
            • 五,X服务器和WM(window manager 窗口管理器)之间是什么关系。
              • 六,关于KDE和GNOME
                • 七,linux图形界面层次关系总结

                【纯转载】linux下的X server:linux图形界面原理

                vuePress-theme-reco Howard Yin    2021 - 2025

                【纯转载】linux下的X server:linux图形界面原理


                Howard Yin 2022-06-13 13:42:01 Linux图形界面概念

                Moblin Core 是在 Gnome Mo­bile 的平台上建立。我以前玩 Linux,提交的都和图像没有关系,连 Xwin­dows 都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下.

                严格来讲,Linux 这个词本身只表示 Linux 内核,但在实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作系统 (也被称为 GNU/​Linux)。基于这些组件的 Linux 软件被称为 Linux 发行版。一般来讲,一个 Linux 发行套件包含大量的软件,比如软件开发工具,数据库,Web 服务器(例如 Apache),X Win­dow,桌面环境(比如 GNOME 和 KDE),办公套件(比如 OpenOf­fice.org),等等。GNU 组件可以运行于 Linux 内核之上。整 个内核是基于 GNU 通用公共许可,也就是 GPL ( Gen­eral Pu­bic Li­cense) 的,但是 Linux 内核并不是 GNU 计划的一部分。

                # 一、linux本身没有图形界面

                ​ linux 现在的图形界面的实现只是 linux 下的应用程序实现的:

                图形界面并不是 linux 的一部分,linux 只是一个基于命令行的操作系统,linux 和 Xfree 的关系就相当于当年的 DOS 和 WIN­DOWS 3.0 一样,win­dows 3.0 不是独立的操作系统,它只是 DOS 的扩充,是 DOS 下的应用程序级别的系统,不是独立的操作系统,同样 XFree 只是 linux 下的一个应用程序而已。不是系统的一部分,但是 X 的存在可以方便用户使用电脑。WIN­DOWS 95 及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面 win­dows 就不成为 win­dows 了,但 linux 却不一样,没有图形界面 linux 还是 linux,很多装 linux 的 WEB 服务器就根本不装 X 服务器。这也 WIN­DOWS 和 linux 的重要区别之一。

                # 二,X是协议,不是具体的某个软件

                ​ X 是协议,就像 HTTP 协议,IP 协议一样。这个概念 很多初学者甚至学习 LINUX 有一定时间的人都混淆,一个基于 X 的应用程序需要运行并显示内容时他就联接到 X 服务器,开始用 X 协议和服务器交谈。比如一个 X 应用程序要在屏幕 上输出一个圆,X 应用程序只负责告诉 X 服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的 "画" 的动作,比如这个圆如何生成,用什么显卡的驱动程 序去指挥显卡完成等等工作是由 X 服务器来完成的。X 服务器还负责捕捉键盘和鼠标的动作,假设 X 服务器捕捉到鼠标的左键被按下了,他就告诉 X 应用程序:亲爱 的应用程序先生,我发现鼠标被按下了,您有什么指示吗?协议是需要具体的软件来实现的,这就是下面我要讲的:

                # 三,X和XFree86的关系

                ​ 有了协议就需要具体的软件来实现这个协议。Xfree86 就是这样一个去根据法规实现协议的 "交警"。实现 X 协议的软件也并不只有 XFree86,XFree86 只是实现 X 协议的一个免费 X 服务器软件。商业上常用 MO­TIF,现在还有 XORG,还有很多很小的由爱好者写的小的 X 服务 器软件。甚至可以在 WIN­DOWS 上有 X 服务器运行,这样你可以在 linux 系统上运行一个 X 应用程序然后在另一台 win­dows 系统上显示。

                ​在 LINUX 上最常用的是 XFree86(现在的 linux 发行版都用 Xorg 了)。苹果电脑的图形界面用的也是 X 协议,而且被认为是做的最好的 X 协 议图形界面,并且他对 X 协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。

                既然是协议,那么肯定和平台无关的,因此可以让 X 应用程序显示在任何装有 X 服务器的远程计算机上。甚至显示在装有 Xnest 服务器的 win­dows 系 统上。只不过在大多数情况下,X 应用程序都用本机的 X 服务器,然后 X 服务器将显示结果输出到本机的显示器。这也是很多人不理解 X 是一种协议的原因。

                # 四,X和X11R6又是什么关系?

                ​ 不知道初学者有没有注意到 /usr/​X11R6 这个目录,这是 XFree 的默认安装目录。X11R6 实际上是 X Pro­to­col ver­sion 11 Re­lease 6(X 协议第 11 版第六次发行)的意思。不同版本的 X 协议是不能通信的,不过不用担心,现在的 X 服务器软件和 X 应用程序都遵循 X11R6。另外 XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现 X 协议的软件 XFree86 的版本号。

                # 五,X服务器和WM(window manager 窗口管理器)之间是什么关系。

                ​ 平时大家起动图形界面是怎么启动的呢? 如果一开始就进入图形界面,可打开一个 XTERM 输入 init 3,就可以安全的回到字符界面。

                ​ 先输入以下命令: # startx 起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境。你可以最大化,最小化,移动,关闭窗口等。

                ​ 按 ctrl+alt+back­space 反回字符界面。输入:#xinit,再次启动图形界面,你看到一个 XTERM。而且不能移动。但是你可以在这 个 XTERM 中输入命令打开 X 应用程序,如果我输入:#mozilla 打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框。

                ​ 为什么同样一个 X 应用程序会有这样的不同呢?因为我们用 startx 起动图形界面的时候同时也启动了一个 WM(即窗口管理器),如果你用 KDE 就起动 了 KDE,如果你用 GNOME 就起动了 GNOME。但是你用 xinit 起动图形界面的时候却没有起动 WM。现在你明白窗口管理器的作用了吗?他的作用就是最 大化,最小化,移动,关闭窗口等。而这些不是 X 服务器来负责完成的。

                ​ 如果你用 xinit 起动图形界面并在 xterm 中输入 twm,看看会有什么?xterm 被加上了一个边框,你可以通过这个边框移动,最大化,最小化这 个 xterm,twm 就是 XFree86 中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征。如果你不输入 twm 而输入 gnome-ses­sion 就可以起动 GNOME 或者输入 startkde 起动 KDE。

                # 六,关于KDE和GNOME

                ​ KDE 和 GNOME 是 LINUX 里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单,kDE 是 K Desk­top En­vi­ron­ment 的缩写。他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等。

                ​ GNOME 是 GNU Net­work Ob­ject Model En­vi­ron­ment 的缩写。和 KDE 一样,也是一个功能强大的综合环境。

                ​ 另外在其它 UNIX 系统中,常常使用 CDE 作为这样一个环境。

                ​ 其它的小型窗口管理器有: win­dow maker,af­ter step,black­box,fvwm,fvwm2,等等都是常用的优秀窗口管理器。RED­HAT9 中有 win­dow maker 但是默认不安装,大家可以装来试试。只要 xinit 再 wmaker & 就可以用 win­dow­maker 了。

                # 七,linux图形界面层次关系总结

                
                linux 本身 -->X 服务器 <-[通过 X 协议交谈]-> 窗口管理器(综合桌面环境)-->X 应用程序
                
                
                1
                2
                3
                帮助我们改善此页面!
                创建于: 2022-06-13 13:42:16

                更新于: 2022-06-13 13:42:16