[Topic DIscussion] 不懂就问,wayland和X11
Tofloor
poster avatar
wlly-lzh
deepin
2023-05-07 23:58
Author

最近参加deepin23的内测了,发现在进入系统之前可以选择wayland还是X11。但是我并不了解这两者直接的区别和特点,所以在这里问一下大家。

IMG_20230507_134632.jpg

Reply Favorite View the author
All Replies
YL-Jack
deepin
2023-05-08 00:10
#1

建议选X11,不要选wayland

X11是一个非常成熟的技术,可以说任何程序都可以在X11下运行

而wayland有些地方可能还没有完善,导致很多程序由于不兼容wayland,会先转换为xwayland,从而导致这个程序模糊,甚至有的应用程序无法在wayland上面运行(比如腾讯会议)

Reply View the author
wlly-lzh
deepin
2023-05-08 00:13
#2
YL-Jack

建议选X11,不要选wayland

X11是一个非常成熟的技术,可以说任何程序都可以在X11下运行

而wayland有些地方可能还没有完善,导致很多程序由于不兼容wayland,会先转换为xwayland,从而导致这个程序模糊,甚至有的应用程序无法在wayland上面运行(比如腾讯会议)

知道啦,感谢回复,选择wayland之后确实出现了很多的问题,所以现在我现在在使用X11。

Reply View the author
青稚
deepin
2023-05-08 00:36
#3
wlly-lzh

知道啦,感谢回复,选择wayland之后确实出现了很多的问题,所以现在我现在在使用X11。

用x11,说到这个gnome桌面在安装nvidia驱动后,会自动关闭wayland

Reply View the author
enforcee
deepin
2023-05-08 01:43
#4

X窗口系统已经是过时技术了,Wayland正在取代X。对Wayland支持不好的厂商我们要予以谴责。

joy

X与Wayland的主要差异,就是X系统中存在一个X服务器(通常用的是Xorg)。X服务器日理万机,每个窗口的所有控件他都要知道,一边接受鼠标键盘等输入设备的信号,一边找窗口管理器要窗口的位置,计算哪个位置需要更新,也是他负责让显卡绘图。还要有个专门的合成管理器往窗口旁边画影子(有的窗口管理器也顺便兼职了)。一开始这套系统还行,但是后来随着技术的发展他要管的事越来越多,因此不断地打补丁,造成维护麻烦。到Wayland这里就简单多了,服务端没有那么多多弯弯绕绕,只要Wayland合成器(X系统中的窗口管理器),接受到输入信号直接发给窗口,让应用程序自己处理输入和绘图,画完以后把图给合成器,合成器再把各个窗口的图叠到一起去显示出来。这样做另一个好处就是各个应用程序之间是隔离的,每个应用程序只知道自己窗口的情况,提高了安全性。

Wayland取代X的进度已经完成很多,所有流行的用户界面库都已经支持Wayland,对于一些不支持Wayland的程序,解决方案是用一个运行在Wayland中的X服务器XWayland来兼容。对Wayland支持最激进的桌面是GNOME,多年前他就默认向用户提供Wayland会话,而KDE虽然也提供了Wayland会话,但是默认选择的还是X11。虽然Wayland协议还在发展,一些在X11中已经完善的特性Wayland还没有补全,但是Wayland也有一些X11不支持的功能,比如GNOME桌面的触摸板手势。我自己也体验过一些游戏在Wayland环境的运行,除了NVIDIA对XWayland的支持不佳外其他地方没有什么问题。

Reply View the author
wlly-lzh
deepin
2023-05-08 01:52
#5
enforcee

X窗口系统已经是过时技术了,Wayland正在取代X。对Wayland支持不好的厂商我们要予以谴责。

joy

X与Wayland的主要差异,就是X系统中存在一个X服务器(通常用的是Xorg)。X服务器日理万机,每个窗口的所有控件他都要知道,一边接受鼠标键盘等输入设备的信号,一边找窗口管理器要窗口的位置,计算哪个位置需要更新,也是他负责让显卡绘图。还要有个专门的合成管理器往窗口旁边画影子(有的窗口管理器也顺便兼职了)。一开始这套系统还行,但是后来随着技术的发展他要管的事越来越多,因此不断地打补丁,造成维护麻烦。到Wayland这里就简单多了,服务端没有那么多多弯弯绕绕,只要Wayland合成器(X系统中的窗口管理器),接受到输入信号直接发给窗口,让应用程序自己处理输入和绘图,画完以后把图给合成器,合成器再把各个窗口的图叠到一起去显示出来。这样做另一个好处就是各个应用程序之间是隔离的,每个应用程序只知道自己窗口的情况,提高了安全性。

Wayland取代X的进度已经完成很多,所有流行的用户界面库都已经支持Wayland,对于一些不支持Wayland的程序,解决方案是用一个运行在Wayland中的X服务器XWayland来兼容。对Wayland支持最激进的桌面是GNOME,多年前他就默认向用户提供Wayland会话,而KDE虽然也提供了Wayland会话,但是默认选择的还是X11。虽然Wayland协议还在发展,一些在X11中已经完善的特性Wayland还没有补全,但是Wayland也有一些X11不支持的功能,比如GNOME桌面的触摸板手势。我自己也体验过一些游戏在Wayland环境的运行,除了NVIDIA对XWayland的支持不佳外其他地方没有什么问题。

thanks

感谢大佬解答!

这么说X11的设计确实有些问题,期待wayland早日完善!

Reply View the author
DebuggerX
deepin
2023-05-08 02:44
#6

未来大概率属于Wayland,因为X11几乎已经被放弃维护,而且确实积重难返很难有机会重获青春,Wayland是唯一有能力的接替者。

但问题是,现阶段Wayland的完成度还是差X11不少,而且有些在X11这边已经形成生态的用法和特性,Wayland是明确不准备实现去支持的,态度就是他们不管,让开发者和用户自己去想办法。

很多人可能也在其他发行版桌面环境尝试了Wayland,发现没什么问题,而且比X11流畅并多了几个现代化的新特性,于是觉得它已经完全可以替代X11,但是有些"深度使用"的场景下,还是有些问题的,比如xdotool这个自动化神器,Wayland就以安全为由明确不支持,而我有很多个人的work flow就因此废了(确实有好几个Wayland下的xdotool的替代方案,完成度都不能比,而且用起来相当麻烦,我在deepin上十几分钟搞出来的脚本,在mac book air的asahi linux下搞了快两天才调好)。再比如前段时间写的屏幕二维码识别,X11下程序里想通过命令截个屏幕非常简单,到了Wayland下就各种不行,只能利用某个比较新的截图程序才行,而如果要适应那个截图程序,我本来的代码又得大调整……

所以要我说,如果是对用户负责的系统,现阶段还是应该默认选择X11,否则出了问题用户很难解决,而且这个现阶段估计还要持续一段时间,可能3,5年还是要的。Wayland适合两种用户,一种是高手,有能力解决各种问题,一种则是轻度用户,可能只需要上上网,然后用用系统自带应用就能满足需要的程度。

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2023-05-08 03:02
#7

感觉Wayland会更快,更流畅

Reply View the author
wlly-lzh
deepin
2023-05-08 03:02
#8
DebuggerX

未来大概率属于Wayland,因为X11几乎已经被放弃维护,而且确实积重难返很难有机会重获青春,Wayland是唯一有能力的接替者。

但问题是,现阶段Wayland的完成度还是差X11不少,而且有些在X11这边已经形成生态的用法和特性,Wayland是明确不准备实现去支持的,态度就是他们不管,让开发者和用户自己去想办法。

很多人可能也在其他发行版桌面环境尝试了Wayland,发现没什么问题,而且比X11流畅并多了几个现代化的新特性,于是觉得它已经完全可以替代X11,但是有些"深度使用"的场景下,还是有些问题的,比如xdotool这个自动化神器,Wayland就以安全为由明确不支持,而我有很多个人的work flow就因此废了(确实有好几个Wayland下的xdotool的替代方案,完成度都不能比,而且用起来相当麻烦,我在deepin上十几分钟搞出来的脚本,在mac book air的asahi linux下搞了快两天才调好)。再比如前段时间写的屏幕二维码识别,X11下程序里想通过命令截个屏幕非常简单,到了Wayland下就各种不行,只能利用某个比较新的截图程序才行,而如果要适应那个截图程序,我本来的代码又得大调整……

所以要我说,如果是对用户负责的系统,现阶段还是应该默认选择X11,否则出了问题用户很难解决,而且这个现阶段估计还要持续一段时间,可能3,5年还是要的。Wayland适合两种用户,一种是高手,有能力解决各种问题,一种则是轻度用户,可能只需要上上网,然后用用系统自带应用就能满足需要的程度。

like

感谢回复

Reply View the author
wlly-lzh
deepin
2023-05-08 03:04
#9
把一切操作变成GUI

感觉Wayland会更快,更流畅

但是deepin23加内测后waylandbug也多。

Reply View the author
安洛
deepin
2023-05-08 04:57
#10
青稚

用x11,说到这个gnome桌面在安装nvidia驱动后,会自动关闭wayland

不会。首先这个是gdm管的不是gnome管的,其次如果没有n卡,即使安装了驱动也不会反x11。最后,即使有n卡并且安装了闭源驱动,gdm也会遵守如下规则:

To use Wayland in GDM with the NVIDIA driver, you must first enable NVIDIA#DRM kernel mode setting.
As of GDM 42 and NVIDIA driver 510, GDM defaults to Wayland. For older NVIDIA drivers (in between version 470 and 510), GDM has chipset-dependent udev rules to use Xorg rather than Wayland.

Reply View the author
buyike
deepin
2023-05-19 01:04
#11

别的不说,W的流畅是X比不了的,另外,设计的一些软件中文输入已经不支持X了,我也是这次升级到23用过W才知道的。X11害死我了。

Reply View the author