Introducción a la contenedorización de MSIX

MSIX usa un modelo de contenedorización para aislar las aplicaciones del resto del sistema. A diferencia de las tecnologías de contenedor de uso general (como Docker), los contenedores MSIX no son máquinas virtuales y no requieren una imagen de sistema operativo independiente. En su lugar, Windows redirige el sistema de archivos y la actividad del registro de una aplicación en tiempo de ejecución, manteniendo las aplicaciones autocontenidas y permitiéndoles interoperar normalmente con el resto de Windows.

En este artículo se explica el modelo de aislamiento, los dos niveles de confianza disponibles para las aplicaciones empaquetadas y las ventajas que proporciona este enfoque.

Qué es y qué no es la contenedorización de MSIX

Al instalar un paquete MSIX, Windows coloca los archivos de la aplicación en una ubicación protegida (C:\Program Files\WindowsApps\) que la propia aplicación no puede modificar. En tiempo de ejecución, Windows proporciona a la aplicación una vista virtualizada del sistema de archivos y el registro: las lecturas se dirigen a la ubicación de instalación del paquete, y las escrituras se redirigen a ubicaciones individuales por usuario que Windows administra.

Esto significa lo siguiente:

  • Los archivos de instalación de la aplicación nunca se modifican en tiempo de ejecución.
  • El estado de la aplicación se almacena por separado de los archivos binarios de la aplicación: realizar actualizaciones, reparaciones y desinstalaciones limpias y confiables.

Nota:

Los contenedores MSIX son una característica en tiempo de ejecución de Windows, no un entorno de sistema operativo independiente. La aplicación se ejecuta como un proceso de Windows nativo; solo tiene una vista virtualizada de determinados recursos del sistema.

Dos niveles de confianza

Las aplicaciones empaquetadas se ejecutan en uno de los dos niveles de confianza, que determinan el grado de aislamiento:

Plena confianza (integridad media)

Las aplicaciones de plena confianza se ejecutan con los mismos permisos que una aplicación de escritorio estándar. Windows proporciona package identity y cierta virtualización de archivos o registro, pero la aplicación todavía puede acceder directamente a la mayoría de los recursos del sistema.

Este es el valor predeterminado para las aplicaciones convertidas desde instaladores de Win32 mediante la herramienta de empaquetado MSIX y para la mayoría de las aplicaciones de escritorio de WinUI 3.

AppContainer (confianza parcial)

Las aplicaciones appContainer se ejecutan en un entorno estrictamente aislado. El proceso y sus elementos secundarios solo pueden acceder a los recursos que se conceden explícitamente. Windows aplica el aislamiento mediante el sistema de archivos y la virtualización del registro y los límites de seguridad de AppContainer.

Las aplicaciones para UWP siempre se ejecutan en un AppContainer. Las aplicaciones de escritorio también pueden participar en AppContainer declarandola en el manifiesto de la aplicación.

Sugerencia

Las aplicaciones appContainer obtienen las garantías de seguridad más sólidas, pero requieren más trabajo para configurarse correctamente, especialmente para las aplicaciones que dependen del acceso amplio al sistema. Consulte Aplicaciones de MSIX AppContainer para conocer los pasos de configuración.

Ventajas del modelo de contenedorización de MSIX

Ventajas Descripción
Desinstalación limpia Dado que Windows rastrea por separado el estado de todas las aplicaciones, al desinstalar un paquete MSIX se eliminan todos los archivos de la aplicación, las entradas del registro y los cambios del sistema, sin dejar artefactos. Se conservan los archivos creados por el usuario.
Actualizaciones confiables Los archivos binarios de la aplicación son de solo lectura en tiempo de ejecución. Las actualizaciones reemplazan el paquete de forma atómica y la aplicación se puede revertir si es necesario.
No hay contaminación del registro Las entradas del registro de la aplicación van a un hive virtual específico de usuario, no a HKEY_LOCAL_MACHINE. Esto evita la expansión del registro común con los instaladores de Win32 tradicionales.
Aislamiento de seguridad Las aplicaciones appContainer están restringidas a recursos concedidos explícitamente, lo que reduce el impacto de un proceso en peligro.
Cumplimiento de la integridad Windows puede detectar alteraciones con archivos de paquete en tiempo de ejecución. Si se manipula un paquete, Windows bloquea el inicio y desencadena la reparación. Consulte la sección Visión general sobre cómo firmar un paquete MSIX.

Ámbito de virtualización

No todas las ubicaciones del registro y del sistema de archivos están virtualizadas. Windows aplica un comportamiento diferente en función de la ubicación a la que se accede:

  • Las escrituras en los archivos de instalación de paquetes están bloqueadas: la ubicación de instalación es de solo lectura.
  • Las escrituras en ubicaciones del sistema (como C:\Windows\) están bloqueadas para las aplicaciones AppContainer.
  • Las escrituras en ubicaciones de perfil de usuario (como AppData) se redirigen a ubicaciones por paquete para aplicaciones de AppContainer o pasan por aplicaciones de plena confianza.
  • Las lecturas de las ubicaciones de VFS empaquetadas se gestionan desde el propio paquete, permitiendo que la aplicación funcione como si estuviera instalada en ubicaciones tradicionales (como C:\Program Files\).

Para obtener los detalles técnicos completos sobre cómo funciona la virtualización del registro y del sistema de archivos, consulte Introducción a la ejecución de aplicaciones de escritorio empaquetadas en Windows.

Contenedores compartidos

De forma predeterminada, cada paquete MSIX se ejecuta en su propio contenedor aislado. En escenarios empresariales en los que varios paquetes necesitan compartir un entorno de tiempo de ejecución (por ejemplo, una aplicación principal y un paquete de personalización), Windows admite contenedores de paquetes shared. Un contenedor compartido proporciona un conjunto definido de paquetes una vista combinada del sistema de archivos virtual y el registro de los demás.

Se trata de una característica solo de empresa que requiere privilegios administrativos. Consulte Contenedor de paquetes compartidos.

Virtualización flexible

A partir de Windows 11, las aplicaciones pueden optar de forma selectiva por las carpetas específicas del sistema de archivos o las claves del Registro fuera de la virtualización, lo que hace que esas ubicaciones sean visibles para otras aplicaciones y conservarlas en la desinstalación. Esto es útil para las aplicaciones que necesitan compartir la configuración o los datos con otras aplicaciones, a la vez que se benefician del empaquetado MSIX.

Consulte Virtualización flexible.