Agili 的 Hacker Podcast 2026-11-07

Agili 的 Hacker Podcast 2026-11-07

NaN分钟 ·
播放数9
·
评论数0

Libghostty 1.0 发布:终端仿真库走向稳定

从 Ghostty 核心提取的终端仿真库

Mitchell Hashimoto 发布了 libghostty-vt 1.0。这是从 Ghostty 终端应用里抽出来的可移植终端仿真库,用 Zig 编写,对外暴露 C ABI(应用二进制接口)。1.0 意味着库本身和 ABI 都进入稳定状态:遵循语义化版本,承诺严格的 ABI 兼容,发行版打包者和程序开发者可以放心动态链接。

一年前 Hashimoto 写《libghostty is coming》时,Zig 模块刚合并,C API 还不存在,除了 Ghostty 自己没有别的使用者。现在这个库在数百个免费和商业产品里运行,驱动的终端用户数量已经远超 Ghostty 应用本身。

JetBrains 和 Neovim 的采用

JetBrains IDE 的终端已经从 JediTerm 换到 libghostty,覆盖 IntelliJ、PyCharm、GoLand 等,官方报告超过 1250 万活跃用户。HN 评论里有用户说这是明显升级:JediTerm 过去有未支持的转义序列、可视化 bug、输出截断等问题。

Neovim 有一个已批准的 PR 用 libghostty-vt 替换 libvterm,顺带解决了一个存在十年的窗口缩放时滚动缓冲重排问题。KDE 开发者在实验基于它的 Konsole 替代品 Kwi,Vercel 的 Turborepo 用它渲染 TUI 任务输出,Ghostel 把它带进 Emacs。社区绑定覆盖 Rust、Go、JavaScript、Swift、Python、.NET、Elixir、Dart、Java 等语言。

有评论问它和 libvte 的区别。libvte 是 GNOME 终端等一批终端的底层,自带 GTK UI;libghostty 只做终端仿真,不提供界面,由嵌入方自己画,而且实现了 kitty keyboard、kitty graphics、桌面通知等协议。

ABI 稳定性怎么保证

每个对象是不透明句柄,读写值走一小组以枚举为键的 getter/setter,加新值不用引入新符号。新头文件链接旧库时,调用会得到 GHOSTTY_UNSUPPORTED,而不是崩溃或未定义行为。少数非不透明结构体带大小字段,可以往后追加字段。CI 用 libabigail 在 Linux 上对照基线检查 ABI,macOS 和 WebAssembly 用基准类型清单。ELF 平台上每个导出符号都有版本,动态加载器会拒绝加载不匹配的库。

资源使用上,库不创建线程,只通过可定制的分配器分配内存。Hashimoto 在 4 核 8 GB 的 Linux 服务器上跑了 10000 个活跃终端,每个都挂着实时输出 shell;测试里他必须用 dash,因为 bash 的内存占用比 libghostty-vt 大得多,塞不进 8 GB 预算。

HN 上反复出现的误会是:文章说“portable, high-performance C library”,很多人第一反应是这库用 C 写的。实际上它是 Zig 写的,对外暴露 C ABI。

在浏览器里玩《极品飞车:地下狂飙 2》

打开网页就能跑

nfsu2.xyz 把原版《极品飞车:地下狂飙 2》(Need for Speed Underground 2)搬进了浏览器,不用安装,手机也能跑。代码开在 GitHub 的 th0mk/nfsu2-web,核心玩法保持原样,加了联机、修复和一批便利功能。页面底部有 Ko-fi 捐赠入口,作者说明钱用于服务器和开发成本,所有人玩到的游戏一样,没有内购,也没有付费特权。

联机和细节改进

职业模式的自由漫游里能看到其他玩家的车,别人也能看到你。服务器分了几个世界,页面上实时显示主世界 4191 人,另外几个世界分别 162、95、99 人。玩家名字 3 到 15 个字符,可以选一面国旗挂在车顶。同车队的玩家在漫游中永远互相可见,并显示车队专属颜色,车队最多 4 人。

快速聊天做得细:先按 1–4 选组,再按 1–4 选句子,对方看到的是自己语言版本。短语里既有“跟上”“前面的路口右转”这类实用指令,也有“Granny shifting, not double clutching like you should!”这种《速度与激情》台词。存档支持云同步,输入方式覆盖键盘、手柄、方向盘和触屏。

技术上它依赖 WebGPU。Linux 上要打开 Chromium 的 unsafe WebGPU 开关,再补上 Vulkan 相关标志才能跑起来。页面还整合了一批社区修复:宽屏修复、高清 HUD 与地图、2 到 4 人分屏、完整英文字幕、未删减原声,以及在地图上显示 33 场隐藏赛事。

版权争议

网站自己托管游戏资源,还接受捐赠,有评论认为这一步越了线,EA 的律师资源充足,这类项目很难长期存在。也有人翻出 EA 官网的《极品飞车》系列列表,里面根本没有这一作,想买都买不到。围绕音乐授权,有人举了《Alan Wake》曾因授权到期下架的例子,NFSU2 的原声是它的招牌之一,重新发行并不容易。

一位评论者提出具体的修法思路:作品一旦停售,应允许非商业复制和分发,捐赠只能用于覆盖分发成本,不能变成获取内容的前提。反方担心的是后果,这类项目做得越顺,发行商对游戏保存的封锁可能越紧。有个细节被注意到:网站专门留了 legal@nfsu2.xyz 给版权方。

评论里最多的是“居然在手机上就跑起来了”。有人说 iPhone 14 满帧,六年前的 Samsung S20+ 也流畅;也有人报告自己的机器卡到没法玩,开了几个标志之后才正常。

每个 Mac 都带着一份未记录的家庭成员分类器

知识图谱里有什么

macOS 13 起,每个 Mac 都运行两个守护进程:knowledgeconstructiond 和 intelligenceplatformd。它们的任务是建立关于你和你周围人的知识图谱:你是谁、你认识谁、这些人彼此怎么关联、你怎么和他们通信。图谱存放在 ~/Library/IntelligencePlatform,包含 51 个 SQLite 数据库,明文存储,目录受 TCC(macOS 的隐私权限框架)完全磁盘访问保护。核心是 graph.db,一个三元组存储,每行是主语、谓语、宾语,用 181 个实体类和 278 个谓词描述关系。

数据来源覆盖通讯录、照片人脸、日历、家庭共享(包括每个成员的年龄)、健康 App 里的医疗 ID 紧急联系人、Siri 建议从邮件和消息中找到的事件和联系人、App Intents 捐赠的数据、已安装应用。旁边还有独立的表记录谁和谁在照片中一起出现、通讯日志(谁、何时、哪个应用、方向,不含内容)、位置和移动、设备信号。

大部分谓词靠复制填充:通讯录里的名字、日历里的参会人。有推断价值的行来自模型。一对 XGBoost 分类器从 144 个特征判断谁是家人;两个嵌入模型是系统判断两条记录是否同一人的十个信号之一;照片中的 12 个分析器根据谁和你一起出现在照片里、在哪些旅行和节日,给伴侣、父母、子女、同事和朋友打分。每一行都带一个 0 到 1 之间的置信度。

推断如何工作

家庭分数单独存放在 entityTagging.db,每人一行,17 个关系列,从 family 到 mother 到 coworker,每天重新计算。144 个特征分三组:20 个关于身份(同姓、同家庭地址、iCloud 家庭标志),40 个关于通信(按星期几和时段的条件概率),84 个关于照片(按星期几、时段、家、工作等条件共现概率)。其中一个特征的名字是 photosPersonPosteriorProbabilityGivenSaturdayNight,出现在一个已发布分类器的输入列表里。

作者开源了 iKnow,一个本地仪表盘,用 Python 标准库实现,绑定 127.0.0.1,以只读方式打开数据库。十几个页面:人际关系图、社交图谱、亲属记分卡、人脸索引、一年联系人记录、日历层、已撤回内容页面、设备指纹页面。作者从自己的存储中关联出的信息包括:家里有孩子、大致年龄、孩子上哪个托儿所和两个联系电话、家庭哪天几点会在哪里、谁会在场,以及机器上装了什么,包括密码管理器。

删除不会立刻清除

实时图谱会忘记:删掉联系人,下一次运行整表替换。但旁边有 expired_stable_graph 表,撤回的行移到那里,保留置信度和来源。从存储的清理水位线看,大约 48 小时后消失,但作者在自己 Mac 上能读到很旧的记录。结论也可能比证据活得更久:作者 Mac 上,记分卡仍在给图谱前一天已丢弃的两个人打分。

社区争议

HN 上的讨论从几个方向展开。有人对数据收集本身感到疲惫,说曾经会觉得这很迷人,现在只觉得需要喘口气。有人问为什么关掉 Siri 和 Apple Intelligence 之后收集仍在继续。有读者报告,一台只用来在厨房查菜谱的旧 MacBook,登录 iCloud 后就能看到 iPhone 上所有消息应用的联系人,包括 Signal。

关于数据是否真的“留在本地”,讨论很激烈。有人指出 iCloud 备份默认开启,不是端到端加密,上传几乎整个设备内容。也有人纠正说照片不在 iCloud 备份里,Advanced Data Protection 可以提供端到端加密备份。

GDPR 是否适用,评论者意见分歧。一种观点认为,个人数据转用于构建知识图谱未经数据主体明确同意,违法。另一种观点认为,数据完全在用户自己的机器上处理,Apple 不接触数据,GDPR 不适用。

不是所有评论都持批评态度。有读者说这个功能有实际用途:本地 LLM 需要上下文,当你说“给 James 发短信”时,它知道是哪个 James。有人指出 Cortana 十二年前就解决过这个问题——不认识老板是谁就问一次,存下来。还有人说,功能本身有用,问题在于应该选择加入,并且对存储方式有保证。

作者在评论中承认“只有技术部分是 AI 写的”,这引发了大量批评。有读者说读到一半就放弃了。也有人为作者说话,认为研究内容足够有价值,文字风格不应盖过它。

古 DNA 证实哥特人的斯堪的纳维亚起源

从 Scandza 出发的传说

公元 551 年,哥特历史学家 Jordanes 写下自己民族的起源:哥特人从一座叫 Scandza 的冰冻岛屿乘三艘船出发,5 个世纪前在波罗的海南岸登陆,随后一路南下到黑海。从 20 世纪中叶起,多数历史学家把这段叙述归入“幻想”一类。他们最多承认,哥特语言和文化由少数精英战士从斯堪的纳维亚或波兰北部带来。

《Nature》最近发表的一项泛欧骨骼 DNA 调查发现,波兰北部在公元 50 年左右出现首批哥特风格器物时,祖先成分发生了重大转变,转向类似铁器时代瑞典的谱系。莱顿大学语言学家 Guus Kroonen 是论文合著者,他说:“我们看到几乎完全的人口更替。这是从斯堪的纳维亚到波兰最初发生大规模迁移的强烈信号。”

基因证据链

今年早些时候《Genome Biology》的论文显示,公元 175 至 350 年,波兰东南部哥特式墓葬中持续存在强烈的斯堪的纳维亚基因成分,这与 Jordanes 所说哥特人抵达后继续南迁今乌克兰一带相符。上个月《Cell》的论文报告,500 年后包括苏维汇人和西哥特人在内的部落征服西班牙时,北欧祖先成分仍存在于这些迁徙队伍中。

华沙大学考古遗传学家 Martyna Molak 领导的研究发现,波兰南部墓葬中一半测序对象有类似斯堪的纳维亚的血统。伦敦国王学院历史学家 Peter Heather 说:“这是相当可观的移民成分。”在随后几个世纪向黑海和罗马方向推进的过程中,Max Planck 进化人类学研究所考古遗传学家 Joscha Gretzinger 说,“模式从大规模移民变为精英传递”。

支持哥特起源故事,不意味着所有传说都该当真。Jordanes 的书里还有哥特人征服特洛伊、会见埃及法老的轶事,这些不太可能被古 DNA 证实。

学术政治的回声

HN 用户讨论为什么当初会怀疑这个说法。dmix 和 senderista 把答案指向学术政治。senderista 说,这是二战后“陶器不是人”观念的余波,它是对 Kossinna 等被纳粹青睐的种族主义考古学家的反应。2010 年代古 DNA 研究支持大规模移民时,考古学家和人类学家有不少抵制,最终不得不承认历史语言学家一直是对的。

mjw1007 提醒,读科普文章要分辨两种夸大:关于新发现的声明,以及关于“人们以前相信什么”的声明。他说在自己熟悉的领域,后者的夸大倾向大得多。

clauderoux 提到,最古老的哥特语记录是约公元 350 年在今保加利亚写成的 Wulfila 圣经。pmontra 和 card_zero 讨论西班牙语中的哥特借词:除了 bandido,还有 guerra(战争)、espuela(马刺)、dardo(飞镖)、gaita(风笛)。

希腊的庞贝:阿克罗蒂里

火山灰下的时间胶囊

圣托里尼岛上的阿克罗蒂里遗址,常被称作希腊自己的庞贝。锡拉火山在公元前 17 至 16 世纪喷发,把这座青铜时代的港口聚落埋进了约 60 米厚的火山灰和浮石之下。喷发规模在人类有记录的历史上位居前列,释放的火山物质约为 1883 年喀拉喀托火山喷发的四倍。

与庞贝最不同的一点是,阿克罗蒂里几乎没有留下遇难者遗骸。居民显然在灾难前收到了足够多的预警:地面震动持续数日,他们先是带财物撤离,返乡修屋后,又因震动加剧再次离开。考古学家至今没有在遗址中发现人类遗骸、宠物或贵重首饰。地震、喷发与两次撤离反而成就了一个罕见的“时间胶囊”。

目前发掘面积只占聚落的约 10%。考古队已识别并研究 35 栋建筑,居民用有限的木材、火山石、泥土和植被盖起三四层高的楼房,还铺设了街道和一套包括室内管道的排水系统。

壁画和女性经济

壁画的保存状态格外好。多层建筑 Xeste 3 每层有 14 个房间,墙上有两幅完好的画:一幅描绘三名女子站在番红花田间和祭坛旁,另一幅描绘另一群女子采集番红花,献给一位由蓝猴和格里芬侍奉的女神。加州大学洛杉矶分校考古学家 Marianna Nikolaidou 指出,番红花在岛上可以用作香料、香水、染料和药物,是稀缺环境中的经济来源;壁画把女性与这种作物放在一起,暗示女性参与了农业生产和经济活动。

出土陶器中有一种“乳头壶”,壶身鼓起,用捏出的凸起上色模仿乳头,部分还绘有耳环和项链。几只罐底残留着烧焦的大麦和蚕豆,为早期地中海饮食提供了少见的一手证据。

亚特兰蒂斯争议

阿克罗蒂里的命运常被拿来与亚特兰蒂斯挂钩。ETH_start 认为锡拉很可能就是亚特兰蒂斯传说的灵感来源;bajard 说柏拉图的描述与火山岛高度吻合,包括中央的火山栓、温泉和破火山口内的水环。mablopoule 和 nemo 反驳说,亚特兰蒂斯是柏拉图为了政治讽喻编造的雅典的虚构对照,而且按柏拉图的说法,它在大西洋,不在爱琴海。

2027 年,圣托里尼将迎来正式发掘 60 周年。Zorzos 说,阿克罗蒂里提供了此前从未有过的窗口,让人看到史前爱琴海的生活。

RealPage 租金定价案以近 3.6 亿美元和解

和解内容

联邦法院批准了 RealPage 算法定价反垄断集体诉讼的和解协议。两批和解合计接近 3.6 亿美元:11 家房东的 14 份协议共 2.18 亿美元,27 家房东的 26 份协议超过 1.418 亿美元。总部位于得克萨斯州理查森的 RealPage 与约 50 家最大公寓业主和运营商在 2022 年底至 2023 年初被起诉,案件于 2023 年 4 月合并。

和解覆盖的租户集体是:2018 年 10 月 18 日至 2025 年 11 月 21 日之间,向使用过 RealPage 的 Revenue Management Solutions、Lease Rent Options、YieldStar 或 AI Revenue Management 的物业支付过租金的美国多户住宅租户。没有任何公司承认过错或责任。它们同意停止向 RealPage 提供非公开数据,供其收益管理系统生成价格建议。

威斯康星大学麦迪逊分校反垄断专家 Peter Carstensen 说,这些协议“是否真能限制这些公司彼此协调、彼此沟通,是我读判决书时看不出来的”。哥伦比亚特区、肯塔基、马里兰、新泽西和华盛顿州的总检察长反对最终批准,称协议可能“非法限制”他们自己另行提起的诉讼。

评论:金额太小

HN 评论里最直接的反应是金额太小。租户 robbiet480 算过账:他在两处被专家认定为“高度软件合谋”的 RealPage 物业一共租了 151 个月,按估算被多收的租金上限约 8.3 万美元,“等着的可能是 300 块”。georgel 说,按和解文件里的公式,他从三家被告房东那里大约能拿到 1500 美元,这已经是集体诉讼里少见的大额支票。

评论者对行为限制的有效性同样怀疑。rabidheuristics 指出,RealPage 手握十年真实定价数据,只要服务边界不设死,事情还会重演。59percentmore 提到 RealPage 不是行业里唯一一家:Entrata 的营销材料写着,使用其定价产品的客户在六个月研究期内市场租金涨幅比其他可比物业高 15%。

行为限制够不够

讨论分成两派。一派认为根源在供给。xvedejas 说,他看到有说服力的论证表明,禁止算法定租的城市租金并没有明显下降。另一派拿出司法部诉状里的细节:软件会直接给出“本周这套公寓的租金定为 X”,房东偏离要申请“覆写”,RealPage 可以批准也可以拒绝,内部培训材料规定覆写批准率不得超过 5%。

供给争论之外,评论里出现了几种具体做法。epistasis 主张建立公开的租房登记库,任何人都能查询和分析。华盛顿特区已有 rentregistry.dc.gov;西班牙用政府每年发布的租金参考指数 IRAV 限制续租涨幅;澳大利亚维多利亚州要求续租时提供区域内同等或更高价位的可比房源。

Anthropic 谈智能体记忆:日志、做梦和维基

记忆是什么,不是什么

Anthropic 研究团队发表了一篇关于智能体记忆的文章,把“智能体记忆”限定为 Claude 从交互和任务中获得的、跨会话保留的可读上下文。它明确排除了权重更新、单次对话内的上下文学习和压缩摘要。

这个定义在 HN 上直接引发了争论。用户 aszen 认为这是在回避真正的问题——模型无法通过更新权重来连续学习。ffsm8 说对 Anthropic 这种提供云端推理的公司来说,持续更新权重永远不会可行。ford 的判断是,任何有生产力的 LLM 终局都会同时包含实时上下文图和持续更新的权重。

记忆在文章里被描述成一种对未来的预测:写下一条规则,就是预测以后还会遇到类似情况。CL-Bench 1.0 的数据库问答任务里,每个问题从新会话开始,但 Claude 可以读写一个持久化的记忆目录。带记忆后,Opus 5.5 的得分从 0.655 升到 0.838,Opus 5 从 0.564 升到 0.828,Opus 4.7 从 0.383 升到 0.700。

宝可梦测试

宝可梦红版的测试考察的是另一个问题:Claude 判断什么值得记。Sonnet 3.7 什么都记,225 个文件夹里写了 413 个文件,只拿到 1 枚徽章。到第 10,000 步左右,它花了更多时间翻记忆而不是玩游戏。Fable 5 写了 9 个文件加一个 global.md,拿到 4 枚徽章。连续 7 个精灵球没抓到鲤鱼王之后,它写了一条规则:连续 3 个以上球失败就变节奏,在菜单步骤之间多按等待。Opus 5.5 用了类似的方法,通关。

如何给 Claude 下指令也经过测试。在 CL-Bench 上只告诉它“有个记忆文件夹可用”,Opus 4.7 和 Opus 5 就明显提升。反过来,规定“只记录失败”,Opus 5 的记忆增益掉了 0.234。

做梦机制

“做梦”是文章的核心机制:让 Claude 在空闲时对照原始转录检查笔记、修正错误、构建新的记忆表示。宝可梦的月见山案例很具体。Claude 把宝可梦中心的位置错记在东边,走出中心后宣布“月见山在我身后了”,接着掉下单向台阶。做梦让它对照转录核实,找到错误并改写笔记。修正后它直接重新进入山洞,第 1935 步到达华蓝市。没修正的那次掉了三次,最后写“我要停下来,不想再循环了”。

做梦还能构建维基。Stainless 的 35 万文件、约 4.2 亿 token 语料上,25 个问题,128 个会话的做梦之后,只用维基的得分从 13% 升到 48%。维基加搜索从 54% 升到 61%,只用搜索是 53%。Harvey LAB 的合并案任务里,24 个问题中超过一半需要跨文档找信息,维基得分 87%,只用搜索 73%。

社区实践

社区里不少实践者对自动记忆持保留态度。yfontana 在所有用过的 harness 里都关掉了自动记忆创建,Claude Code 有时还是会建,他删掉约 95%,因为这些记忆几乎只和当前任务相关。hridyaagrawal 把代码库信息放在 AGENTS.md 和仓库里的 progress.md,这样能在 Claude Code 和 Codex 之间切换,还能在 diff 里看到变化。

“做梦”这个词本身在评论区分歧很大。MASNeo 说为人类造的概念不该用于机器。2001zhaozhao 反驳说做梦在这里是记忆事后冲突解决的类比,不是字面意思,也不是暗示意识。wsintra2022 分享了自己做的做梦系统,后来它一直梦见自己是烤面包机。

GROUP BY 还能怎么优化

问题:大量分区白合并

Pivot 团队在博客里讲了一个 GROUP BY 优化:针对“按聚合值取前 K 组”的查询,跳过大量不需要合并的分区。典型例子是“哪 10 件商品订单最多”。常规执行方式是:每个 CPU 线程领一片数据,按分组键把行散列到若干分区,所有线程完成后,每个 worker 领一段分区范围,把各线程的局部聚合合并成最终结果。

问题在于工作量。假设系统用了 4096 个分区,前 10 名最多落在 10 个分区里,剩下至少 4086 个分区的结果对最终答案毫无贡献,却照样被合并。这类模式在真实负载里很常见:“仓库里评分最高的 100 件商品”“付费最多的 50 个客户”。

最朴素的想法是给每个分区维护一个总的聚合计数器,合并前拿它跟当前 Top-K 里最小的那个值比较。但这个判据只在聚合值分布极度倾斜时才有用:某个分区有 100 件商品各 15 单,总数 1500,超过当前第 10 名的 1000,于是无法剪枝,尽管其中没有一件商品接近榜单。

槽位剪枝

他们的办法是给每个分区固定数量的“槽位”。每个组通过哈希映射到一个槽,槽记录映射到它的所有组的计数值之和。既然任何单个组的计数都不会超过它所在槽的总和,那么只要一个分区里所有槽的总和都低于当前 Top-K 的最小值,整个分区就可以安全剪枝。

上面那个 100 件 × 15 单的分区,如果均匀散到 8 个槽,每槽约 180–195,就能剪掉;而含 1401 单那件的分区会有一个槽累积到 1413,高于 1000,必须合并。槽的数量与分区数量相互独立,可以按数据分布的分散程度增加槽位,而不必付出维护更多分区的开销。

效果和讨论

ClickBench 里 63% 的查询带有“GROUP BY 后按聚合结果 ORDER BY”的模式。其中最简单的 Q16 从 35.6 ms 降到 22.2 ms,执行中剪掉了 70% 以上的分区。团队认为等 Pivot 支持 MPP 和 spill-to-disk 之后收益会更大。

评论区里,SkiFire13 问为什么不直接在每个分区内并行做 Top-K 聚合。malisper 解释了其中的坑:某个 item_id 可能在该分区里排第 11、在每个分区里都不是前 10,但跨分区求和后就成了全局第 10,所以分区内的 Top-K 不足以作为剪枝依据。malisper 还指出文章描述的结构其实就是 count-min sketch。

关于“1.6× faster”的措辞有一场小争论。misiek08 认为 22.2 ms 对 35.6 ms 是快了 0.4×,不该用夸张说法。Sesse__ 说按吞吐量描述才自然:原本 10 秒的事现在 1 秒,是十倍快。

Asahi Linux 7.3 进展

上游化和 M3 支持

Linux 内核 7.3 发布,Asahi Linux 的进展报告覆盖了过去几个月的工作。macaudio 和 avd 两个主要驱动进入提交列表。macaudio 需要大量 ALSA 核心改动,主驱动和设备树改动约 3100 行。AVD 驱动在下游树只待了不到 3 个月就进入列表,驱动和设备树约 13000 行。M4 Pro、M4 Max 和 M5 的初始设备树也出现了,目前只能启动到文本终端。

M3 系列从 EXPERT 标志转为正式可用,早期采用者几乎没有报告问题。DCP 已启用,带来性能和电池寿命提升,M3 设备支持睡眠,MacBook 刘海周围区域也可以用了。评论区有人介绍了 GravityLinux 项目,称已让 Vulkan 1.4 工作,覆盖全部 M4 和大部分 M5。这些说法来自项目方,尚未经过独立验证。

Thunderbolt 和游戏

Thunderbolt 补丁终于出现在邮件列表上。2024 年 1 月团队曾承诺“年内支持”,之后两年几乎没提。Apple 自研 Thunderbolt 控制器,每个支持 Thunderbolt 的 USB-C 口对应一个,是 Cortex-M3 跑 RTKit 实时固件加定制的 Thunderbolt/USB4 路由器。目前支持 USB3、XDomain 和 Thunderbolt Networking;PCIe 和 DisplayPort 隧道还不支持。

在 Asahi Linux 上跑零售 PC 游戏是另一个重点。FEX、WINE 对 ARM64EC 的支持,以及 muvm 解决了大部分问题,但 muvm 用 DRM Native Context 在 VM 里提供 4 KiB 页面,性能损失约 20%。Android 工程师 Kalesh Singh 和 Frederick Mayle 在 Linux Plumbers Conference 上介绍了 P3S(每进程页大小)。把它 rebase 到 Asahi 树上后,Star Wars Battlefront、Wolfenstein: The New Order、GTA IV 和 Fallout: New Vegas 都能在 muvm 外运行。

许可证从 MIT 改为 GPL

Asahi 一直用 MIT 许可证,目的是鼓励 BSD 和其他自由软件操作系统参与。团队发现多起利用宽松许可劫持工作的尝试,直接目的是替换项目并商业化 Linux on Apple Silicon。极端情况下,开发中的功能代码从个人分支直接拿走发布,没有署名,或者用 LLM 重写来掩盖来源。Asahi 决定将所有仓库转为 GPLv2 或更高版本。

评论区讨论热烈:有人问这是否指 Omarchy;有人说 Omarchy 有商业赞助但不出售产品。有人指出 MIT 本来就允许商业使用,抱怨没有意义;也有人认为 Asahi 当初选 MIT 是为了 BSD 参与,改 GPL 有助于建设更好的社区。

圣马力诺笔记

建国神话和生存策略

马特·莱克曼在圣马力诺待了三天。这个被意大利完全包围的内陆微型国家人口 33500,面积 23.6 平方英里,2025 年 GDP 约 22.5 亿美元。圣马力诺自称是世界上现存最古老的共和国,官方建国年份是公元 301 年,但莱克曼指出,连最狂热的圣马力诺民族主义者也承认这个日期很可疑。

建国神话讲的是一个叫马里努斯的基督徒石匠,为躲避迫害从今天的克罗地亚来到意大利中部。这个故事来自至少六百年后写成的基督教手稿。关于圣马力诺存在的最早可靠证据是 885 年的一份教会法律裁决。现代学者只能确定圣马力诺的某个政治实体存在于 300 年至 1243 年之间的某个时间点。

圣马力诺能存活下来,莱克曼的结论是:它太弱了,以至于不值得被征服。他列举了 13 次被入侵或吞并的尝试。1502 年,切萨雷·博尔贾的军队首次军事占领圣马力诺,几个月后圣马力诺人起义恢复独立。1797 年拿破仑横扫意大利,不仅没有摧毁它,还写信表达敬意,赠送四门野战炮和一千公担玉米,甚至提出让圣马力诺吞并通往亚得里亚海的教宗国领土。圣马力诺明智地拒绝了。

法西斯和半共产主义时期

圣马力诺是世界上第二个法西斯国家,法西斯政权持续 20 年,时长仅次于意大利。1921 年人口普查显示圣马力诺只有 12624 人,法西斯党成员峰值 1938 人。莱克曼形容这是“蚂蚁规模的法西斯运动”。圣马力诺法西斯主义保持共和形式,继续举行选举,似乎是唯一没有领袖型人物的法西斯国家。

二战期间,圣马力诺名义中立但强烈倾向意大利。1944 年中,人口 13000 至 15000 的圣马力诺收容了约 10 万名难民,铁路隧道成为主要难民营。1944 年 6 月,英国皇家空军根据错误情报轰炸圣马力诺铁路,37 名圣马力诺人和 26 名难民死亡。

1945 年 3 月,圣马力诺举行战后首次正式选举,共产党和社会党联盟“自由委员会”赢得三分之二选票。圣马力诺成为世界上第一个通过合法民主选举让共产党上台的国家。意大利知道如何打击圣马力诺的痛处:海关协定。1948 年起,因与半共产主义政府关系恶化,意大利扣留付款五年。1949 年 8 月圣马力诺第一家赌场开业,意大利的反应是设置边境检查站,警察检查每辆入境车辆,有时要求拆下轮胎和发动机,司机可能被困 8 到 10 小时。赌场勉强维持几个月后于 1951 年 8 月关闭。

旅游化和经济

莱克曼对圣马力诺的实地观察分四部分:塞拉瓦莱是人口最多、商业最活跃、也最无聊的部分;从中部到首都的区域是蜿蜒丘陵公路旁的轻郊区与带状商场的奇怪混合;首都是压倒性的旅游区,三座塔楼和经典欧洲老城确实美丽;其余地方像任何其他多山的意大利乡村。他走了三条路线,发现圣马力诺对步行极不友好,大部分丘陵公路没有人行道。

他提出一个“最大旅游化饱和代理指标”:如果一座城市开始设立与当地毫无关系的噱头博物馆,就已经达到旅游化饱和点。圣马力诺有吸血鬼狼人博物馆、幻觉博物馆、自拍博物馆、性博物馆、巧克力博物馆和酷刑博物馆。

他试图与当地人交谈但几乎失败了:旅馆前台是意大利人,说在圣马力诺工作因为工资更高、官僚主义更少;旅游纪念品店老板是摩尔多瓦人,住了 15 年仍不是公民,需要再住五年才能申请;路边咖啡馆服务员是意大利人每天通勤过境。他承认自己部分失败了,三天里从未与当地人真正交谈。

社区讨论

HN 评论中,isolay 说“无聊是好事”,stana 引用《第三人》哈利·莱姆的台词:“在意大利,博尔贾家族统治 30 年,有战争、恐怖、谋杀和流血,但产生了米开朗基罗、达芬奇和文艺复兴。在瑞士,他们有兄弟之爱,500 年民主与和平,产生了什么?布谷鸟钟。”defrost 反驳说瑞士实际生产大量东西,包括世界最具竞争力的制药业、工业化学品、国防技术、金融服务等。

ykl 觉得 20 世纪圣马力诺的政治冒险特别有趣:他们做了世界上其他一切事情的迷你版,但当一个和平温和的小国,事情很难真正失控。holoduke 说这些国家存在的唯一原因是周围国家商人用它们逃税。canjobear 反驳:你读文章了吗?圣马力诺没怎么做这个。

Doohickey-d 说作者多年来写了很多国家,有更多可读,而且是令人愉快的无 LLM 写作。wincy 说文章读起来很愉快,停不下来,有点难过他从未找到圣马力诺人交谈。


相关链接: