2024-09-08

32 篇热帖

1. Cruise ships chopped in half are a license to print money (newatlas.com)

游轮“巨型化”(Jumboization)工程总结

背景与目的

全球游轮乘客数量从1990年的370万激增至2024年的近3000万。由于建造新船成本高昂(约20亿美元)、耗时较长(约2.5年)且需要培训全新船员,游轮运营商越来越多地采用“巨型化”技术来扩建现有船只,以快速满足市场需求并提升利润。

“巨型化”的核心优势

“巨型化”是指将现有游轮从中间切开,插入新设计的船段并重新焊接。该手术平均成本约8000万美元,停航时间短。它不仅能增加高利润的客舱数量,还能顺便进行外观喷漆、设施升级和引擎更新,且只需为现有团队培训少量新员工,从而以较小的投入大幅提升船只的盈利能力。

关键工程操作流程

该工程涉及极高的技术精度,主要分为以下关键步骤:

  1. 测量与设计:工程师对原船进行精确测量并设计新船段,确保数千根管道、电缆和通风通道在对接时完美对齐,必要时升级现有系统以承受新增负载。
  2. 建造新段:新船段在船厂预制,通常包含内部装修且两端敞开,随后被拖至干船坞。
  3. 精准切割:原船被放置在干船坞内由数十个“滑鞋”(具备举升和横向移动能力的液压滑橇)组成的阵列上。在激光引导下,自动切割机与工人使用乙炔焊炬以毫米级精度将船体切成两半。
  4. 分离与插入:滑鞋协同将船体两半拉开,新船段通过滑鞋推入中间。此过程也是向底层甲板装载大型设备的绝佳时机。切割与分离仅需约两天。
  5. 焊接与重组:利用滑鞋将三段船体完美对齐,进行间隙仅几毫米的精密焊接,以确保船体水密性和结构强度。
  6. 系统重连与测试:重新连接所有管线,进行内部无缝处理和外部重新喷漆。最后,全面测试所有机电和液压系统并进行海试,验证加长后船只的结构强度与操控性。

项目周期与行业影响

干船坞内的实际切割与重组手术仅需约9周;若包含前期规划、设计与新段建造,整个项目周期约为9个月。自1977年以来,已有至少21艘游轮通过此技术成功加长(历史上最长的自航船“海上巨人号”也使用了此技术),证明了其在现代游轮运营中极高的商业与工程价值。

2. WebP: The WebPage Compression Format (purplesyringa.moe)

WebP: 网页压缩格式

问题背景

作者托管于GitHub Pages的博客无法使用Brotli压缩,导致大文章(如92 KiB)加载缓慢。虽然可考虑使用Brotli WASM解码器,但体积(71 KiB)抵消了压缩收益。

创新思路:利用WebP无损压缩

作者探索使用**WebP无损格式(VP8L)**压缩网页数据。其优势在于:

  • 预测变换:类似PNG,但更复杂
  • 自定义哈夫曼树:支持在16×16像素块间复用哈夫曼树,提升局部性
  • 颜色缓存:高效存储重复像素值

实现方法

  1. 数据转为图像:将HTML字节转为灰度RGB图像(每个字节重复3次至R/G/B通道)
  2. WebP编码:使用quality=100method=5参数进行无损压缩
  3. 客户端解码
    • 通过fetch获取WebP文件
    • 使用OffscreenCanvas和WebGL上下文(readPixels)解码
    • 提取R通道还原原始字节,再解码为UTF-8

基准测试结果

在各类文件测试中:

  • WebP压缩率通常优于gzip(如html_x_4:WebP 3.3% vs gzip 13%)
  • 多数情况下接近或略低于bzip2
  • 始终优于Brotli(除随机噪声文件)

挑战与解决方案

  1. 隐私保护干扰:浏览器getImageData会添加噪声,改用WebGL的readPixels可避免
  2. 视觉闪烁:解码前页面空白。解决方案:将页面顶部8 KiB内容保留为gzip,仅压缩视口下方内容
  3. 滚动位置丢失:刷新时页面高度归零。解决方案:临时插入占位div,使用innerHTML更新
  4. 体积优化:Base64编码WebP嵌入JavaScript,gzip后几乎不增加体积

实际应用

作者将此技术应用于自身博客:从"Fool me twice"章节开始使用WebP压缩。实测压缩效果:

  • 原始gzip:88 KiB
  • WebP+gzip:83 KiB
  • 对比Brotli:69 KiB

总结

在无法使用Brotli的场景下,WebP无损压缩提供了一种创新解决方案,压缩率显著优于gzip,虽不及Brotli,但通过客户端解码实现了性能提升。该技术展示了非常规压缩方法的潜力,尤其适合文本数据为主、托管环境受限的场景。

相关代码和测试数据已开源在GitHub,包含压缩工具、基准测试脚本和客户端解码示例。

3. Gnome Files: A detailed UI examination (www.datagubbe.se)

Gnome Files 用户界面详细分析摘要

本文从一位“高级用户”的视角,详细批评了 Gnome 文件管理器(Gnome Files)的用户界面设计。作者认为,虽然现代设计范式可能对初学者友好,但隐藏功能和界面不一致性会阻碍用户的学习和高效使用。

核心问题与发现:

  1. 混乱的菜单与功能

    • “视图选项”下拉菜单实际包含的是排序选项,而非列表视图切换等真正的视图选项。
    • 真正的视图选项(如切换列表视图)隐藏在一个不明显的拆分按钮中,且与“主菜单”中的选项(如图标大小、显示隐藏文件)分离,导致发现极其困难。
    • 内置帮助系统搜索“列表视图”效果不佳,且术语(如“路径栏”)与界面标签不一致。
  2. 键盘快捷键管理不善

    • 键盘快捷键列表是三页的非交互式模态窗口,缺乏目录结构,查阅时需要频繁上下文切换。
    • 许多功能(如激活路径编辑)仅能通过键盘快捷键访问,在GUI中缺少可发现的入口,违背了图形界面的基本可发现性原则。
    • 快捷键在菜单中的显示不一致
  3. 误导性与干扰性的工具提示

    • 工具提示常常显示与标签相同的冗余信息,或在不必要的位置弹出并遮挡用户真正关注的内容,增加干扰而非提供帮助。
  4. 不直观的窗口操作与导航

    • 窗口缺乏传统标题栏,导致移动窗口、激活窗口和执行程序功能(如搜索)的操作区域重叠,极易误操作。
    • 在顶部区域右键单击时,会根据点击对象的不同,弹出窗口管理菜单、目录操作菜单或无菜单,行为不可预测。
    • 位置栏(路径栏)看起来像文本框,但只能通过Ctrl+L快捷键进入编辑模式,无法通过鼠标点击激活。
  5. 设计与主题细节问题

    • 默认的滚动条设计在隐藏和显示时会发生跳跃,移动鼠标指向它时,滚动条会突然移动,导致光标指向空白处。
    • 界面中存在一些不一致的行为,例如长按前进/后退按钮可显示历史记录,但此操作在其它地方不可用。

总体评价与结论: 作者认为 Gnome Files 的界面设计随意、不连贯,且有时因操作模糊而令人不安。频繁的误点风险和无法构建稳定的界面心理模型增加了用户的认知负担。虽然软件在功能上可以完成文件管理,但其设计在多个方面存在客观缺陷,包括菜单逻辑混乱、功能可发现性差、窗口操作与程序功能混淆等。

文章最后反思,经过十多年的发展,新的UI设计范式理应带来比传统模式(如Windows 95之后形成的稳定范式)更优秀、更一致的方案。然而,文中列举的问题表明,Gnome Files 在“从第一原理出发创造更好的东西”这一理念下,并未产生更可预测、更可靠的界面。作者认为,设计师应对经过数十年检验的传统设计模式抱有更多谦逊。

4. Cracking an old ZIP file to help open source the ANC's "Vula" secret crypto code (blog.jgc.org)

文章摘要

本文记述了一次破解三十年前PKZIP加密文件的技术过程,成功解密了南非非洲人国民大会(ANC)在“Vula行动”中使用的秘密通信加密源代码。该行动是ANC在1980年代末期为建立地下活动网络而实施的秘密行动,依赖于使用一次性密码本的加密通信系统。

背景与挑战

  • 加密系统的主要设计者Tim Jenkin于1991年离开英国前,使用PKZIP压缩并加密了全部源代码,但随后忘记了密码,导致代码长期无法访问。
  • 两个加密文件:ALLBAS.ZIPCODMAY93.ZIP,采用早期PKZIP版本和ZipCrypto加密方案。

破解过程

  • 利用ZipCrypto的已知明文攻击(Known Plaintext Attack)漏洞,需预测文件中至少12字节的明文内容。
  • 作者分析ZIP文件结构,发现其中以“Store”模式(未压缩)存储的内嵌ZIP文件(如OLDCOD.ZIP)是突破口,因为其起始部分包含可预测的PK头文件。
  • 根据Tim Jenkin提供的信息,推测OLDCOD.ZIP内的首个文件名为COMKEY.BAS,以此构建明文攻击载荷。
  • 使用开源工具bkcrack执行攻击,约23分钟后成功计算出加密密钥。
  • 该密钥同时适用于两个加密文件,顺利解压得到源代码。

加密系统概述

  • 源代码为PowerBASIC语言编写,包含两个主要程序:
    1. RANDOM.BAS:用于生成一次性密码本(随机数磁盘),采用多种随机算法。
    2. TECOD.BAS:用于加密和解密消息,内置简单密码(本例中为TIMBOBIMBO,但不同行动成员版本密码各异)。
  • 系统设计注重安全性:强调在RAM磁盘上执行加密操作,密钥材料使用后销毁,并包含随机数分布检查功能。

技术细节与测试

  • 作者在DOSBox环境中使用PowerBASIC编译器成功编译并运行了这两个程序。
  • 提供了生成随机密钥、加密及解密文件的视频演示流程。
  • 源代码及编译后的可执行文件已公开,相关技术文档和手动操作指南可供查阅。

意义

  • 此次破解工作使得ANC在反种族隔离斗争中使用的关键加密代码得以开源,为历史研究和技术分析提供了重要资料,同时也展示了对老旧加密方案实施密码学攻击的具体方法。
5. An NFC Movie Library for My Kids (simplyexplained.com)

文章总结:为孩子打造的NFC电影库

本文作者旨在为数字时代的孩子们重现自己童年时通过实体VHS/DVD选择电影的直观与触感体验。他构建了一个系统,孩子可以通过扫描物理NFC卡片来播放电影,无需父母操作遥控器或导航至正确的流媒体应用。

项目目的与最终效果

作者希望将老式媒体的实体感与数字媒体的便利性相结合。最终成品是一系列覆膜的电影封面卡片,每张内置NFC标签。孩子只需挑选想看的电影卡并放在NFC阅读器上,Home Assistant会自动完成后续播放操作。

硬件材料与实现

  1. 硬件

    • NFC阅读器:RC522。
    • 微控制器:ESP32-C3 Super Mini(或LOLIN32 Lite)。
    • NFC标签:50张PVC NFC卡(NTAG215)。
    • 其他:一个用于扫描成功提示音的蜂鸣器。
  2. 软件配置

    • 使用 ESPHome 为ESP32刷写固件,配置文件需特别设置以适配ESP32-C3 Super Mini。
    • 设备通过SPI总线与NFC阅读器连接,并配置了蜂鸣器以发出提示音。
    • 刷机后,设备会在Home Assistant中显示为tag_scanned事件源。
  3. 物理制作

    • 外壳:使用Fusion360设计并3D打印,为没有螺丝孔的ESP32设计了专用卡扣结构,以保护电路。
    • 卡片:将电影封面打印在可打印乙烯基贴纸纸上,粘贴到PVC卡片正面;背面印有电影简介、上映日期和制作公司信息。

核心自动化:在Home Assistant中实现播放

  1. 播放原理:使用 Apple TVPlex深链接功能实现快速、可靠的播放。通过发送特定格式的plex://链接来直接播放电影或播放列表。
  2. 自动化流程
    • 触发:监听tag_scanned事件。
    • 条件:限制自动化仅在早晨(05:00-09:00)和傍晚(18:00-19:50)的时间窗口内运行。
    • 映射:在自动化中维护一个“NFC标签ID”到“Plex媒体ID或播放列表ID”的映射表。
    • 动作
      • 检测到已映射的NFC标签后,先开启Apple TV和电视。
      • 根据映射信息,通过media_player.play_media服务向Apple TV发送对应的Plex深链接。
      • 同时,将Sonos音响音量设置为固定低值。
  3. 播放随机剧集:通过在Plex中创建智能播放列表,并设置排序为“随机”,即可用深链接播放随机一集电视剧。

项目优势与教育意义

作者认为该系统有以下优点:

  1. 有限选择:避免无限目录,鼓励孩子反复观看同一部电影并发现新细节。
  2. 自主权:孩子可以独立选择想看的电影,无需依赖父母。
  3. 责任感:在固定时间内,由孩子决定是看一部完整的电影还是看几个电影片段。
  4. 协作与妥协:兄弟间需要协商以决定谁来选片。

未来改进与设计文件

作者计划未来改进硬件(使用更小的PN532 NFC模块)、探索播放随机电视剧的方案,并使用更美观的可打印NFC卡片。 文末提供了所有设计文件(Fusion360工程、STL文件)的下载链接,鼓励读者自行制作或改进。

6. The Canary (www.washingtonpost.com)

《金丝雀》文章摘要

本文讲述了美国“公共服务伙伴关系组织”及其设立的“萨米奖”,并聚焦于获奖者之一、矿业安全专家克里斯托弗·马克的生平故事,揭示了联邦政府中默默无闻却贡献卓著的公务员群体。

  • “萨米奖”的设立与困境:该组织由企业家塞缪尔·海曼于2001年创立,旨在吸引人才进入联邦政府工作。2002年设立“萨米奖”,以表彰联邦政府内部的卓越功绩,旨在扭转政府缺乏认可文化、优秀公务员无人知晓的局面。然而,公务员普遍不善于自我推荐,起初提名寥寥,组织甚至需主动向内阁部长征集提名。尽管面临挑战,每年获得提名的公务员及其贡献仍在缓慢增加,涵盖了从破解冷案、推行大规模疫苗计划到治理核废料、应对空气污染、打击毒品等广泛领域。但文章指出,民主制度本身并不倾向于突出非民选官员的个人成就,他们的故事很少为人所知,公众对“官僚”一词的认知也鲜有改变。
  • 克里斯托弗·马克的故事:文章通过2024年“萨米奖”职业成就奖得主克里斯托弗·马克的故事,深入展现了一位联邦公务员的历程。
    • 背景与转折:马克出生于1956年,父亲是普林斯顿大学工程学教授罗伯特·马克,其利用光弹性模型研究哥特式大教堂应力的方法开创了先河。克里斯托弗虽继承父亲的技术思维,但成长于越战等社会动荡年代,对精英主义和不公深有感触。青年时期,他放弃常规升学路径,投身工人运动组织,最终进入西弗吉尼亚州煤矿工作。
    • 投身煤矿安全:在煤矿的经历让他深刻认识到矿工面临的巨大风险,并对顶板坍塌问题产生兴趣。他返回宾夕法尼亚州立大学学习采矿工程,随后在联邦矿业局(后并入能源部、疾病控制与预防中心、劳工部)任职。
    • 关键贡献:他将统计学方法引入岩土工程,针对长壁式开采等具体问题,通过大量数据收集和分析,开发出预测顶板稳定性的“稳定性因子”模型和软件。他发现了影响顶板稳定的关键地质因素,如沉积层厚度、岩体强度以及由板块构造运动产生的巨大水平应力。他的工作并非简单要求行业使用固定公式,而是提供更科学、更可靠的评估工具和解决方案。
    • 成果与影响:他的研究和技术推广显著改善了煤矿安全。特别是2007年克兰德尔峡谷矿难后,美国加强了对深部矿井设计的监管,由他的团队进行审核。2016年,美国首次实现了全年无井下煤矿顶板坍塌死亡事故,这被认为是其长期工作的成果之一。他发表了大量技术论文,并撰文澄清历史,强调有效监管(而不仅仅是技术本身)在提升安全水平中的关键作用。
    • 个人特质与与父辈的异同:马克为人低调务实,专注于解决实际问题,厌恶学术精英主义。尽管父亲的研究对象从哥特式教堂转向华盛顿国家大教堂,而他转向煤矿和矿山,但父子二人在运用科学方法研究应力以防止结构坍塌方面确有相似之处。只是公众对教堂的兴趣远大于对地下矿工安全的关注。
  • 结语:文章最终将视角拉回“萨米奖”,强调克里斯托弗·马克这类公务员的贡献,往往在个人不为人知的情况下,实质性地塑造和保护着社会。他于9月11日在肯尼迪中心领取职业成就奖,印证了奖项设立的初衷——让这些至关重要的“金丝雀”(预警危险并推动改进的默默奉献者)得到应有的认可。
7. DEF Con 32 – AMD Sinkclose Universal Ring-2 Privilege Escalation (Not Redacted) [pdf] (media.defcon.org)

该技术演讲详细分析了AMD处理器中存在近二十年的安全漏洞(CVE-2023-31315),该漏洞允许攻击者从操作系统内核(Ring 0)提升权限至系统管理模式(Ring -2),获得对硬件的最高控制权。

漏洞核心原理

  1. SMM与TClose特性:系统管理模式(SMM)是x86架构中权限最高的执行环境,完全独立于操作系统和虚拟机管理程序。AMD处理器中存在一个名为TClose的配置位(通过MSR C001_0113设置),其设计本意是允许重用物理地址空间。当TClose启用时,内存控制器会将TSEG区域(SMRAM的一部分)的访问路由到MMIO空间,而非受保护的SMRAM。
  2. 漏洞触发:攻击者(已具备内核权限)可以:
    • 配置TClose位,将TSEG区域的内存访问重定向到攻击者可控的MMIO区域(例如SPI闪存控制器的BAR)。
    • 精心构造该MMIO区域的数据,使其在SMM入口点(Entry Point)的特定偏移(0x4D)处包含可控的伪全局描述符表(GDT)指针。
    • 当触发系统管理中断(SMI)时,处理器进入SMM,并从被重定向的地址加载攻击者控制的伪GDT。
    • 通过利用x86的GDT分段机制(特别是远跳转地址计算的溢出 wrap-around),将执行流劫持到攻击者在DRAM中准备的payload,从而实现在SMM中执行任意代码。

关键技术挑战与解决方案

  1. 多核同步问题:SMI会同时触发所有物理核心进入SMM。由于SMT(同步多线程),TClose会影响同一物理核心的两个逻辑线程。其中一个线程可能因读取无效的0xFF数据而触发三重错误(Triple Fault)导致系统崩溃。
  2. 解决方案
    • 利用x86分段溢出:通过精心构造GDT描述符,使得在核心0上成功的跳转地址,在核心1上因溢出计算而指向另一个可控的payload地址。
    • 同步控制:利用操作系统内核API(如Windows的DPC、Linux的SMP同步)确保在触发漏洞时,相关线程处于已知的可控状态。
    • 双重SMI触发:第一次SMI进入SMM时TClose关闭,用于初始化SMM保存状态;第二次SMI时启用TClose触发漏洞,避免因保存状态无效而崩溃。

影响范围与危害

  1. 受影响产品:几乎所有现代AMD CPU,包括Ryzen、Threadripper和EPYC系列,涉及数亿颗芯片。
  2. 安全影响:成功利用此漏洞意味着攻击者获得了Ring -2级别的完全控制权,可以:
    • 读写系统任何内存,包括受SMRAM保护的内存。
    • 绕过操作系统、虚拟机管理程序和终端检测与响应(EDR)软件的监控。
    • 在SPI闪存中植入持久化固件,导致即使重装操作系统或更换硬盘也无法清除。
    • 破坏平台安全启动(Platform Secure Boot)的完整性。

缓解措施

  1. AMD微码更新:官方提供的主要修复方案,但可能无法覆盖所有已停产(EOL)的产品。
  2. 固件层面修复:OEM厂商可在SMM入口点代码中添加检查,如果检测到TClose位被设置则中止执行。
  3. 监控措施:管理程序(Hypervisor)可监控对TClose相关MSR的访问。

结论

该漏洞源于一个设计存在缺陷且未被充分保护的硬件特性,结合了复杂的架构知识和精巧的利用技术,实现了从内核到硬件最高权限的“通用”提权。它凸显了现代计算平台底层硬件安全的重要性和复杂性。

9. Sqlc: Compile SQL to type-safe code (sqlc.dev)

Sqlc 是一个将 SQL 查询编译为类型安全代码的工具,旨在提升数据库操作的稳定性和可靠性。

该工具主要针对数据库管理中的两大核心风险:

  1. Schema 变更风险:当数据库结构(Schema)发生变化时,正在生产环境中运行的现有查询和相关代码可能会因此失效。
  2. 查询质量风险:编写不佳的 SQL 查询可能导致生产数据库出现问题甚至崩溃。

为了解决第一个风险,Sqlc 提供了 sqlc verify 功能。该功能的核心作用是分析现有查询与新的 Schema 变更之间的兼容性。在应用 Schema 变更之前,使用 sqlc verify 进行检查,如果发现任何现有查询与新结构不匹配(即会导致错误),它会立即报错,从而防止这类问题在部署后影响生产环境。

11. CitizenDJ – Make music using free audio and video from the Library of Congress (citizen-dj.labs.loc.gov)

CitizenDJ 项目概述 CitizenDJ 是一个允许用户使用美国国会图书馆提供的免费音视频素材来制作音乐的项目。该项目汇集了图书馆的多个数字化馆藏,旨在促进创意混音和音乐创作。

主要资源集合 项目包含多个主题资源集合,每个集合都提供“探索”、“混音”和“浏览下载”功能:

  1. 发明娱乐:包含341部早期电影、81张唱片录音及相关资料(如照片和杂志文章),记录了爱迪生公司的早期电影和录音。
  2. 综艺舞台录音与电影:61部电影,涵盖动物表演、滑稽短剧、舞蹈等,旨在再现1897年至1920年间杂耍表演的氛围。
  3. 乔·史密斯收藏:超过200位著名歌手、音乐人和行业偶像的原始访谈录音,记录了他们的生平、音乐和经历。
  4. 自由音乐档案:来自“自由音乐档案”网站的无版权音乐,作为国会图书馆网络文化档案的一部分被保存。
  5. 音乐盒计划:通过口述历史、现场表演等方式记录和保存美国女性音乐家历史的项目所产生的录音和影像。
  6. 托尼·施瓦茨收藏:包括广播、对话和现场声音,由著名的纽约声音记录者和制作人创作,以其具有社会意识的广告活动(如首个反吸烟广告)而闻名。
  7. 美国英语方言录音:包含118小时的录音,记录了北美各种英语方言的言语样本、语言学访谈、口述历史等。
  8. 国家放映室:展示国会图书馆丰富的动态影像收藏,免费向全球观众提供原本难以获得的影片(包括受版权保护和公共领域的影片)。
  9. 国家点唱机(按流派细分):提供免费的历史录音,包含多个子集合,例如:
    • 蓝调:蓝调及类似作品。
    • 爵士:爵士乐及其根源音乐形式(如拉格泰姆)。
    • 民间音乐:各类美国民间音乐。
    • 歌剧:歌剧及相关作品(如轻歌剧、清唱剧)选段。
    • 音乐剧:源自流行音乐剧的作品。
    • 古典音乐:古典作品与演出。
    • 流行音乐:录制时被视为流行的音乐。

总结 CitizenDJ项目通过整合国会图书馆多样化的音视频馆藏,为用户提供了一个独特的平台,让他们能够免费获取历史素材并进行创意混音,从而创作新的音乐作品。资源涵盖早期电影、戏剧录音、名人访谈、各类音乐(从古典到流行)以及方言记录等,类型丰富。

13. Consent-O-Matic – automatically fills ubiquitous pop-ups with your preferences (consentomatic.au.dk)

Consent-O-Matic 隐私政策摘要

Consent-O-Matic 是一款自动填充网站隐私偏好弹窗的浏览器扩展。其隐私政策详细说明了扩展程序和官方网站的数据处理与隐私保护规则。

浏览器扩展 (Extension)

  • 本地数据存储:扩展不处理任何个人数据,仅在用户本地计算机上存储三项数据:用户设置、已交互弹窗数量和已节省点击次数。用户可通过卸载扩展或在设置的“关于”页面点击“清除”按钮来彻底删除这些数据。
  • 权限与数据收集:安装时浏览器提示的“访问所有网站数据”权限,仅用于读取网页代码以检测和交互隐私弹窗。扩展实际上不会收集用户访问的网站数据或用户在网站上的任何行为数据。
  • 问题反馈机制:当用户通过“Let us know!”按钮反馈扩展在某页面失效时,服务器会接收并存储该网页 URL 以改进覆盖率,该 URL 列表可能会与开源社区共享。此网络请求虽会伴随接收用户的 IP 地址,但官方不会访问或存储该 IP 数据(基于合法利益处理)。

官方网站 (Website)

  • 自动收集信息:访问官网时,浏览器会自动向服务器发送访问时间、IP 地址、引荐来源网站、推断的地理位置、浏览器类型及操作系统信息。
  • 数据使用与保留:基于合法利益收集上述数据,仅用于评估系统的安全性、稳定性和性能。数据最多保留 90 天后自动删除,且不会与任何第三方共享。
  • 用户数据权利:由于上述信息属于个人数据,用户享有访问、删除、更正和数据可携权。如需行使这些权利,用户需提供其 IP 地址列表并联系官方。
14. Hallelujah, Leonard Cohen, and a Pulitzer Prize-winning writer's suicide (subtledigressions.substack.com)

《哈利路亚》:一首歌的漫长旅程 莱昂纳德·科恩创作《哈利路亚》历时四年以上,经历了八十多个诗节的反复推敲与痛苦舍弃。1984年,该曲随专辑《Various Positions》被CBS唱片公司总裁斥为“灾难”并拒绝发行,后通过独立厂牌小范围发行,反响平平。科恩持续打磨,留下了多达十五页的歌词版本。

  • 关键转折:1991年,约翰·凯尔为致敬专辑改编此曲,从科恩发来的十五页诗节中精选融合了灵性与情欲的版本。1992年,杰夫·巴克利偶然听到凯尔的版本后,将其发展为自己的标志曲目,并在其1994年专辑《Grace》中录制,但专辑初期商业失败。
  • 终获认可:巴克利于1997年意外溺亡后,其版本因悲剧色彩更受关注。2001年歌曲随电影《怪物史莱克》广为传播,2004年入选《滚石》杂志“史上最伟大500首歌曲”榜单。2009年,科恩在科切拉音乐节的演唱获得观众热烈回应,标志着这首历经二十五年的作品终获巅峰认可。

《笨伯联盟》:一部小说的死后重生 约翰·肯尼迪·图尔在1960年代初期于军队服役期间开始创作小说《笨伯联盟》,于1964年完稿。他将稿件寄给西蒙与舒斯特出版社的知名编辑罗伯特·戈特利布。

  • 创作遇挫:戈特利布认为小说虽幽默但缺乏“意义”,多次通信后要求大幅修改。图尔坚持己见,不愿改动,最终要求退回稿件,心灰意冷。此后的几年里,他陷入抑郁,生活逐渐崩溃。
  • 悲剧与转机:1969年,31岁的图尔自杀身亡。多年后,其母亲在儿子房间发现手稿,坚信作品价值,在多次被出版社拒绝后,强行将稿件交给作家沃克·珀西。珀西阅读后惊为天人,力保小说原貌出版。
  • 身后荣耀:1980年,《笨伯联盟》得以出版,次年(1981年)荣获普利策小说奖,成为经典,而作者已去世十余年。

核心主题:天才的脆弱与成功的偶然性 文章通过这两部作品的共同命运——初始遭拒、创作过程充满挣扎、长期被埋没、最终因偶然因素(他人的改编、家人的坚持)而获得不朽声誉——探讨了艺术与成功的关系。作者指出,天才作品常被当时的“守门人”(唱片公司高层、编辑)误判或忽视。成功除了需要艺术家的坚韧创作(如科恩和图尔的不断打磨),更依赖时机、运气(如巴克利的诠释与悲剧命运、珀西的慧眼)等难以掌控的因素。文章最后反思,许多杰作可能因缺少“杰夫·巴克利”或“沃克·珀西”而永远湮没,艺术家唯有坚持雕琢,并怀抱希望。

16. A new rare high-rank elliptic curve, and an orchard of Diophantine equations (thehighergeometer.wordpress.com)

新书概述与高秩椭圆曲线示例

Grechuk的书及其系统方法

数学家Bogdan Grechuk的新书《多项式丢番图方程:系统方法》提出了一种研究丢番图方程的新方法:定义方程的适当“大小”版本,按大小排序所有多项式丢番图方程,然后按顺序求解。该书从简单例子开始,注重过程识别可应用此方法的方程类,并在求解后移除已处理的类。到书中间(超过400页),概述了构建的算法,包含约21个主要案例,难度递增。求解焦点从描述参数化解,逐步转向写出解的多项式或有理函数族、找到递推关系、判断解的存在性(有限或无限),最终到确定是否有解。方法从基本技术开始,逐步使用前沿数论工具如Chabauty方法。

配套论文与开放问题

作者引用配套论文《丢番图方程的系统方法:开放问题》(arXiv:2404.08518),列出了未解决的问题,读者可尝试解决以成为首位求解者。书的最后部分总结了最早/最小/最短的未解方程,并提出一个关键开放问题:在大小函数H下,最小方程是什么,其整数解的存在性独立于ZFC(Zermelo–Fraenkel集合论与选择公理)?基于MDRP对希尔伯特第十问题的解决,我们知道最终会出现ZFC中不可判定的方程;Zhi-Wei Sun的工作表明对于不超过11个变量的丢番图方程,算法不可解性成立,但找到显式最小方程极具挑战。

椭圆曲线高秩示例

作者提供了一个椭圆曲线方程示例,该方程定义了一个秩为29的椭圆曲线,具有已知最大数量的有理点:

y^2 + xy = x^3 - 27006183241630922218434652145297453784768054621836357954737385x + 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497

(来源:https://web.math.pmf.unizg.hr/~duje/tors/rk29.html)。该曲线有29个线性独立的有理点,由N. D. Elkies和Z. Klagsbrun于2024年8月宣布,结果依赖于广义黎曼假设(GRH)——该假设远未被证明。此方程展示了多项式丢番图方程的复杂性:其完整求解需要解决当前数学无法触及的猜想,凸显了丢番图方程研究中未解决问题的深度与难度。

18. Cecilia Payne-Gaposchkin discovered that stars are mostly made of hydrogen (www.aps.org)
19. Microwave spontaneously turned on by its LED display (blog.stuffedcow.net)

故障现象

微波炉(型号 Insignia NS-MW09SS8,制造商为美的)在使用约五年后出现异常:随机自动开启照明灯、风扇和转盘。故障逐渐恶化,最终在门关闭时持续出现此现象,导致微波炉无法正常使用(控制面板无反应,烹饪中止)。表面现象类似门开关故障,但经检查三个门开关均工作正常。

根本原因

故障根源在于老化/损坏的蓝色LED显示屏。其反向偏压漏电流干扰了微控制器对门开关状态的正确感知。

  • 核心机制:微控制器使用同一GPIO引脚(Port H.0)既驱动LED显示屏的A段(段码),又用于感知门开关状态。
  • 故障触发:当LED因老化产生足够的反向漏电流时,在控制器检测门开关状态的瞬间(LED全部关闭的2毫秒内),漏电流会将输入引脚电压拉高。即使门实际关闭(门开关闭合),控制器也会误判为门打开(逻辑高电平)。
  • 连锁反应:控制器误判门打开后,会激活继电器RLY2以开启照明灯。由于电路设计,当RLY2激活且上部门开关闭合时,风扇和转盘会同时启动。但磁控管(微波发生部件)保持关闭,因此无辐射风险。

电路分析与设计缺陷

  • 设计权衡:为节省微控制器I/O引脚成本,关键功能引脚被共享。这使LED显示的老化问题得以干扰门开关感知。
  • 磁控管安全机制:系统设计了多重独立机制防止磁控管意外启动(包括三个门开关、继电器串联、需要连续脉冲信号等),因此即使发生此故障,也无微波泄漏风险。
  • 蓝色LED的脆弱性:数据表明,蓝色LED比其他颜色(如绿色)老化更快、漏电流问题更突出,是此故障的诱因之一。

维修方案

  1. 初期修复:在LED显示A段的电路中串联一个肖特基二极管,以阻断反向漏电流对门开关感知电路的干扰。此方法解决了自动启动问题,但无法修复已老化的LED显示本身。
  2. 后期更换:当显示进一步老化(其他段出现漏电流,影响按键功能)且无法找到直接替换的原装显示模块后,作者自行设计并制作了替代显示模块,使用单独的七段数码管和分立LED,并在每个LED前串联二极管以防止反向电压损伤,最终解决了所有问题。

关键结论与启示

  1. 故障本质:微波炉“自行启动”是因LED显示屏老化导致的控制器误判,并非门开关或软件故障。
  2. 设计警示:在产品设计中,应避免将GPIO引脚在关键功能(如门开关感知)与可能老化失效的部件(如LED)之间共享,或需对共享设计进行充分的容错考虑(如增加保护二极管)。
  3. 消费提示:数据对比显示,配备蓝色LED显示屏的微波炉出现此类故障的概率远高于配备绿色显示屏的型号。购买时避开蓝色显示可能是降低风险的一个参考因素。
  4. 维修可行性:对于具备电子知识的用户,通过添加保护二极管或替换显示模块可有效修复此问题。作者已提供相关电路图和设计文件。
21. FutureRack: Server racks are everywhere. Now you can find them in your home (futurerack.info)

FutureRack:家庭中的服务器机架普及

FutureRack 指出,服务器机架作为基础设施的一部分,正从数据中心扩展到家庭环境。这意味着服务器机架现在无处不在,包括在个人住宅中,成为日常生活基础设施的组成部分。这一趋势反映了技术融入居住空间的演变,强调服务器机架在现代生活中的可及性和实用性。

23. LuaJIT PR: Add Support for RISC-V 64 (github.com)

该内容涉及LuaJIT项目中添加对RISC-V 64位架构支持的相关讨论和提交记录。

主要进展

  • 拉取请求:LuaJIT/LuaJIT#1267 提出了对RISC-V 64位的支持。
  • 社区适配
    • Gentoo Linux的RISC-V分支(gentoo/riscv)已通过补丁集成了此支持,相关提交(如commit b49c4eb)引用了该PR。
    • SerenityOS项目在移植过程中也提及此PR,指出LuaJIT本身尚未完全支持RISC-V,因此其RISC-V构建仍无法完成。
  • 技术问题与改进:当前的SIGILL处理器在某些平台上存在兼容性问题。鉴于Linux 6.6内核逐渐普及,建议切换到HWPROBE以提高兼容性。
  • 协作:相关提交由多位开发者(如Puqns67、Heinrich Schuchardt、spholz等)协作完成,并涉及多项目(Gentoo、SerenityOS)的适配工作。

核心意义:该PR旨在为LuaJIT注入RISC-V 64位架构的官方支持,虽尚未合并,但已推动下游发行版和项目进行适配与测试。

25. Warner Brothers Cartoon Companion (1998) (www.warnercompanion.com)

《华纳兄弟卡通伴侣》是由 E.O. Costello 编写的参考资料,内容按字母顺序对华纳兄弟动画中的角色、导演、演员、术语及文化引用进行了详细说明。以下是字母"D"部分的主要内容摘要:

主要角色

  • 达菲鸭:首次出现在1937年,比兔八哥更早。其角色在不同导演(如克拉姆佩特、琼斯)手中展现出多样性格,从疯狂到狡黠。其口吃特点据说源于制片人莱昂·施莱辛格。
  • 多兹沃思:出现在麦金森执导的短片中,是一只懒惰、贪吃的猫,常指使一只小猫去捕食。

导演与动画师

  • 卡尔·道尔顿:1930-40年代的动画师与导演,曾与哈德威合作执导《Hare-Um Scare-Um》(1939),其中包含兔八哥的早期原型。
  • 亚瑟·戴维斯:资深动画师,1940年代在华纳短暂担任导演。其作品(如《Bowery Bugs》)风格扎实有趣,但因行业结构调整其部门被解散。后成为弗里伦团队的首席动画师。
  • 厄尔·杜瓦尔特:早期导演,仅执导四部短片,其中包括华纳第一部彩色动画《Honeymoon Hotel》(1934)。

配音演员与真人明星

  • 维维安·戴维奇与露比·戴维奇:非裔母女演员,分别在《Coal Black and De Sebben Dwarfs》(1943)中为“白雪公主”和王后配音。
  • 贝蒂·戴维斯:华纳当家女星,曾两次获奥斯卡奖。在多部动画中被戏仿,如《Hollywood Daffy》。
  • 安迪·迪瓦因:以其独特的沙哑嗓音闻名,在多部短片中被戏仿或引用。
  • 迪克·特雷西:切斯特·古尔德创作的漫画侦探,其反派设计影响深远。华纳动画《The Great Piggy Bank Robbery》(1946)对其进行了全面恶搞。
  • 多丽丝·德宾:歌手,被誉为“拯救了环球影业”。在动画中被戏仿为“Deanna Terrapin”。
  • 吉米·杜兰特:以其大鼻子和滑稽口误著称,在多部动画中被戏仿。

编剧与创作者

  • 约翰·邓恩:1960年代华纳的故事作家,参与了《The Pied Piper of Guadalupe》等作品。
  • 戴夫·德蒂奇:1960年代故事作家,作品包括《Birds of A Father》等。

术语与文化引用

  • 达菲拉:查克·琼斯经典动画《Duck Amuck》(1953)的工作标题。
  • “我搞定了”:雷德·斯凯尔顿的口头禅,在《Fifth Column Mouse》等短片中被使用。
  • 杜利特尔少校:二战时期轰炸东京的航空英雄,在《Baby Bottleneck》中被提及。
  • 淹水:动画中常见用手指表示“沉下去第几次”的桥段,出自《Aloha Hooey》等短片。
  • “小酒馆杜菲”:广播节目,在《Hush My Mouse》中被戏仿。
  • “保持通话”:源自广播节目《金发女郎》的开场白,在《Baby Bottleneck》中被引用但可能被删减。
  • 乔·多尔蒂:猪小弟的原配音演员,后因无法控制口吃而被梅尔·布兰克取代。

其他

  • 巴尼·多兹沃思:一顶为《Jack-Wabbit and the Beanstalk》中巨人制作的帽子的品牌。
  • 小象邓波:迪士尼动画《小飞象》角色,在《The Bashful Buzzard》中被特意标明“不是邓波”。
  • 道格·道尔顿:1950年代华纳的动画师,主要在麦金森团队工作。

这份资料系统梳理了华纳动画黄金时代丰富的角色谱系、幕后制作者及流行文化关联,是研究该时期美国动画史的重要参考。

26. Appalachian Trail Hiker Photo Archive (athikerpictures.org)

阿巴拉契亚步道徒步者照片档案

在西弗吉尼亚州哈珀斯费里的阿巴拉契亚步道保护协会总部拍摄照片,已成为计划徒步全程阿巴拉契亚步道者的标准仪式。作为管理和保护步道的领导机构,ATC 的一项职能是维护所有完成全程徒步者的官方“2000英里徒步者”登记册。因此,在此拍照让许多徒步者感觉其徒步成果获得了官方认可。

得益于昆比家族基金会的慷慨资助以及阿巴拉契亚步道博物馆在特里·哈利·威尔逊领导下志愿者的辛勤工作,早期的宝丽来照片和近期的数码照片的扫描版本现已可在世界任何地方在线浏览。当阿巴拉契亚步道博物馆于2010年在宾夕法尼亚州松林熔炉州立公园开放后,照片的数字版本也在该馆提供。

27. The "email is authentication" pattern (rubenerd.com)

关于“电子邮件即认证”模式的思考

这篇文章探讨了一个普遍存在的登录行为模式及其背后的用户心理,并对安全系统的设计提出了反思。

观察到的常见登录行为

作者观察到许多用户采用一种非标准的登录流程:访问登录页面 → 点击“忘记密码” → 查看电子邮件 → 点击重置链接 → 设置一个不会记住的临时密码 → 重复此过程。当被问及原因时,用户通常无法回答或表示从未思考过。

行为本质:无意识的习惯

作者认为,这种模式并非用户经过深思熟虑后的主动选择,而是一种逐渐固化、未经审视的惯例。它为用户提供了一种可重复、低认知负荷的解决方案,以避免记忆和管理复杂的密码。

反思与设计启示

文章的核心观点是,我们(尤其是技术从业者)看待许多安全问题的角度可能需要调整。作者指出,用户通过“电子邮件即认证”这一习惯行为,实际上将邮箱的可用性和安全性作为了账户访问的核心依赖。

由此引发的思考是:我们能否逆向思考,利用和引导用户的这种习惯性行为倾向?安全改进常常伴随着更多的步骤和摩擦,作者对此表示理解。但关键在于,未来系统设计的目标应是引导用户自然地演进出更安全的使用方式,而不是强行要求用户对抗他们的本能或习惯。

文章最终暗示,或许最有效的安全设计,是那些能将安全实践无缝融入用户既定行为模式中,从而减少阻力、形成新的良性习惯的设计。

28. Litecli: CLI for SQLite Databases with auto-completion and syntax highlighting (github.com)

Litecli: SQLite数据库命令行客户端

主要功能
Litecli 是一款用于操作 SQLite 数据库的命令行工具,提供自动补全语法高亮功能,提升数据库操作效率和可读性。

安装方式

  1. 通过 pip 安装(Linux 可能需要 sudo 权限):
    pip install -U litecli[sqlean]
    
  2. macOS 用户可通过 Homebrew 安装

使用示例

  • 基本命令格式:litecli [选项] [数据库名称]
  • 查看帮助:litecli --help
  • 连接数据库示例:litecli sqlite_db_name

配置文件

  • 首次运行时自动生成配置文件:
    • Linux/macOS:~/.config/litecli/config
    • Windows:~\AppData\Local\dbcli\litecli\config
  • 配置文件内包含所有可选参数说明。

文档参考
更多功能详情请访问官网:litecli.com/features

29. Openly Licensed Streetview with Panoramax (tzovar.as)

Panoramax:开源街景影像解决方案

核心要点: Panoramax 是一个完全开放许可的街景影像公共项目,旨在为 OpenStreetMap 等开放项目提供替代大型科技公司封闭平台(如 Google Street View)的开源方案。

项目背景与动机

  • 街景影像对虚拟探索和 OpenStreetMap 贡献具有重要价值。
  • 现有主流服务(如 Mapillary、KartaView)虽使用 CC-BY-SA 等开放许可,但其后端系统、上传/查看工具均为私有,且被大型科技公司(Facebook、Grab)控制,不符合开放公共理念。
  • 消费级 360 相机和智能手机的普及降低了采集门槛。

Panoramax 的核心特点

  1. 全链路开源:从数据上传工具(Web、CLI)、后端服务器到嵌入式查看器,所有组件均为开源许可。
  2. 联邦化架构:允许任何组织或个人部署自己的本地实例,解决了两个关键问题:
    • 存储成本:分布式存储避免了集中式海量数据存储的高昂开销。
    • 法律合规:不同地区的隐私法规(如模糊人脸、车牌的要求)可通过本地实例灵活适配。
  3. 现有公共实例
    • 法国国家地理与森林研究所(IGN)实例:仅限法国境内图像。
    • 法国 OpenStreetMap 分会实例:全球范围测试图像。
    • 联邦地图:可查看所有实例的图像。

使用与贡献

  • 作者体验:自2024年7月起,已通过360相机贡献约4万张图像,覆盖约2500公里(汽车、步行、骑行)。
  • 参与门槛低:无需专业360相机,使用智能手机拍摄地理定位照片即可开始贡献。
  • 如何参与:可参考法国 OpenStreetMap 实例的指南。

技术现状与展望

  • 目前地图可视化存在高速公路上因速度限制导致图像连接断裂的问题,已有修复方案提交。
  • 项目旨在建立可持续的街景影像公共库,鼓励社区参与和本地化部署。

总结: Panoramax 提供了一个从技术架构到数据许可都完全开放的街景影像替代方案,通过联邦化设计平衡了全球覆盖与本地合规需求,并为 OpenStreetMap 等开放数据项目提供了重要的基础设施支持。

30. Microui+fenster=Small GUI (bernsteinbear.com)

项目目的

为了在屏幕上直接绘制像素并构建轻量级GUI,同时避免使用SDL或OpenGL等复杂的底层图形库,作者将 fenstermicroui 两个极简C/C++库结合,实现了一个超小型的GUI解决方案。

核心组件

  • fenster:一个极简的2D画布库。采用单头文件设计,代码量不足400行,支持WinAPI、Cocoa和X11平台,并内置键盘和鼠标输入处理。
  • microui:一个轻量级GUI库。代码量约1500行,负责将菜单、按钮、文本等GUI元素转换为简单的、可重定向的绘图字节码。

实现与关键功能

microui 的官方演示程序默认使用SDL作为后端。为了使用更轻量的 fenster 替代SDL,作者与Kartik合作开发了 fenster 后端,克服了OpenGL相关概念(如“quad”和“glScissor”)的适配难题。

  • 代码结构:绑定文件不到250行代码,借鉴了SDL渲染器演示的结构,并额外增加了用于抽象键盘和鼠标按钮的函数。
  • 关键功能:该后端已能正常工作,成功实现了演示窗口的绘制,并支持鼠标悬停、点击以及键盘输入处理。项目采用即插即用(drop-in)设计,可直接集成到用户的项目中。

待完善细节

目前该实现仍有一些技术细节需要进一步解决:

  1. 渲染逻辑:需要明确如何判断何时从纹理进行渲染,何时从绘图命令提供的颜色进行渲染。
  2. 修饰键支持:需要实现组合键功能(例如按下 Shift+1 时渲染出“!”)。
  3. 滚动支持:需要添加对滚动操作的处理。
31. Breaking Bell's Inequality with Monte Carlo Simulations in Python (bytepawn.com)

使用Python蒙特卡罗模拟打破贝尔不等式

本文通过一个游戏探索贝尔定理,挑战经典物理并引入量子力学。游戏涉及三个玩家:Alice、Bob和Victor,旨在测试贝尔不等式,这是局部隐变量理论的数学限制。

贝尔游戏概述

  • 玩家角色:Victor准备一对粒子(如经典物体或量子比特),分别发送给空间分离的Alice和Bob。
  • 测量选择:Alice和Bob各有两个测量设备(A_H、A_T和B_H、B_T),通过抛硬币随机选择,导致四种等概率组合(HH、HT、TH、TT)。
  • 测量结果:每个测量产生二进制结果(+1或-1)。
  • 经典假设:结果由隐藏变量决定,粒子携带预定属性。

贝尔统计量与不等式

  • 统计量公式:S = ⟨A_H B_H⟩ + ⟨A_H B_T⟩ + ⟨A_T B_H⟩ - ⟨A_T B_T⟩,表示测量结果的相关性平均值。
  • 贝尔不等式:在局部隐变量理论下,S的绝对值不能超过2,即|S| ≤ 2。这反映了经典确定性和局域性的限制。

局部隐变量的约束

  • 如果结果由隐藏变量预定,所有可能组合(16种)的贝尔和恒为+2或-2,因此S必然在[-2, 2]范围内。
  • Python代码演示了这一点:通过遍历所有隐藏变量组合,贝尔和始终为±2。

Python模拟实验

  • 模拟函数:bell_experiment(N)运行N轮游戏,计算S。
  • 经典模拟尝试
    • Victor发送相同粒子(如骰子值)给双方,Alice和Bob使用确定性测量函数,S保持在[-2, 2]内。
    • 即使引入随机性(如Victor发送相关值或随机测量函数),仍无法打破不等式。
    • 示例:当Victor发送相同值时,S ≈ -0.665;当发送相关值时,S ≈ 0.33或1.67。

使用非局部信息打破不等式

  • 方法:允许Bob的测量函数访问Alice的测量选择和结果(模拟超距作用)。
  • 实现:在代码中,粒子对象包含“other”引用,使Bob能查看Alice的状态。
  • 结果:S达到4,打破不等式。这是因为Bob根据Alice的设备和结果调整输出,强制所有项贡献为+1,除了最后一项为-1(但公式中有负号)。

量子力学打破不等式

  • 量子预测:使用纠缠量子粒子(如单态),S可达到约2.828(Tsirelson界限),超过经典限制。
  • 模拟方法:Victor制备纠缠量子比特,Alice和Bob使用特定测量算符(如Pauli矩阵)。
  • 代码实现:模拟量子测量概率,S ≈ 2.82。但注意,这仅为概率模拟,真正的量子行为需要量子计算机。
  • 条件概率关键:量子测量中,Bob的结果概率依赖于Alice的测量选择和结果,由概率矩阵(p = 1/(4-2√2) ≈ 0.8535)描述。红色子矩阵(转置)导致不等式打破,需要超距作用。

结论

  • 本文通过贝尔游戏和Python模拟解释了贝尔不等式的逻辑,展示了经典策略遵守不等式,而量子策略(或模拟非局部作用)能打破它。
  • 关键点:量子力学无法用局部隐变量理论描述,因为测量结果存在非局域关联。
32. Google says replacing C/C++ in firmware with Rust is easy (www.theregister.com)

文章摘要:Google建议在固件中用Rust替换C/C++,但推行存在阻力

Google的实践与主张 Google近期使用Rust语言重写了其Android虚拟化框架中受保护虚拟机的固件。其工程师在技术文章中详细介绍了将传统C/C++代码替换为Rust的过程,并声称这个过程“简单”,展示了Rust工具链如何处理专用的裸机目标。他们认为固件领域缺乏高级安全机制,而C/C++等内存不安全语言导致的缓冲区溢出、释放后使用等内存安全漏洞是大多数重大漏洞的根源。Rust为此提供了一种性能与代码规模相当,且能与C无开销互操作的内存安全替代方案。

推行面临的实际挑战 尽管Google形容替换过程“容易”,但Rust语言本身以学习曲线陡峭而著称。让经验丰富的C/C++开发者转向Rust并非易事。文章举例指出,旨在将Rust代码引入基于C的Linux内核的“Rust for Linux”项目,其一位维护者近期因遭受来自Linux内核开发者的阻力而辞职。在一次会议上,一位内核贡献者直言“不会强迫所有人学习Rust”。

行业趋势与Google的支持 尽管存在阻力,包括美国政府和多家科技公司、非营利组织在内的力量正在推动用Rust重写关键开源项目。美国网络安全与基础设施安全局也建议软件厂商将消除内存安全漏洞作为首要目标。Google自身是Rust的坚定支持者,研究显示其Rust开发者的生产率是C++工程师的两倍。Google表示正在Android、Chromium等项目中增加Rust的使用,并致力于与Rust生态系统合作,推动其在嵌入式和固件等关键堆栈部分的采用。