什么是服务堆栈以及它是如何工作的?

bwD*_*aco 15 windows windows-update winsxs package-management windows-installer

在 Windows 中,有一种叫做服务堆栈的东西,它似乎履行了包管理器的角色。我不太明白,只是似乎基于组件的服务 (CBS)、Windows 安装程序、Windows 更新和 WinSxS 是服务堆栈的一部分或以其他方式参与服务。

我进行了大量研究,但未能找到有关 Windows 服务的易于理解的概述。因此,我提出以下问题:

  • 什么是服务,服务堆栈有什么作用?
  • 服务堆栈如何工作?CBS、Windows Installer、WinSxS 和 Windows Update 扮演什么角色?

mag*_*981 23

1. 什么是服务,服务栈有什么作用?

服务是配置 Windows 更新或 Windows 功能(安装、删除更新/功能)的名称。这可以在 Windows 正在运行(在线)或针对未运行的 Windows 分区/或已安装的 WIM(离线)时完成:

什么是服务?服务是针对 Windows 操作系统安装角色、功能、Service Pack 或 Windows 更新的行为。大多数情况下,服务是在在线状态下完成的。在这种情况下,联机意味着在进行更改时操作系统已启动并正在运行。在线服务是大多数人所做的,通常是通过 Windows 更新或双击下载的更新来完成的。还有离线状态。当然,脱机意味着安装是针对未运行的 Windows 版本进行的。这是许多大公司和 OEM 对其映像文件所做的操作,他们使用 IMAGEX 或 DISM 安装它们,然后针对这些映像安装修补程序或其他更新,以减少映像投入生产时的修补时间。

2. 什么是哥伦比亚广播公司

CBS 代表基于组件的服务,是在 Windows Vista 中添加的。在较旧的 Windows 版本中,安装程序基于.inf文件来安装功能/更新

在 Windows Vista 中,称为基于组件的服务 (CBS) 的新组件化体系结构改变了这些组件的安装方式。CBS 架构比以前的操作系统中的安装程序更加健壮和安全。用户受益于更完整和受控的安装过程,该过程允许添加更新、驱动程序和可选组件,同时减轻由不正确或部分安装引起的不稳定问题。CBS 允许从 IIS 到 Windows Media Player 的组件和功能打包为包含组件全部功能的小模块。换句话说,每个模块都包含完整安装或删除其包含的组件所需的所有文件、注册表设置和方法。

3. WinSxS 扮演什么角色

此文件夹是在 Windows XP 中添加的,以便能够在系统上并排安装 2 个不同的 DLL 版本 (sxs)。Microsoft 使用它来允许 WinXp 中的新主题支持,但仍保持旧系统 dll 不会破坏旧的 Win95 应用程序。它还用于修复 DLL 地狱。在 Win95 中,您会遇到一个问题,即工具需要版本 4 中的特殊 Windows DLL 和版本 4.10 中的下一个工具。如果您安装较新的工具,它可能会破坏旧程序,如果您在较新的工具之后安装较旧的程序,则较旧的工具可以工作,但较新的工具会崩溃,因为 DLL 不支持所有必需的功能。

从 Vista 开始,WinSxS 文件夹包含 Windows 使用的所有文件,当您激活某个功能时,这些文件不会复制到C:\Program Files.

以前版本的 Windows 和 Windows Vista 之间最大的变化之一是从 INF 描述的操作系统转向组件化。Windows 中的组件是一个或多个二进制文件、一个目录文件和一个 XML 文件,它描述了有关如何安装这些文件的所有内容。从关联的注册表项和服务到文件应具有的安全权限。组件被分组为逻辑单元,这些单元用于构建不同的 Windows 版本。

操作系统中的所有组件都可以在 WinSxS 文件夹中找到——实际上我们称这个位置为组件存储。每个组件都有一个唯一的名称,其中包括为其构建的版本、语言和处理器架构。WinSxS 文件夹是在系统上找到该组件的唯一位置,您在系统上看到的所有其他文件实例都是通过从组件存储进行硬链接来“投影”的。让我重复最后一点——操作系统中每个文件的每个版本只有一个实例(或完整数据副本),并且该实例位于 WinSxS 文件夹中。所以从这个角度来看,WinSxS 文件夹实际上是整个操作系统的整体,在下层操作系统中被称为“平面”。

4. Windows Installer 扮演什么角色?

这与 WinSxS 无关,文件夹 C:Windows\Installer 是 Windows Installer 服务复制数据的文件夹,以便能够修改或删除已安装的程序。

5. Windows Update 扮演什么角色?

Windows 更新将文件下载到 C:\Windows\SoftwareDistribution\Download 和服务堆栈将数据复制到 WinSxS 并尝试创建硬链接,如果这失败(当文件仍在使用时),操作将挂起并安装更新下次启动时(关机和启动时的配置 Windows 更新屏幕)。

  • 这是对这个问题的一个很好的回答。我会诚实的。我读了这个问题,就像,目的不是很明确,我想它需要一个答案来明确它比听起来更复杂。(不过,我对 9.9/10 的问题不这么认为,所以我这样做的事实本身就很奇怪。) (2认同)