标签 X11 下的文章

Wayland 毁掉一切!”有些人已经看过了这篇 Probonopd 批评 Wayland 的略有名气的文章。Probonopd 是 AppImage 开发者的核心者之一,他批评 Wayland 并非 X11 的直接替代品。他在 GitHub 上创建了一个 新的仓库,再次吸引了公众的目光,他希望为目前 Wayland 原生应用无法使用的功能创建协议。而这些功能是 Wayland 标准协议有意缺失的,但缺乏标准化意味着它们无法成为应用开发者可信赖的平台组成部分。

尽管开发者圈子里有人对此一笑置之,乃至嘲笑,但对于普通人来说,“Wayland 毁掉一切!”这句指责可能戳中要害,或者至少看起来有几分道理。因为从某种角度,Probonopd 是对的:Wayland 确实破坏了所有直接依赖 X11 功能的事物!

只是这种角度是错误的。

试想,如果我说:“Linux 让 Photoshop 无法工作,你还是应该坚持使用 Windows!”你该如何回应呢?你可能会说:“等等,问题的关键是 Photoshop 不支持 Linux!”你说得对,这是一个微妙且重要的区别,它将责任放在了正确的位置。因为即使是 Linux,也无法“不破坏” Photoshop;相反,Adobe 需要为其产品进行移植,只不过他们还没有做罢了。

对于 X11 和 Wayland,情况也同样适用。Wayland 并不是为了取代 X11 而设计的,就像 Linux 不是为了取代 Windows 而设计的一样。当我们从一个操作系统转到另一个时,有必要调整我们的期望,认清可能需要的改变。

尽管 Wayland 并非设计为 X11 的直接替代品,但它最终肯定会取代 X11。但这意味着它从一开始就打算比 X11 做得更少,而这是正确的。

X11 是个糟糕的平台

在那些古老的日子里,X11 是个完整的开发平台。以 X11 为目标的应用程序可以使用 X11,通过内建的小部件工具包来进行 UI 绘制;借助自带的打印服务器打印文件;进行屏幕录屏;设定全局快捷键等等。这一切都远在我接触技术之前,但我感觉到,X11 要么是在最初就被设定为面向应用开发者的开发平台,要么在早期阶段迅速演变成了这样一个平台。

然而,情况并没有如预期那样发展。即使是以当时的标准而言,其内置的 UI 工具包看起来也很丑陋。那些请求同一资源的应用可能会互相冲突,破坏彼此的功能,除非卸载其中一个应用程序,否则根本无法修复。像打印这样的特性渐渐没落,因为将这样的功能放在窗口管理器里就是个错误,而后续的维护者也缺少必要的专业知识或兴趣去维护它。诸如此类,不一而足。

像 Qt 和 GTK 这样的 UI 工具包迅速崛起,以更适合用户和便于应用开发者定位的方式,接管了大多数此类应用平台程序的中间件职能。我们这里说的是九十年代中期,那已是相当久远的时代了。

(当然,这样说可能有些不公平;人们抱怨 Wayland 缺少的其实并不是打印服务器。实际上,更多的是关于应用能否设置自定义窗口图标,以及移动自身的窗口。这些都是非常困难的情况;Wayland 上没有这些功能,理由就是这些功能在 X11 中被滥用,导致了难以解决的问题。要将这些功能移植到 Wayland 并非易事,涉及很多的权衡决定。)

Linux 并非一个平台

然而,UI 工具包的兴起无疑导致了应用程序的格局变得支离破碎。现在,FOSS 应用程序开发者不再为一个目标(X11)进行开发,而是为 Qt、GTK 或其他工具进行开发,从而我们看到了了大量的“KDE 应用” 和 “GNOME 应用”。是的,这些应用可能在其他平台里也能运行,但很明显,它们是在哪个平台和工具包上开发的,在哪个平台和工具包上运行效果最好。在其他平台运行时,它们可能看起来感觉很奇怪,或者某些功能可能不好用或根本无法使用。

这就是我们今天的现状。没有人会专门去编写一个 “X11 应用”;他们的应用可能会采用 X11 的某些特性,但这只是因为没有更好的替代方案,而实际上,在应用的 99.9% 的功能实现中,他们会选择 Qt、GTK、KDE Frameworks 或者其他相似工具。

这给我们带来了一个潜在的棘手问题: Linux 也不是一个真正的平台,在成为一个平台方面它并不比 X11 更成功。因为几乎没人会专门编写一个“Linux 应用”;直接调用原始的 Linux 内核系统通常是没必要的,因为无论你使用的是什么 UI 工具包,都会封装这些功能,并且将其抽象到工具包所支持的所有各种平台上。这样一来,工具包就能确保这些功能在 Linux 平台也都能顺利工作。

真正的平台

那么,对于跨桌面的互操作性而言,所有希望都已经破灭了吗?不,实际上现在的前景比以往任何时候都要美好!因为如今事实上出现了一个新兴的平台;如果你需要,它可以将各种应用工具包都抽象化。我说的是 Portals、PipeWire,以及 Wayland 协议。

Probonopd 认为这些都是附加组件,不应该在系统上运行,但我认为他的这种观点并不站得住脚。提供全面功能的单体窗口服务器模式在几十年前就被证明是失败的。取而代之的是库和 API,每个 FOSS 开发者都可以合理预期在现代系统运行这些。

门户系统提供了一种标准化的方法,用于展示平台原生的打开或保存对话框、发送通知、以其他应用打开文档、打印文档、拍摄截图、录制屏幕、处理拖放操作、查看用户当前主题是亮色还是暗色,等等。在很多功能的实现上,门户系统都倚赖于 PipeWire,因此你可以预期 PipeWire 也会被安装。同时,你也可以期待大部分 Wayland 合成器 — 尤其是两个最重要的合成器 KWin 和 Mutter — 支持几乎所有公开标准化的 Wayland 协议。

我认为这就是平台:Portals + Wayland + PipeWire。很明显,并没有一个好记的名字来囊括这一切。? 或许我们可以叫它 PW 2。不过,如果你的应用程序以这些平台为目标,那么它几乎可以在所有现代 Linux 系统上运行。并且,Qt 和 GTK 这两个大型的 FOSS 工具包都为此提供了全面的支持。所以,使用你喜欢的任何 UI 工具包都可。

为何是现在?

我们最近听到越来越多关于这个话题的讨论,因为这个转型正在加速发展。X11 的维护者已经宣布终止对其的维护,而 Plasma 则开始默认采用 Wayland,GNOME 也是如此。Fedora 甚至完全放弃了对 X11 的支持。

我们现在正处于这样一个阶段,那些以前从未考虑过这个问题的人开始思考,并意识到他们的特定使用场景所需的所有组件都还没有到位。可这其实是好事!他们的意见被听取了,变化就有可能发生。我希望这一切能早点发生,但我们也要承认现实,我们还在路上,最近围绕远程控制、色彩管理、绘图板以及窗口布局等方面的提案和工作非常频繁。可能会有一个尴尬的阶段在等我们,直到所有需要的部分都到位。对于那些由于关键遗漏而备受困扰的人,我建议他们继续使用 X11,直至问题解决。没人会去阻止你(嗯,除了 Fedora,所以如果你确实无法适应,那就不要用 Fedora ?)。探索新事物应该是充满乐趣的,如果不是这样,那就转换一个角度再尝试吧。

结语

在这个语境下,“毁掉一切”或许可以更准确地表达为“还没完全移植所有事物”。这种移植是必要的,因为 Wayland 设计的目标聚焦于未来,而未来并不完全兼容我们过去所做的一切,因为事实证明,其中很多东西已经没有意义了。对于那些有意义的东西,我们已经提供了一个兼容层(XWayland),同时,任何需要深度系统集成的部分,一般都有一个解决的路径(如 Portal、Wayland 协议以及 PipeWire)或者正在积极的研发中。整个世界,都在发生变化!

(题图:DA/d5a50347-47e0-472f-833b-58203196a743)


via: https://pointieststick.com/2023/12/26/does-wayland-really-break-everything/

作者:Nate Graham 译者:ChatGPT 校对:wxy

1 微软开源树莓派使用的 RTOS 固件,树莓派软件有望完全开源

微软正在开源其收购的 ThreadX 实时操作系统。该公司将其捐献给 Eclipse 基金会管理,它将被称为 Eclipse ThreadX,并在 MIT 许可证下开放。ThreadX 还是相当普及的。微软宣称有 120 亿台设备运行 ThreadX,而你可能就拥有一台。有一段时间,英特尔的片上管理引擎(ME)就是由它驱动的。它也是控制所有比 Pico 更大的树莓派的固件,如树莓派 1 到 4 和 400 等。它运行在树莓派的 VideoCore GPU 上,是启动树莓派并控制其硬件的部分。它也以不开源的二进制大对象(BLOB)的形式包含在 Debian 中。虽然目前还没有看到 VideoCore 版本的 ThreadX 固件,但树莓派基金会现在至少有希望获得发布其版本源代码的许可,这样整个树莓派的软件栈都是开源的了。

消息来源:The Register
老王点评:这东西对于微软来说或许是鸡肋,但是开源对整个生态很有好处。而且是以 MIT 开源的,这一次还要为微软点赞。期待看到树莓派向完全开源再进一步。

2 RHEL 10 将正式移除 X.org

Fedora 之后,RHEL 10 也将移除 Xorg 默认使用 Wayland。从已有 30 多年历史的 X Window 系统向基于 Wayland 的新堆栈过渡已经有 15 年左右的时间。X11 协议和 Xorg 服务器存在一些亟待解决的根本问题,而 Wayland 正是解决之道。如今,Wayland 已被公认为事实上的窗口和显示基础架构解决方案。红帽从 RHEL 8 开始将 Wayland 设为默认设置,并决定从 RHEL 10 和后续版本中移除 Xorg 服务器和其他 X 服务器(Xwayland 除外)。

消息来源:红帽
老王点评:可能一两年后,X11 和 X.org 就成了历史遗迹了。

3 DeepMind 首次让人工智能代理具备社会学习能力

“社会学习”是一个人通过复制,从另一个人那里获得技能和知识,这对人类和动物界的许多动物的发展过程至关重要。Deepmind 团队声称它们首次在人工智能中展示了这一过程。目前,从人类数据中向人工智能传授新技能一直依赖于从大量第一人称人类演示中进行监督学习,这会耗费实验室大量的时间和金钱。DeepMind 的研究人员称,他们已经证明,人工智能可以通过类似于人类和其他动物的社会学习过程来获得技能。他们的“新代理无需使用任何预先收集的人类数据,就能成功地在新环境中实时模仿人类。”研究人员还对人工智能代理的“代际”传承感兴趣,以研究它们的文化进化。

消息来源:The Register
老王点评:如果人工智能能够从人类或其它人工智能学习技能,还能传承和进化,这是真的要赋予人工智能以生命了。我感到不安。

OpenELA 发布用于构建 RHEL 8/9 衍生版的源代码

在红帽决定限制客户访问 RHEL 源代码之后,各种基于 RHEL 的 Linux 发行版都陷入了困境。CIQ(Rocky Linux)、SUSE 和甲骨文决定成立开放企业 Linux 协会(OpenELA),以确保对企业 Linux 源代码的开放和免费访问。OpenELA 刚刚宣布,构建 RHEL 8/9 衍生版本所需的所有软件包的源代码现在都已可用。RHEL 7 的源代码仍在开发中。

消息来源:Phoronix
老王点评:国内的 CentOS 系的企业 Linux 均没有参加 OpenELA。

Fedora 40 将放弃 X11 会话

计划 于明年 2 月发布的 KDE Plasma 6 将默认使用 Wayland 会话,而保留 X11 会话。将于明年 4 月发布的 Fedora 40 将采用 KDE Plasma 6.0 作为桌面选项。此外,作为这一变化的一部分,Fedora 40 计划放弃 KDE X11 会话,只保留 KDE Plasma Wayland 会话。此外,Fedora 40 还将移除对 GNOME X11 会话 的支持。

消息来源:Phoronix
老王点评:按 Fedora 引领技术变化的成功案例来说,真正淘汰 X11 已经被安排上了日程。

Chrome 浏览器放弃网络完整性 API

早在今年七月,谷歌就推出了网络完整性 API,希望为网站提供一种方法来确认用户及其设备/浏览器的真实性。目前该方案已经有了原型,但还只是在提案阶段。网络完整性 API 将允许网站 “请求一个令牌,证明其客户端代码运行环境的关键事实”。这与安卓系统上的类似 API(SafetyNet)并无太大区别,谷歌钱包和其他银行应用程序使用该 API 来确保设备未被篡改(root)。许多人将其等同于 DRM,提出了 反对意见,谷歌表示 “听到了你们的反馈”,并于今天表示,“Chrome 浏览器团队不再考虑网络环境完整性提案”。

消息来源:9to5google
老王点评:看来这次谷歌的投石问路失败了。

GNOME 开始正式放弃 X11 会话支持

随着 Fedora 40 希望禁用 GNOME 的 X11 会话支持,上游的 GNOME 开始评估禁用和移除其 X11 会话支持的前景。GNOME 开启了一组合并请求,开始放弃对 GNOME 桌面的 X11 会话支持,一旦这些代码被移除,GNOME 将成为仅支持 Wayland 的桌面环境。在这第一步中仅移除了 systemd 启动目标,但 X11 功能仍然存在。随后的其它合并请求将真正删除大约 3.6 千行的 X11 会话代码。GNOME 称,“X11 接受的测试越来越少。自 2016 年以来,我们一直默认使用 Wayland 会话,现在是时候彻底放弃 x11 会话了。”此外,Fedora 40 也将只支持 KDE Plasma 6 的 Wayland 会话。

消息来源:Phoronix
老王点评:随着 Fedora 的推动,在 GNOME 和 KDE 的支持下,X11 将被扫到历史的垃圾堆中。

“Admin123” 是最大的网络安全错误配置漏洞

根据从红蓝队演习中获得的数据,美国网络安全和基础设施安全局(CISA)和美国国家安全局(NSA)将在软件、系统和应用程序中坚持使用默认凭据列为 十大网络安全错误配置 之首。排名第二的是用户和管理员权限分离不当,第三是网络监控不足。采用安全设计和默认安全的方法,是美国政府近年来最明确、宣传最多的目标之一。他们鼓励技术制造商停止生产存在已知可利用漏洞的产品,并制定法案禁止购买存在任何已知漏洞的软件,虽然一些专家批评该法案限制过多。

消息来源:The Register
老王点评:网络安全已经不是增强功能,而是必备的基础功能了。

LXC 发布 LXD 的社区分支 Incus 0.1

八月份,在 Canonical 决定 接管 LXD 之后,LXC 社区将 LXD 项目分叉为 Incus。上周末,Incus 软件发布了第一个正式版本 0.1。Incus 0.1 大致相当于 LXD 5.18 版本,在此基础上做了各种改动,删除了一些未使用或有问题的功能。有一个值得注意的变化是,用 /dev/incus 代替 /dev/lxd 设备。

消息来源:Phoronix
老王点评:脱开企业的束缚,就是新生的开始。而且,两个同源的竞争品也有助于更好的发展。

下一代 GTK 5 可能要放弃 X11 支持

GTK 4 才推出没多久,而下一代的 GTK 5 可能还要很多年,但 GNOME 开发者们已经开始考虑在 GTK 5 剔除对 X11 的后端支持。有开发者认为,X11 迟迟没有变得更好,其开发几乎陷入停顿。而与此同时,Wayland 却已经变得广泛使用,GTK 也早已开始转向以 Wayland 功能为主的 API 设计。当然,开发者的这些讨论仅针对 GTK5,而不影响 GTK4 的更新。

消息来源:Phoronix
老王点评:X11 是 1987 年发布的 X 窗口系统的第 11 个版本,但是目前的参考实现是 10 年前推出的 7.7 版本。它的历史包袱太沉重了,趁早放弃,并让应用都迁移到 Wayland 才是正路。

大学拿回了支付的比特币赎金,发现还赚了

2019 年荷兰一所大学遭到勒索软件攻击,由于备份系统也被锁定了,大学最后同意支付价值 20 万欧元的比特币赎金。荷兰警方在随后的犯罪调查中跟踪到了一个洗钱账号,其中有大约价值 4 万欧元的部分比特币赎金,并在两年后将这些比特币归还给了大学。有趣的是,这些比特币现在已价值 50 万欧元。虽然没有拿回全部的赎金,但归还的比特币价值相比支付的赎金已经翻了一倍多。该大学表示这笔钱将用于帮助经济拮据的学生。

消息来源:DW
老王点评:这算不算是来自勒索攻击者的“被动投资”,就像门头沟事件后,很多人假如即便只能拿回当时的一小部分 BTC 也赚了很多。

Meta 将关闭加密货币项目

Meta(Facebook)的加密货币 Diem(前称 Libra)将于 9 月 1 日停止运作。Facebook 及其盟友是在 2019 年宣布了稳定币项目 Libra,计划在 2020 年推出。但该项目面临了世界各地监管机构的压力,主要盟友陆续退出。负责该加密货币计划的高管在 2021 年离开了公司,相关资产被出售,而 Meta 的兴趣也转向了元宇宙。

消息来源:CNET
老王点评:曾经被视为革命性的 Facebook 加密货币项目,终于走到了终点。有时候你得承认,步子太大也是危险。