О системных расширениях Parallels Desktop в macOS

pxqvrucb6ejkjarfszjnplvy46c.png

Если вы являетесь пользователем Parallels Desktop (или используете другое приложение, требующее сторонних системных расширений), то вы наверняка видели сообщения от macOS и Parallels Desktop с надписью «Системное расширение заблокировано».

Так что же это такое — системное расширение, и почему операционная система его блокирует? Это опасно? Довольно логичные вопросы для рядового пользователя, которые частенько задают нашим инженерам технической поддержки Parallels. В этом посте я постараюсь максимально подробно и доступно объяснить эту ситуацию.

xbubnptl_pa9zcb0vhfdtjcfrtu.png

В начале относительно короткий ответ о том, почему Parallels Desktop использует системные расширения, а затем последует более подробная информация.

  1. Parallels Desktop использует аппаратную технологию гипервизора (Intel VT-x hypervisor) для создания высокопроизводительной виртуальной машины, будь то Windows, Linux, macOS или другие операционные системы.
  2. Для управления гипервизором, система должна иметь драйвер, которые в macOS называются system extensions (ранее kernel extensions) — расширение (ядра) системы.
  3. В macOS существует два типа гипервизора, которые может использовать Parallels Desktop: встроенный гипервизор Apple или собственный гипервизор Parallels.
  4. Проприетарный гипервизор Parallels реализован как расширение системы. Системные расширения в macOS позволяют разработчикам глубоко интегрироваться в систему macOS для достижения лучшей производительности или предоставления некоторых уникальных функций.
  5. Когда Parallels Desktop пытается загрузить системные расширения гипервизора Parallels, macOS предлагает пользователю «разрешить» это событие (загрузку).
  6. Системные расширения имеют повышенные привилегии, и если они поступают из ненадежного источника, могут быть использованы злонамеренно. Итак, это мера безопасности, аналогичная тому, как приложения вашего телефона запрашивают доступ к камере.
  7. Если вы загрузили Parallels Desktop с сайта parallels.com, а системное расширение подписано «Parallels International GmbH», то вы в надежных руках.
  8. Parallels рекомендует использовать встроенный гипервизор Apple. Таким образом, macOS не будет беспокоить вас утверждением расширения системы или необходимостью перезагрузки.
  9. Однако, если вам нужно использовать функцию вложенной виртуализации (Nested virtualization) или у вас уникальная ситуация, при которой гипервизор Parallels показывает более высокие показатели производительности, вы можете продолжать использовать гипервизор Parallels.
  10. Чтобы изменить тип гипервизора, сначала необходимо выключить (остановить) виртуальную машину. Обратите внимание, что для этого вам может потребоваться запустить или возобновить работу виртуальной машины и одобрить расширение системы гипервизора Parallels.
  11. Когда ваша виртуальная машина остановлена, перейдите в раздел «Конфигурация виртуальной машины»> «Оборудование»> «ЦП и память»> «Дополнительные настройки»> щелкните раскрывающийся список «Гипервизор»> выберите «Apple» или «Parallels» соответственно.
  12. Если у вас несколько виртуальных машин, вам может потребоваться изменить настройку для каждой из них.

diifdyjwno2gqyq_srguhfbfaga.png

А теперь, если вы еще не заскучали, я хотел бы рассказать вам немного больше об этой истории.

Более десяти лет компания Parallels разрабатывала проприетарные драйверы (они же «системные расширения») для запуска Windows и других ОС поверх macOS. Эти драйверы сделали Parallels Desktop лучшим на рынке: самым быстрым и технологичным решением для виртуализации рабочего стола (desktop virtualization).

В то же время, в течение нескольких лет, Apple двигалась к тому, чтобы сделать macOS самой безопасной и надежной ОС для настольных ПК (и я должен признать, Apple преуспела во многих отношениях). Один из ключевых аспектов — не позволять разработчикам вторгаться в ядро​​ОС, загружая эти самые расширения (также известные как «kexts»), поскольку те, у кого есть доступ к ядру, могут делать вещи в самом сердце вашего компьютера Mac, что может оказаться довольно опасным.

Для этого Apple должна заменить сторонние расширения ядра на собственные системные API, которые в конечном итоге должны обеспечить те же функции продукта, а это огромная инженерная работа даже для такого крупного предприятия, как Apple.

С 2017 года, с выпуском macOS High Sierra версии 10.13, Apple начала автоматически блокировать сторонние «кексты» (как мы их называем на нашем сленге), и с тех пор пользователям приходится разрешать их загрузку вручную.

В марте 2020 года с выпуском macOS Catalina версии 10.15.4, Apple начала предупреждать пользователей, что некоторые из их приложений (которые используют устаревшее системное расширение) будут «несовместимы с будущей версией macOS» (читай «с macOS Big Sur 11»).

В июне 2020 года, во время всемирной конференции для разработчиков на платформах Apple (WWDC-20) компания опубликовала следующее утверждение (всё еще перевод с Английского):

«Системные расширения повышают надежность и безопасность macOS, а устаревшие расширения ядра не загружаются по умолчанию в macOS Big Sur». В конце концов, чтобы сделать Parallels Desktop полностью совместимым с новой macOS Big Sur 11, команда инженеров Parallels потратила годы на перестройку Parallels Desktop и его функций с использованием новых системных API macOS.

Эта обширная и трудоемкая работа привела к появлению совершенно нового Parallels Desktop 16, специально предназначенного для работы и интеграции с новыми технологиями macOS Big Sur, и в то же время обеспечивающего повышение производительности и совместимости на благо пользователей Parallels Desktop.

Эта схема ниже наглядно описывает разницу между режимами Parallels Desktop по умолчанию в соответствующей версии macOS. Старый дизайн Parallels Desktop с использованием системных расширений Parallels показан слева, а недавно изобретенный Parallels Desktop 16, использующий API-интерфейсы macOS Big Sur 11, показан справа.

5jvewhnlnldhl_vpgzdcfr8qsw4.png

На данный момент, наша команда продолжает работать над поддержкой гипервизоров Parallels и Apple и продолжает сотрудничество с Apple по внедрению остальных функций Parallels Hypervisor в Apple Hypervisor. Мы рекомендуем использовать гипервизор Apple, и если вы заметите разницу между гипервизорами Apple и Parallels для вашего варианта использования, сообщите нам об этом.

Если у вас остались вопросы — пишите. Спасибо за внимание!

© Habrahabr.ru