## 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/`) 可以更深入地了解这个关键过程。
## sql-tap:实时 SQL 流量监控
sql-tap 是一款用于实时观察 SQL 查询的工具,它充当您的应用程序与 PostgreSQL 或 MySQL 数据库之间的透明代理。它不需要任何应用程序代码的更改。
该系统由两个组件组成:`sql-tapd`,一个通过数据库网络协议捕获查询的代理守护进程,以及 `sql-tap`,一个显示捕获流量的终端用户界面 (TUI) 客户端。
您安装 `sql-tapd` 并将您的应用程序指向其监听端口,而不是数据库。然后,TUI 通过 gRPC 连接到 `sql-tapd`,以显示查询、事务和执行细节的实时流。
主要功能包括检查查询、查看事务以及直接从 TUI 运行 `EXPLAIN`(和 `EXPLAIN ANALYZE`)。安装可通过 `brew` 或 `go install` 进行,并提供 Docker 镜像以方便设置。
## 华尔街掠夺者:四十年的复兴
几十年间,这款名为《华尔街掠夺者》的复杂金融模拟游戏一直是个无法破解的代码。这款游戏由前律师和注册会计师迈克尔·詹金斯创作,其深度广为流传,但其原始的1980年代BASIC代码经受住了众多公司和技术开发人员的现代化尝试。Steam认为它过于小众,甚至Commodore电脑公司在三个月后也放弃了。
2024年,来自俄亥俄州的29岁开发者本·沃德主动承担了这个挑战。尽管詹金斯持怀疑态度,但沃德成功了,而其他人却失败了——他没有重写代码,而是将现代界面叠加在原始引擎之上。这一突破源于他理解,游戏的内核不是一个需要修复的错误,而是詹金斯四十多年金融知识演变的体现。
詹金斯最初的个人痴迷发展成了一款意外的教育工具,影响了数百名金融专业人士的职业生涯,他们通过其逼真的模拟学习。现在,在沃德的带领下,《华尔街掠夺者》在Steam上重生,吸引了忠实的社区,并证明即使是最艰巨的代码,只要有毅力、尊重原始愿景和一点运气,也能被征服。这是一个跨越50年年龄差距的独特合作故事,也是一款真正杰出游戏持久力量的证明。
今年是友谊力量的证明,引发了对这些关系如何发展和维持的反思。友谊是动态的——随着生活变化,人们来来往往,冲突不可避免。作者认为,关键在于有意性和自发性的平衡。
有意性意味着通过高质量的陪伴、仪式和表达爱意来积极培养联系。自发性则在于接受自然起伏,相信真挚的联系会持续下去。友谊中的安全感随着时间和持续的努力而增长;感受到深深的爱,才能更开放、更敢于冒险。
不同的友谊需要不同的方式——有些在持续的沟通中蓬勃发展,有些则在不频繁的、深入的对话中茁壮成长。亲近和共同的经历是宝贵的,甚至是不便之处(比如在疲惫时参加活动或在困难时期提供支持)也被视为繁荣社区不可或缺的一部分。最终,持续的维护和共同的历史会建立起一种深刻、可靠的爱,感觉就像“深层魔法”。