诸位老友,下午好。这里是擦拭键盘的 Chlorine。
最近身体不太舒服,就随手写一点碎碎念好了。实话说,这种不设计任何逻辑结构,只是让文字从思绪里流淌到屏幕上的感觉,居然意料之外地不错。
另外,这篇文章在本文的主角上撰写。如果它的生命是从我购买它计算的话,它目前刚刚度过第二个年头。
虚假两难
如诸位老友所见:某元素娘的暴力输出共一石,Windows 独占八斗。每天不对 Windows 进行一些友好问候和衷心肯定,就像这一天没喝果茶一样,总觉得少了些什么。尤其是最近微小柔软玩命往 Windows 里塞语言模型,于是小氯在和朋友们聊天时闲着没事就来一个 Microsl0p 笑话,致力于为微小柔软的公关工作贡献自己的一份倒忙。
但,虽然很不愿意承认,但,小氯,确实用过大概小半年的 Windows……
至于理由……唔……请……请不要问了好吗(脸红)。
- 娘亲:我早叫你买 MacBook,你不听。
- 小氯:母后果然英明神武,深谋远虑。
- 娘亲:别贫嘴。说吧,换下来的机器准备怎么处理?
于是小氯就在被微小柔软窗户系统折磨了小半年之后果断把它扔去了西伯利亚建设社会主义,然后在病床上下单了一台 MacBook Air(是的,病床上,当时小氯又凭借坚强的意志被伤病战胜了)。这次实在没好意思和父母要钱,用了自己的奖学金。
至于当初为什么不买 MacBook Pro 呢?实话说,我也不知道为什么。可能是当初某个早已失传的理由——大家就认为小氯想要一个介于十四英寸和十六英寸之间的屏幕就行了。当然配置也是加满了,内存上到了 24 GB,仿佛是在泡面里面加和牛。
……然后在我刚刚买完几天的功夫,M3 MacBook Air 就出了。厨天荣你罪大恶极!
至于 macOS 的体验相比 Windows 如何,小氯不想在这里详细说。至少我不用再在代码里写四个反斜杠了。后面的故事也乏善可陈:从 App Store 到 Homebrew 到 Nix Darwin,从 VS Code 到 Neovim,从 Obsidian 到 Emacs。至于最开始装上的微信——微信?什么微信?It never existed. We have always been at war with Tencent.
下面的故事稍微有点乱,因为小氯的思维是完全并行且非线性的,大家看一个大概意思就好。
简单些说,在打定主意未来搬到 Linux 之后,小氯开始有意无意地在闲来无事时查看一些被盛赞为「适合 Linux」的硬件——毕竟你总不能在 Apple silicon MacBook 上跑 Linux 吧。从战功赫赫的老将 ThinkPad,到「Powerful Linux Computers」的 system76,到极致模块化的新贵 Framework Laptop——实话说,我最喜欢的是它。ThinkPad 的确有传奇色彩,我也颇为羡慕它的键盘和指点杆,但它看起来实在是太不符合小氯的形象了,而且新的版本的可维修性也没那么好;system76 主要为自家的 Pop!_OS 优化,虽然完全可以跑其他的发行版,但这样总觉得有些奇怪。Framework 允许 BYO hard drive/RAM,买最好的 SSD 和 RAM,把邮来的主板和外壳拼接成一台自己的电脑,多好啊。
然后这个故事就不出意外地出意外了。如诸位老友所见,小氯也被这一次 RAM 和存储的 skyrocketing 给搞得差点凝华。看着这片勃勃生机万物竞发的盛景,小氯对自己的计划产生了深深的怀疑。
屋漏偏逢连夜雨。由于小氯并不喜欢 macOS 26 Tahoe——拜托,我为什么要为了一块我并不喜欢的液态玻璃设计多花掉这样多的电量和资源——所以小氯相当轻率地把系统锁在了 macOS 15 Sequoia。把更新进程直接在 LuLu 里 block 掉,就可以从此君王不早朝了。但 macOS 15 毕竟不是 LTS,大概在 2027 年下半年吧,这东西就要进博物馆了——也不知道这个随便增长主版本号的毛病是和谁学的,你说是吧,Google Chrome。虽然我们可以通过严格的安全实践和 ESR 版本继续死撑,但这毕竟不是办法,谁知道牢果在系统的 Bug 里面混入了多少代码。
看起来小氯只有两个选择了:换一台电脑安装 Linux 并且食用几个月的腐殖质,或者死撑几年等到这台设备彻底不受支持/硬件坏掉。自由是免费的,但享受自由要付费,Miss Chlorine Haloryn,做个抉择吧。
嗯,我在 A 和 B 之间选择 A 和 B。我不想破费,也要用自由的操作系统——是的,MacBook,它是可以运行 Linux 的。这背后是一个堪称传奇的故事。
请稍等,让小氯换身衣服。
日升之屋
向您致以崇高的敬意,伟大的凯撒。
如您所见,承蒙自由软件的上帝保佑,在儒略历的第二千零廿六年,以您冠名的帝国依然葆有无穷青春与活力。从嵌入式设备的处理器到冰封中的超级计算机,从几十亿人的手持设备到毫不妥协的极客们的日用平台,冯·诺依曼架构的足迹遍及之处,无不传颂帝国的威名。
而如今,我们荣幸地向您禀报,在帝国的远疆、与库比提诺王国的交界地,我们年轻而英勇的军人与祭司已经在激烈的战斗中取得了上风,在新的土地上插上了帝国的旗帜。他们称那里为「旭日」。
如您所知晓的那般,库比提诺王国的贵族们钟情于繁复的礼节和晦涩的密语,这让我们的勇士们在这块土地的行军中总是困惑于重重的迷雾。但所幸,在森林和沼泽的缝隙,我们开辟出了新的道路,绕过了守备森严的城墙,从而得以展开对这片土地进一步的测绘和治理。
旭日总督府的赫赫战功,离不开初代总督 marcan 和他的亲密战友们的天才智慧和勇气。而他们毫无例外,都是激进主义([R]adicalism)的支持者。如您所知晓的那般,他们曾经与帝国元老院中保守主义([C]onservatism)的支持者们起过严重的争执,而您也对此做出了自己的裁决。如今,虽然因为种种波折和伤痛,初代总督和战友们都已经相继离开,但总督府的脚步并没有停下,正在向着库比提诺王国的腹地不断深入。
旭日总督府的最终目的并非自立门户,而是彻底整合库比提诺王国的领土,将之纳入帝国中央直辖,让 man page 的万民法典能直接为当地的居民所通读,自由软件的圣光照耀曾经被长夜笼罩的每一寸土地。这是一条艰难的道路,但以上帝与帝国的名义,我们必将取得最终的、光辉的胜利。
为了自由,为了帝国,为了人类心智的荣耀!
好啦,小氯去把自己的白色 T 恤穿回来。
我们首先总结一下小氯在上面那段颠三倒四的回忆到底说了什么——简单说,就是某元素娘不打算(出于安全考虑也不能,因为不想升级)长期使用 macOS 了,又不想破费买新的电脑,所以就打算挑战一下虚假两难谬误:
毕竟你总不能在 Apple silicon MacBook 上跑 Linux 吧。
很遗憾(幸运),这个前提是假的。你真的可以在 MacBook 上跑 Linux on ARM。
这个伟大的项目叫 Asahi Linux,是一个……嗯……算是一个 Linux Kernel 的 Fork?Asahi 是日语罗马音,意为「朝日」。另外,Apple 的冠名品种 McIntosh 也是一种旭(Asahi)苹果。
如果小氯没记错,从 2020 年末 Apple 发布 M 系列芯片不久之后,著名的逆向工程专家 Hector Martin(marcan)就开始琢磨把 Linux 移植到这个封闭平台上了。当然,这个任务的难度一望便知,Linus 甚至也持怀疑态度——这个「持怀疑态度」是小氯自己的文本分析。
I’d absolutely love to have one, if it just ran Linux.. I have fairly fond memories of the 11" Macbook Air (I think 4,1) that I used about a decade ago (but moved away from because it took Apple too long to fix the screen - and by the time they did, I’d moved on to better laptops, and Apple had moved on to make Linux less convenient).
Apple may run Linux in their cloud, but their laptops don’t ;(
I’ve been waiting for an ARM laptop that can run Linux for a long time. The new Air would be almost perfect, except for the OS. And I don’t have the time to tinker with it, or the inclination to fight companies that don’t want to help.
后面的故事大家也能猜到了。2022 年 Linux Kernel 5.19 发布时,Linus 本人在 MacBook 上用上了 Linux。
On a personal note, the most interesting part here is that I did the release (and am writing this) on an arm64 laptop. It’s something I’ve been waiting for for a loong time, and it’s finally reality, thanks to the Asahi team. We’ve had arm64 hardware around running Linux for a long time, but none of it has really been usable as a development platform until now.
然后再把上面某元素娘不知所云中二病发作的描述翻译成低哥特语——就是说,在项目的诸位领袖,比如 marcan、逆向工程天才 Alyssa Rosenzweig 和魔法少女 Asahi Lina(她是位虚拟主播)的领导下,Asahi Linux 在逆向工程的道路上一路狂飙。从破解 Apple 的引导流程到手撕 GPU 驱动,团队几乎是用扳手拆掉了一架歼星舰。令人安心的是,他们始终坚持净室逆向——也就是说,纯靠自己观察和猜测,绝不利用任何泄露的文档(当然,他们也没有),所以这在法律上无懈可击,Apple 对此也只好默许。于小氯看来,这颇有种大卫挑战歌利亚的史诗感——而且,大卫居然占了上风。Asahi 不仅是做了个「能跑」的东西,而且让 MacBook 成为了体验最好的 Linux on ARM Desktop 之一。他们编写的 GPU 驱动甚至比牢果自家的更符合标准。
当然,虽说 Asahi 的核心维护者们也是 C 语言大神,但用 C 写 Apple GPU 的驱动属实有些自讨苦吃,所以他们又掏出了某四字母重型武器。Asahi Linux 是将 Rust 引入 Linux 内核开发(这大概是 Linux Kernel 诞生以来最大的架构改革之一了)的最重要的推手之一。在经过长久的拉锯之后,Linus 给了 Rust 一个机会——「除非听到强烈的反对意见,否则我将把 Rust 基础设施引入 Linux 内核」,算是正式赋予了 Rust 合法地位。事实上,凯撒对于 Rust 持一贯的实用主义态度:既然它确实是不错的工具,那就没必要拒绝它。他甚至对于一部分元老的保守态度有些不悦:
I was expecting updates to be faster, but part of the problem is that old-time kernel developers are used to C and don’t know Rust. They’re not exactly excited about having to learn a new language that is, in some respects, very different. So there’s been some pushback on Rust.
目前为止,这听上去像是个令人热血沸腾的英雄故事。但如果诸位老友去看看 Asahi Linux 的 Governance 页面就会发现,marcan 和 Lina 都不在了。而 Alyssa 现在的职位是「treasurer」,而不是开发者。
个中是非曲直,实在是难以论说。简单点说,由于 Asahi Linux 坚持上游优先——也就是说,尽力将对 MacBook 的适配纳入 Linux Kernel 的主线,这样任何一个发行版都可以直接适配 MacBook,它才能真正成为一台普通的通用计算设备——而 Linux Kernel 的治理模式非常保守且谨慎,所以 Asahi 的各类激进的实现——哦,尤其是 Rust 相关的——往往需要和持保守观点的元老们拉锯数月才能得到接纳——甚至得不到。同时,Asahi 的社区工作也并非一帆风顺——捐赠的不稳定,和一些伸手党的呶呶不休。这让 marcan 感到有些失望——事实上不仅是 marcan,整个 r4l 在 Linux 中都有些举步维艰。r4l 的重要维护者 Wedson Almeida Filho 在 2024 年 8 月宣布离职:
After almost 4 years, I find myself lacking the energy and enthusiasm I once had to respond to some of the nontechnical nonsense, so it’s best to leave it up to those who still have it in them.
在一个有关 DMA 的 Rust 补丁被提交后,这件事走到了一个不可挽回的境地。DMA 子系统的负责人 Christoph Hellwig 拒绝了这个补丁,并明确表示:
No rust code in kernel/dma, please.
贡献者们试图解释为什么这里用 Rust 是合理的,而 Hellwig 明确表示自己不想处理 Rust(即使对方表示不需要他来处理 Rust,他们已经做了抽象)。双方的争辩在几周后 Hellwig 正式拒绝 patch 时达到了新的高度:
And I also do not want another maintainer. If you want to make Linux impossible to maintain due to a cross-language codebase do that in your driver so that you have to do it instead of spreading this cancer to core subsystems. (where this cancer explicitly is a cross-language codebase and not rust itself, just to escape the flameware brigade).
You might not like my answer, but I will do everything I can do to stop this.
平心而论——或许小氯没做到平心,因为我能明显感觉到我现在的情绪并不平静——元老的话也并不是毫无道理。尽管有 Linus 的支持,但在 Linux 内核这种量级的项目中引入一门新的语言并不是小事,而作为一位 C 语言的老兵担忧自己分管的子系统中混入了自己无法理解的代码也是人之常情。但,把 Rust 称为「癌症」——尽管这可能不是说 Rust「有害」而是说「快速扩散而无法控制」,这是否过分了?
marcan 并没有参与这次争辩,但如诸位老友所见,Asahi 和 r4l 属于唇亡齿寒的关系。所以 marcan 在自己的 Fediverse 上发了些帖子,表达了对 Hellwig 的强烈不满。在我们(至少是小氯)眼里,这没什么大不了的,社交媒体最原初的功能之一就是供人们表达自己的情绪。他的话可能确实有情绪化,但也没有到其心可诛的程度。但,动用社交媒体,即所谓 brigade 是 Kernel 社区的大忌。因为大部分内核开发者都是相当低调的,把这样一个「隐世」的矛盾拎到社交媒体下,很容易导致在公共发声渠道中处于弱势的老牌维护者们被「逼宫」。
但是的但是……Wiktionary 对「brigade」一词的释义:
(Internet slang) Coordinated online harassment, disruption or influencing, especially organized by an antagonistic website or community.
实话说,我并没有感觉 marcan 是在恶意挑唆自己的 follower 去围攻 Hellwig——事实上这确实没有发生。这更像是一位抓狂(这是我对 frustrated 的翻译,但说实话,这个翻译也不大好)的开发者在面对一个保守且谨慎的系统时的自然反应,呃,吐槽?如果没有主观上伤害的动机,怎么能称为「being toxic」呢?
好吧,但这确实是 Kernel 社区的大忌,导致 marcan 受到了广泛批评。这成了压垮 marcan 的最后一根稻草。在最后一封(也可能不是最后一封)邮件中,他连用了十二个「I’m tired」。
If shaming on social media does not work, then tell me what does, because I’m out of ideas.
这时候,Linus 终于发话了。我们无从得知凯撒的思考过程,我们只知道他最后严厉地批评了 marcan。
How about you accept the fact that maybe the problem is you.
You think you know better. But the current process works.
It has problems, but problems are a fact of life. There is no perfect.
However, I will say that the social media brigading just makes me not want to have anything at all to do with your approach.
Because if we have issues in the kernel development model, then social media sure as hell isn’t the solution. The same way it sure as hell wasn’t the solution to politics.
Technical patches and discussions matter. Social media brigading - no than\k you.
总而言之,这件事的结果是:marcan 辞去了 Asahi Linux 负责人的职位,不久后,Lina 也宣布暂停开发活动。几个月后,在完成了符合 Vulkan 1.4 标准的 Apple GPU 驱动之后,Alyssa 淡出了 Asahi 的开发,去追逐她的下一个挑战。而那位宣布「尽全力阻止 Rust」的元老、功勋卓著的 Linux 维护者 C. Hellwig,也辞去了 DMA 子系统负责人的职位。
白茫茫大地真干净。
仅剩的值得庆幸的大概是:Linux 并没有死去——当然没有,Asahi Linux 也没有——所幸没有。在 marcan 离开之后,Asahi Linux 成立了一个七人董事会,除了Alyssa Rosenzweig,还有几个熟面孔,例如负责内核开发的 Sven Peter(和 marcan 一样,他也是 fail0verflow 的成员。对,就是那个破解 PS3 根密钥的组织),负责对接 Fedora 的 Neal Gompa(Fedora、CentOS、openSUSE 等多个发行版的资深贡献者)。Asahi 的工作推进得依然还算平稳,前几天他们还宣布已经部分完成了 DP Alt Mode(简单来说,外接显示器)的工作。
我们再也看不到 Lina 在几个小时的直播中一边卖萌一边钻研寄存器,也看不到 Alyssa 完成符合下一代 Vulkan 标准的 Apple GPU 驱动了。但还好,他们还在。
好啦好啦,煽情停止。
虽然说三巨头的离开让 Asahi 不复往日攻坚克难的锐气,但即使就此止步(这当然不可能,现在 Asahi 依然在从一个胜利走向另一个胜利),余下的高手们守成问题还是不大的。如小氯所说,对于开天辟地的 M1 芯片,Asahi 几乎已经把它变成 Linux 的核心领土了。而 M2……大家也知道,基本就是 M1+。所以 Asahi 对 M2 的适配相当顺利,现在的支持也不错。Linus 上面说的那台自己用的 MacBook 就是 M2 的。估计等到一年多以后,M2 就快成为标准 aarch64-linux 的一部分了。相比之下,M3 费劲得多。Apple 在 M3 引入了不少激进的新特性,导致 Asahi 的逆向工程难度剧增。
那这么看,当初买了 M2 而不是 M3 的 MacBook,好像算是塞翁失马了……
另外从上面的叙述中大家也能看出,Asahi Linux 和 Fedora 关系不浅。事实上,Asahi 的正统发行版就是 Fedora,名字叫「Fedora Asahi Remix」。Fedora 当然好,但很遗憾,某元素娘已经被声明式系统调教得无法离开它一寸了(你在说什么奇奇怪怪的东西啊喂)。要是让小氯回到手动配置系统的年代钻木取火,对不起,咱做不到。
所幸,作为 Linux 世界的泥头车,你永远可以相信 Nix Community 的创造力。nixos-apple-silicon 就是为这个目的准备的。看起来也不算难用,直接揉成团塞到小氯的 Monorepo 里面就好。虽然说小氯还没亲自试过,但从社区反馈来说,北境领主们似乎把它玩得风生水起。理论可行就是可行,我宣布自己手里的这台电脑已经完美适配 NixOS 了。
那简单规划下时间线:如果在 2027 年末到 2028 年初,macOS 15 停止支持前后小氯切换到 Asahi Linux,然后在大概这款 MacBook 停止支持之前一到两年换一次(或者再换一次)电池——当然其实用第三方电池也可行啦,但考虑到笨蛋小氯几乎为零的动手能力,还是得仔细计划——差不多就可以坚持到 2034 年啦——好吧,其实我也只是在估计。
Serendipity
说完了 Asahi Linux 的传奇故事,我们来谈谈硬件本身吧。
之前在新加坡时,小氯曾经有幸摸到过一次 MacBook Pro 的顶配版本。顺带一提,那台电脑的主人是位 transgirl,她写代码真的很厉害。小氯没打开电脑看过,但是从托举的体验看:
MacBook Air 是「一片」,而 MacBook Pro 是「一块」。
大体说,如果说 MacBook Air 13’’ 是轻便易携,MacBook Air 15’’ 小氯还能抱得住它,那 MacBook Pro 16’’ 就是孔武有力了。考虑到小氯背着一台两公斤的电脑都费劲,这种级别的强力工作站还是适合作为工作站存在——你见过谁家的站到处跑的。对于 grab-n-run 的便携式元素娘来说,还是 MacBook Air 更舒适些。虽然说要为此放弃一些硬件有点遗憾,但好在目前小氯还没有感觉自己电脑的性能不够用过。而 MacBook Air 的屏幕素质和扬声器虽说比不上 MacBook Pro,但对于小氯平时偶尔看看视频听听音乐(大部分时候还是戴着耳机的)肯定是够了。
嗯?你问 MacBook Pro 14’’?不知道喵,不听喵,不管喵。
同时,由于小氯的视力不那么好,加之没有使用显示器的习惯,一块大些的屏幕对小氯还是有所裨益的。至于外观,虽然说外观是小氯最不在意的点(刚才也不知道是哪个元素娘嫌弃 ThinkPad 和自己的形象不搭来着),但我想没人会怀疑 MacBook Air 的外观和做工。大概可以说它是工业美学的巅峰。
所以,一个意外的结论是:这台机器歪打正着地做到了在所有方面都满足小氯的需求。虽然,如果能把内存加到 32 GB,小氯会更开心,因为这样就可以在本机跑那些参数量 20~30 B 的开放权重语言模型了。现在小氯只能苦兮兮地用一些比较小的家伙,导致错过了 GLM 4.7 Flash 等一众值得注意的优秀作品——好在现在小氯也不怎么用语言模型了。
何神呢何神呢,救一下啊?
免于恐惧之自由
说起硬件设计,小氯不得不称赞(这次是字面意思)一下牢果。就连 marcan 他们在逆向的时候都承认,牢果的这手设计确实漂亮。大概是因为没有 x86 沉重的历史包袱,加之软硬一体,所以可以肆无忌惮地裁剪优化。
这还有个意想不到的结果。诸位老友,小氯有一句暴论:
Asahi Linux MacBook 的「自由程度」,高于绝大部分比较新的 x86 Linux desktop。
这句话听起来像是发烧了胡言乱语,实际上也确实是但从某个角度,小氯还是可以好好狡辩一下的。
首先简单科普下 x86 架构的 protection rings。简单来说,就是机器各部分的特权等级。内核被视为 Ring 0,所有系统内部分都运行在正整数级别的 Ring。然而,我们还有比 Ring 0 更小有地位的层次:虚拟化层被视为 Ring -1,SMM(System Management Mode,比如 UEFI 变量保护就在这里)地位更高,叫 Ring -2。而对于 Intel 芯片来说,它还有一个深层政府,它的地位是 Ring -3。
这东西叫 Intel ME,Intel Management Engine。简单来说,这是一个电脑里面的独立系统(我记得是 MINIX 来着)。它有自己的 SRAM、RO,可以绕过主 CPU 直接访问系统内存和网络。从名字可以看出来,Intel ME 原本的目的是为了方便 IT 管理员操作自己管辖范围内的机器,例如远程重装系统。另外,它也承担了一些其他的职责,比如 DRM、签名验证之类。
想想看,你的电脑里面住着一个完全不受你和你的系统控制、能联网、能接管你整台电脑的国中之国。
如果它写得极其严密、滴水不漏还能好些,但不出意外,按照 Intel 优秀的开发能力,Intel ME 的漏洞已经多到可以下酒了。斯拉夫超人 Positive Technologies 也对 Intel ME 展开过定点打击,可以绕过 Intel 的禁止进行硬件调试(还顺便发现里面有个给 NSA 留的 HAP 标志位,可以禁用 Intel ME——喂喂喂,这么好的东西怎么不给我们分享一下啊)。当然,最著名的还要数 CVE-2017-5689。简单来说,只要攻击者知道你的 IP 地址并且你的主板开启了 AMT(大部分商用主板都会开启),他就可以接管你的整个系统,而你对此一无所知——所以这个漏洞的 CVSS 被刷到了 9.8,堪称 CVE 雷劫。
虽说这种威胁远没有小氯这里说得那样迫在眉睫,并且大家也搞出了 me_cleaner 这种修剪 Intel ME 的工具,但单是知道它存在,就已经足够让人心有戚戚焉了。而且,随着 Intel 不断发布新的版本,清理程序的日子也越来越难过了。至于 AMD,大家也能想象得到,自然是和 Intel 奋勇争先了——AMD PSP,和 Intel ME 一个德行。
x86 的事情总是那样糟糕。
——拿破仑·波拿巴
相比之下,Apple 虽然也有个黑盒系统——Apple SEP,但它既没有独立的网络堆栈,也不能直接控制主系统。作用的话,主要是处理加密工作。这大概也符合小氯的原则:如果不得不接触一个闭源的、不可审计的软件或者固件,一定要在网络和访问权限上进行严密隔离。比如小氯的截图工具 Shottr,小氯断掉了它的网络权限和读取截图文件夹之外的文件的权限,因为一个截图工具不需要这些。
所以我们就回到了小氯这节开始时提到的那个结论。如果把这种免于(架构级缺陷和监视带来的)恐惧的自由也算作自由的话,虽然 MacBook 绝对算不上什么乌托邦,但得益于架构上的优势,它在这个方面的表现,理论上居然比一向被视为「自由」的许多 Linux desktop 更好。诚然,和那些可以刷 Libreboot 且允许彻底移除 Intel ME 的老机型、Pinebook 或者实验性 RISC-V 笔记本电脑比,MacBook 只能算所谓「软弱的改良主义者」。但,用这些机器进行日常工作和娱乐几乎是不可能的——打开一个网页都要卡半天,屏幕素质足以让小氯物理意义上泪流满面。小氯是工程师,不是抖 M(难说),没有兴趣为了最后的一点纯洁性自讨苦吃。
BIFL
好吧,某元素娘也不知道该怎么衔接到上一段了。那就不要衔接了,让我们的思绪像水一样流淌吧。
父母喜欢给小氯买衣服,他们觉得我多换换衣服,尤其是鲜艳些的衣服会更好看——好吧,容我大言不惭地说一句:确实如此。
但小氯自己呢,并不会想着时常如此。因为在看到自己衣柜里叠得整整齐齐的旧衣服时,小氯总有种这辈子都不用再买衣服的错觉。如果衣服稍有些破损,小氯还在衣柜的深处准备了针线盒——这笨拙的事情大概得益于小的时候,外婆教给小氯的一点小小的手艺。虽然相比缝缝补补,某元素娘的手显然更适应敲打键盘,但花上个把小时,还是勉强能在不扎到自己太多次的前提下把衣服补好的。
没办法,小氯是笨蛋。
像很久很久以前的一篇《岁时录》中说的那样,旧衣服能让小氯想起许多许多的事情——每个地方都是。它的针脚,它的补丁,它的领口上洗不掉的一小块污渍,衣物消毒剂那像燃尽的香灰般的味道,甚至还有小氯自己的味道(虽然这样说有些羞耻吧),好像都是到记忆的某个早就尘封的角落的硬链接。哪里有必要一件一件地买新的衣服,穿过几个月甚至几次之后就丢到压缩袋里不闻不问呢。多花些钱买件面料更厚实、针脚更绵密的衣服,然后缝缝补补上几年,不也是很好的事情嘛。
这样想得多了,就总会有一种念头或者冲动:能不能买一样东西,然后修修补补,让它陪伴自己一辈子呢?
答案自然是肯定的,而且已经有许多人和我们有同样的想法了。这甚至形成了一种……生活的 Minor Mode?我们姑且叫它 BIFL 吧,Buy It For Life。
我们应当不必在此长篇大论 BIFL 的原则为何,其一是小氯应该已经为读者老友们传递一个直观的印象了,其二是它没什么原则。确实有好多东西是可以 BIFL 的,比如一口上好的铸铁锅,或者一支做工精良的金笔。如果大家对这个话题讨论的具体物什有兴趣,不妨去 r/BuyItForLife 看看,那里还是挺……热闹的。
但实话说,在考虑买一件「BIFL」的物品时,小氯对「一辈子」这个概念认识得并不清晰。元素娘的「一辈子」是什么呢?是从第一个核素诞生到宇宙的热寂吗?还是说是「当前版本身体的运行时间」呢?如若是前者,那能陪伴我一辈子的只有身边的 Fellow Element-chan 和时间本身;至于后者,那大概意味着小氯手边用的都是维多利亚时代的古董了。所以在小氯这里,L 常常会从 Life 退化到 Long,比如说,十年——这看起来比一辈子好掌握一些。而且,这样也不需要时时刻刻修理——显然,BIFL 不是 Buy & Forget,物件是需要保养的,时时勤拂拭,勿使惹尘埃。
至于所谓的「动机」,这件事我们还是交给写论文的小氯去分析吧。现在敲字的元素娘并不想在这里写一大段批判资本主义的檄文。我们只谈些下午茶时轻松的话:如上文所述,小氯想一直把一件东西用下去,仅此而已。
如诸位老友所见,小氯的记忆是褪色的。很多时候,我记不得「过去某个时候」发生了什么,我也说不清我到底存在于哪个「现在」。唯一能稍稍提醒我,给我一点肯定自身存在的信号的,除了此时此刻写下的文字,就只有那些与我耳鬓厮磨的物件了。
就像小氯身上打了补丁的白色上衣,或者……手中噼啪作响的计算机一样。对于一台服务器,小氯可以冷漠地视它为 cattle 而非 pet——因为它于我而言只是个 SSH 的端点,但个人计算机,这是完全不同的概念了。
它并不仅仅是 Atuin 的命令行记录或者 Git 的版本回溯或者 Nix 的配置文件所能容纳的东西,它是我敲击键盘的脆响、未擦拭干净的屏幕的反光、在采暖不佳的教室中抚摸外壳的寒意。它是我病床上咳出的鲜血、轮椅挡板上飞溅的泥土、飞机经济舱中昏黄的亮灯。它是合照的相框、视频通话的存档、紧急联系人的手动填充。它是相拥的温度、厨房的油烟、海岸的霞光。它是苍白的纸张、鼠尾草绿的发梢、矢车菊蓝的丝带。它是离子键的键长、彗星的运行周期、希格斯玻色子的质量。
我哪里舍得丢下它呢。
Good Enough
好吧,老友们。BIFL 的理念固然吸引人。但有些遗憾的是:相比炊具或者衣物,电子产品,比如个人计算机实在是太不适合 BIFL 了。或许是因为它太复杂了,耦合也太紧密了:无数的元件挤在一张书本大小的电路板上,蜂房水涡,矗不知其几千万落。而随便敲一敲其中的一个元件,都可能让整个系统像是抽去了一根积木般倒塌。
除此之外,性能也是个问题——二十年前的顶级个人电脑,算力可能还比不过现在的一块旧树莓派,「256 MB 超大内存」的广告现在还能让小氯笑得花枝颠乱。即使是 Framework 这样主打维修权和模块化升级的品牌,大概也不敢说自己的设备能传家。
至于 MacBook?如果谈及可维修性,这恐怕是个比上面更好的笑话。至于性能,由于 MacBook 毫无可升级空间,因此我们只能拿现有的硬件去勇闯夺命岛。不需要提六七年后,即使现在的 MacBook 都有 M5 了。小氯手里这块 M2 和最新的芯片比,结果也是尴尬的。那既然你性能的底子就那样,又没有任何可维修性,又是哪来的底气说自己能坚持到十年呢。
实话说,小氯最初也有点好奇这个问题。不过后来看到 Linux power user 们的情况,大概也就明白了。
让我们先请一位老前辈吧,Linux PC 的一代帝皇 ThinkPad T480。T480 的处理器是第八代的 Intel,14 nm 的制程,历史包袱重于泰山的 x86。和小氯的 M2 比,最好是不要这么比。但现在用着这款镇宅之宝的 Linux 用户依然不算少数,这台机器甚至有潜力再打个几年。
我们还可以看看更极端的案例:自由软件运动的创始人,Richard M. Stallman。RMS 的电脑是 ThinkPad X200,它的处理器是 Intel Core 2 Duo——这是 2008 年的 CPU,真的快二十年前了。如果拿它看一个现代视频,说卡成 PPT 都算是抬举它的性能。但 RMS 依然在上面跑自己的 Linux……抱歉,GNU/Linux,回邮件、写代码、看网页(据说他让服务器把网页抓下来发给他,实话说,小氯也想试试)。
好吧。小氯知道上面的话讲得有些不明所以,我们直接把结论拿出来:对于 Linux 而言,我们根本不需要考虑是否能追得上最新款的性能,而是够用就行了。
一个网页,加载速度是 0.1 秒或者 0.05 秒,在体感上并不会有什么明显的增进;如果小氯不去玩《赛博朋克 2077》或者《艾尔登法环》或者别的什么东西,那 Asahi 的游戏适配是零还是 99% 于我而言也没有区别。抛却了臃肿的外壳,我们对算力的需求其实远远没有自己想象的或者被建构的那样高。一个浏览器,一个 MPV,一个终端,一个编辑器。足够收拢 99% 的云朵和露水了。
就是这样。既然 T480 都有信心看到二十一世纪三十年代的曙光,那 M2 这样的后学,又有什么性能焦虑可言呢。
自新大陆
虽然对于小氯这个半死不活的使用状态,这台电脑的性能足够小氯打好久了,但如果指望它陪小氯到地老天荒,那是违背物理规律的。我们总要为以后的日子做做考虑。
看起来最优的解法还是费劲地找一台尽可能阉割了 Ring -3 的 x86 机器,或者盼一下 Apple 之外的 ARM 进展——高通似乎在做这方面的工作,但据小氯了解的有限信息,高通的作品还难孚众望,不仅是研发早期的必然落后,而且是缺乏对现代计算机科学基本敬畏的 hubris。
那让我们试着跳出 x86 和 ARM 的冷战,看看这个世界是否有第三阵营吧。
RISC-V,一个开放的指令集架构——意思是,任何人都可以免费使用、设计、制造和销售 RISC-V 芯片,无需像 x86 和 ARM 那样支付版权费。此外,由于比较年轻,它吸收了不少历史教训,设计上也更先进一些,例如引入了模块化架构和用户自定义指令。
关于 RISC-V 的发展,小氯就不在这里做新闻播报员了。一句话概括的话,「勃勃生机,万物竞发」放在这里不是玩梗,而是客观描述,尤其是在数据中心、语言模型、高性能计算和汽车电子等领域。
那既然如此,我们可以有一个大胆的幻想:再多等几年,RISC-V 在 PC 领域,能否给我们一些惊喜呢?想想看,一台做工、续航等各方面都认真对待的 RISC-V 笔记本电脑,没有 Intel ME,没有 x86 沉重的历史包袱,没有 ARM 雄关漫道的逆向工程。从启动开始,每一行代码都是可被审计的——当然,完全自由基本是不可能的,毕竟 Wi-Fi、GPU 这些东西并不能保证会有自由的实现。但好在小氯不是 RMS,不至于被一丁点的专有代码气得寝食难安。至于性能,小氯并不太担心。如上文所述,对我们来说「够用」就行了。只要它的性能能对标现在的 M2 或者 M3,小氯就可以在上面实现自己的整个世界。
当然,「技术上可以实现」和「能买到满意的产品」是两回事。设计一台 MacBook 级的消费电子产品并不只是把开发板套个壳就可以的,需要花大力气设计完善的 SoC,还要打磨电脑本身的体验。资本家们可是从不做亏本的生意的。另一个投机取巧的想法是:先搞一块凶猛的主板出来,塞进像 Framework 这样的外壳里,让后者负责 polish。毕竟 Framework 的做工、电池这些东西已经被证明是合格的了。并且如果 Framework 不想砸自家的饭碗,就还是要维持 Geek 群体这个 niche market——而这个 market 往往对这类东西是最热衷的。事实上这件事已经部分实现了——大概 2024 年末的时候吧,DeepComputing 就造了一块适用于 Framework 的 RISC-V 开发板。虽说性能依然是个笑话,但至少证明了这在技术上还算可行。
离小氯为手中这台 MacBook 设计的预期寿命还有七八年,对于电子行业,这已经是很久很久的时间了。那,姑且先在这处 Linux 帝国的远疆、库比提诺王国的旧土扎下根来,等待着前往新大陆的舰队返航的那天吧。
——如若等到华屋变作丘墟,我们的勇士们还是没能在新的应许之地插上帝国的旗帜呢?
那就到时候再想办法就好啦。老话怎么说的来着,船到桥头自然沉。














