
微软资深工程师 Raymond Chen 最近在官方博客分享了一段鲜为人知的 Windows 发展史:Windows 95 的用户界面(UI)是如何被整合进 Windows NT 4.0 的?这一过程远非简单的复制粘贴,而是一次复杂且精细的跨代码库移植项目。
虽然 Windows 95 和 Windows NT 的窗口管理器最初都继承自 Windows 3.1,但经过多年的独立发展,两者的代码已经产生显著差异。因此,NT 团队并未直接将 Win95 的窗口管理器代码搬入 NT 系统,而是将其作为参考设计,在 NT 自身的代码基础上重新实现关键功能。例如:
这些功能虽表现一致,但实际是在 NT 原生代码中逐项重建完成的。
相比之下,资源管理器(Explorer)及其他 shell 组件的迁移方式则更为直接——这些组件被“近乎完整地”从 Windows 95 移植到 Windows NT 的代码库中,随后进行适配性调整,以支持 NT 特有的特性,比如完整的 Unicode 支持。
更值得注意的是,针对用户模式 shell 的改进并非单向移植。NT 团队所做的许多修复和优化,也会反向合并回 Windows 95 的主代码线。这意味着后续发布的 Windows 95 版本得以受益于这些改进,无需重复解决相同问题。为避免向 Windows 95 引入仅适用于 NT 的代码而导致潜在错误,开发团队采取了多种防护手段:
#ifdef WINNT 等预处理器宏来隔离平台专属代码。sizeof 表达式改为 sizeof(...) / sizeof(...)),由于其在 Windows 95 环境下等价于除以 1,不影响运行,因此可安全引入,无需额外宏保护。
Raymond Chen 回忆道,当时微软使用的源码管理系统名为 Source Library Manager(SLM),工程师们戏称其为“slime”。与现代的 git 等分布式版本控制工具不同,SLM 不具备强大的分支合并能力,代码在两个平台间的同步主要依赖手动操作,尽管部分流程实现了自动化,但仍远不如今天的合并机制高效便捷。
值得一提的是,主导此次 Windows 95 Shell 向 NT 移植工作的,正是微软另一位传奇人物 Dave Plummer。他不仅负责了这一关键工程,还曾设计了 Windows 产品激活机制,亲历了 XP 时代 infamous 的 FCKGW 密钥泄露事件,成为 Windows 安全史上不可忽视的角色。
以上就是微软工程师揭秘 Windows 95 UI 如何“迁移”到 Windows NT的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号