链接器与加载器:从符号解析到动态链接的四十年技术演进

程序构建的沉默机械 每个程序员都写过编译命令,但很少有人真正理解ld在做什么。当编译器完成了词法分析、语法分析、中间代码生成、优化和目标代码生成后,它产出了一个或多个目标文件。这些文件包含了机器码,但还不能执行——它们之间存在引用关系,全局变量的地址未确定,外部函数的位置未知。链接器的任务就是将这些分散的碎片组装成一个完整的程序。 ...

18 min · 8891 words

ACPI:现代计算机的隐藏操作系统——从电源管理到硬件抽象的三十年技术演进

1996年,一台笔记本电脑合上盖子后无法正确进入睡眠状态,电池在几小时内耗尽。这个问题困扰了无数用户,而根源在于当时盛行的APM(Advanced Power Management)规范——电源管理完全由BIOS控制,操作系统对此几乎一无所知。正是这种"黑盒"设计的困境,催生了ACPI(Advanced Configuration and Power Interface)的诞生。 ...

20 min · 9856 words

JIT编译如何让解释型语言跑出编译型语言的速度?

同一个Python程序,在标准CPython解释器下运行需要47秒,换成PyPy只需要2秒。代码完全相同,没有改动任何一行,性能却提升了23倍。这不是魔法,而是即时编译器(JIT)的功劳。 ...

12 min · 5962 words

TCP重传为何能让API延迟翻倍:从RTO计算到长尾延迟的技术真相

一次API请求,平均延迟50毫秒,P99却飙到了800毫秒。排查应用代码、数据库查询、缓存命中,一切正常。最后发现问题出在TCP层——一次重传超时。 ...

9 min · 4366 words

显示接口为何分裂二十年:HDMI与DisplayPort的技术博弈

2024年,一位用户在论坛上发问:为什么他的4K显示器在HDMI接口下只能达到60Hz,换成DisplayPort就能跑到144Hz?显示器规格明明写着"4K@144Hz",接口却决定了能否兑现承诺。这个看似简单的兼容性问题,背后是一场持续二十年的技术博弈——HDMI与DisplayPort,两个为同一目的而生的标准,为何至今未能统一? ...

14 min · 6996 words