Подробно о Windows 10X: контейнеры, работа UWP и Win32 приложений

2020-02-14 3602 комментарии
Windows 10X использует сложные механизмы для обеспечения совместимости с разными типами приложений, но для пользователей опыт будет беспроблемным

11 февраля на конференции для разработчиков Microsoft 365 Developer Day компания Microsoft поделилась некоторыми деталями о работе новой операционной системы Windows 10X. Также был представлен эмулятор для разработчиков, позволяющий оптимизировать приложения для устройств с двумя экранами.

Эмулятор Windows 10X

Главная особенность Windows 10X заключается в том, что приложения запускаются в контейнерах. Подробнее остановимся на данной технологии и рассмотрим, какие типы приложений можно будет запустить на устройствах под управлением Windows 10X, таких как Surface Neo.

Три типа контейнеров для максимальной совместимости

Три типа контейнеров для максимальной совместимости

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

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

Windows 10X поддерживает три типа контейнеров, один из которых является новым - Win32.

  • Win32 контейнер: предназначен для запуска «классических»  32-битных и 64-битных приложений Win32, WinForms, WPF, Electron и др. Данный контейнер схож со средой обычной настольной ОС. В Windows 10X предусмотрен один контейнер для всех приложений Win32, который обладает «высокой совместимостью»  с существующим ПО.
  • MSIX контейнер с полным доверием: имеет высокую совместимость с существующими приложениями. Данный тип контейнеров работает изолированно от других приложений Win32 и может запускаться совместно с Win32 контейнером.
  • Все UWP-приложения: наименьшее влияние на производительность, хорошая автономность, а также наивысший уровень безопасности и конфиденциальности.

Обычным потребителям не обязательно знать о данных технологиях. Большинство приложений Win32 и UWP приложений будут сразу же работать в Windows 10X. При этом неважно, откуда вы устанавливаете приложение - из Магазина Microsoft, Интернета или с USB-накопителя.

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

Контейнеры позволяют оптимизировать энергопотребление и производительность

Контейнеры позволяют оптимизировать энергопотребление и производительность

UWP-платформа имеет наилучшую оптимизацию для Windows 10X. Это вполне логично, ведь UWP-приложения первоначально разрабатывались с учетом мобильной платформы Windows Phone (Windows Mobile). Такие приложения повышают безопасность и производительность, снижают энергопотребление и соблюдают меры энергосбережения операционной системы (переход и выход из спящего режима).

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

Microsoft решила «исправить слабые стороны»  приложений Win32 (и MSIX) с помощью контейнеризации:

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

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

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

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

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

Все будет работать корректно

Все будет работать корректно

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

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

Это означает, что старая модель «Plug and Play» сохранится, и на Surface Neo можно будет использовать все, что вы к нему подключите, включая внешние мониторы и периферийные устройства.

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

Так как в Windows 10 отсутствует системный трей, то классические приложения не смогут его использовать, что, тем не менее, не должно привести к проблемам стабильности. Microsoft сообщает, что Win32 приложения cмогут работать «как есть» (то есть без изменений в реестре), но из-за контейнеризации программные вызовы никогда не коснутся ОС. Компания заявляет, что ограничения, наложенных контейнером Win32, не должны приводить к сбоям.

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

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

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

Приложения Win32 все еще могут использовать «классический» Проводник Windows и привычное диалоговое окно для выбора файлов в масштабе всей системы, включая доступ к системным папкам. Эта функция является ключевой для приложений Win32, которые предназначены для открытия, обработки и сохранения файлов.

Однако, при вызове диалогового окна работы с файлами в UWP-приложениях или в самой системе Windows 10X откроется «современный» Проводник Windows (Modern File Explorer), который ограничен необходимыми библиотеками, такими как Видео, Музыка, Избранное, Документы, Изображения и др.

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

Приложения запускаются в развернутом режиме

Приложения запускаются в развернутом режиме

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

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

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

Итог: Windows 10X является технически сложной системой, но простой для пользователя

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

По сравнению с обычной Windows 10 Microsoft изменила не только дизайн, но и основный приоритет:

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

Конечно, это условная классификация, но Windows 10X построена так, чтобы быть быстрой, гибкой, мобильной и безопасной. Уже известно, что обновление ОС должно занимать не более 90 секунд. Данное преимущество связано с тем, что Windows 10X построена на замкнутой и ограниченной природе UWP, как и HoloLens.

В любом случае, владельцы Surface Neo смогут устанавливать любое приложение по желанию, и ожидаемое поведение будет соблюдено. У разработчиков также не нужно вносить существенные изменения в свои продукты.

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

Windows 10X является технически сложной системой, но простой для пользователя

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

Примечание: Большая часть данной информации основана на демонстрационном видео «How Windows 10X runs UWP and Win32 apps» показанном на Microsoft 365 Developer Day.

© . По материалам Windows Central

Комментарии и отзывы

Добавляя комментарий, ознакомьтесь с Правилами сообщества

Нашли ошибку?