# X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系

X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系

很多人对于他们是啥是傻傻分不清的,我做了个表格供大家参考。

  • 摘抄:

X11是X Window System Protocol, Version 11(RFC1013),是X server和X client之间的通信协议。X server是xfree86/xorg驱动下的显示设备鼠标键盘统称,X client通过X11协议和xfree86/xorg实现的X server通信,比如,告诉它画一个左上角坐标为(x,y),宽为w,高为h的窗口,xfree86就让显示器把屏幕上的小灯(像素)打亮,然后你就看到了一个窗口。为了方便开发人员编写X clients,就有了Xlib来封装协议;Xlib不够方便,于是就有了qt和gtk,提供了很多窗口控件(widgets)。为了方便用户,就出现了gnome和kde等桌面管理系统。一般来说,linux用户看到的界面就是其中之一了。gnome用的是gtk库,kde用的是qt库。

Linux本身没有图形界面,Linux现在的图形界面系统只是Linux下的应用程序

  • 关系梳理
类别名称说明
x服务器与x客户端协议X11是 X server 和 X client 之间的通信协议,全称 X Window System Protocol, Version 11(RFC1013),甚至简称为 X。
x服务器XFree86、X.org是 X11 协议的服务器端实现,现在一般用 X.org。另外还有商业上常用的MOTIF、Xnest。
x客户端库Xlib库封装X11协议内容,方便 X client 开发
x客户端高级库Qt库、GTK库为了进一步方便开发 X clients,于是对Xlib进行进再封装,就产生了Qt和GTK。他们提供了很多窗口控件(widgets)
x客户端Gnome、KDE是用 GTK库(Gnome)或 Qt库(KDE) 编写的桌面管理系统(X client)。

注:GTK开发的软件可以运行在KDE环境中,但是有可能出现一些些小问题,崩溃等。而Gnome的大部分软件都是基于GTK+库开发,同样Qt开发的软件也可以运行于Gnome,这主要也归功于Gnome,KDE以及这些软件(firefox,gimp等)都是遵循x11的协议的client应用,他们具有兼容性,这里要强调,虽然KDE和gnome是桌面环境,窗口管理器,看似更庞大,更底层,但是对于x11协议来说,他们和在他们之上运行的窗口应用(例如firefox,gimp等)属于同级,都是基于x的client软件,他们只是为了方便管理图形界面下的多应用程序而生的。

image-20230809215239662

  • 其他

其他桌面环境:

XFCE     简单快速的桌面环境,基于GTK
Cinnamon 基于GTK
MATE     基于GTK
LXDE     基于GTK
Trinity  基于Qt
Unity    基于gnome(GTK)开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/68405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

搭建一个自己的文档网站

目录 简介 快速上手 配置 首页 组件Demo案例 添加搜索 简介 有时候我们可能很好奇,像elementUi或者vue3他们的文档网站是怎么写的,其实写vue文档网站的技术,有两个:一个是vuePress,一个是vitePress。从名字上可…

心法利器[90-95] | 谈校招:合集

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

React实现点击切换组件

实现如上组件 组件代码: import { SwapOutlined } from "ant-design/icons" import React, { useState } from "react" import ./index.lessinterface ISwitchTypeProps {onChange?: (val) > booleanactiveKey?: stringleft: { key: str…

Opencv实战(银行卡识别)

目录 模版匹配不同方法对比一个模板匹配多个 直方图及直方图均衡化Mask操作直方图均衡化自适应直方图均衡化 模版匹配 公式 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,nam…

云技术-混沌工程

目录 混沌工程 故障注入 监控和观测 自动化和持续集成 混沌工程 混沌工程(Chaos Engineering)是一种实验性的系统可靠性工程方法,主动引入故障和异常来测试系统的弹性和容错能力。混沌工程的核心思想是通过模拟故障场景来验证系统在各种异…

105. 从前序与中序遍历序列构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,n…

2023年加湿器市场数据分析(天猫数据分析怎么做)

随着人们生活水平提高、空调广泛使用,导致皮肤紧绷、口舌干燥、咳嗽感冒等空调病的滋生。可以看出,空气湿度与人体健康以及日常生活有着密切的联系。而加湿器作为室内空气湿度控制的重要工具,在近年来受到了越来越多的重视。根据鲸参谋电商数…

linux鲁班猫代码初尝试[编译镜像][修改根文件系统重编译]

编译镜像 官方百度云盘资料:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/baidu_cloud/baidu_cloud.html 解压虚拟机压缩包:"鲁班猫\8-SDK源码压缩包\开发环境虚拟机镜像\ubuntu20.04.7z"后既可以用VMware打开,打开后可以看到已经有…

nginx基于源码安装的方式对静态页面、虚拟主机(IP、端口、域名)和日志文件进行配置

一.静态页面 1.更改页面内容 2.更改配置文件 3.测试 二.虚拟主机配置 1.基于IP (1)在html目录下新建目录存放测试文件 (2)修改nginx.conf文件,在htttp模块中配置两个server模块分别对应两个IP (3&am…

深入解析中国供应商API:关键字搜索接口对接与商品数据交互指南

随着电商行业的快速发展,越来越多的企业开始与中国供应商进行合作。而为了实现有效的数据交换和协作,接口对接成为了不可或缺的一环。本文将深入探讨中国供应商API,介绍如何高效地进行接口对接与数据交互,并提供实用的Python示例代…

【论文阅读】基于深度学习的时序预测——Informer

系列文章链接 论文一:2020 Informer:长序列数据预测 论文二:2021 Autoformer:长序列数据预测 文章地址:https://arxiv.org/abs/2012.07436 github地址:https://github.com/zhouhaoyi/Informer2020 参考解读…

【面试八股文】每日一题:谈谈你对异常的理解

每日一题-Java核心-谈谈你对异常的理解【面试八股文】 异常是程序在运行过程中出现的错误或不正常的情况。当程序执行过程中遇到无法处理的错误或者不符合预期的情况,就会抛出异常。异常可以分为两种类型:受检异常和非受检异常。 受检异常是指在程序编译…

【数据结构】链表(一)

链表(一) 文章目录 链表(一)01 引入02 概念及结构03 单向不带头不循环链表实现3.1 创建节点类型3.2 简易创建一个链表3.3 遍历链表每个节点3.4 获取链表长度3.5 查找是否包含关键字key是否在单链表当中3.6 头插法3.7 尾插法3.8 任…

国产数据库排行

目录 一、理论 1.国产数据库排行 2.数据 一、理论 1.国产数据库排行 (1)墨天轮榜单 墨天轮国产数据库流行度排行于2019年6月推出,通过近50个维度的数据来考察近300个国产数据库的流行度排行,每月1日更新排行数据&#xff0c…

layui的基本使用-日期控件的业务场景使用入门实战案例一

效果镇楼&#xff1b; 1 前端UI层面&#xff1b; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&…

虚幻引擎游戏开发过程中,游戏鼠标如何双击判定?

UE虚幻引擎对于游戏开发者来说都不陌生&#xff0c;市面上有47%主机游戏使用虚幻引擎开发游戏。作为是一款游戏的核心动力&#xff0c;它的功能十分完善&#xff0c;囊括了场景制作、灯光渲染、动作镜头、粒子特效、材质蓝图等。本文介绍了虚幻引擎游戏开发过程中游戏鼠标双击判…

培训报名小程序报名功能开发

目录 1 创建页面2 新建URL参数3 课程详细信息4 报名数据源创建5 报名信息功能开发6 设置页面跳转7 最终实现的效果总结 在培训报名小程序中&#xff0c;我们已经开发了首页和列表页。在列表页点击报名时就跳转到报名页面&#xff0c;先看我们的原型 报名页分为两个部分&#x…

多货币多汇率跨境电子商城建设(仓储管理、网络安全)

多货币多汇率跨境电子商城建设需要考虑到多个方面&#xff0c;包括仓储管理、网络安全、货币兑换、物流配送等。以下是具体的介绍&#xff1a; 一、仓储管理 仓储管理是跨境电子商城的重要组成部分&#xff0c;需要考虑到商品的存储、管理和分拣等环节。以下是需要注意的几个…

C# 使用FFmpeg.Autogen对byte[]进行编解码

C# 使用FFmpeg.Autogen对byte[]进行编解码&#xff0c;参考&#xff1a;https://github.com/vanjoge/CSharpVideoDemo 入口调用类&#xff1a; using System; using System.IO; using System.Drawing; using System.Runtime.InteropServices; using FFmpeg.AutoGen;namespace F…

LinuxC编程——线程

目录 一、概念二、进程与线程的区别⭐⭐⭐三、线程资源四、函数接口4.1 线程创建4.2 线程退出4.3 线程回收4.3.1 阻塞回收4.3.2 非阻塞回收 4.4 pthread_create之传参4.5 练习 一、概念 是一个轻量级的进程&#xff0c;为了提高系统的性能引入线程。 进程与线程都参与cpu的统一…