## Zig 开发更新 - 2026 (二月) 2026年初的 Zig 开发重点在于性能、依赖管理以及减少对外部 C 库的依赖。一项重大进展是 `std.Io.Evented` 提供的用户态栈切换的实验性支持,为高效 I/O 处理提供了潜力——但仍被认为是实验性的。 依赖管理得到了改进,通过本地存储获取的包 (`zig-pkg`),方便调整和离线构建,同时还提供了一个全局缓存的压缩版本以供共享。`zig build` 的 `--fork` 标志允许开发者轻松地针对依赖项的分支进行测试。 在 Windows 上,持续努力“优先使用 Native API 而非 Win32”,用直接的 ntdll 调用取代 kernel32 包装器,以提高性能和可靠性。`zig libc` 子项目正在积极删除冗余的 C 代码,通过提供 libc 函数作为 Zig 包装器来实现,从而获得更小的代码库以及链接时优化等优化潜力。 这也为控制 libc I/O 行为(例如与 io_uring 集成)和资源泄漏检测打开了可能性。 最后,该更新承认了当前事件并表达了对抗议者的声援。
Discord因其将于三月推出的全球年龄验证计划而面临强烈反弹。最初宣布需要面部扫描或上传身份证才能访问,Discord后来澄清说只有*部分*用户需要接受此验证,并依赖预测算法,可能影响内容访问。
情况因得知英国用户被纳入一项使用Persona的“测试”而恶化,Persona是一家由彼得·蒂尔支持的年龄验证供应商——蒂尔是备受争议的数据公司Palantir的联合创始人,Palantir支持美国移民及海关执法局的监控工作。虽然Discord最初表示数据将在本地处理,但Persona的条款允许临时存储数据最多7天。
担忧集中在蒂尔的参与带来的隐私影响,特别是考虑到他过去质疑民主的言论以及他频繁出现在埃普斯坦文件中。批评人士认为该政策过于侵入性,而与蒂尔的关联只会加剧对数据安全和潜在滥用的合理担忧,导致一些人考虑使用替代平台,如IRC。
## Backblaze 硬盘统计 – 2025 年末报告摘要
Backblaze 最近发布了第 13 份年度硬盘统计报告,分析了其数据中心硬盘的可靠性。该报告涵盖 2025 年第四季度、全年数据以及来自 337,192 块硬盘的数据(在排除启动盘和测试盘后)。
主要发现包括总体年度故障率为 1.36%,低于 2024 年的 1.55%,为自 2022 年以来的最低水平。全年没有硬盘型号出现零故障。新增到机群中的硬盘包括 Seagate ST16000NM000J (16TB) 和 WDC WUH722626ALE6L4 (26TB),后者显示出有希望的初步结果。
几款被标记为故障率较高的型号 – HGST HUH728080ALE600 (8TB) 和 Toshiba MG08ACA16TEY (16TB) – 正在接受调查和/或固件更新。终身故障率保持稳定在 1.30%。
该报告强调了分析模式而非单个硬盘性能的重要性,并鼓励读者利用可供下载和独立分析的完整数据集。Backblaze 将举办网络研讨会,详细讨论这些发现。
## 从目标文件到可执行文件:理解链接器
链接器将编译后的目标文件(由你的 Go 包生成)转换成操作系统可以运行的单个可执行文件。每个包都是单独编译的,产生包含机器码、符号和重定位信息(需要最终确定的地址占位符)的 `.o` 文件。
链接器执行四个关键任务:**符号解析**,查找跨文件引用的定义;**重定位**,用实际内存地址替换占位符;**死代码消除**,移除未使用的函数以最小化二进制文件大小;以及 **布局和可执行文件生成**,将代码和数据组织成操作系统可理解的格式(ELF、Mach-O、PE)。
首先,**加载器** 通过递归地跟踪导入,识别每个符号的位置,构建一个全局符号索引。然后,从 `main.main` 开始,链接器追踪可达代码,通过 **死代码消除** 丢弃未使用的函数。接下来,**重定位** 为符号分配地址,并使用这些值修补机器码。最后,链接器将代码组织成段(文本、数据等)和节,并写入带有指定入口点(运行时启动代码,而不是 `main`)的可执行文件。
Go 通常使用 **静态链接**,将所有依赖项捆绑到一个文件中。但是,链接器也支持动态链接和不同的构建模式(库、插件)。探索链接器的源代码 (`src/cmd/link/internal/ld/`) 可以更深入地了解这个关键过程。