linux图形界面总结——X、Xorg、WM、QT、GTK、KDE、GNOME的区别与联系

Linux的图形界面并非系统内建,而是由X协议支持的软件实现,如XFree86和Xorg。X协议定义了客户端和服务端的通信标准,窗口管理器(WM)如KDE和GNOME则提供窗口操作。QT和GTK是对X协议的进一步封装,简化了开发者使用图形界面的难度。

一、 linux图形界面

linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的。

图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和 WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样 XFree只是linux下的一个应用程序而已。不是系统的一部分,但是X的存在可以方便用户使用电脑。

WINDOWS95及以后的版本就不一样了,他们 的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形 界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一。

linux图形相关软件层次:

在这里插入图片描述

二、X协议

X是一个开放的协议规范,当前版本为11,俗称X11。X Window System由客户端和服务端组成,服务端X Server负责图形显示,而客户端库X Client根据系统设置的DISPLAY环境变量,将图形显示请求发送给相应的X Server。

三、Xfree86 Xorg

Xfree86,Xorg是X协议的软件实现。XFree86只是实现X协议的一个免费X服务器软件,只不过现在LINUX上最常用的是Xorg了。而苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。

/usr/X11R6这个目录,这是XFree的默认安装目录,X11R6 实际上是 X Protocol version 11 Release 6

四、WM(window manager:窗口管理器)

WM的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的,所以,我们看到的linux图形界面,都是启动了WM的,否则linux图形界面的窗口将不能移动,放大和缩小。

五、X协议的Client端实现

XFree86是X协议的服务器软件(注以软件的形式实现),但Client端更多的是方便程序员更方便的使用X协议与服务器端的XFree86交互,故就产生了一个Xlib库,封装了X协议内容,如果你还觉得直接使用Xlib不方便,于是就产生了qt和gtk,对Xlib进一步封装,提供了很多控件,可以可视化的使用X协议更方便程序员的开发。

Xlib、qt、gtk直接关系如下图:
在这里插入图片描述

QT是直接使用xlib库的,GTK并为直接使用xlib,而是使用更低层的函数库GDK和Glib。这种结构使得Gtk可以更方便地移植到其它系统上,或使用与XWindows系统无关的图形库。

六、KDE、GNOME、QT和GTK直接关系

KDEGNOME是窗口管理器,启动他们后我们进入了可视化操作(图形界面),既然需要显示图形,自然少不了与X协议的服务器软件打交道,既然QT和GTK进一步封装了X协议,并且他们提供了更为丰富的窗口及控制机制,于是在QT基础上实现的窗口管理器叫KDE,在GTK基础上实现的窗口管理器叫GNOME.

再次提示:KDE和GNOME并不只是窗口管理器,同时提供了桌面、菜单等等。

其它的小型窗口管理器有:

  • windowmaker
  • after step
  • blackbox
  • fvwm
  • fvwm2
  • …等等都是常用的优秀窗口管理器。

REDHAT9中有windowmaker 但是默认不安装,大家可以装来试试.只要xinitwmaker&就可以用 windowmaker 了。

七、参考:

https://blog.youkuaiyun.com/zhangna20151015/article/details/51280578

https://www.cnblogs.com/wangkangluo1/archive/2012/06/14/2548706.html

https://www.cnblogs.com/newjiang/p/8414625.html

<think> 我们被要求介绍Linux图形界面服务。根据引用内容,我们知道Linux本身没有内置图形界面图形界面是作为应用程序运行的。主要涉及X Window System(如XFree86、Xorg)以及桌面环境(如XFCE、GNOMEKDE等)。此外,引用还提到如何安装图形界面(如xubuntu-desktop)和切换图形界面字符界面。 根据这些信息,我们将从以下几个方面介绍: 1. Linux图形界面的基本架构(客户端-服务器模型) 2. 核心组件:X Server、显示管理器、窗口管理器、桌面环境 3. 常见图形界面服务(Xorg、Wayland) 4. 安装切换方法 注意:引用[1]强调Linux图形界面是应用程序,Windows不同;引用[2]提到开发图形界面程序可用QtGTK+;引用[3]给出Ubuntu安装XFCE桌面环境的例子;引用[4]介绍如何进入图形界面(startx)和修改运行级别;引用[5]提到图形界面切换账户和界面转换。 下面开始组织回答: </think> ### Linux图形界面服务详解 Linux图形界面服务采用分层架构,核心是**X Window System**(现主流为Xorg)和新兴的**Wayland**协议。Windows不同,Linux图形界面是独立于内核的应用程序层[^1]。其服务架构如下: #### 1. **核心组件** | 组件 | 功能 | 示例 | |------|------|------| | **显示服务器** | 处理图形渲染、输入设备通信 | Xorg(传统)、Wayland(现代) | | **窗口管理器** | 控制窗口位置/外观 | Openbox、i3、KWin | | **桌面环境** | 提供完整用户界面套件 | GNOMEKDE Plasma、XFCE[^3] | | **显示管理器** | 图形登录界面管理 | GDM(GNOME)、SDDM(KDE) | #### 2. **工作流程** ```mermaid graph TD A[用户登录] --> B(显示管理器) B --> C{选择桌面环境} C --> D[GNOME] C --> E[KDE] C --> F[XFCE] D/E/F --> G[Xorg/Wayland] G --> H[图形界面渲染] ``` #### 3. **主流图形服务方案** - **传统方案:Xorg** - 采用客户端-服务器架构:$ \text{应用} \xrightarrow{X11\text{协议}} \text{X Server} \xrightarrow{} \text{硬件} $ - 支持网络透明性:可远程显示图形程序 - 启动方式: ```bash startx # 手动启动X服务[^4] ``` - **现代方案:Wayland** - 直接合成协议:$ \text{应用} \xrightarrow{\text{Wayland}} \text{合成器} $ - 解决Xorg的安全和性能问题 - 默认用于Fedora、Ubuntu 22.04+等新发行版 #### 4. **服务管理命令** - 切换运行级别: ```bash # 修改为图形界面启动(level 5) sudo sed -i 's/^id:[0-6]/id:5/' /etc/inittab # 传统SysV[^4] # systemd系统修改默认目标 sudo systemctl set-default graphical.target ``` - 强制重启图形服务: ```bash sudo systemctl restart gdm # GNOME环境 ``` #### 5. **图形界面开发** 开发框架以**GTK+** (GNOME)和**Qt** (KDE)为主[^2]: ```c // GTK+示例(创建窗口) #include <gtk/gtk.h> int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return 0; } ``` #### 6. **轻量级方案** 服务器场景推荐: - **XFCE**:资源占用低(仅需512MB内存)[^3] - **LXQt**:适合嵌入式设备 - 无图形模式:通过`Ctrl+Alt+F1~F6`切换终端 > **关键区别**:Windows图形服务在内核实现,而Linux作为用户空间服务,崩溃不会导致系统瘫痪[^1]。当前趋势是Wayland逐步替代Xorg,如Ubuntu 23.10默认使用Wayland。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fu_Lin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值