微软工程师揭秘 Windows 95 UI 如何“迁移”到 Windows NT

微软资深工程师 Raymond Chen 近日在官方博客披露了一段 Windows 历史:Windows 95 用户界面(UI)是如何迁移到 Windows NT 4.0 的?这背后不是简单的代码复制,而是一场复杂的跨代码库移植工程。

尽管 Windows 95 和 Windows NT 的窗口管理器都源自 Windows 3.1,但两者在多年演进后已严重分叉。因此 NT 团队没有直接拷贝 Win95 的窗口管理器,而是把 Win95 代码当作参考实现,再在 NT 代码库中重新实现功能,例如:

  • RegisterClassEx

  • SetScrollInfo

  • 窗口右上角的关闭按钮行为等

而对于资源管理器(Explorer)及其它 shell 组件,则处理更为直接:这些部件“几乎按原样”被移入 Windows NT 代码库,之后再做必要修改使其符合 NT 特性(如 Unicode 支持)。

对于用户模式 shell 等组件,NT 团队做出的修正也合并回 Windows 95 的代码库。这意味着下一次 Windows 95 UI 的发布版本就不再必须重新修很多问题。为了防止 NT 团队的改动在 Windows 95 构建中引入 bug,他们采用多种保护措施:

  • #ifdef WINNT 等宏来隔离 NT 专属代码。
  • 对于一些改动(如上述 sizeof 改为 sizeof(...) / sizeof(...)),因为对 Windows 95 模式下除以 1 无影响,所以可以直接引入,而无需特殊宏隔离。

Raymond Chen 回忆,微软当时使用名为 Source Library Manager(SLM,工程师昵称为“slime”)的源代码管理系统。不同于现代分支管理工具,SLM 需要手动同步代码修改至两套平台,虽流程部分自动化但远非今日的 git 合并般简单。

值得一提的是,Windows 95 Shell 移植至 NT 的工程由另一位微软元老 Dave Plummer 带队。Plummer 也是 Windows 产品激活系统的设计者,见证了 FCKGW 密钥流出并绕过 XP 激活的著名历史。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/382217

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。