Windows的伟大之处在哪里?
Windows 的伟大,从来不在于它写得有多优雅,而在于它替全人类抗下了过去四十年所有的历史技术债,把自个儿活成了一个深不见底的底层泥潭,却依然能让你双击运行二十五年前的程序。 我平时在公司里,周围一帮年轻工程师人手一台 MacBook,开会时满嘴都是 Linux 内核有多纯粹,macOS 的 Unix 血统有多高贵。 年轻人都喜欢干净的东西,这太正常了。我也年轻过,当年刚入行看 Linux 源码,觉得那叫一个清爽。再回头看 Windows 的文档和逆向出来的部分结构,简直让人头皮发麻,到处都是妥协,到处都是补丁摞补丁。 但当你真正见过各种稀奇古怪的硬件外设,伺候过那些给钱极其痛快但技术栈停留在上个世纪的甲方爸爸,再去审视 Windows 的时候,心里的感觉只剩下敬畏。 先说个去年年底我亲身经历的事儿。当时是 2025 年 11 月,我被一个做军工测控的老朋友拉去救火。他们实验室有一套极其昂贵的超声波探伤设备,98 年从德国进口的,配套的控制软件运行在 Windows 98 上。现在原来的老工控机主板电容爆浆,彻底歇菜了。他们买了一台最新的搭载酷睿 Ultra 处理器、预装 Windows 11 24H2 的工作站,通过转接卡把那个巨大的 ISA 转 PCIe 采集卡插上,然后把当年那张光盘里的安装程序拷了进去。 按理说,这事儿绝无可能成功。98 年的软件,直接调的都是早就被废弃的底层接口,甚至还有直接读写硬件端口的野路子操作。现代操作系统讲求内存保护、权限隔离,这种远古软件一跑起来,系统分分钟给你甩个蓝屏或者直接静默闪退。 结果你猜怎么着。那个安装程序居然跑起来了,虽然界面分辨率小得可怜,字儿都糊在一起,但顺顺当当把文件拷进了 C 盘。接着我帮他们配了一下系统的兼容性属性,把几个老旧的动态链接库手动注册了一下,那个二十多年前的测控软件,就在 2025 年底的最新硬件上,稳稳当当地画出了超声波的波形图。 那一刻,站在旁边的几个零零后研究生眼珠子都快掉下来了,嘴里直呼这不科学。 这确实不科学,但这很 Windows。这就是我要说的核心:极致的、近乎变态的向后兼容性。 做过软件架构的同行都知道,搞技术最爽的事情就是推倒重来。你看苹果,当年从 PowerPC 切到 Intel,后来又从 Intel 切到自研的 M 系列芯片。每次切换,苹果的做法都特别霸道。先给你弄个转译层顶两年,紧接着在新系统里直接把老架构的 32 位支持一刀切掉。开发者你不跟着我改代码、不重新编译是吧?那你的软件就别在我的新电脑上跑了,用户骂也是骂你开发者不更新。苹果靠着这种铁腕手段,把历史包袱甩得干干净净,系统自然做得轻快。 Linux 呢?Linux 内核之父 Linus 虽然也天天吼着绝不破坏用户空间,但 Linux 的发行版太碎了。你在 Ubuntu 18.04 上编译的一个带图形界面的复杂商业软件,直接扔到 2026 年的 Fedora 或者 Arch Linux 上试试?光是一个 glibc 的版本依赖,或者 Wayland 和 X11 的图形协议打架,就能让你折腾两天两夜,最后报出一堆段错误,死都不知道怎么死的。 但微软不敢这么干,也不能这么干。Windows 背负的是全球几千万家企业的生产资料。医院里的 CT 机控制端、银行柜台的终端系统、工厂流水线上的 PLC 编程软件、甚至某些国家电网的调度界面。这些软件很多是十几年前的外包公司写的,源码早就丢了,写代码的人可能都已经退休去跳广场舞了,甚至连外包公司都倒闭八百回了。 如果 Windows 敢像苹果那样,说我为了系统纯洁性,明年开始全面废弃 Win32 接口,全面转向现代化的新架构。那第二天全球的工业生产和金融秩序就得瘫痪一半。 为了保住这些老软件的命,微软在 Windows 内核和应用层之间,硬生生造出了一个极其庞大的垫片系统,在技术上我们叫它 Shim 机制。 什么是 Shim?说白了就是系统在底层帮你撒谎,帮你擦屁股。 以前很多程序员写代码非常野,根本不守规矩。比如著名的游戏模拟人生第一代,当年的程序员在处理内存的时候犯了个低级错误,释放了一块内存之后,紧接着又去读取这块内存里的数据。在 Windows 95 和 98 时代,系统的内存管理很粗糙,你释放了内存,系统并不会马上收走,那块数据还在原地,所以游戏能正常跑。 但是到了 Windows XP,微软全面换装了极其严肃的 NT 内核。NT 内核是个眼里不揉沙子的主儿,内存只要释放了,立马标记为不可访问,谁敢再碰直接当场击毙,强制关闭程序。这就导致模拟人生在 XP 上一启动就崩溃。 按理说,这是游戏开发商的 Bug,跟微软没有半毛钱关系。但用户不管啊,用户花钱升级了 XP,发现自己最爱玩的游戏打不开了,他只会骂 Windows 垃圾。 微软…