我有个问题,与我遇到的问题无关。我只是想了解一些事情。
为什么 Windows 更新这么长?首先,Windows 更新需要找到您需要的更新,这大约需要 5 分钟。在这 5 分钟内幕后发生了什么?我原以为将您已有的更新与完整更新列表进行比较或检查几个文件的版本号就足够了。
然后到了安装升级的时候,它们也需要很长时间。一些 1 Mb 的更新需要 2、3 或 5 分钟才能安装。为什么花了这么长时间。我以为这只是备份旧文件、解压新文件、替换旧文件的问题。这应该非常快。Windows 还在做其他事情吗?
相比之下,在 Linux 下,您可以在大约 20 秒内找到所需的更新,并且安装它们通常非常快(解压缩文件的时间)。我可以在大约 25 分钟内完成我的 Linux 机器的完整升级(下载 600-800 Mb 的更新,数百个并安装它们),而在 Windows 下,需要 25 分钟才能找到需要的更新并安装大约 5-10 个更新。
我刚刚将 Windows XP 家庭版从 SP1a 更新到 SP3 + 所有其他更新。这花了我 3 个多小时。在 Linux 世界中做这样的事情大约需要 30 分钟。我不想在这里抨击微软。我真心想知道他们做了什么不同的事情,导致时间这么长。
答案1
因为 Windows 是一个完整的一体化解决方案,而 Linux 则将一切分解成各个部分。
Windows 需要检查相当多的 Microsoft 细节(DirectX、Office、Windows、Windows Media Player 等,不厌其烦)以及它们如何交互,以及哪些版本与其他版本兼容。别忘了,有些更新是推出的,因此它们包含其他更新。有些更新可能出于某种原因被单独安装,如果发生这种情况,那么您必须遵循不同的升级路线。
也许你正在替换一个 10meg 的文件。也许你正在对它进行差异分析,只更改了几行,但它必须解析所有内容……
简单来说,它们必须处理整个操作系统。Linux 只是内核——而 GNU 是用户空间。每个实用程序仅依赖于自身,因此它们很容易自我更新。
答案2
较新版本 (XP+) 的 Windows 至少会在更新会话开始时创建一个还原点,有时还会在后续某些单独更新之前再次创建一个还原点。这会增加一个很长的“它到底在做什么”类型的暂停。
如果你敢的话,也许可以尝试在关闭系统还原的情况下进行下一轮更新!:)
此外,如果您在进行更新之前手动创建还原点,则等待时间可能会更短(但整个过程会更长)。
答案3
软件包管理器等apt-get
都是在构建时就考虑到了依赖关系,并且您的 sources.list 可以巧妙地将您与旧版本和发行版区分开来。在 Linux 领域,这并不总是那么容易,这是肯定的。
Windows 更新是事后才想到的(与许多 Windows 组件非常相似),因此需要进行大量的版本验证和确认以确保不会出现问题。