网站首页 文章专栏 微软 Windows 95 开发轶闻:把全新界面移植到 Windows NT 可不是轻松活
本文回顾了Windows 95诞生30周年的背景,探讨了Windows 95与Windows NT之间的开发历程及其融合过程。
10 月 31 日消息,今年正值 Windows 95 诞生 30 周年,在当时,开发 Windows 95 是一项复杂且时间紧迫的任务。而当微软工程师着手把全新用户界面移植到 Windows NT 时,挑战进一步加大。
当地时间 10 月 28 日,微软老将 Raymond Chen 在最新一篇 Old New Thing 博客文章中解释道,Windows NT 与面向消费者的 Windows 95 在起源与定位上大相径庭;当时微软有一支团队负责开发 Windows 95,另一支团队则收尾 Windows NT 3.1 的工作。



两大平台在准备 Windows NT 4.0 时开始走向融合,开发者将已经“完成”的 Windows 95 代码作为移植目标,并且 Windows 95 的用户界面团队与 NT 团队保持定期沟通,以便同步最新进展。
在 1995 年,Windows 95 的图形界面仍属前沿设计,旨在让人机交互更直观、更易上手。微软决定把这套界面带到 NT 平台,通过 Windows NT 4.0 将两者合并。此举具有“里程碑”意义,为后续 Windows 2000 工作站系统打下了基础。
IT之家从博客获悉,Windows NT 团队在 Windows 95 项目进入收尾阶段时开始对 Win9x 界面进行调整。两套系统的窗口管理器都源自 Windows 3.1,共享许多核心设计理念;NT 开发者的任务是解决两个代码库之间出现的差别。由于不能直接把 Windows 95 的代码合并到 NT,开发者以 Windows 95 代码为蓝本,在 NT 中重新实现相同功能。
资源管理器和其他“user-model”组件的移植则相对简单:开发者导入现有代码、按 Windows NT 的规范更新,并结合 NT 的特性比如对 Unicode 文件名的支持进行集成。
开发者对 NT 版本的移植效果很满意,并决定把这些改进回写到 Windows 95 的代码库;回写时只需用#ifdef WINNT 指令标记出 NT 专有部分,以便在构建 Windows 95 时让编译器能够忽略这些内容。
1990 年代,微软使用名为 Source Library Manager 的系统管理内部源代码;工程师们甚至因为忘记缩写原意而戏称其为“slime”。该工具不具备现代化的分支功能,因此开发者需要通过逐个更新被修改源文件的方式,把 Windows 95 与 Windows NT 之间的更改手动复制过去。
Raymond Chen 自称怀疑这一手动流程在很大程度上被自动化了,然而并不像一次 git merge 那样简单。
最后,Raymond Chen 指出,负责把 Windows 95 shell 移植到 Windows NT 的团队中有 Dave Plummer。Dave Plummer 同样是雷德蒙德的资深工程师,他在 Windows 历史上有多项重要贡献,包括设计最初的 Windows 产品激活系统。该系统后来被泄露的 FCKGW 批量许可密钥绕过,而广为人知。
