百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

为什么 Windows 95 安装中使用了三个操作系统?

ztj100 2025-01-23 22:34 20 浏览 0 评论

编译 | 苏宓
出品 | CSDN(ID:CSDNnews)

近日,有充满好奇心的 Twitter 用户 @tthirtle 发问,安装 Windows 95 时,用户会经历三个不同的界面,分别是 MS-DOS Windows 3.1 Windows 95 界面,为什么不能直接从 MS-DOS 一步跳到 Windows 95?

面对着一古老的问题,来自微软的资深开发者 Raymond Chen 在微软官方博客上专门写了一篇文章进行了回应。他表示,此举实属有意而为。

在博文中,Raymond Chen 解释道,Windows 95 的安装程序需要支持三种升级起点:

1.从 MS-DOS 系统安装

2.从 Windows 3.1 系统安装

3.从已有的 Windows 95 系统“重新安装”(主要方便修复损坏的系统并保留数据)。

当时摆在微软开发团队面前的一个选择是编写三个版本的 Windows 95 安装程序:一个用于从 MS-DOS 设置,一个用于从 Windows 3.1 设置,第三个用于从 Windows 95 设置。

很显然,这并不是一个好主意,因为那样太费事了,相当于要写三倍的代码。思索之下,微软选择只写一套安装程序,并让它能够适配所有场景。当然这其中需要一些巧妙的设计。


起初,微软开发团队思考,如果将 Windows 95 的安装程序写成一个 MS-DOS 应用程序,那么它可以在所有三种平台上运行。这是个好消息!你只需要编写一个安装程序。缺点是,它将是一个文本模式的安装程序,看起来很粗糙,无法给用户展示全新图形界面(GUI)世界的应有初印象。

另一个极端是,你可以将 Windows 95 的安装程序设计为一个 32 位的图形界面程序,但这意味着如果用户从 MS-DOS 或 Windows 3.1 开始安装,就必须先安装 Windows 95,然后才能运行安装程序,这就像陷入了一个“先有鸡还是先有蛋”的困境。

折中方法是采用一个更好的中间方案:可以让 MS-DOS 安装程序安装一个最小版本的 Windows 3.1,这个版本仅能支持 16 位 GUI 安装程序所需的功能。这个微型版本足够小,可以通过少量软盘复制和安装。安装完成后,重启到这个微型版本的 Windows 3.1,然后运行 16 位的图形界面安装程序。

基于以上,Windows 95 的安装过程分成了三个阶段,每个阶段对应一个安装程序,分别处理不同的任务:

第一个安装程序(从 MS-DOS 开始)

如果你是在 MS-DOS 环境中启动安装,这个安装程序会先安装一个“迷你版”的 Windows 3.1 系统。这是一个很小的 Windows 环境,主要目的是提供一个基础平台,接着会引导进入这个迷你 Windows 3.1 系统,继续后续的安装步骤。

第二个安装程序(在 16 位 Windows 环境中运行)

接下来,安装程序会在 Windows 环境中运行,无论是刚才安装的迷你版 Windows 3.1(如果从 MS-DOS 升级),正式版的 Windows 3.1(如果从 Windows 3.1 升级),还是正式版的 Windows 95(如果从 Windows 95 升级)。这个阶段是安装的核心,它负责跟用户交互,比如询问需要安装哪些可选功能,并检测硬件以决定安装哪些驱动程序。然后,它会将驱动程序和 Windows 95 的文件复制到系统中,并把旧系统的设置迁移到新的 Windows 95 系统,最后引导进入 Windows 95。

第三个安装程序(在 32 位 Windows 环境中运行)

当系统进入完整运行的 Windows 95 环境后,第三个安装程序接手,完成一些需要在实际运行系统中才能完成的工作,比如安装打印机驱动等最后的收尾步骤。

这就是为什么 Windows 95 的安装实际上由三个安装程序组成,它们通过链式工作完成任务。这种设计让同一套代码能够覆盖所有三种安装场景。每个程序都将安装推进了一步,而所有核心功能只需实现一次。

原文链接:https://devblogs.microsoft.com/oldnewthing/20241112-00/?p=110507

相关推荐

其实TensorFlow真的很水无非就这30篇熬夜练

好的!以下是TensorFlow需要掌握的核心内容,用列表形式呈现,简洁清晰(含表情符号,<300字):1.基础概念与环境TensorFlow架构(计算图、会话->EagerE...

交叉验证和超参数调整:如何优化你的机器学习模型

准确预测Fitbit的睡眠得分在本文的前两部分中,我获取了Fitbit的睡眠数据并对其进行预处理,将这些数据分为训练集、验证集和测试集,除此之外,我还训练了三种不同的机器学习模型并比较了它们的性能。在...

机器学习交叉验证全指南:原理、类型与实战技巧

机器学习模型常常需要大量数据,但它们如何与实时新数据协同工作也同样关键。交叉验证是一种通过将数据集分成若干部分、在部分数据上训练模型、在其余数据上测试模型的方法,用来检验模型的表现。这有助于发现过拟合...

深度学习中的类别激活热图可视化

作者:ValentinaAlto编译:ronghuaiyang导读使用Keras实现图像分类中的激活热图的可视化,帮助更有针对性...

超强,必会的机器学习评估指标

大侠幸会,在下全网同名[算法金]0基础转AI上岸,多个算法赛Top[日更万日,让更多人享受智能乐趣]构建机器学习模型的关键步骤是检查其性能,这是通过使用验证指标来完成的。选择正确的验证指...

机器学习入门教程-第六课:监督学习与非监督学习

1.回顾与引入上节课我们谈到了机器学习的一些实战技巧,比如如何处理数据、选择模型以及调整参数。今天,我们将更深入地探讨机器学习的两大类:监督学习和非监督学习。2.监督学习监督学习就像是有老师的教学...

Python教程(三十八):机器学习基础

...

Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置

你是不是也遇到过这种糟心事:花了好几天训练出的Python模型,在自己电脑上跑得顺顺当当,一放到服务器就各种报错。要么是Python版本不对,要么是依赖库冲突,折腾半天还是用不了。别再喊“我...

超全面讲透一个算法模型,高斯核!!

...

神经网络与传统统计方法的简单对比

传统的统计方法如...

AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程

...

自回归滞后模型进行多变量时间序列预测

下图显示了关于不同类型葡萄酒销量的月度多元时间序列。每种葡萄酒类型都是时间序列中的一个变量。假设要预测其中一个变量。比如,sparklingwine。如何建立一个模型来进行预测呢?一种常见的方...

苹果AI策略:慢哲学——科技行业的“长期主义”试金石

苹果AI策略的深度原创分析,结合技术伦理、商业逻辑与行业博弈,揭示其“慢哲学”背后的战略智慧:一、反常之举:AI狂潮中的“逆行者”当科技巨头深陷AI军备竞赛,苹果的克制显得格格不入:功能延期:App...

时间序列预测全攻略,6大模型代码实操

如果你对数据分析感兴趣,希望学习更多的方法论,希望听听经验分享,欢迎移步宝藏公众号...

AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN

...

取消回复欢迎 发表评论: