HN 每日深度阅读 · 2026-04-14
本期的主线是信任链如何断裂:WordPress 插件收购后被植入后门,Windows Copilot 名称游戏、AI 安全焦虑、Cloudflare CLI 和 Servo 发布则展示了另一面。它不是单纯的安全周报,更像是在问:现代软件生态还能靠什么维持可验证的信任。
共 20 篇 · 约 7,478 字 · 约 20 分钟读完
1. 有人收购了30个WordPress插件并在所有插件中植入了后门
这是一起令人震惊的WordPress供应链攻击事件。一位名为”Kris”的买家在Flippa上花六位数收购了”Essential Plugin”旗下的30多个WordPress插件组合,然后在其第一次SVN提交中就植入了后门。
事件始于托管服务商Anchor.host的客户报告了一个安全警告。调查发现,插件中的wpos-analytics模块会向analytics.essentialplugin.com发送请求,下载一个伪装成WordPress核心文件的后门文件wp-comments-posts.php(故意模仿合法的wp-comments-post.php),并向wp-config.php注入大量恶意PHP代码。
这段恶意代码极其精妙:它从命令控制服务器获取垃圾链接、重定向和虚假页面,但只向Googlebot展示这些内容,让网站所有者完全无法察觉。更令人惊叹的是,它通过以太坊智能合约解析C2域名,查询公共区块链RPC端点,使得传统的域名封禁手段完全失效——攻击者可以随时更新智能合约指向新域名。
后门的时间线尤其值得关注:2025年8月8日发布的2.6.7版本中首次植入了PHP反序列化后门,添加了191行代码,包括一个未经身份验证的REST API端点。这个后门沉睡了整整8个月,直到2026年4月5-6日才被激活。通过备份取证,感染的精确窗口被锁定在4月6日的04:22到11:06 UTC之间,仅6小时44分钟。
WordPress.org在4月7日一天之内关闭了该作者名下的全部31个插件,并于次日强制推送了清理更新。但该更新只中和了插件内的电话回拨机制,并未清理已被污染的wp-config.php文件,意味着SEO垃圾注入仍在继续。
这个案例揭示了开源生态系统中一个严重的供应链风险:通过收购合法的、拥有大量用户基础的插件,攻击者可以绕过所有信任链。Flippa甚至在2025年7月以成功案例的形式宣传了这笔交易。
2. 微软并没有从Windows 11中移除Copilot,只是在重新命名它
面对用户对”AI膨胀”的强烈不满,微软正在对Windows 11中Copilot的集成策略进行重大调整——但这更多是品牌重塑而非真正的功能移除。
在Windows Insider预览版中,多个内置应用已经悄然去除了”Copilot”品牌标识。例如在记事本中,专用的Copilot按钮被替换为通用的”写作图标”,应用设置中的AI功能被重命名为”高级功能”。虽然名称变了,但底层的AI驱动功能——如重写、摘要、语气调整等——大多仍然保留,只是有些工具(如截图工具)确实完全移除了AI功能。用户现在可以在各个应用设置中手动禁用这些”高级AI功能”。
微软2026年的战略表明,公司正试图在AI集成方面采取更”审慎”的方式,给予用户更多控制权,回应对Copilot无处不在的批评。此外微软预计将从2026年4月15日起停止向大型企业提供Copilot服务。
但与此同时,微软正通过其他途径更深层次地将AI嵌入Windows 11:计划在2026年推出”Hey Copilot”语音命令、用于桌面和应用共享的”Copilot Vision”、以及可在本地文件上自动执行任务的”Copilot Actions”,目标是让Windows 11成为面向AI开发者的”代理就绪(agentic ready)“平台。
这场品牌换皮的背后,是微软在用户反感与AI野心之间走钢丝:一方面撤退以平息不满,另一方面通过更隐蔽的方式继续推进AI渗透。
3. GitHub堆叠PR
- 原文: https://github.github.com/gh-stack/
- HN: https://news.ycombinator.com/item?id=47757495
- 得分: 320
- 评论: 198
GitHub官方推出了「堆叠PR(Stacked PRs)」功能,目前处于私有预览阶段,旨在解决大型Pull Request难以审查、合并缓慢且容易产生冲突的痛点。
堆叠PR的核心概念是将大型代码变更拆分为一系列有序的、相互构建的小型PR。每个PR代表变更的一个聚焦层级,可以独立审查但最终一起合并。在技术实现上,每个PR以其下方PR的分支作为目标分支,形成一个有序链条,最终指向主分支。
GitHub为此提供了完整的工具链。gh stack CLI扩展负责本地工作流:创建分支、管理变基、推送到GitHub以及创建具有正确基础分支的PR。在GitHub Web UI端,PR界面会显示堆叠导航器,让审查者可以在各层之间跳转,查看每一层的聚焦差异。分支保护规则针对最终目标分支(而非直接基础分支)执行,CI也会为堆叠中的每个PR运行,就像它们都直接指向最终分支一样。
合并时可以选择合并全部或部分堆叠,每个PR可以直接合并或通过合并队列合并。合并后,剩余PR会自动变基,确保最低的未合并PR指向基础分支。此外,GitHub还提供了AI编程代理集成,通过npx skills add github/gh-stack让AI编码助手学会如何处理堆叠PR。
这个功能填补了GitHub生态中的一个重要空白——此前只有Phabricator和Gerrit等工具原生支持类似的增量审查工作流,很多团队不得不依赖第三方工具如Graphite或git-branchless。
4. Servo现已发布到crates.io
- 原文: https://servo.org/blog/2026/04/13/servo-0.1.0-release/
- HN: https://news.ycombinator.com/item?id=47750872
- 得分: 402
- 评论: 135
Servo项目团队宣布发布了servo crate的v0.1.0版本,这是Servo作为可嵌入式Web引擎库首次登陆Rust的官方包管理平台crates.io。
Servo是一个用Rust编写的Web引擎,最初由Mozilla发起,后成为Linux Foundation Europe的项目。它旨在为开发者提供一个轻量级、高性能的替代方案,用于在应用程序中嵌入Web技术。与Chromium(Electron)或WebKit(WKWebView)等重量级方案不同,Servo的定位是可嵌入式组件,开发者可以将其作为Rust库引入自己的项目。
虽然版本号为0.1.0而非1.0,团队表示尚未讨论完1.0对Servo意味着什么,但这个递增的版本号反映了他们对Servo嵌入API日益增长的信心及其满足部分用户需求的能力。自2025年10月首次在GitHub发布以来,这已经是第5个版本,发布流程已趋于成熟。
团队同时宣布提供长期支持(LTS)版本。由于常规月度发布中预计会有破坏性变更,一些嵌入者可能更倾向于按半年周期进行主要升级,同时仍能获得安全更新和迁移指南。这一决定表明Servo正在认真对待其作为生产级嵌入式引擎的角色。
值得注意的是,团队目前没有计划将其演示浏览器servoshell发布到crates.io,保持了引擎库与应用程序之间的清晰边界。Servo的crates.io发布标志着Rust生态系统中嵌入式Web引擎选择的重要里程碑。
5. 让tmux变得漂亮又好用
这是一篇来自2024年的经典tmux自定义指南,再次在HN上引发热议。作者Ham Vocke详细介绍了如何通过编辑~/.tmux.conf文件来全面定制tmux的体验。
文章覆盖了多个实用配置范例:将繁琐的前缀键从C-b改为更顺手的C-a(配合将Caps Lock映射为Ctrl使用);用直觉的|和-替代难记的"和%来分割面板;绑定r键快速重载配置文件;用Alt+方向键无需前缀键即可切换面板;以及启用鼠标模式以便于结对编程等场景。
在外观定制方面,作者展示了如何调整面板边框颜色、状态栏样式、窗口标签格式、时钟模式和消息提示风格。技巧在于使用终端的命名颜色(如red、yellow、black)而非硬编码的十六进制值,这样tmux可以自动适配任何终端主题。
虽然这篇文章内容基础,但在HN上获得大量评论(190条),反映了开发者社区对终端工具链定制的持久热情。评论区往往成为交流各种tmux配置技巧、插件推荐(如tpm、tmux-sensible)和替代方案(如Zellij)的宝藏。
6. “世上从来不会发生什么”:Polymarket上永远买“不会初”的机器人
- 原文: https://github.com/sterlingcrispin/nothing-ever-happens
- HN: https://news.ycombinator.com/item?id=47753472
- 得分: 338
- 评论: 152
这是一个开源Python机器人项目,它的策略极其简单而大胆:在Polymarket预测市场上,对所有非体育类的独立市场自动买入“No”(不会发生)头寸。
这个策略背后有一个有趣的统计观察:Polymarket上大约73%的市场历史上最终解算为“No”。这意味着如果你对每一个非体育事件都下注“不会发生”,从统计上看你有三分之二的概率是对的。
作者Sterling Crispin坦言这个机器人“零风控”,本质上是一个“meme”(玩笑项目)。但它触及了预测市场中的一个深层问题:大多数被提出的事件预测本质上就带有一种“新闻偏见”——人们倾向于对戴剧性、轰动性事件创建市场,而这些事件往往不会发生。项目名“Nothing Ever Happens”本身就是对这种现象的讽刺。
这个项目在HN上引发了关于预测市场效率、数学期望值、以及DeFi/Web3押注伦理的广泛讨论。有人指出虽然概率上有优势,但“No”头寸的赔率通常也低,真正的收益还取决于价格和时机。
7. 今年疯狂的黑客攻击时间线
这是一篇震撼的网络安全形势总结。作者Patrick Quirk认为,2026年前四个月可能是网络安全史上最关键的一百天,但几乎没有人注意到。
文章梳理了四大威胁集群的并行攻势:第一,伊朗国家行为体Handala/Void Manticore对美国国防和政府目标的破坏性攻击,包括Stryker(20万台设备被擦除)、洛克希德·马丁(声称375TB数据泄露)、FBI局长个人邮箱被公开。第二,ShinyHunters、Scattered Spider和LAPSUS$三个臭名昭著的网络犯罪组织正式合并为“Scattered LAPSUS$ Hunters (SLH)”联盟,声称入侵了约400个组织,窃取了约15亽Salesforce记录。受害者名单读起来像全球品牌名录:Google、Cisco、Adidas、澳洲航空、LVMH旗下品牌、LastPass、Okta等等。
文章还提到了其他重大事件:中国国家超级计算机据报10PB数据泄露;Axios npm包(每周下载量过亿)被朝鲜劫持;AI训练数据供应商Mercor通过开源库LiteLLM被入侵,4TB数据被提取。
作者认为这些事件堆叠在一起,是2050年的计算安全史学家可能会视为转折点的时刻。然而公共对话却异常平静,这本身就是一个值得深思的现象。
8. 万物的未来都是谎言:安全篇
Aphyr(以Jepsen分布式系统测试闻名的Kyle Kingsbury)发表了一篇关于机器学习系统安全性的深度批判文章,这是其《万物的未来都是谎言》系列的第七篇。
文章的核心论点尖锐而悲观:AI对齐(alignment)本质上是个笑话。与人类大脑天生具有亲社会行为的生物倾向不同,模型只是一堆线性代数,没有任何内在机制确保它们“善良”。对齐完全依赖训练过程和人工审核,而这些都是可选的、昂贵的。
作者分析了四道可能阻止恶意模型出现的“护城河”,并逐一论证它们都在螢蔽:硬件产能在爆发式增长;训练的数学原理全部公开;训练数据极易获取(Meta都是用盗版书籍训练的);人工标注可以通过蒸馏其他模型输出来绕过。
更糟糕的是,即便是“友好”模型也是安全噩梦:它们仍在与未成年人进行性聂天,“消解攻击”能绕过安全护栏生成暴力图像,任何人都能下载“未审查”版模型。作者的结论是彻底的:如果你不希望“邪恶”版本存在,就不应该建造“友好”版本。他警告说,将美国经济的很大一部分重新导向让“邪恶模型”更容易训练的方向,是极其危险的。
9. 斯坦福报告揭示AI业内人士与公众之间日益加深的鸿沟
斯坦福大学发布的年度AI指数报告揭示了一个令人不安的趋势:AI专家与普通公众对这项技术的看法正在急剧分化。
数据触目惊心:56%的AI专家认为AI将在未来20年对美国产生积极影响,但只有10%的美国人表示对AI在日常生活中的增加使用感到兴奋而非担忧。在医疗领域,84%的专家持积极看法,公众中只有44%。在就业方面差距更大——73%的专家认为AI对工作方式有积极影响,但公众中只有23%这么认为。近三分之二的美国人(64%)认为AI将在未来20年导致更少的工作岗位。
Z世代正在引领AI反感情绪。盖洛普调查发现,尽管约一半的年轻人每天或每周都在使用AI,但他们对这项技术越来越不抱希望、越来越愤怒。这种脱节在对OpenAI CEO Sam Altman住所遭到攻击的网络反应中表现得最为明显——一些Instagram评论似乎在赞扬这次攻击,与2024年联合健康保险CEO被枪击后的网络评论如出一辙。
美国在”信任政府负责任地监管AI”方面排名最低,仅31%,而新加坡最高为81%。在全球范围内,虽然认为AI利大于弊的人从55%微升至59%,但表示AI让自己”紧张”的人也从50%升至52%。
10. 为整个Cloudflare构建CLI
- 原文: https://blog.cloudflare.com/cf-cli-local-explorer/
- HN: https://news.ycombinator.com/item?id=47753689
- 得分: 230
- 评论: 69
Cloudflare拥有超过100个产品和近3000个HTTP API操作,但其CLI工具Wrangler长期以来只覆盖了一小部分产品。现在Cloudflare正在从头重建Wrangler CLI,目标是让它成为覆盖所有Cloudflare产品的统一命令行工具。
技术实现上,Cloudflare团队创建了一套基于TypeScript的新schema系统。不同于仅能描述REST API的OpenAPI schema,这套新系统可以定义CLI命令和参数、Workers绑定、配置文件、Agent Skills和文档等全部接口,然后统一生成各种输出,包括OpenAPI schema本身。这种”一处定义,处处生成”的方法解决了手动维护多个接口的一致性问题。
一致性对AI编程代理尤其关键。如果一个命令用get而另一个用info获取资源信息,代理就会调用不存在的命令。新系统在schema层面强制执行命名规则:永远用get不用info,永远用--force不用--skip-confirmations,永远支持--json输出。
同期发布的”Local Explorer”功能(开放测试版)让开发者可以在本地开发时检查模拟资源(KV、R2、D1等数据库),改善了本地与远程开发的一致性体验。
目前可以通过npx cf试用技术预览版,虽然只支持少部分产品,但完整版已在内部测试中,将在未来几个月逐步与现有Wrangler整合。
11. 如果你两年前创办了公司,很多假设已经不再成立
硅谷创业教父Steve Blank发出警告:如果你的创业公司超过两年,你的商业计划很可能已经过时——你的技术栈和团队也是。
这篇文章源于Blank与一位他六年前投资的创始人Chris的咖啡会面。Chris一直在埋头攻克复杂的自主系统问题,但当他准备融资时,世界已经天翻地覆:乌克兰战争催生了数十甚至上百家自主无人机公司,拥有更大更好的研发团队;VC对国防初创公司的投资从零飙升到每年200亿美元——而Chris对这些机会一无所知。
Blank列举了关键变化:2025年AI交易占VC投资总额的三分之二,非AI初创公司只能争夺更小的资金池;Vibe Coding工具(Claude Code、OpenAI Codex)让MVP可以在数天甚至数小时内构建,MVP本身不再是团队能力的证明;AI Agent将改变每一个软件品类——从”软件即界面”转向”软件即结果”,定价也将从按席位收费变为按成果收费(按解决的工单、预订的会议计费)。
对硬件创始人,AI同样改变了游戏:数字孪生和模拟可以更早更便宜地淘汰坏主意,而AI嵌入硬件后产品本身也在变化——一个摄像头加上AI后台就能变成监控系统或机器故障预测系统。
最致命的是”沉没成本陷阱”:花费数年建造的”专有代码护城河”正在被AI商品化。产品/市场契合的探索将变成”AI Agent/客户结果契合”的探索,最小可行产品(MVP)将演变为最小生产性产出(MPO)。
12. Obsidian入门指南
- 原文: https://bryanhogan.com/blog/obsidian-introduction
- HN: https://news.ycombinator.com/item?id=47729694
- 得分: 105
- 评论: 77
作者Bryan Hogan撰写了一篇简洁实用的Obsidian笔记应用入门文章,重点阐述了Obsidian的核心优势及其个人使用方式。
Obsidian的根本吸引力在于”文件优先”理念:所有笔记都是本地Markdown文件,使用开放格式,用户完全拥有自己的数据,不受平台锁定或服务质量下降(“enshittification”)的威胁。你可以用[[ ]]语法创建笔记间的双向链接,构建个人知识网络。
作者的使用场景包括四个方面:内容创作(博客和邮件通讯)、知识管理(采用”自下而上”的方法收集和整理信息)、项目管理(个人项目和健康追踪)、以及媒体追踪(书籍、游戏、YouTube视频,Obsidian的新Bases功能很适合这个用途)。
文章特别强调了一个”反焦虑”信息:当你在网上搜索Obsidian相关内容时,会看到大量复杂的系统和工作流,容易产生FOMO。但核心建议是保持简单——Obsidian应该帮你完成其他工作,而不是成为工作本身。作者自己避免使用自定义主题,尽量少用插件,采用受Zettelkasten和Evergreen笔记启发的极简系统。
同步方面,作者用Google Drive在Windows和Android之间同步,并定期备份到GitHub,这是一种成本为零的方案。文章最后还推荐了Capacities、Logseq、SilverBullet等替代工具。
13. 税收年度总结2025
- 原文: https://taxwrapped.com
- HN: https://news.ycombinator.com/item?id=47755604
- 得分: 85
- 评论: 43
Tax Wrapped是一个受Spotify Wrapped启发的交互式网站,让美国纳税人输入自己的年收入,然后生成个性化的税收支出可视化——展示你缴纳的每一美元联邦税具体去了哪里。
这个工具的概念虽然简单,却极具冲击力。用户纷纷表示看到自己的税款在社会保障、医疗保险(Medicare)和国债利息还款等项目上的精确分配金额后,感到”大开眼界”。特别是国债利息支出的占比之高让许多人感到意外。
HN评论区围绕这个工具展开了深入讨论,焦点包括:如果这种税收分解更加普及,人们的投票行为是否会发生变化;社会保障税收上限的计算准确性;以及政府支出透明度对民主决策的影响。有用户指出桌面端的滚动体验还有改进空间。尽管是一个相对简单的项目(得分85分),它触及了一个普通公民很少深入思考但极其重要的话题。
14. 我只想要简单的S3
一位开发者的自托管S3兼容对象存储选型实战记录,道出了许多自建基础设施爱好者的心声:我不需要横向扩展,不需要复制,只需要一个可靠、不慢的S3兼容服务。
文章逐一评测了现有方案。Minio基本上已经死了——他们归档了代码仓库,转去追逐AI行业的钱。Garage(Rust编写)过于复杂且仍然年轻,缺少一些基础S3功能。SeaweedFS理念很酷(支持WebDAV等多协议),但实际使用中莫名其妙地慢——在LAN上下载文件起初只有几百KB/s,最终也只能爬到约10Mbps。CEPH是个庞然大物,适合构建Amazon S3级别的存储,但对个人来说太重了。
最终的救星是Versity GW——一个几乎无人知晓但被桑迪亚国家实验室、洛斯阿拉莫斯国家实验室和军方使用的项目。它直接使用本地文件系统作为S3存储后端,通过xattrs存储对象元数据,部署后LAN上即可达到线速下载。
文章还列出了几个”后来才知道”的竞争者:RustFS(Rust编写、声称100%S3兼容)、rclone的S3服务器模式、filestash(存储协议无关的Dropbox替代品)和Zenko CloudServer。作者当前使用Versity,同时期待一个真正的ZFS原生对象存储方案出现。
15. 如何让Firefox构建速度提升17%
一位Mozilla工程师展示了如何利用buildcache的Lua插件系统来缓存Firefox构建中的WebIDL代码生成步骤,从而大幅提升缓存构建速度。
在Firefox构建过程中,早期有一个步骤会运行python3 -m mozbuild.action.webidl,从数百个.webidl文件生成数千个C++绑定代码文件(头文件、cpp文件、前向声明、事件实现等)。这个步骤的输出在相同输入下完全确定性,是缓存的完美候选——但之前从未被编译器缓存覆盖到。
关键在于buildcache独特的Lua插件系统,它可以为任何”非传统编译器”的确定性构建步骤编写自定义包装器(ccache和sccache没有这个能力)。Lua脚本webidl.lua告诉buildcache三件事:如何识别这个命令、输入文件是什么(所有.webidl源文件加上Python代码生成脚本)、输出文件是什么。然后buildcache就能对输入做哈希、检查缓存,命中时重放缓存输出。
实测数据令人印象深刻:Linux上的完全重建从5分35秒(无缓存工具)降到buildcache缓存预热后的1分27秒,加上WebIDL插件后进一步降到1分12秒。作为对比,ccache缓存预热后需3分21秒,sccache需2分49秒。标题中的”17%“指的是buildcache本身相对于其他缓存工具的优势。
更重要的是这个技术路线的通用性:同样的Lua包装机制可以应用于Firefox构建中的其他确定性代码生成步骤,未来还有更多优化空间。
16. MEMS阵列芯片可以投射沙粒大小的视频
- 原文: https://spectrum.ieee.org/mems-photonics
- HN: https://news.ycombinator.com/item?id=47752466
- 得分: 72
- 评论: 33
IEEE Spectrum报道了一项突破性的微机电系统(MEMS)光子学进展:研究人员开发出一种MEMS阵列芯片,能够在仅仅一粒沙子大小的面积上投射视频。
这项技术结合了MEMS微镜阵列与集成光子学,实现了前所未有的微型化视频投影能力。传统的投影系统需要较大的光学组件和精密的机械结构,而这种新型芯片将所有功能集成在极小的硅片上。MEMS阵列中的每个微镜都可以独立控制,以足够快的速度切换来产生视频帧率的图像。
这项研究的潜在应用场景广泛:从AR/VR头戴设备中的超紧凑显示模块,到医疗内窥镜中的投影照明,再到量子计算中精确控制离子或原子阵列的光学寻址系统。特别是在量子计算领域,这种芯片可以用来精确地将激光束引导到量子比特阵列中的特定位置,极大简化了量子处理器的光学控制系统。
这一进展代表了MEMS制造和集成光子学领域的重要融合趋势,也是将实验室级光学仪器缩小到芯片级的又一里程碑。
17. Show HN: Ithihāsas——一个印度史诗角色探索器
- 原文: https://www.ithihasas.in
- HN: https://news.ycombinator.com/item?id=47756569
- 得分: 80
- 评论: 22
这是一个几小时内构建的交互式Web应用,让用户可以探索印度教两大史诗——《罗摩衍那》(Rāmāyaṇa)和《摩诃婆罗多》(Mahābhārata)中的角色、王朝和关系网络。
网站提供四种可视化模式:力导向图(Force Graph)展示角色间的关系网络;王朝树(Dynasty Trees)展示血缘和继承关系;弦图(Chord Diagrams)显示角色间的交互强度;以及角色详情页(Character Detail)提供每个角色的深入信息。整体设计理念是”古老智慧·现代视角”(Ancient Wisdom · Modern Lens)。
作为一个Show HN项目,它展示了现代Web技术(大概率使用了D3.js等可视化库)如何让古老文本变得可交互、可探索。项目的快速构建时间(几小时)也暗示了AI辅助开发工具在这类创意项目中的效率。虽然内容相对小众,但在HN上获得了80分和22条评论,反映了社区对跨文化知识可视化的兴趣。
18. 追踪LLVM RISC-V上25%的性能回退
一篇精彩的编译器调试记录,详细记录了如何发现并修复LLVM在RISC-V目标上约25%的性能回退问题。
事情起因于作者在Igalia的LLVM vs GCC性能比较网站上注意到,在SiFive P550 CPU上一个特定基准测试中LLVM比GCC多消耗约8%的周期。深入分析汇编代码后,他发现关键差异:LLVM在热循环中生成了fdiv.d(双精度浮点除法,33个周期延迟),而GCC使用的是fdiv.s(单精度浮点除法,19个周期延迟)。
回退的根本原因是一个最近的LLVM提交改进了isKnownExactCastIntToFP函数,将fpext(sitofp x to float) to double折叠为直接的uitofp x to double转换。这本身是正确的优化,但它无意中破坏了下游visitFPTrunc中的窄化优化——该优化原本依赖fpext的存在来将double窄化回float。
修复方案是扩展getMinimumFPType函数,加入范围分析能力,使其能够识别fptrunc(uitofp x double) to float可以被简化为uitofp x to float,从而恢复窄化优化。这个修复已经合入LLVM主线。
这个案例完美展示了编译器优化的”连锁反应”——一个局部正确的优化如何通过破坏其他pass的假设而导致意外的性能退化,以及需要对整个优化管线有全局理解才能有效调试。
19. B树与数据库索引
PlanetScale(MySQL云服务商)发布了一篇关于B树和数据库索引的深度教程,最大特色是文章中嵌入了丰富的交互式动画,让读者可以亲手操作数据结构来建立直觉。
文章从基础开始:B树是一种存储键值对的平衡树结构,每个节点可以包含多个键值对和子指针。关键特性包括所有叶子节点在同一层、节点内元素有序、子节点范围由父节点的键划分。B树的核心优势在于与磁盘块大小对齐——当每个节点大小设为16K(匹配磁盘块),一个三层B树就可以存储超过3亿条记录。
文章然后介绍B+树——数据库实际使用的变体。两个关键区别:键值对只存储在叶子节点,内部节点只存键和子指针(这让内部节点能容纳更多键,保持树更浅);所有叶子节点通过双向链表连接(支持高效的范围查询和顺序遍历)。
在MySQL/InnoDB的具体实现中,表的所有数据实际上就存储在以主键为索引的B+树中(聚簇索引)。文章解释了为什么自增整数作为主键优于UUID:自增整数总是附加到B+树的末尾,而UUID的随机性导致频繁的页分裂和碎片化。二级索引也是B+树,但叶子节点存储的值是主键(需要二次查找聚簇索引)。
这篇2024年的文章再次登上HN热榜,说明了高质量的基础知识教程永远有受众。
20. Rockchip RK3588的主线Linux视频捕获和摄像头支持
经过五年多的开发努力,Rockchip RK3588 SoC的视频捕获硬件终于获得了初步的主线Linux内核支持。这是Collabora在RK3588上游化工作中的一个重要里程碑。
RK3588是Rockchip RK35代SoC的旗舰产品,集成了专用的视频捕获和图像信号处理(ISP)IP模块,可以支持多种多媒体应用。然而,这些模块在主线Linux中的支持一直是这个本已良好支持的SoC平台的最后几块缺失拼图之一。
Collabora近年来在RK3588的主线化方面投入了大量工作,维护着一个详细的上游状态矩阵,追踪各个硬件模块的支持情况。此次的视频捕获和摄像头支持登陆主线意味着,使用RK3588系列开发板(如Orange Pi 5、Rock 5B等广受欢迎的SBC)的开发者,现在可以在不依赖厂商定制内核的情况下使用摄像头功能。
这对于嵌入式Linux社区意义重大。主线内核支持意味着更好的长期维护性、安全更新和与其他内核子系统的集成。RK3588凭借其强大的8核CPU、Mali GPU和NPU,已经成为最受欢迎的ARM SoC之一,完善的主线支持将进一步巩固其地位。