知名GNU / Linux操作系统发行版Ubuntu开发商Canonical公司上周公告,表示Ubuntu 19.10以后版本将不再支持i386架构,也就是只能在32进制系统运行的程序,将来不能在Ubuntu运行了,这引起社群大震撼,尤其是游戏群体大抗议。本周Canonical紧急发夹弯,宣布Ubuntu 19.10、Ubuntu 20.04LTS两套操作系统版本,仍然会维持对32进制程序的部分兼容性。
话说GNU / Linux世界大约从2008年开始,就进入全64进制架构时代,因为采用开放源码软件为主的世界,软件要从32进制变迁到64进制很容易,只要重新编译,整个系统还有各种应用软件包就变成高性能的64进制程序了。i386的基础架构组件组保留下来,只服务那些没有源码可重新编译的极少数程序。然而,由于大多数32进制的基础架构函数库组件越来越难用,也缺乏维护管理,意味盯着的眼睛日渐稀少,可能有越来越多bug不会被发现,比方说,防范知名CPU漏洞Spectre和Meltdown的修补,就不适用32进制架构。要把公司工程人员集中于日新月异的64进制架构,提高运行性能与品质呢?还是“乏人关注”的32进制兼容基底呢?Canonical公司之前选了前者。


笔者通过Steam Play执行游戏《还愿》。
然后这件事在上周末时炸开了,拥有著名游戏平台Steam的Valve公司宣布Steam将不支持Ubuntu 19.10(今年10月发布)以后的系统,而WINE(Windows兼容执行层)开发者也在研拟放弃支持以后新版Ubuntu,这些消息传开后引起大震撼。关于前者,Steam市场销售的计算机游戏还是有大量32进制,甚至Steam自己出的主机Steam machine系统也是以Ubuntu为基底,不能执行自己销售的许多游戏,将会造成商务严重问题,这也考验Valve与Canonical两家公司的合作关系;WINE部分,发展到4.0版本后,WINE对Windows的兼容性又达到一项新成就高峰,尤其对旧版Windows游戏而言(尤其是那些Windows 95至Vista 32进制时代的游戏),兼容性/性能还比Windows 10对旧版Windows游戏更好,然而毕竟大量游戏还是32进制,或者更烦人的──游戏本身是64进制但安装程序却是32进制。不能安装游戏玩会让许多人崩溃。
经过上周末大量游戏玩家、Ubuntu Studio社群(应该是通过WINE rt版执行32进制专业音乐软件的兼容需求)、WINE社群大量意见回应以后,Canonical决定改变计划,为Ubuntu 19.10和Ubuntu 20.04 LTS提供精选过的32进制i386软件架构包。方法是实施一个社群流程来确定支持旧软件需要哪些32进制软件组件,如果有遗漏的也可事后更新追加。毕竟,原生Linux应用程序可说几乎是64进制了,只要考虑让Steam、WINE等游戏、音乐制作程序能达到执行需求,因此Canonical公司表示,将与WINE社群、Ubuntu Studio社群、游戏社群等合作,通过容器技术(Docker)解决i386架构所需的相关32进制函数库组件的最终寿命问题,通过Snap、LXD让新版本Ubuntu还是能执行旧32进制应用,而不拖累64进制系统运行。
使用Ubuntu的游戏玩家心声已不容忽视
不过,这次事件反映出两件有趣的事。第一件,Ubuntu依赖社群意见开发的Linux发行版,针对支持X86 32进制架构的议题,其实从2014年以来,Ubuntu官方开发人员和社群论坛已进行很多次讨论,最后产生日前Ubuntu要放弃32进制兼容性的决议。而在Ubuntu 18.04 LTS发布之后,ubuntu-devel的邮件列表累积大量讨论流,Canonical也咨询过Valve,但都没有上周末那样的“激情”。虽然Canonical看到各社群剧烈反应后,从善如流做出修正方案,但这也反映一件事──很多Ubuntu用户只是纯使用,没有参与Ubuntu的社群讨论,这就类似政治议题,选民平常对政治漠不关心,等到某个政策快要施行时,才大吃一惊跑出来抗议;然而就Canonical而言,也要关注自己在Linux桌面使用市场的位置,毕竟对一般人而言,Ubuntu就是最好的Linux个人桌面计算机首选,且相对其他发行版,也最容易取得、最友善上手,娱乐用途面也最没有问题。当公司做商业决策时,虽然社群讨论可能偏重工程师需求,但不能忽略Ubuntu长年开发出来的一般用户市场,或说Canonical与社群在推广宣导要教育新人:Ubuntu具备“社群民主”讨论机制这件事。
通过Steam Play执行的《侠盗猎车手V》。
第二件事呢,是经过这次事件,我们还可以发现Ubuntu的游戏市场已不能小看,具备一定分量,尤其Steam推出Steam Play机制后,Steam平台除了原生Linux的游戏(主要是独立游戏),也更便于执行Windows游戏(且性能很好),此外Nvidia的GPU在Linux下的性能比起Windows 10更好也是可能原因,Windows 10恶名昭彰的突然自动更新机制,可能导致相当人数改用较稳定的Ubuntu系统(但通过Wine调用Windows的dll函数库来执行Windows程序),甚至原装Ubuntu的游戏笔记本电脑也开始有市场了呢。然而只要游戏群体的“游戏权”被威胁,就会“动摇Ubuntu国本”。
总而言之,游戏玩家可以安心了,下一代Ubuntu还是能执行32进制的游戏。当然,平时也要参与Ubunutu社群论坛的讨论啦,不要让自己的意见被埋没了。