Compartilhar via


Visão geral da contêinerização msix

O MSIX usa um modelo de contêinerização para isolar aplicativos do restante do sistema. Ao contrário das tecnologias de contêiner de uso geral (como o Docker), os contêineres MSIX não são máquinas virtuais e não exigem uma imagem do sistema operacional separada. Em vez disso, Windows redireciona o sistema de arquivos de um aplicativo e a atividade do Registro em runtime, mantendo os aplicativos independentes, permitindo que eles interoperem com o restante do Windows normalmente.

Este artigo explica o modelo de isolamento, os dois níveis de confiança disponíveis para aplicativos empacotados e os benefícios que essa abordagem oferece.

O que é e o que não é a contêinerização MSIX

Quando você instala um pacote MSIX, Windows coloca os arquivos do aplicativo em um local protegido (C:\Program Files\WindowsApps\) que o próprio aplicativo não pode modificar. Durante a execução, o Windows fornece ao aplicativo uma exibição virtualizada do sistema de arquivos e do Registro: as leituras vão para o local de instalação do pacote e as gravações são redirecionadas para locais específicos de usuário que o Windows gerencia.

Isso significa:

  • Os arquivos de instalação do aplicativo nunca são modificados em runtime.
  • O estado do aplicativo é armazenado separadamente dos binários do aplicativo – fazendo atualizações, reparos e desinstalações limpas e confiáveis.

Observação

Os contêineres MSIX são um recurso de runtime Windows, não um ambiente de sistema operacional separado. O aplicativo é executado como um processo de Windows nativo– ele tem apenas uma exibição virtualizada de determinados recursos do sistema.

Dois níveis de confiança

Os aplicativos empacotados são executados em um dos dois níveis de confiança, que determinam o grau de isolamento:

Confiança total (integridade média)

Aplicativos de confiança total são executados com as mesmas permissões que um aplicativo de área de trabalho padrão. Windows fornece identidade do pacote e alguma virtualização de arquivo/registro, mas o aplicativo ainda pode acessar a maioria dos recursos do sistema diretamente.

Esse é o padrão para aplicativos convertidos de instaladores Win32 usando a Ferramenta de Empacotamento MSIX e para a maioria dos aplicativos da área de trabalho WinUI 3.

AppContainer (confiança parcial)

Os aplicativos AppContainer são executados em um ambiente estritamente isolado. O processo e seus filhos só podem acessar recursos que são concedidos explicitamente. Windows impõe o isolamento usando o sistema de arquivos, a virtualização do sistema de registro e limites de segurança do AppContainer.

Os aplicativos UWP sempre são executados em um AppContainer. Os aplicativos de desktop também podem optar pelo AppContainer ao declará-lo no manifesto do aplicativo.

Dica

Os aplicativos AppContainer obtêm as garantias de segurança mais fortes, mas exigem mais trabalho para configurar corretamente, especialmente para aplicativos que dependem de amplo acesso ao sistema. Consulte os aplicativos MSIX AppContainer para obter as etapas de configuração.

Benefícios do modelo de contêinerização MSIX

Benefício Descrição
Desinstalação limpa Como Windows rastreia todo o estado do aplicativo separadamente, a desinstalação de um pacote MSIX remove todos os arquivos de aplicativo, entradas do Registro e alterações do sistema , sem restos de artefatos. Os arquivos criados pelo usuário são preservados.
Atualizações confiáveis Os binários do aplicativo são somente leitura durante o tempo de execução. As atualizações substituem o pacote atomicamente e o aplicativo pode ser desfeito, se necessário.
Sem poluição do registro As escritas do Registro do aplicativo vão para um hive virtual individual por usuário, não para HKEY_LOCAL_MACHINE. Isso evita a proliferação do Registro comum com instaladores tradicionais Win32.
Isolamento de segurança Os aplicativos AppContainer são restritos a recursos concedidos explicitamente, reduzindo o impacto de um processo comprometido.
Aplicação de integridade Windows pode detectar violação de arquivos de pacote em runtime. Se um pacote for adulterado, Windows bloqueará a inicialização e disparará o reparo. Consulte Visão geral da assinatura de um pacote MSIX.

Escopo de virtualização

Nem todos os locais do sistema de arquivos e do Registro são virtualizados. Windows aplica um comportamento diferente dependendo do local que está sendo acessado:

  • Gravações em arquivos de instalação de pacote são bloqueadas – o local de instalação é somente leitura.
  • As gravações em system locations (como C:\Windows\) são bloqueadas para aplicativos AppContainer.
  • Gravações em locais de perfil do usuário (como AppData) são redirecionadas para locais por pacote para aplicativos AppContainer ou são diretamente aplicadas a aplicativos de confiança total.
  • Leituras de locais de VFS empacotados são realizadas pelo próprio pacote, fazendo com que o aplicativo se comporte como se estivesse instalado em locais tradicionais (como C:\Program Files\).

pt-BR: Para obter detalhes técnicos completos sobre como o sistema de arquivos e a virtualização do registro funcionam, consulte Compreensão de como os aplicativos de área de trabalho empacotados são executados no Windows.

Contêineres compartilhados

Por padrão, cada pacote MSIX é executado em seu próprio contêiner isolado. Para cenários empresariais em que vários pacotes precisam compartilhar um ambiente de runtime , por exemplo, um aplicativo principal e um pacote de personalização, Windows dá suporte a contêineres de pacotes compartilhados. Um contêiner compartilhado fornece a um conjunto definido de pacotes uma exibição mesclada do sistema de arquivos virtuais e do registro um do outro.

Esse é um recurso somente empresarial que exige privilégios administrativos. Consulte o contêiner de pacote compartilhado.

Virtualização flexível

A partir de Windows 11, os aplicativos podem optar seletivamente por pastas específicas do sistema de arquivos ou chaves do Registro fora da virtualização, tornando esses locais visíveis para outros aplicativos e persistindo-os na desinstalação. Isso é útil para aplicativos que precisam compartilhar configuração ou dados com outros aplicativos enquanto ainda se beneficiam do empacotamento MSIX.

Consulte virtualização flexível.