Виртуализация и эмуляция в MacOS

Виртуализация и эмуляция в MacOS

23 ноября 2022 г.

Я использую Parallels уже пару лет, в основном для запуска виртуальных машин (ВМ) Windows, но иногда и для виртуальных машин Linux. В основном я использую его для игр, тестирования и иногда приложений только для Windows. Есть и другие давние варианты, такие как VirtualBox, QEMU и VMWare. Я намеренно игнорирую все, что также запускает контейнеры, например Docker, поскольку это другой вариант использования и целый ряд других вариантов.

Недавние изменения в macOS внезапно принесли множество новых опций, и, уже попробовав VirtualBuddy и прочитав сообщение от всегда проницательной компании Eclectic Light, я решил попробовать их все!

<цитата>

Хотите посмотреть это как видео?

https://www.youtube.com/embed/0lJSgoD4eN0?embedable=true

Критерии

Сейчас доступно множество вариантов, поэтому при профилировании каждого из них я обычно исходил из следующих критериев:

* Родной Apple Silicon или только Intel * Поддерживаемые виртуальные машины * Варианты интеграции между ОС хоста * Производительность * Простота использования и стабильность

Краткий обзор виртуализации и эмуляции

Некоторые инструменты в этой статье виртуализируют, другие эмулируют, а некоторые делают и то, и другое. Но что это значит?

Эмуляция

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

Виртуализация

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

Виртуальная коробка

Fedora on macOS (not mine obviously)

Как один из классических вариантов виртуализации, VirtualBox поддерживает множество хостовых и гостевых операционных систем. Он с открытым исходным кодом, но принадлежит Oracle, что может оттолкнуть многих людей.

Есть бинарные версии, которые вы можете установить, и доступна формула Homebrew. Однако для VirtualBox требуется расширение ядра, поэтому после установки необходимо перезапустить его.

Большое предостережение заключается в том, что VirtualBox работает только на процессорах x86 и описывает себя как «не эмулятор процессора». Это означает, что будет никогда не запускать на Apple Silicon , даже не используя Rosetta 2. Я активно использовал его в прошлом, особенно с Vagrant, но больше не могу тестировать его на своем M1 MacBook Pro, поэтому в этом посте мне мало что можно сказать об этом. Однако вы можете найти множество других мнений и практических руководств по его использованию.

Жизнеспособный

Viable screenshots

Говард Окли из Eclectic Light Company обычно выпускает приложения как «технические примеры», по крайней мере, так я их интерпретирую. Они больше предназначены для демонстрации определенных функций macOS, чем для предоставления сложного пользовательского интерфейса и некоторых других функций.

Viable имеет простой интерфейс для настройки машины, загружает образ IPSW (как VirtualBuddy) и готово. . Liviable – это сопутствующее приложение. который поддерживает виртуальные машины Linux, но работает только в Ventura и более поздних версиях, и я не совсем понимаю почему, но полагаю, что доступна новая функция.

Чтобы создать виртуальную машину в Viable, нажмите кнопку Загрузить, чтобы загрузить образ диска по умолчанию (как правило, последний) с сайта Apple, или Установить, чтобы использовать уже имеющийся образ. После этого измените настройки и нажмите Запустить виртуальную машину.

Liviable работает так же, но здесь нет кнопки Скачать, так как нет «официального» источника изображения, и вы сами можете его найти.

Виртуальная ОС

Отчасти не хватает документации и возможных доказательств того, что новые функции macOS упрощают создание приложений виртуализации, virtualOS — еще один простой способ создания виртуальных машин macOS.

Чтобы создать машину, откройте настройки и выберите, хотите ли вы загрузить «последний» образ от Apple или использовать собственный. Щелчок старт, вот и все!

Виртуальный друг

Я уже рассматривал VirtualBuddy, и это еще один из новых вариантов виртуализации macOS, который поддерживает только эмуляцию macOS, поэтому в первую очередь для в целях тестирования.

Он относительно прост в использовании, эмулирует macOS с производительностью, близкой к естественной, и имеет полностью открытый исходный код с быстрым циклом выпуска.

Подробности смотрите в другом моем видео. Недавно я обнаружил, что VirtualBuddy работает только с macOS Monterey.

ЭМУ

Я не мог составить список инструментов виртуализации, не упомянув QEMU, так как это один из первых и самых старых вариантов эмуляции. Это инструмент командной строки с бесчисленным количеством аргументов для понимания, и фактически UTM является интерфейсом для QEMU с некоторыми другими добавленными функциями.

Если вы можете перемещаться по этим параметрам, это мощно, и в настоящее время это единственный вариант (и UTM) для эмуляции других архитектур на Apple Silicon. Так что, если вы отчаянно хотите запустить какую-то малоизвестную ОС x86 или PowerPC, или действительно «классическую» Windows, то это ваш лучший вариант.

УТМ

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

UTM может запускать версии ARM64 для Windows, Linux и macOS. UTM может работать на компьютерах Intel и эмулировать ОС, работающие на разных архитектурах. Это включает в себя более малоизвестные процессоры, такие как PPC и RISC-V. Мне удалось запустить Intel-версии Windows и Linux. Однако они работают достаточно медленно, чтобы их почти нельзя было использовать, поэтому используйте их с осторожностью, используйте более старые версии или без графического пользовательского интерфейса. Однако у UTM открытый исходный код, активное сообщество, и для людей, которым нравится возиться с операционными системами, особенно малоизвестными, это приемлемый вариант.

UTM не поддерживает эмуляцию графического процессора для Windows, поэтому вы, скорее всего, не сможете играть в игры, требующие 3D-ускорения.

UTM и Windows

Windows часто поставляется не в виде файла ISO, а в виде «VHDX», UTM может преобразовать его на лету, или вы можете загрузить ISO-образы со сторонних сайтов. Ваш пробег может варьироваться там. Чтобы получить версию Windows для ARM, вам необходимо зарегистрироваться в программе предварительной оценки Windows. Версии Intel можно получить разными способами.

Когда у вас есть установочный образ, вы можете создать виртуальную машину. Сначала выберите, хотите ли вы эмулировать или виртуализировать, а затем вы можете создать свои собственные машины или выбрать один из шаблонов, которые UTM поддерживает «официально» или от сообщества.

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

Выполнив этот шаг, вы можете продолжить установку Windows и запустить ее, когда, наконец, дойдете до конца процесса установки.

Это аналогичный процесс для запуска x86-версий Windows, за исключением того, что если вы не используете Intel Mac, процесс будет невыносимо медленным. Может, попробовать Windows 95?

UTM и Linux

Опять же, сначала вам нужно загрузить образ ISO и выбрать «эмулировать», если вы хотите запустить Intel (или что-то еще) версию Linux, или «виртуализировать» для версии ARM. Эмуляция не так мучительна, как Windows, но в принципе непригодна для использования, ее производительности может быть достаточно для запуска Linux из командной строки.

Параллели

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

Parallels работает на ChromeOS и macOS и в значительной степени рекламирует себя как вариант для запуска Windows, но вы также можете запускать некоторые предварительно упакованные дистрибутивы Linux и с некоторой конфигурацией, многие другие ОС. Раньше у меня лично Manjero, FreeBSD и другие ОС работали с Parallels достаточно хорошо. Однако я не пробовал ничего из этого на своей машине Apple Silicon. В основном я использую его для запуска Windows 11, с которой он работает очень хорошо, и я играл в довольно недавние игры (Civilization 6, Age of Empires 3, Divinity Original Sin 2) с небольшими накладными расходами. В последних версиях Parallels также предлагает сопоставление DirectX с Metal, повышая производительность, и поддерживает множество других функций macOS в большинстве виртуальных машин, таких как Sidecar. Я также использовал для быстрого запуска некоторых настольных компьютеров Ubuntu для тестирования, опять же, без проблем. Вы также можете установить текущие версии на macOS в качестве виртуальной машины, опять же в первую очередь в целях тестирования.

Чтобы создать виртуальную машину, нажмите кнопку + в окне Центра управления или воспользуйтесь кнопкой Файл > Новый пункт меню. Отсюда вы можете выбрать готовый образ из Parallels или выбрать ISO или VHDX, которые вы загрузили из другого места, и создать собственный компьютер.

Windows running in Parallels

Ubuntu running in Parallels

Если вы можете позволить себе Parallels, то он быстро стал моим любимым выбором для виртуальных машин, но он также не имеет открытого исходного кода и имеет кое-какие связи с Россией, но кажутся дальними.

VMWare Fusion

Основным бизнесом VMWare являются виртуальные машины, поэтому я понятия не имею, почему я даже не подумал посмотреть, есть ли у них возможность эмуляции рабочего стола. По сути, Fusion очень похож на Parallels, в первую очередь предназначен для запуска Windows, но также поддерживает Linux, macOS, и «малоизвестные варианты». Как и Parallels, он предлагает сопоставление DirectX с Metal и поддерживает другие функции macOS. Интересно, что вы также можете использовать Fusion для запуска контейнеров, которые, поскольку Docker Desktop становится все более раздутым, представляют собой интересную альтернативу «все в одном».

В процессе написания этой статьи VMWare Fusion для Apple Silicon прошла путь от предварительного просмотра до версии 13. Если вы можете ориентироваться в лабиринте процессов регистрации VMWare, есть даже бесплатная версия для игроков.

Я попробовал предварительную версию, и хотя она не такая производительная и удобная, как Parallels, она работает. Он не упаковывает версии Linux или Windows для ARM, поэтому вам придется искать их самостоятельно. Список дистрибутивов ARM Linux, которые работают с Fusion, медленно растет, и у VMWare также есть собственный дистрибутив Proton.

Чтобы заставить работать версию Windows для ARM, сначала необходимо зарегистрироваться в программе для участников программы предварительной оценки Windows, загрузить VHDX и преобразовать его в файл «VMDK», используя QEMU с помощью следующей команды.

qemu-img convert -p -Ovmdk /path/to/.VHDX/destination/path/to.vmdk

Как и UTM, Windows не распознает сетевые настройки, пока вы не установите пакет инструментов, чтобы включить совместную сеть с Mac. Выполните следующие действия:

* В строке меню Mac/Fusion нажмите Виртуальная машина > Установите инструменты VMware * Нажмите «SHIFT-Fn-F10», чтобы вызвать командную строку. * Введите powershell, нажмите Enter * Введите cd D:`, чтобы изменить каталог на диск с инструментами- Введите: Set-ExecutionPolicy RemoteSigned * Введите .setup.ps1

Выполнив эти шаги, вы можете продолжить установку Windows и запустить ее, когда, наконец, дойдете до конца процесса установки. Некоторые из этих шагов, возможно, изменились (и стали проще) после того, как Fusion вышла из предварительного просмотра.

Лучший вариант

Итак, вы дочитали и/или досмотрели до этого места и вместо ответа "это зависит от обстоятельств" хотите, чтобы кто-то сказал вам, что вам следует использовать.

Лично для регулярного использования я буду использовать Parallels, это самый простой и производительный вариант для виртуализации ОС. Если мне нужно что-то эмулировать, обычно для работы с малоизвестными или нишевыми операционными системами, то ничто не сравнится с UTM, поскольку он дает всю мощь QEMU с разумным пользовательским интерфейсом.

<цитата>

Наслаждайтесь! Что вы будете эмулировать или виртуализировать?


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE