Linux桌面的各个方面一直在变化,但是某些组件已经存在了数十年。 以X窗口系统(主要称为X)为例。 正在努力创建一种更快,更安全的替代产品。 那个替代者是Wayland。

立即解锁“基本Linux命令备忘单”!

这将使您注册我们的新闻通讯

Wayland进入市场已经有很长的时间了,并且一些基于Linux的操作系统已经将其作为默认的显示服务器协议。 如果您还没有,那它很快就会有机会。 这就是将Linux与Wayland一起使用的含义。

Wayland是一种协议,可以根据您的操作(例如,移动窗口或单击按钮)告诉程序如何在屏幕上显示它们。 从技术上讲,Wayland本身不能替代X服务器,Wayland仅定义了这种显示服务器与这些应用程序进行通信的方式。

Wayland依靠第三方(称为Wayland合成器)充当显示服务器。 示例包括Mutter和KWin(分别为GNOME和KDE Plasma桌面)。 Wayland试图简化显示服务器的通信,从而使未来的开发变得越来越容易。

像许多未来的技术一样,Wayland也有一些工作要做。 X已经存在很长时间了,并且已经稳步建立。 这意味着Wayland有很多工作要做(以及实现它的显示服务器)。 但是目前,要使测试变得更加流畅,需要了解一些事情。

您日常与之交互的大多数Linux应用都是为以下两种图形工具包之一编写的:GTK +和Qt GTK +和Qt有什么区别?GTK +和Qt有什么区别?您可能听说过GTK +和Qt, 但是这些开发工具包是什么? 以及它们如何影响您使用Linux的方式? 这些框架充当显示服务器的客户端,要求将内容绘制到屏幕上。 但是,首先需要理解这些请求,这取决于工具箱的工作。

因此,实际上只有某些类型的程序可以在Wayland桌面上运行。 例如,GTK + 3程序也可以正常运行。 用Qt 5(Plasma桌面所基于的工具包)编写的代码也可以。

话虽如此,如果您确实尝试打开某个Qt 4应用程序,您将有很大的机会运行它。 Wayland通过在后台运行X服务器来侦听它无法理解的应用程序。 但是,这可能导致更高的内存使用率和更低的速度。 另外,此方法目前尚无法解决某些问题。

Wayland和X的设计方式不同,因此某些与X兼容的应用程序将无法在Wayland上运行。

考虑使用诸如Redshift和f.lux之类的屏幕变色应用程序。 这些应用会根据一天中的时间过滤显示的蓝光。 它们使用X扩展名(例如RandR)运行,RandR为程序提供了一种要求X更改屏幕显示的简便方法。

虽然Wayland提供了某种方式来重新创建此功能的方法,但它实际上取决于每个Wayland合成器。 这意味着尽管一个桌面环境可能支持Redshift之类的功能(例如上图所示的GNOME夜灯功能),但该功能不一定在其他地方可用。

屏幕录像软件可能会遇到类似的问题。 作为一项安全功能,Wayland显示服务器阻止应用程序记录屏幕。 这并不是说在Wayland上根本不可能进行屏幕录制。 开发人员正在以不同的方式来实现该功能。

合成是一项有助于防止屏幕撕裂和伪影的技术。 通常是在图形卡的帮助下,将显示器的副本保存在内存中,以实现此目的。 这样,即使应用停止响应,您的显示服务器仍然可以使用。 合成还提供窗口动画和阴影。

Wayland的设计是通过强制使此过程比X高效得多。 X通过称为Xcomposite的扩展将合成作为可选功能。 但是由于其实现方式,与Wayland相比,它花费了更多时间。

话虽如此,合成可能会导致一些问题。 合成导致程序(例如游戏)的性能略低。 在X中,当应用全屏显示时,大多数台式机都会关闭合成功能。 但是,许多Wayland合成器仍然需要实现这一点。 如果您有兴趣在Wayland桌面上使用图形密集型程序,请记住这一点非常重要。

更具体地说,如果您正在使用Nvidia的专有图形驱动程序如何在Ubuntu,Fedora和Mint中安装专有图形驱动程序如何在大多数情况下在Ubuntu,Fedora和Mint中安装专有图形驱动程序 Linux。 但是,如果您想要真正的游戏和图形功能,则需要专有的驱动程序。 获取更多的方法,Wayland可能对您不起作用。 这与上面的合成问题有关。 为了使该过程正常运行,您的图形驱动程序必须以某种方式与Wayland合成器对话。

英特尔和AMD显卡没有此问题,因为它们使用了称为GBM(通用缓冲区管理)的预期标准。 英伟达(Nvidia)相信,他们与Wayland的交流方式(称为EGL)会更好,因此应遵循这种方式。

此问题可以通过两种方式解决:Nvidia驱动程序实现GBM,或者Wayland合成器实现EGLStreams。 当前,英伟达似乎对追求前一种解决方案不感兴趣。

此时,大多数Linux发行版都提供了安装Wayland的选项,但大多数默认情况下仍运行X。 您可以在存储库中搜索Wayland,从桌面注销,然后在重新登录时选择Wayland。

Fedora是最早逆转这种趋势的发行版之一,默认情况下已经运营Wayland数年了。 Fedora以使用Linux桌面必须提供的最新技术而著称,同时也相当有用。 但是Fedora并不孤单。

为什么没有更多发行版切换? 许多人正在等待更多问题解决。 许多人期望使用Nvidia的专有图形驱动程序来获得最佳的游戏体验。 有些人想要录制他们的屏幕以创建播客或在线流视频。

鉴于显示服务器并不是我们大多数人都注意到的东西,发行版并不急于引入这样的显着问题,以换取虽然实际上是在幕后存在的大量好处。 而且,如果您尝试使用远程桌面修复问题,则Ubuntu远程桌面:简单,内置,VNC兼容Ubuntu远程桌面:简单,内置,VNC兼容需要远程连接到Ubuntu PC吗? 使用Ubuntu的远程桌面工具从Linux,macOS或Windows访问您的PC。更多,好吧,这仅仅是Wayland可能会或可能无法解决的问题。

探索更多有关:Display Server,Linux。

wayland与linux_将Linux与Wayland一起使用? 您需要知道的 | MOS86相关推荐

  1. Wayland协议解析 一 什么是Wayland

    学习Wayland协议已经好几个月了,期间也查阅了不少资料,奈何目前对于它的资料并不是很多,对他原理以及解析更是寥寥无几,其中有一篇非常不错,给个链接: https://blog.csdn.net/j ...

  2. wayland学习一 ——client connect到wayland server

    关于https://wayland-book.com/wayland-display/creation.html的实践和理解 wl_display_connect is the most common ...

  3. 外网访问arm嵌入式linux_嵌入式Linux系统编程——文件读写访问、属性、描述符、API

    Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...

  4. base64 linux_每个Linux新手都应该记住的10个基本Linux命令

    Linux对我们的生活有着很大的影响.至少,你的安卓手机上面就有Linux内核.然而,头一次入手Linux只会让你觉得不适.因为在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你 ...

  5. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  6. Linux_《Linux命令行与shell脚本编程大全》第二章学习总结

    时间:2017年04月05日 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>(第三版 ...

  7. php获取当前设备,Linux_在Linux系统中使用lsblk和blkid显示设备信息的方法,今天我们将会向你展示如何使 - phpStudy...

    在Linux系统中使用lsblk和blkid显示设备信息的方法 今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机 ...

  8. 语音控制面板 通过linux_在Linux中,通常把设备作为( )来处理.

    [单选题] [填空题] [单选题]文件并不是真正包含声音信息,只包含声音索引信息 [简答题]What are the 4 components of this country? [简答题]似曾相识 [ ...

  9. checksum命令 linux_关于Linux操作系统的一些命令是什么?

    展开全部 我也是学黑客e68a84e8a2ad62616964757a686964616f31333332626666的..不过只是业余黑客.楼主有兴趣的话可以来我们论坛或者YY一起学习研究..简单地 ...

最新文章

  1. 【leetcode 字符串】466. Count The Repetitions
  2. 路径规划算法之Bellman-Ford算法
  3. 神策用户画像 Demo 来了!(文末免费体验)
  4. 通过基于JDBC的用户存储部署Identity Server
  5. 【渝粤教育】电大中专就业指导作业 题库
  6. 软件工程 - 版本管理 - git 的基本实用方法 - 添加一个完整的项目目录的命令的细微差别
  7. maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案
  8. 《C#高级编程(第六版)》泛型学习笔记(一):泛型优点和特性 (转载)
  9. ArcEngine中放大、缩小、移动等功能实现的方法
  10. CentOS6.9安装AliSQL
  11. java+整合handwrite_解决java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad
  12. 用spss进行数据的标准化处理_如何用SPSS对数据进行标准化处理
  13. 微信小程序物流仓库平台+后台管理系统|前后分离VUE
  14. python中断言方法举例说明_Python中断言Assertion的一些改进方案
  15. [EE261学习笔记] 4.常用的几个傅里叶变换相关公式
  16. 第九节 html特殊文字符号
  17. 小刘的http状态码整理
  18. Springboot系列-自定义starter
  19. Flutter开发之常用Widget学习
  20. 视频带宽(码流_分辨率_帧率)

热门文章

  1. JavaScript不区分 '
  2. Linux中文件操作
  3. python形参实参
  4. XCTF-Reverse:Hello,CTF
  5. 如何提升网站在移动端的打开速度(转)
  6. Caused by: java.lang.NoClassDefFoundError: Lorg/sl
  7. 后台返回给前端json字段的大小写问题,Lombok的坑
  8. 操作系统(十七)调度算法(二)
  9. DM8168学习--USB的over-current 问题总结
  10. 服务器端的根目录放置文件,放置在网站根目录下