Linux 上的 Wayland 是什么?它与 X 有何不同?

这篇具有很好参考价值的文章主要介绍了Linux 上的 Wayland 是什么?它与 X 有何不同?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导读 Wayland 是 Linux 发行版的替代窗口系统。它取代了老化的 X11 标准。由于它需要修改应用程序才能使用它,因此迄今为止采用速度很慢。在撰写本文时,增强的安全性是相对于 X11 的主要优势。

X11 或 X Window 系统可让您的图形桌面环境显示和控制窗口。 Wayland 是 X11 的替代品。它的设计速度更快、更安全。以下是您需要了解的有关它们的信息。

linux用wayland作为桌面显示无坐标,linux,运维,服务器

什么是Wayland?

Wayland 是 X11 的现代替代品,几十年来 X11 一直是 Linux 上的默认窗口系统。 Wayland 是一种通信协议,定义 X Window 显示服务器和客户端应用程序之间的消息传递。 Wayland 项目提供了客户端和服务器库,使应用程序能够使用该协议。

Wayland 项目由红帽开发人员于 2008 年启动。

X的众多名字

X Window System 是一个窗口系统,由麻省理工学院于 1984 年首次针对 Unix 操作系统发布。应用程序可以基于窗口系统提供的功能来生成用户界面。

到 1987 年,X Window 系统已达到版本 11,并被称为 X11。它现在由 X.Org 基金会管理。尽管自 1987 年以来已经出现了许多较小的版本,但它仍处于版本 11。截至撰写本文时,当前的稳定版本是 X11R7.7。

名称中的“X”并不表示罗马数字中的“10”,也不表示“Xtra”、“Xtending”或类似的意思。以前的窗口系统被称为“W”,代表“windows”,当他们开始新项目时,他们只是简单地移动到字母表中的下一个字母。

您会听到 X Window 系统被称为“X”、“X11”、“Xorg”、“X Windows”和“X Window System”。

X11 的工作原理

X Window 系统处理低级事件和原语,例如与鼠标交互以及绘制和移动窗口。应用程序处理视觉效果和界面设计。窗口的外观、它们有哪些按钮以及这些按钮的位置是应用程序程序员做出的选择。 X Window 系统将最终的设计绘制到屏幕上。

X11 提供了在工作的 X Window 系统的各个组件之间必须传递的通信的定义。这种通信是必需的,因为启用 X 的应用程序用于绘制其窗口和界面元素的代码不在应用程序内部。该工作由 X 服务器和窗口管理器共享。

应用程序是 X 服务器的客户端。窗口管理器是一种特殊类型的客户端。 X 服务器负责管理资源、执行绘图请求以及将按键和鼠标单击等事件编组到适当的应用程序。

它还充当窗口管理器和应用程序之间通信的中间人,在它们之间来回代理消息。窗口管理器维护应用程序已打开的窗口列表、它们在屏幕上的位置、它们的大小、它们是否重叠等等。

合成窗口管理器为每个窗口维护一个离屏缓冲区。它将这些缓冲区合成为一个图像,该图像代表最顶层的窗口(代表整个桌面)并写入屏幕。

所有现代图形桌面环境,包括 GNOME 和 KDE,都使用合成窗口管理器。

Wayland 的工作原理

Wayland 旨在解决 X11 的问题。 X11 架构需要大量消息传递。 X 服务器位于客户端和窗口管理器之间。它还位于所有东西和(通过内核)图形硬件之间。消息量过大可能会导致延迟和滞后、跳跃的视觉体验。

还有一个庞大的代码库。有服务器应用程序、窗口管理器应用程序和客户端使用的 X11 库。您的代码库越大(且越旧),维护起来就越困难,并且您将更加难以处理遗留代码。

通过改变架构,Wayland 实现了代码库的现代化和简化,带来了性能优势并提高了安全性。

实际上,他们已将服务器和窗口管理器合并到一个应用程序中。他们删除了执行现在由内核执行的功能的所有代码。他们没有重复工作,而是利用了内核的功能。

使用 Wayland,合成器和客户端应用程序可以直接通信。合成器维护其内部映射,其中包括哪些窗口在桌面上的位置、它们的大小和状态。它代理键盘、鼠标和窗口更改事件,并将它们发送到拥有这些窗口的应用程序。

应用程序相应地更新用户界面。主要区别在于渲染是在应用程序本身内部使用链接的 Wayland 库执行的。

应用程序要么更新用于保存窗口的缓冲区,要么创建一个新缓冲区并丢弃旧缓冲区。然后,客户端应用程序向合成器发送通知,告诉它更新其窗口映射并使用新的或更新的视频缓冲区。

这种简化的架构和现代代码设计提供了性能改进,尤其是窗口大小调整和拖动,显得平滑流畅。文章来源地址https://www.toymoban.com/news/detail-811551.html

到了这里,关于Linux 上的 Wayland 是什么?它与 X 有何不同?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wayland 之opengl es

       EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层,它主要由系统制造商实现。 使用 EGL 绘图的基本步骤 Display(EGLDisplay) 是对实际显示设备的抽象。 Surface(EGLSurface)是对用来存储图像的内存区域 FrameBuffer 的抽象,包括 Color Buffer, Sten

    2024年02月09日
    浏览(51)
  • Ubuntu 20.04 X86成功编译运行wayland、wayland-protocols、weston,亲测有效,踩了很多坑,完美解决。

    编译前期准备: 1、更换国内源: #添加阿里源 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ foc

    2024年02月11日
    浏览(47)
  • 面试题-React(三):什么是JSX?它与常规JavaScript有什么不同?

    在React的世界中,JSX是一项引人注目的技术,它允许开发者在JavaScript中嵌套类似HTML的标签,用于描述UI组件的结构。本篇博客将通过丰富的代码示例,深入探索JSX语法,解析其在React中的用法和优势。 一、JSX基础语法 在React项目中,你会经常看到类似HTML的代码块,这就是JS

    2024年02月12日
    浏览(36)
  • 【Flutter 面试题】Flutter 是什么?它与其他移动开发框架有什么不同?

    👏🏻 正在学 Flutter 的同学,你好! 😊 本专栏是解决 Flutter 面试过程中可能出现的问题,而进行汇总整理的。一个问题一篇文章,尽可能详细解答,满足面试需求。 🔍 想解决开发中的零散问题?碎片化教程 👉 Flutter Tips 。 🔍 想深入学习 Flutter?系统化教程 👉 Flutter 从

    2024年01月24日
    浏览(46)
  • 如何在 Ubuntu 20.04 桌面上启用/禁用 wayland

    Wayland 是一种通信协议,指定显示服务器与其客户端之间的通信。 默认情况下,Ubuntu 20.04 桌面不会启动 Wayland,而是加载 Xorg 显示服务器X11。 在本教程中您将学习: 如何启用 Wayland 如何禁用 Wayland    类别 要求、约定或使用的软件版本 系统 Installed Ubuntu 20.04 or upgraded Ubu

    2024年02月16日
    浏览(48)
  • Nvidia显卡在Archlinux上安装桌面环境 wayland + hyprland

    2024.1.26 重写 2023.2.10 修改环境变量部分 2023.2.12 修改环境变量部分,另外添加了hyprland的软件网站,有几个非常有意思 2023.2.13 修改键绑定部分内容 ,上传一张截图 2023.2.16 添加github仓库链接 2023.2.18 修改环境变量部分内容 2023.2.19 添加GTK3设置程序,SSH客户端,添加一个wayland的软

    2024年02月02日
    浏览(32)
  • 记录解决运行Qt程序出现警告提示“Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland t”

    运行Qt程序是出现警告提示“Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.”,虽然并不影响程序的运行和显示,但是看着碍眼啊,于是上网搜索了一下解决办法,记录一下 这个警告提示是关于在 Gnome 桌面环境下运行 Qt 程序时的一种提示信

    2024年04月12日
    浏览(47)
  • 怎么实现将Windows上的文件传到Linux、将Linux上的文件传输到Windows、不同的Linux设备之间文件传输

    本文基于Linux上CentOS 7版本和Windows 11专业版本配合Xshell 7 、Xftp 7演示三种传输方式 目录 Windows和Linux文件互传 一.使用rz和sz命令 1.使用前提是在连接linux的远程工具上使用(建议使用Xshell),需要下载lrzsz 2.切换到需要传输的文件的所有目录进行传输操作 二.使用Xftp软件进行传

    2024年02月09日
    浏览(62)
  • wayland(xdg_wm_base) + egl + opengles 最简实例

    `本文主要介绍如何在linux 下,基于 xdg_wm_base 接口的 wayland client 中 使用 egl + opengles 渲染一个最基本的三角形 软硬件环境: 硬件:PC 软件: ubuntu22.04 EGL1.4 openGL ES3.1 weston9.0 之前的文章 weston 源码下载及编译 介绍了如何在ubuntu 22.04 下面编译 weston9.0 ,在编译结束后,在build 目

    2024年01月24日
    浏览(38)
  • wayland(xdg_wm_base) + egl + opengles 最简实例(一)

    `本文主要介绍如何在linux 下,基于 xdg_wm_base 接口的 wayland client 中 使用 egl + opengles 渲染一个最基本的三角形 软硬件环境: 硬件:PC 软件: ubuntu22.04 EGL1.4 openGL ES3.1 weston9.0 之前的文章 weston 源码下载及编译 介绍了如何在ubuntu 22.04 下面编译 weston9.0 ,在编译结束后,在build 目

    2024年02月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包