Пятница FOSS Fest UTM — это удобный гипервизор для компьютеров Mac и Apple, но это нечто большее. У него есть некоторые очень специфические навыки. Нас это очень увлекает.
UTM — это настольный гипервизор для комплекта Apple, особенно для компьютеров Mac с macOS 11 или новее, но он также поддерживает некоторые устройства iOS. (Грустно, Рег У FOSS нет ни одного нового или достаточно мощного решения, чтобы попробовать это сделать.) Он поддерживает компьютеры Mac на базе x86-64 и Apple Silicon, но он может больше, чем большинство других гипервизоров. Судя по цитате Алана Тьюринга на странице Github, мы думаем, что это название означает «Универсальная машина Тьюринга».
Помимо прочего, UTM может выступать в качестве интерфейса для встроенного гипервизора Apple — функции macOS 10.10 или более поздних версий, называемой просто «Гипервизор». Гипервизор Apple сам по себе предлагает некоторые полезные возможности: например, он позволяет виртуальным машинам Linux вызывать Rosetta 2 для очень быстрого перевода x86-64 в Arm64. Однако UTM поддерживает и другие формы виртуализации.

Выпуск Debian для Arm64, работающий на iMac на базе процессора Intel, гораздо проще реализовать с помощью UTM, чем с помощью QEMU без посторонней помощи (нажмите, чтобы увеличить).
Конечно, уже есть выбор настольных гипервизоров для Mac: VMware Fusion, Parallels Desktop и, конечно же, кроссплатформенный VirtualBox. Большинство из них также доступны в собственных версиях для Apple Silicon Mac, но, как и в случае с любым стандартным гипервизором, они запускают виртуальные машины с тем же типом процессора, что и базовая хост-машина. Так, например, в базе знаний Parallels тщательно поясняется, что на нем можно запускать только Windows. для руки на компьютерах Apple Silicon Mac.
Это стандартное поведение гипервизора: он виртуализирует базовое оборудование, поэтому виртуальные машины получают тот же тип процессора, что и хост. Таким образом, если вы запускаете гипервизор x86-64 на x86-64, он может запускать только гостей x86-64, а если вы запускаете гипервизор Arm на Arm, он может запускать только гостей Arm.
В этом отличие UTM. Помимо гипервизора Apple, он также поддерживает QEMU с открытым исходным кодом, созданный французским программистом низкого уровня Фабрисом Белларом.
QEMU — необычный и сложный инструмент, способный работать по-разному, а это значит, что его часто неправильно понимают. QEMU может действовать как эмулятор всей системы, запуская программное обеспечение для одного семейства процессоров на совершенно другом процессоре. Для этого у него есть инструменты для создания и управления эмулируемыми жесткими дисками, графическими и сетевыми картами и т. д.: всем виртуальным оборудованием, которое необходимо для работы эмулируемой системы.
Однако сбивает с толку то, что начиная с версии 2.6.20 в 2007 году ядро Linux имеет собственный встроенный гипервизор KVM, который, в свою очередь, использует средства аппаратной виртуализации всех современных чипов Intel и AMD, поскольку Рег Стол FOSS подробно описан еще в 2011 году. все KVM может общаться со встроенными средствами ЦП, которые запускают и останавливают виртуализированные экземпляры. KVM сам по себе не имеет возможности определять виртуальные диски, графические адаптеры или что-либо из этого.
Что Именно здесь на помощь приходит QEMU. Он широко используется в большинстве дистрибутивов Linux для обеспечения дополнительной внешней поддержки: для создания, предоставления и управления всем дополнительным оборудованием для виртуальных машин. По сути, ядро Linux обеспечивает процессор, а QEMU делает все остальное. В этом режиме QEMU вообще не эмулирует процессор: это обеспечивает операционная система, а это означает, что гостевой код работает на скорости, близкой к собственной, на реальном базовом процессоре. Менее известно, что то же самое можно сделать и на macOS.
Отсюда и возникает непонимание QEMU. Это может сработать оба как полносистемный эмулятор и как гипервизор типа 2 с помощью ядра и ЦП, обеспечивающих соответствующую функциональность.
UTM объединяет в дружественный графический интерфейс два разных гипервизора, один из которых может работать в двух разных режимах. Он может напрямую использовать гипервизор Apple, виртуализируя базовый процессор Intel или Apple Silicon, но помимо этого он также может использовать QEMU либо в качестве гипервизора для виртуализации на собственной скорости, либо в режиме эмуляции.

UTM работает под управлением классической MacOS и Solaris на MacBook Air M1 под управлением Sonoma (нажмите, чтобы увеличить)
Это означает, что UTM может запускать гостевую систему x86 на Apple Silicon или гостевую систему Arm64 на Intel Mac. И он не ограничивается Arm и x86: он также может запускать виртуальную машину PowerPC или SPARC как на компьютерах Mac с Intel, так и на Arm64.
Чтобы проверить это, мы загрузили универсальный установочный ISO-файл MacOS 9.2.2 с MacOS9Lives, выбрали виртуальную машину PowerPC и через несколько минут были глубоко впечатлены запуском Classic под macOS Ventura. Мы также установили версию Debian 12 для Arm64 на iMac с процессором Core i7.
Если вы не хотите настраивать собственную виртуальную машину, UTM предлагает галерею готовых гостевых образов, а в ходе тестирования мы успешно запустили классическую MacOS 9.2.1 на основе PowerPC на компьютерах Mac M1 и Core i7. Мы также установили SPARC-версию Sun Solaris 9, работающую на обеих машинах.
Эмуляция далеко не такая быстрая, как настоящая виртуализация: виртуальная машина SPARC была не совсем быстрой, но ее можно было использовать. Однако даже восьмилетний Core i7 значительно быстрее, чем самые быстрые компьютеры Mac, способные загружать MacOS 9, а MacOS 9 требует всего 40 МБ ОЗУ и хорошо работает на компьютерах Mac G3 с частотой 233 МГц: это не требовательная ОС по стандартам 21 века. .
Это не то же самое, что классический режим в Mac OS X с 10.0 по 10.4: интеграция между хостовой и гостевой ОС невелика, и вам придется самостоятельно решать, как перемещать файлы между ними. Несмотря на это, мы были очень впечатлены тем, насколько легко UTM позволяет реализовать этот подвиг эмуляции.
Мы также протестировали бета-версию Fedora 39 в UTM, и она работала более плавно, чем в VirtualBox – несомненно, потому, что родной гипервизор Fedora, GNOME Boxes, использует те же базовые инструменты QEMU.

Даже если вам не нужны все эти возможности эмуляции, это вполне работоспособный гипервизор x86-on-x86, на котором установлена последняя бета-версия Fedora (нажмите, чтобы увеличить)
Запуск целых операционных систем x86-64 на нашем M1 MacBook Air был менее впечатляющим: Rosetta 2 выполняет трансляцию каждого приложения и не может помочь с полной эмуляцией системы. Производительность гостевой ОС была немного вялой, но терпимой: при скромном использовании с этим можно было смириться.
Это сильно напомнило этому стервятнику использование !PCEm от Acorn. [PDF] программный эмулятор ПК на оригинальном настольном компьютере ARM, Acorn Archimedes, под управлением ОС RISC в конце 1980-х годов. Хотя вы всегда предпочитаете использовать собственное программное обеспечение, если оно доступно, было очень впечатляюще, что 8-мегагерцовый ARM2 обладал достаточной мощностью для полной эмуляции ПК x86 на приемлемой скорости. Это было впечатляюще, когда 35 лет назад компьютер ARM мог эмулировать IBM XT-класса с частотой менее 5 МГц, совместимый с 640 КБ ОЗУ, и столь же впечатляюще то, что сегодня он может эмулировать 64-битный многоядерный ПК с 4 ГБ ОЗУ.
UTM можно бесплатно загрузить с Github, но если вы получите его из Apple App Store для macOS, оно будет стоить 9,99 долларов, что помогает финансировать разработку программы. ®