Linux 桌面上的 Firefox 面临着大问题

news2024/11/26 12:28:00
导读毫无疑问,无论是在桌面、笔记本电脑还是移动设备上,浏览器都是任何操作系统中最重要的应用之一。

Linux 桌面上的 Firefox 面临着大问题Linux 桌面上的 Firefox 面临着大问题

如果没有一个功能强大、快速且稳定的浏览器,操作系统的实用性将大幅度降低,以至于我相当确定,如果一个操作系统没有浏览器,几乎没有人会将其用于常规、正常的使用。拥有一个起码可用的浏览器是将操作系统从娱乐玩具升级到你可以使用超过 10 分钟的有趣新奇物品的关键。

但问题在于,开发一个功能强大的浏览器实际上非常困难,因为浏览器本身已经成为一个功能丰富的平台。承担起从零开始构建浏览器的巨大任务并不是很多人感兴趣的事情——除了那些疯狂的人——而这一切被恶化的原因是,由于市场的合并和垄断,与剩下来的三个浏览器引擎竞争基本上是无济于事的。Chrome 和其各种衍生产品的占据统治地位,其次是 iOS 上的 Safari,原因仅仅是因为你在 iOS 上不能使用任何其他浏览器(引擎)。然后就是 Firefox,作为一个远远落后的第三名而存在——且份额还在下滑。

这就是 Linux 桌面发行版所处的环境。长期以来,Linux 桌面几乎完全依赖于 Firefox(和之前的 Mozilla 套件)作为它们的浏览器,一些用户选择在安装后下载 Chrome。尽管 GNOME 和 KDE 名义上都有自己的两个浏览器,GNOME Web 和 Falkon,但其用户数量有限,发布的版本也寥寥无几。例如,没有一个主要的 Linux 发行版会将 GNOME Web 作为其默认浏览器,并且它缺少用户对浏览器期待的许多功能。相比之下,Falkon 只会偶尔更新,往往几年才发布一个新版本。更糟糕的是,Falkon 通过 QtWebEngine 使用的是 Chromium 引擎,而 GNOME Web 使用的是 WebKit(它们独立于浏览器更新,所以浏览器版本并不总是一个可靠的指标!),所以两者都依赖于世界上最无情的两个公司——谷歌和苹果的善意。

即使是 Firefox 本身,尽管它显然是 Linux 发行版和 Linux 用户的首选浏览器,也并不将 Linux 视为一线平台。Firefox 首先是一个 Windows 浏览器,然后是 macOS,最后是 Linux。Linux 世界对 Firefox 的热爱并没有得到 Mozilla 同样的回应,这种情况在许多地方表现出来,那些在 Windows 端修复和解决的问题在 Linux 端被忽视了好几年甚至更久。

这种情况最好、最明显的例子就是硬件视频加速。这个功能从一开始就是 Windows 版本的默认部分,但是直到 2023 年 7 月初发布的 Firefox 115,才在 Linux 上默认启用。即使是这样,这个功能也只是默认为英特尔显卡用户开启,并没有 AMD 和英伟达用户什么事。这种视频加速功能的缺失(对于 AMD 和英伟达用户来说,仍旧如此),是 Linux 笔记本电脑在电池寿命上与 Windows 对手差距严重的一个主要因素。

然后,要走上这条路一直都是漫长、艰巨、且充满颠簸。长久以来,要让硬件视频加速在 Linux 的 Firefox 上工作一直复杂而不稳定,每一个浏览器版本可能都会改变你需要设置的标志。有时候无论你怎么做,它可能都会在连续几个版本中停止工作。论坛消息、博客帖子和网站文章中充满了过时的指令和像 Hail Mary 一样的建议,供那些试图让它运行的用户参考。你以往的成功经验会随着每个版本的发布而变化,而跟踪所有这些都是一种噩梦。

不仅仅是硬件加速视频解码。手势支持在 Linux 版本上的推出比在 Windows 版本上要晚得多——比如使用滑动来前进和后退,或者在图片上捏合来进行缩放。同样,触摸屏支持也在 Linux 版本的 Firefox 上晚了一段时间才出现。通常,此类功能可能在默认启用之前几年就可以通过 about:config 指令启用,但这远非理想情况。

桌面 Linux 的普及率落后于 Windows 和 macOS,这并不是什么意想不到的情况,或出于恶意的结果。前几段的重点并不是抱怨 Linux 版 Firefox 的状态,或者建议 Mozilla 将 Windows 和 macOS 版本的宝贵资源转移到 Linux 版本。虽然如果他们这么做的话,我显然不会抱怨这些,但这并没有多大意义。我强调这些问题的真正原因是,如果今天在 Mozilla 现有的财力和资源下,Linux 版的 Firefox 已经被视为第三级平台,那么如果 Mozilla 的财力和资源急剧减少,将会发生什么?

Firefox 的状况并不太好。它的市场份额在这些年里急剧下滑,现在在桌面和笔记本电脑上仅占有微薄的 3%,而在移动设备上更是微不足道的 0.5%。Chrome 和稍少的 Safari 已经完全压倒了这个曾经威猛的浏览器,以至于它对于 Linux/BSD 用户和其他平台上的更多极客来说,基本上就是一个附带的产品。我说这个并不是为了贬低那些使用 Firefox 的人——我就是其中之一——而是为了强调 Firefox 当前市场位置的糟糕程度。这种市场份额的缩小已经对 Firefox 的开发和未来前景构成了伤害,尤其是如果这种滑坡还在继续的话。

然而,市场份额的下滑远非最大的问题。摆在 Firefox 头顶的达摩克利斯之剑是 Mozilla 非常奇怪且失衡的收入来源。大多数人可能都知道,Mozilla 的大部分收入来自与谷歌的搜索合作。大约 80% 的 Mozilla 的收入 来自谷歌,后者支付给这个浏览器制造商费用,以将谷歌搜索设为默认搜索引擎。

这份协议还会持续多久?无论 Firefox 陷入多么糟糕的情况,它还会一直续约吗?合作的规模会缩小,还是会完全结束?什么时候,谷歌会觉得每年在本质上是对竞争对手的慈善上投入数亿美元已经不再值得,或者根本不需要?谷歌与苹果的类似搜索交易已经面临 法律审查;那么这种审查会对与 Mozilla 的交易产生影响吗?

只需问自己这个问题:如果由于 Firefox 的市场份额进一步下滑,与谷歌的交易泡汤,两者结合起来,或甚至这里未提到的其他因素,导致 Mozilla 的资金短缺,哪个版本的 Firefox 将首先感受到削减?Mozilla 会采取什么措施来缓解困境?当 Mozilla 日益绝望时,我们是否会看到与其他公司的肮脏交易?不靠谱的加密货币概念?允许广告以换取收入?更多的推荐的网站和扩展,需要付费?还是 Linux 版本将被全部削减,让社区接管?

这就是 Thunderbird 所经历的。Thunderbird 花了近十年的时间才完全恢复。这也可能发生在 Linux 的 Firefox 上。

这就是桌面 Linux 的 Firefox 所面临的问题。这个最重要的桌面 Linux 应用程序已经处于非常困难的境地,而且似乎不可避免的是,事态只会逐渐变得更糟。然而,我并没有看到有人在谈论这个问题,或者考虑 Firefox 最终可能的消亡,这对 Linux 桌面意味着什么,以及如何避免或减轻这种情况。

在理想的世界里,Linux 桌面的主要利益相关者 —— KDE、GNOME,各种主要的发行版 —— 会聚在一起,严肃地考虑一项行动计划。在我看来,最好的可能解决方案是复刻一个主要的浏览器引擎(或选择一个并大幅投入),并修改这个引擎,并专门为 Linux 桌面进行定制。停止生活在 Windows 和 macOS 浏览器制造商的残羹冷炙中,完全专注于制作一个完全为 Linux 及其图形堆栈和桌面优化的浏览器引擎。让主要的利益相关者共同在一个 Linux 首选—— 或甚至仅限于 Linux —— 的浏览器引擎上共同努力,而将图形前端留给各种工具箱和桌面环境。

显然,这并不容易,需要在时间、资源和人员方面进行重大投资。然而,通过仅专注于 Linux,你不会真正与 Blink 和 WebKit 竞争,因为他们完全不重视桌面 Linux(Chrome 在 Linux 上仍然没有硬件视频加速)。让其他引擎去为各种专有平台争夺——Linux 需要一个独立于谷歌(和苹果)的浏览器引擎,并且认真将 Linux 作为一个平台对待。

我真的很担心 Linux 上浏览器的状态,特别是 Firefox 在 Linux 上的未来。我认为桌面 Linux 社区的各种主要参与者,从 GNOME 到 KDE,从 Ubuntu 到 Fedora,显然对于 Firefox 出问题或死亡完全没有应急计划,尽管我们都知道当前的浏览器市场状态、Mozilla 的财务状况和两者的未来前景。这种行为实在是太不负责任了。

Linux 桌面的 Firefox 面临着大问题,但似乎没有人愿意承认它。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言二——依次将10个数输入,要求将其中最大的数输出

这是一个简单的C语言程序,它会接受用户输入的10个整数,然后找出最大值并输出。 程序的执行步骤如下: 声明一个数组 n,用于存储用户输入的10个整数,声明一个变量 i 和 t。提示用户输入10个数。使用 for 循环&#xff…

Face2Face: Real-time Face Capture and Reenactment of RGB Videos (CVPR 2016) 译文

建议的在线再现设置:单目目标视频序列(例如,来自Youtube)基于源演员的表达进行再现,源演员使用商品网络摄像头进行现场录制。 摘要 我们提出了一种用于单目目标视频序列(例如Youtube视频)的实时面部再现的新方法。源序列也是单目视频流,用商…

小红书口碑营销技巧有哪些,打造独特品牌内容

作为一款社交电商平台,从目前来看,其实小红书也算是比较不错的口碑营销传播平台了。今天就来带大家一起分享下,小红书口碑营销技巧有哪些,打造独特品牌内容! ​ 一、小红书口碑营销怎么做 1. 了解目标用户 首先需要明…

不到3个月,快速上线联创三金MES系统,数字化生产管理初见成效

PART 01 MES系统上线 8月25日,惠州联创三金科技有限公司(下文简称联创三金)顺利举行了MES系统上线仪式,这标志着联创三金正式运行全新的数字化生产管理系统,迈向了生产管理全面透明化的新阶段。联创集团IT总监邓燕琼…

【Vue3】Pinia状态管理

Pinia pinia与Vuex的对比pinia的介绍pinia与Vuex区别:pinia的使用使用准备步骤一:新建文件导入pinia使用准备步骤二:挂载pinia 创建pinia的Store新建页面。创建对应的Store页面使用pinia的store Pinia核心概念State操作State一重置state改变s…

SciencePub学术 | 计算机智能类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 计算机智能类重点SCIE&EI征稿中!信息如下,录满为止: 一、期刊概况: 计算机智能类重点SCIE&EI 【期刊简介】IF:1.0-1.5,JCR4区,中科院4区; 【检…

Google Play商店优化排名因素之应用标题

对于用户数量和应用数量而言,Google Play 商店是最大的应用商店。市场巨大,同时机遇也巨大。然而由于有近 250 万个应用程序,竞争也同样激烈。 1、应用程序标题是所有排名因素中最强的。 与Apple的30个字符限制相反,Google Play商…

初识Java 1-1 面向对象的语言

目录 引用的作用 数据的储存 常见的数据储存方式 特殊储存的基本类型 数组 销毁对象 基本类型的作用域 对象的作用域 创建新类型 - class关键字 方法、参数和返回值 参数列表 编写程序 名称可见性 使用组件 static关键字 Java程序 编程风格(驼峰式…

SAP从放弃到入门系列之abapGit更新与卸载

目录概览 概述一、更新1.1 独立版本1.2 开发者版本1.2.1 在线更新1.2.2 离线更新 1.3 更新版本常见问题 二、卸载abapGit 概述 我们就以更新abapGit为例,通过abapGit管理我们的代码其实操作时相似的,更新独立版本就有点像最原始的没有版本管理工具时的版本管理方式…

Elasticsearch中倒排索引、分词器、DSL语法使用介绍

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

研磨设计模式day14模板方法模式

目录 场景 原有逻辑 有何问题 解决方案 解决思路 代码实现 重写示例 模板方法的优缺点 模板方法的本质 何时选用 场景 现在模拟一个场景,两个人要登录一个系统,一个是管理员一个是用户,这两个不同身份的登录是由后端对应的两个接…

Metasploit“MSF”连接postgresql时因排序规则版本不匹配导致无法连接

一、问题 更新Kali之后使用Metasploit时出现一个问题,连接postgresql时因排序规则版本不匹配导致无法连接 警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.36, but the operati…

SpringBoot使用Druid连接池 + 配置监控页面(自定义版 + starter版)

目录 1. Druid连接池的功能2. 自定义版2.1 pom.xml添加依赖2.2 MyDataSourceConfig实现2.3 application.properties配置编写Controller进行测试2.4 druid监控页面查看 3. starter版3.1 pom.xml添加依赖3.2 自动配置分析3.3 使用application.properties对druid进行配置3.4 druid…

Git分支机制

一、分支机制简述 要想真正理解Git的分支机制,我们要首先回过头来看一下Git是如何存储数据的。 Git并没有采用多个变更集( changeset )或是差异的方式存储数据,而是采用一系列快照的方式。当你发起提交时,Git存储的是提交对象( commi…

无涯教程-机器学习 - 箱形图函数

Box和Whisker图(也简称为boxplots)是另一种有用的技术,可用于检查每个属性的分布情况。以下是此技术的特点- 它本质上是单变量的,总结了每个属性的分布。它为中间值(即中位数)画一条线。它将在25%和75%周围绘制一个框。它还会绘制…

ant-vue1.78版a-auto-complete表单自动搜索返回列表中的关键字标红

a-auto-complete表单自动搜索返回列表中的关键字标红 通常在做关键字标红的场景,都是后端返回html结构,前端直接渲染实现,但是如果需要前端处理的话,实现也是很简单的,接下来我直接上应用场景吧 应用场景就是通过关键…

mysql 存储引擎系列 (一) 基础知识

当前支持存储引擎 show engines; 显示默认存储引擎 select default_storage_engine; show variables like ‘%storage%’; 修改默认引擎 set default_storage_enginexxx 或 set default_storage_enginexxx; my.ini 或者 my.cnf ,需要重启 服务才能生效 systemctl …

什么事synchronized的升级

今天我们继续学习synchronized的升级过程,目前只剩下最后一步了:轻量级锁->重量级锁。 通过今天的内容,希望能帮助大家解答synchronized都问啥?中除锁粗化,锁消除以及Java 8对synchronized的优化外全部的问题。 获…

校招算法题实在不会做,有没有关系?

文章目录 前言一、校招二、时间复杂度1、单层循环2、双层循环 三、空间复杂度四、数据结构五、校招算法题实在不会做,有没有关系?六、英雄算法集训 前言 英雄算法联盟八月集训 已经接近尾声,九月算法集训将于 09月01日 正式开始,目…

【uniapp】this有时为啥打印的是undefined?(箭头函数修改this)

😉博主:初映CY的前说(前端领域) ,📒本文核心:uniapp中this指向问题 前言:this大家知道是我们当前项目的实例,我们可以在这个this上面拿到我们原型上的全部数据。这个常用在我们在方法中调用其他方法使用。 …