Windows 10X: подробности о контейнеризации, UWP и Win32-приложениях

Автор:

Несколько дней назад компания Microsoft раскрыла подробности о работе новой операционной системы Windows 10X, а также опубликовала эмулятор, благодаря чему разработчики уже могут приступить к оптимизации своих приложений для устройств с двумя экранами.

Одна из важнейших функций Windows 10X — контейнеризация выполняемых приложений, и именно о ней стоит поговорить более подробно.

Три типа контейнеров

В Windows 10X абсолютно все приложения выполняются в контейнерах. Разработчикам не требуется вносить какие-либо изменения в код своего программного обеспечения, поскольку контейнеризация является неотъемлемой частью архитектуры ОС. Сами контейнеры изолированы и отделены от операционной системы, что позволяет лучше контролировать их поведение.

В настоящее время существует три типа контейнеров:

  1. Контейнер Win32 запускает «классические» 32- и 64-битные приложения Win32, WinForms, WPF, Electron и т. д., представляя собой среду, аналогичную настольной ОС. Существует всего один контейнер для всех приложений Win32, и он достаточно хорошо совместим со всем существующим программным обеспечением.
  2. Контейнер MSIX отлично совместим с существующими приложениями. Они изолируются от других Win32-приложений, но сам запуск производится в контейнере внутри контейнера Win32.
  3. UWP-приложения обеспечивают минимальную нагрузку на систему, наилучшую производительность, автономность, безопасность и конфиденциальность.

На самом деле потребители могут вообще не знать о контейнеризации в Windows 10X. Большинство Win32 и все UWP-приложения будут корректно работать на Windows 10X. Также неважен источник, из которого вы установили приложение. Это может быть как Microsoft Store, так и интернет или USB-накопитель.

Разработчики могут самостоятельно выбирать между Win32, PWA и UWP. Конечно, UWP-приложения наиболее оптимизированы для Windows 10X, но Microsoft сделала всё возможное, чтобы классические приложения также хорошо работали в новой операционной системе.

Контейнеры оптимизируют производительность и автономность

UWP — наиболее оптимизированная платформа для Windows 10X, что и не удивительно, ведь она была разработана с учётом использования на Windows Phone (Windows Mobile). UWP-приложения обеспечивают отличную безопасность, производительность и автономность. На уровне операционной системы они обрабатывают события приостановки и возобновления работы приложения.

Win32-приложения созданы для настольных ПК, и им не хватает оптимизации UWP для мобильных устройств. Зачастую они являются более мощными, чем UWP-приложения, но уступают им же по производительности и времени автономной работы. Тем не менее, в 2020 году «классические» Win32-приложений по-прежнему очень важны для современных мобильных вычислений.

Исправить эту проблему с Win32 и MSIX призван контейнер Win32:

  1. Контейнеры Win32 и MSIX сокращают потребление ресурсов, если окна приложений не показываются.
  2. Приложения полностью приостанавливаются, если нет открытых окон.

Таким образом, приложения Win32 и MSIX не могут работать в фоновом режиме, что помогает экономить системные ресурсы и заряд аккумулятора. Если же приложение активно используется, то контейнер выделяет больше ресурсов для повышения производительности.

Но есть два последствия такого изменения. Во-первых, «классические» Win32-приложения, скорее всего, не смогут запускать фоновые задачи (они будут работать до приостановки контейнера). Во-вторых, такие приложения не смогут автоматически запускаться после загрузки системы. Отчасти это связано с тем, что в Windows 10X отсутствует системный трей.

В целом, Microsoft может разрешить пользователям контролировать поведение контейнера, чтобы Win32-приложения всё же могли работать в фоновом режиме. Но решения по этому вопросу пока не принято.

Контейнеры Win32 и MSIX избавляют от необходимости в антивирусном программном обеспечении, что также положительно скажется на производительности и времени автономной работы устройств.

Всё должно работать

Контейнеризация Win32-приложений не делает их менее мощными. Microsoft заявляет, что эти приложения по-прежнему получают полный доступ к таким вещам, как:

  • Мышь, клавиатура, перо и сенсорная панель;
  • Графика DirectX, аудио, медиа;
  • Сеть;
  • Печать.

Проще говоря, старая модель «подключи и работай» всё ещё действует, и устройства, такие как Surface Neo, должны работать со всем, что вы подключите, включая внешние мониторы и периферию.

Также повышен уровень безопасности. Теперь пользователь может запретить всем классическим приложениям получать доступ к таким вещам, как веб-камера, микрофон и местоположение. Система разрешений уже влияет на UWP-приложения, но в Windows 10X пользователи смогут управлять разрешениями для Win32 на уровне контейнера.

Поскольку в Windows 10X нет системного трея, «классические» приложения не смогут его использовать. Но это не приведёт к нестабильной работе приложений, даже если они обращаются к тем функциям, которых нет в новой ОС. Сбой приложения из-за ограничений, наложенных контейнером Win32, не должен происходить. Все вызовы функций останутся внутри контейнера и не смогут повлиять на основную ОС.

Два проводника

В Windows 10X используется два файловых менеджера, в том числе для функции «Сохранить как». Win32-приложения могут по-прежнему использовать классический «Проводник» и старое диалоговое окно выбора файлов с доступом к системным папкам. Эта функция необходима для корректной работы Win32-приложений, которые могут использовать это диалоговое окно для выбора или сохранения файлов.

В свою очередь UWP-приложения и сама операционная система будут использовать современный «Проводник», который открывает доступ только к необходимым библиотекам, таким как «Видео», «Музыка», «Избранное», «Документы», «Изображения» и т. д.

Таким образом, пользователь получает лишь базовый доступ к основным библиотекам, но не может обращаться к файловой структуре как в Windows 10. Но Win32-приложения продолжат работать так, как должны, без каких-либо изменений в коде.

Приложения работают в полноэкранном режиме

Кевин Галло, корпоративный вице-президент Microsoft Developer Platform, подтвердил, что в настоящее время приложения в Windows 10X работают в полноэкранном режиме. Это похоже на то, как приложения запускаются в Windows 8 и в режиме планшета в Windows 10.

Причина такого выбора заключается в размере экрана: чем меньше дисплей, больше важность информации в одном конкретном окне. Вряд ли кто-то планирует запускать пять приложений в маленьких окнах на одном 9-дюймовом экране.

Но тема с полноэкранным режимом работы приложений довольно спорная, и Microsoft будет следить за отзывами со стороны разработчиков. Если они посчитают необходимым запуск приложений в оконном режиме, то компания может разрешить это.

Windows 10X и простая, и сложная

Microsoft спроектировала Windows 10X так, чтобы она оставалась нейтральной для приложений. Electron, UWP, Win32, WinForms, WPF — все эти приложения будут работать в новой ОС без каких-либо существенных изменений в коде.

  • Windows 10 Home/Pro — создана для Win32-приложений, но может работать с UWP.
  • Windows 10X — создана для запуска UWP, но также может работать с Win32.

Конечно, Microsoft не классифицирует свои системы таким образом, но фактически это почти так. Windows 10X создана, чтобы быть быстрой, гибкой, мобильной и безопасной. Например, установка функциональных обновлений будет занимать не более 90 секунд. Всё это стало возможным благодаря изолированной и ограниченной сущности UWP.

Кевин Галло также отметил, что приложения, оптимизированные для двухэкранных устройств, также должны обеспечивать лучший опыт использования в настольной Windows 10.

Microsoft обещает, что разница в производительности между Win32 и UWP в Windows 10X не должна быть заметна. Хотя это, конечно, ещё предстоит проверить.