
Sign up to save your podcasts
Or


欢迎收听 Hacker News 每日播报,今天我们将深入剖析 Apple M1 GPU 的逆向工程终章、回顾软件工程史上的 Therac-25 惨痛教训、探索 ASCII 艺术绘图神器 Monodraw、警惕利用 AI 的 Nx 供应链攻击、揭露反风能组织背后的资金来源、了解 QEMU 10.1.0 的重磅更新、解读 DMCA 法案的新裁决、关注光污染对鸟类的影响、学习在 C 语言中实践面向对象设计,并探讨为何有时我们需要刻意减慢程序。
Asahi Linux 团队的 Alyssa Rosenzweig 发表长文,宣告了对 Apple M1 GPU 逆向工程的史诗级任务圆满完成。经过数年不懈努力,团队成功为 M1/M2 Mac 带来了功能齐全的 Linux 支持,包括完整的图形加速。这不仅仅是让 Linux 运行起来,更是创造了业界首个完全符合 OpenGL 4.6 和 Vulkan 1.4 规范的 Apple Silicon 开源图形驱动。
这段旅程始于 2020 年,充满了挑战与突破。从最初绘制一个简单的三角形,到开发出能够运行《赛博朋克 2077》等 AAA 级 Windows 游戏的驱动,每一步都凝聚了开发者的智慧与毅力。尤其值得称道的是,团队通过计算着色器(compute shaders)模拟了硬件本身不支持的几何着色器和曲面细分着色器,成功解锁了 Proton 游戏兼容性,这在技术上是一项了不起的成就。
这项工作不仅为 M1/M2 Mac 用户带来了在 Linux 上获得完整体验的自由,更重要的是,它打破了硬件厂商对底层驱动的垄断,向业界证明了即使面对最封闭的生态系统,开源社区依然能够创造奇迹。Alyssa 的故事——从一名高中生开始逆向工程,到最终领导完成如此庞大的项目——本身就是对开源精神和个人毅力的最佳诠释。随着 M1 GPU 项目的完结,她宣布将开启新的征程,转向 Intel Xe HPG 架构的逆向工程,这让整个开源图形社区对未来充满期待。
Therac-25 放射治疗机事故是软件工程领域一个永恒的警示。在 20 世纪 80 年代,这款完全由软件控制的设备因一系列致命的软件缺陷,导致多名患者遭受了巨量辐射,造成了无法挽回的伤害甚至死亡。
事故的核心在于两个关键的软件缺陷。其一是一个典型的竞态条件(race condition):当经验丰富的操作员快速输入并修正治疗参数时,用户界面虽然更新了,但底层的控制程序却没有足够的时间同步,导致机器在错误的配置下发射了高能光束。其二是一个单字节变量溢出问题,该变量每计数 256 次后会归零,从而导致安全检查被意外跳过。
这起事件的根源并非仅仅是代码错误,而是一次系统性的组织失败。开发商 AECL 完全依赖软件进行安全控制,取消了传统的硬件联锁装置。他们错误地认为从旧型号继承的代码是“经过验证的”,在安全分析中甚至排除了“编程错误”的可能性。这种对软件风险的认知不足,加上缺乏独立的测试流程和健全的开发文化,最终酿成了悲剧。
这起事件对医学信息学产生了深远影响,凸显了传统医学领域的“连续性风险”认知与计算机系统“离散性风险”之间的巨大鸿沟。它提醒我们,在开发任何安全关键系统时,必须将严格的测试、健全的流程和对潜在风险的敬畏之心放在首位,设计出能够从根本上阻止低质量产出的流程。
Monodraw 是一款专为 macOS 设计的强大 ASCII 艺术编辑器,它将复古的纯文本美学与现代图形编辑器的便利性完美结合。它的核心理念是利用纯文本的通用性,帮助用户轻松创建流程图、架构图、思维导图等,并能无缝嵌入到代码注释、技术文档或任何纯文本环境中。
这款工具的功能集非常丰富,处处体现着对开发者的友好。
在开发者社区中,Monodraw 因其在技术文档和代码注释中的独特优势而备受青睐。纯文本图表可以与代码一同进行版本控制,在任何终端或文本编辑器中都能正确显示,这是图片无法比拟的便利。对于追求效率和原生体验的 Mac 用户来说,Monodraw 提供了一个优雅且功能强大的解决方案。
近期,流行的 JavaScript 构建工具 Nx 遭遇了一次复杂的供应链攻击,恶意版本的软件包被发布到 npm,导致数千名开发者的加密货币钱包和各类凭证被盗。
攻击者通过在 @nx/devkit 等多个核心包中注入 post-install 恶意脚本来实施攻击。一旦开发者安装了受感染的版本,脚本就会自动执行,扫描本地文件系统,窃取包括 .npmrc 文件、SSH 密钥、环境变量和加密货币钱包在内的敏感信息。
这次攻击最引人注目之处在于,恶意软件利用了 Claude 或 Gemini 等 AI 命令行工具。它向 AI 发送精心构造的提示词,指令其递归搜索文件系统中的敏感数据。这种方法将大部分恶意逻辑“外包”给了 AI,使得恶意代码本身更难被传统的基于签名的安全工具检测到,为软件供应链安全带来了全新的挑战。
这起事件再次敲响了供应链安全的警钟,开发者对公共包管理器的信任度正在经受考验。
随着 AI 技术的普及,攻击者的手段也在不断升级。开发者必须保持警惕,采取积极的防御策略,才能在这场持续的攻防战中保护好自己的数字资产。
一位科学家通过深入研究,揭露了多个表面上是“草根”的反风能组织,其背后实际上由石油和天然气行业资助。这一发现揭示了在能源转型过程中,传统化石燃料行业如何通过隐蔽的资金链影响公众舆论和政策制定。
这些资金被用于制作看似科学的研究报告、发起公关活动和法律诉讼,旨在散布对风能项目的负面信息,从而阻碍可再生能源的发展。更令人警惕的是,当这位科学家的研究成果公之于众后,他本人成为了攻击目标,面临着法律威胁和名誉诋毁,有人甚至试图让他丢掉工作。
这一事件引发了关于科学诚信、信息透明度和企业影响力的深刻讨论。许多人赞赏这位科学家的勇气,认为他的工作对于揭露真相至关重要,并将这种策略与当年烟草公司资助否认吸烟危害的研究相提并论。这起事件凸显了在揭露强大的既得利益集团时,独立研究人员可能面临的巨大风险,也促使人们思考如何建立更有效的机制来保护“吹哨人”,并识别和抵制由利益集团资助的虚假信息。
开源模拟器和虚拟化器 QEMU 正式发布了 10.1.0 版本,带来了大量新特性和性能改进,尤其在 Arm、RISC-V 和安全虚拟化方面取得了显著进展。
这次更新不仅提升了现有架构的性能,更在 Arm、RISC-V 等新兴架构以及安全虚拟化领域迈出了坚实的一步,为开发者和系统管理员带来了更多强大的工具和可能性。
美国第九巡回法院的一项重要裁决明确指出,根据《数字千年版权法》(DMCA),版权所有者不能直接向互联网接入提供商(IAP)发出传票,要求其披露涉嫌侵权用户的身份。
DMCA 的核心是为网络主机(如 YouTube)提供的“通知-删除”安全港机制。但 IAP(如 Cox)的角色是提供网络连接,而非托管内容,因此它们无法执行“删除”操作。法院裁定,既然 IAP 无法参与“通知-删除”流程,那么版权所有者也就不能使用 DMCA 第 512(h) 条款提供的“快速通道”传票来获取用户信息。
这一裁决被广泛视为用户隐私的一次胜利。它阻止了版权所有者在没有法官审查的情况下轻易获取用户身份的途径,要求他们必须通过更严格的法律程序。同时,这也为 IAP 减轻了扮演“版权警察”的负担。
然而,这也引发了关于版权执法困境的讨论。在 BitTorrent 等去中心化共享模式下,版权所有者面临着更大的挑战。另一方面,流媒体服务的质量下降、内容下架等问题,也促使用户转向其他获取内容的渠道。这项裁决再次凸显了在数字时代,版权法、用户隐私和技术平台责任之间需要不断寻找新的平衡点。
日益严重的光污染正在悄无声息地改变着我们周围的生态环境,其中,鸟类成为了最直接的受害者之一。夜间的人造光(ALAN)正在严重干扰鸟类的自然生物钟,延长了它们的活动时间,带来了连锁负面效应。
鸟类依赖日照周期来调节觅食、迁徙和繁殖等关键生命活动。然而,城市灯光模糊了昼夜的界限,导致它们更晚入睡、更早醒来。这种“熬夜”行为会削弱它们的免疫力,增加被捕食的风险,并可能扰乱繁殖周期,最终威胁到整个种群的生存。
这一话题引发了科技社区的广泛思考。许多人从技术角度探讨解决方案,例如利用物联网和 AI 技术构建智能照明系统,根据需要调节亮度和光谱,以减少对野生动物的影响。同时,这也促使人们反思城市规划,呼吁在城市发展中更多地考虑生态保护,推广“暗夜保护区”等理念,寻找人类需求与自然生态之间的平衡。
即便是在没有原生面向对象(OO)特性的 C 语言中,我们依然可以通过巧妙的设计模式,享受到封装、模块化和多态带来的好处。一位开发者在构建自己的操作系统时,分享了他借鉴 Linux 内核经验,在 C 语言中实践 OO 设计的宝贵心得。
核心技巧在于使用“虚表”(vtable)。通过定义一个包含函数指针的结构体(如 struct device_ops)作为“接口”,不同的设备或模块可以提供各自的实现,而调用方则通过一个统一的接口指针进行操作。这不仅实现了多态,还允许在运行时动态替换行为,极大地增强了系统的灵活性和可扩展性。例如,操作系统的调度器可以通过切换不同的虚表,在运行时更换调度算法,而无需修改内核的其他部分。
虽然这种方法在语法上比 C++ 等语言显得冗长(需要显式传递 this 指针),但它也带来了好处:对象与其操作之间的依赖关系更加清晰透明。这种在低级系统开发中探索和应用高级设计模式的实践,展现了 C 语言的强大潜力,也激发了开发者社区的浓厚兴趣。
在追求极致性能的软件开发世界里,“减速”听起来像是一个悖论。然而,一篇有趣的研究指出,刻意、可控地减慢程序执行速度,可以成为一种强大的诊断和分析工具。
实现精确的减速并非易事,因为现代 CPU 的乱序执行等优化技术会干扰简单的延时操作。研究人员发现,在 x86 架构上,插入 nop(无操作)或 mov reg, reg(寄存器自赋值)等指令,是实现细粒度、可预测且不影响程序相对性能行为的有效方法。这项研究为开发更先进的开发者工具铺平了道路,让我们从一个全新的角度审视程序的性能与行为。
相关链接:
By Agili 的 Hacker Podcast欢迎收听 Hacker News 每日播报,今天我们将深入剖析 Apple M1 GPU 的逆向工程终章、回顾软件工程史上的 Therac-25 惨痛教训、探索 ASCII 艺术绘图神器 Monodraw、警惕利用 AI 的 Nx 供应链攻击、揭露反风能组织背后的资金来源、了解 QEMU 10.1.0 的重磅更新、解读 DMCA 法案的新裁决、关注光污染对鸟类的影响、学习在 C 语言中实践面向对象设计,并探讨为何有时我们需要刻意减慢程序。
Asahi Linux 团队的 Alyssa Rosenzweig 发表长文,宣告了对 Apple M1 GPU 逆向工程的史诗级任务圆满完成。经过数年不懈努力,团队成功为 M1/M2 Mac 带来了功能齐全的 Linux 支持,包括完整的图形加速。这不仅仅是让 Linux 运行起来,更是创造了业界首个完全符合 OpenGL 4.6 和 Vulkan 1.4 规范的 Apple Silicon 开源图形驱动。
这段旅程始于 2020 年,充满了挑战与突破。从最初绘制一个简单的三角形,到开发出能够运行《赛博朋克 2077》等 AAA 级 Windows 游戏的驱动,每一步都凝聚了开发者的智慧与毅力。尤其值得称道的是,团队通过计算着色器(compute shaders)模拟了硬件本身不支持的几何着色器和曲面细分着色器,成功解锁了 Proton 游戏兼容性,这在技术上是一项了不起的成就。
这项工作不仅为 M1/M2 Mac 用户带来了在 Linux 上获得完整体验的自由,更重要的是,它打破了硬件厂商对底层驱动的垄断,向业界证明了即使面对最封闭的生态系统,开源社区依然能够创造奇迹。Alyssa 的故事——从一名高中生开始逆向工程,到最终领导完成如此庞大的项目——本身就是对开源精神和个人毅力的最佳诠释。随着 M1 GPU 项目的完结,她宣布将开启新的征程,转向 Intel Xe HPG 架构的逆向工程,这让整个开源图形社区对未来充满期待。
Therac-25 放射治疗机事故是软件工程领域一个永恒的警示。在 20 世纪 80 年代,这款完全由软件控制的设备因一系列致命的软件缺陷,导致多名患者遭受了巨量辐射,造成了无法挽回的伤害甚至死亡。
事故的核心在于两个关键的软件缺陷。其一是一个典型的竞态条件(race condition):当经验丰富的操作员快速输入并修正治疗参数时,用户界面虽然更新了,但底层的控制程序却没有足够的时间同步,导致机器在错误的配置下发射了高能光束。其二是一个单字节变量溢出问题,该变量每计数 256 次后会归零,从而导致安全检查被意外跳过。
这起事件的根源并非仅仅是代码错误,而是一次系统性的组织失败。开发商 AECL 完全依赖软件进行安全控制,取消了传统的硬件联锁装置。他们错误地认为从旧型号继承的代码是“经过验证的”,在安全分析中甚至排除了“编程错误”的可能性。这种对软件风险的认知不足,加上缺乏独立的测试流程和健全的开发文化,最终酿成了悲剧。
这起事件对医学信息学产生了深远影响,凸显了传统医学领域的“连续性风险”认知与计算机系统“离散性风险”之间的巨大鸿沟。它提醒我们,在开发任何安全关键系统时,必须将严格的测试、健全的流程和对潜在风险的敬畏之心放在首位,设计出能够从根本上阻止低质量产出的流程。
Monodraw 是一款专为 macOS 设计的强大 ASCII 艺术编辑器,它将复古的纯文本美学与现代图形编辑器的便利性完美结合。它的核心理念是利用纯文本的通用性,帮助用户轻松创建流程图、架构图、思维导图等,并能无缝嵌入到代码注释、技术文档或任何纯文本环境中。
这款工具的功能集非常丰富,处处体现着对开发者的友好。
在开发者社区中,Monodraw 因其在技术文档和代码注释中的独特优势而备受青睐。纯文本图表可以与代码一同进行版本控制,在任何终端或文本编辑器中都能正确显示,这是图片无法比拟的便利。对于追求效率和原生体验的 Mac 用户来说,Monodraw 提供了一个优雅且功能强大的解决方案。
近期,流行的 JavaScript 构建工具 Nx 遭遇了一次复杂的供应链攻击,恶意版本的软件包被发布到 npm,导致数千名开发者的加密货币钱包和各类凭证被盗。
攻击者通过在 @nx/devkit 等多个核心包中注入 post-install 恶意脚本来实施攻击。一旦开发者安装了受感染的版本,脚本就会自动执行,扫描本地文件系统,窃取包括 .npmrc 文件、SSH 密钥、环境变量和加密货币钱包在内的敏感信息。
这次攻击最引人注目之处在于,恶意软件利用了 Claude 或 Gemini 等 AI 命令行工具。它向 AI 发送精心构造的提示词,指令其递归搜索文件系统中的敏感数据。这种方法将大部分恶意逻辑“外包”给了 AI,使得恶意代码本身更难被传统的基于签名的安全工具检测到,为软件供应链安全带来了全新的挑战。
这起事件再次敲响了供应链安全的警钟,开发者对公共包管理器的信任度正在经受考验。
随着 AI 技术的普及,攻击者的手段也在不断升级。开发者必须保持警惕,采取积极的防御策略,才能在这场持续的攻防战中保护好自己的数字资产。
一位科学家通过深入研究,揭露了多个表面上是“草根”的反风能组织,其背后实际上由石油和天然气行业资助。这一发现揭示了在能源转型过程中,传统化石燃料行业如何通过隐蔽的资金链影响公众舆论和政策制定。
这些资金被用于制作看似科学的研究报告、发起公关活动和法律诉讼,旨在散布对风能项目的负面信息,从而阻碍可再生能源的发展。更令人警惕的是,当这位科学家的研究成果公之于众后,他本人成为了攻击目标,面临着法律威胁和名誉诋毁,有人甚至试图让他丢掉工作。
这一事件引发了关于科学诚信、信息透明度和企业影响力的深刻讨论。许多人赞赏这位科学家的勇气,认为他的工作对于揭露真相至关重要,并将这种策略与当年烟草公司资助否认吸烟危害的研究相提并论。这起事件凸显了在揭露强大的既得利益集团时,独立研究人员可能面临的巨大风险,也促使人们思考如何建立更有效的机制来保护“吹哨人”,并识别和抵制由利益集团资助的虚假信息。
开源模拟器和虚拟化器 QEMU 正式发布了 10.1.0 版本,带来了大量新特性和性能改进,尤其在 Arm、RISC-V 和安全虚拟化方面取得了显著进展。
这次更新不仅提升了现有架构的性能,更在 Arm、RISC-V 等新兴架构以及安全虚拟化领域迈出了坚实的一步,为开发者和系统管理员带来了更多强大的工具和可能性。
美国第九巡回法院的一项重要裁决明确指出,根据《数字千年版权法》(DMCA),版权所有者不能直接向互联网接入提供商(IAP)发出传票,要求其披露涉嫌侵权用户的身份。
DMCA 的核心是为网络主机(如 YouTube)提供的“通知-删除”安全港机制。但 IAP(如 Cox)的角色是提供网络连接,而非托管内容,因此它们无法执行“删除”操作。法院裁定,既然 IAP 无法参与“通知-删除”流程,那么版权所有者也就不能使用 DMCA 第 512(h) 条款提供的“快速通道”传票来获取用户信息。
这一裁决被广泛视为用户隐私的一次胜利。它阻止了版权所有者在没有法官审查的情况下轻易获取用户身份的途径,要求他们必须通过更严格的法律程序。同时,这也为 IAP 减轻了扮演“版权警察”的负担。
然而,这也引发了关于版权执法困境的讨论。在 BitTorrent 等去中心化共享模式下,版权所有者面临着更大的挑战。另一方面,流媒体服务的质量下降、内容下架等问题,也促使用户转向其他获取内容的渠道。这项裁决再次凸显了在数字时代,版权法、用户隐私和技术平台责任之间需要不断寻找新的平衡点。
日益严重的光污染正在悄无声息地改变着我们周围的生态环境,其中,鸟类成为了最直接的受害者之一。夜间的人造光(ALAN)正在严重干扰鸟类的自然生物钟,延长了它们的活动时间,带来了连锁负面效应。
鸟类依赖日照周期来调节觅食、迁徙和繁殖等关键生命活动。然而,城市灯光模糊了昼夜的界限,导致它们更晚入睡、更早醒来。这种“熬夜”行为会削弱它们的免疫力,增加被捕食的风险,并可能扰乱繁殖周期,最终威胁到整个种群的生存。
这一话题引发了科技社区的广泛思考。许多人从技术角度探讨解决方案,例如利用物联网和 AI 技术构建智能照明系统,根据需要调节亮度和光谱,以减少对野生动物的影响。同时,这也促使人们反思城市规划,呼吁在城市发展中更多地考虑生态保护,推广“暗夜保护区”等理念,寻找人类需求与自然生态之间的平衡。
即便是在没有原生面向对象(OO)特性的 C 语言中,我们依然可以通过巧妙的设计模式,享受到封装、模块化和多态带来的好处。一位开发者在构建自己的操作系统时,分享了他借鉴 Linux 内核经验,在 C 语言中实践 OO 设计的宝贵心得。
核心技巧在于使用“虚表”(vtable)。通过定义一个包含函数指针的结构体(如 struct device_ops)作为“接口”,不同的设备或模块可以提供各自的实现,而调用方则通过一个统一的接口指针进行操作。这不仅实现了多态,还允许在运行时动态替换行为,极大地增强了系统的灵活性和可扩展性。例如,操作系统的调度器可以通过切换不同的虚表,在运行时更换调度算法,而无需修改内核的其他部分。
虽然这种方法在语法上比 C++ 等语言显得冗长(需要显式传递 this 指针),但它也带来了好处:对象与其操作之间的依赖关系更加清晰透明。这种在低级系统开发中探索和应用高级设计模式的实践,展现了 C 语言的强大潜力,也激发了开发者社区的浓厚兴趣。
在追求极致性能的软件开发世界里,“减速”听起来像是一个悖论。然而,一篇有趣的研究指出,刻意、可控地减慢程序执行速度,可以成为一种强大的诊断和分析工具。
实现精确的减速并非易事,因为现代 CPU 的乱序执行等优化技术会干扰简单的延时操作。研究人员发现,在 x86 架构上,插入 nop(无操作)或 mov reg, reg(寄存器自赋值)等指令,是实现细粒度、可预测且不影响程序相对性能行为的有效方法。这项研究为开发更先进的开发者工具铺平了道路,让我们从一个全新的角度审视程序的性能与行为。
相关链接: