Virtualbox для apple silicon

Новым Mac с Apple M1 пока не хватает нативного софта и сред разработки

MacBook Air, MacBook Pro и Mac mini с новым чипом Apple Silicon М1 с ARM-архитектурой уже поступили в продажу. MacBook Air на базе M1 эмулирует код x86_64 с помощью Rosetta 2. Однако, хотя Apple позаботилась о том, чтобы ее собственные приложения для MacOS Big Sur были готовы к моменту выпуска, многие проекты с открытым исходным кодом и коммерческие приложения еще не перестроились на работу с Arm64.

Microsoft выпустила универсальную сборку бета-версии Mac Office 2019, содержащую двоичные файлы x86_64 и Arm64. Но пока нет универсальной сборки выпуска Office с поддержкой M1. Точно так же популярный редактор кода Microsoft Visual Studio Code имеет экспериментальную сборку Arm64, а универсальная сборка запланирована только на конец этого месяца.

Adobe показала бета-версию Photoshop для Arm в Windows и macOS. В бета-версии пока отсутствуют некоторые инструменты. Adobe отмечает, что новые функции будут добавлены в ближайшие недели. Компания планирует к концу 2020 года выпустить встроенную версию Lightroom.

Google во вторник представила Chrome 87 с поддержкой Apple Silicon, хотя, похоже, встроенная в браузер система DRM Widevine по-прежнему полагается на Rosetta.

Тем, кто надеется запустить собственные версии профессиональных приложений для творчества, не приходится ждать многого. Avid, например, все еще работает над обеспечением поддержки Intel в macOS Big Sur для таких приложений, как Pro Tools и Media Composer.

Всем, кто хочет запустить Windows на Apple Silicon Mac, тоже не повезло: технология Apple Boot Camp недоступна в новом режиме. И обещанный новый уровень виртуализации для оборудования Apple Silicon еще не вышел, поэтому версии VMware Fusion и Parallels для Arm64 пока находятся в стадии разработки.

Oracle не сообщает, будет ли она переносить свой гипервизор VirtualBox на M1.

Docker, широко используемый разработчиками, хотя и может работать на оборудовании M1, но зависит от других проектов с открытым исходным кодом, таких как язык программирования Go и кроссплатформенный проект Electron.

Бенджамин де Сен-Паэр-Готч, главный менеджер по продукту в Docker, объяснил, что проект запускает виртуальную машину под Docker Desktop, но возможность будет недоступна, пока Apple не выпустит свой уровень виртуализации, а Docker не адаптирует свой код. Проблема с DTK присутствует и на старом процессоре A12Z.

Golang стремится к совместимости с Apple Silicon в феврале с выпуском Go 1.16.

Команда Rust предлагает кросс-компилятор уровня 2, который выводит собственный код Arm, подходящий для работы на Mac M1.

Тем временем Electron добавила поддержку Apple Silicon в версии 11.0.0-beta.1 в прошлом месяце и в последующих сборках. Версия 12.0.0 выйдет 19 ноября. Сэмюэль Аттард, старший инженер-программист в Slack и один из сопровождающих проекта Electron, посоветовал разработчикам включать собственный двоичный код Arm64 в сборки приложений. По его словам, хотя приложения x86_64 Electron будут работать под управлением Rosetta 2, «производительность будет значительно снижена».

Менеджер пакетов macOS Homebrew также еще не перешел на Apple Silicon из-за нерешенных проблем во многих пакетах, которые он обрабатывает. Около дюжины из них, включая Gradle, Maven и Jenkins, перечислены как ожидающие поддержки Apple Silicon в OpenJDK, который только что вышел.

Компилятор GCC еще не получил поддержки Apple Silicon, и это заставило некоторых утверждать, что всем, кто серьезно относится к научным вычислениям, следует избегать моделей Mac на основе M1, пока ситуация не улучшится.

Разработчики языка программирования R подтвердили, что он хорошо работает в режиме эмуляции, но пока недоступен для запуска на Apple Silicon, поскольку R зависит от наличия компилятора Fortran 90, совместимого с Apple Silicon. «Мы надеемся, что пригодный для использования компилятор Fortran 90 для Apple Silicon будет доступен относительно скоро, поскольку разрабатываемая версия GFortran, похоже, уже работает», — отметили Томас Калибера и Саймон Урбанек.

Аналогичная ситуация и с языком программирования Julia.

В ходе конференции WWDCэтим летом в Apple пообещали предоставить исправления в M1 примерно для 30 проектов с открытым исходным кодом.

Источник

Apple Silicon M1: взгляд разработчика

Обсуждение нового чипа Apple Silicon M1 повсюду. Я купил MacBook Air 16 ГБ M1, чтобы понять, насколько он жизнеспособен в качестве основной машины для разработки — вот предварительный отчет после недели тестирования.

Обсуждение нового чипа Apple Silicon M1 повсюду. Я купил MacBook Air 16 ГБ M1, чтобы понять, насколько он жизнеспособен в качестве основной машины для разработки — вот предварительный отчет после недели тестирования.

Xcode на Apple Silicon M1

Xcode на M1 работает БЫСТРО. Компиляция PSPDFKit PDF SDK (debug, arm64) может конкурировать с самыми быстрыми MacBook Pro на базе Intel, которые предлагает Apple на сегодняшний день — 8:49 мин против 7:31 мин. Для сравнения, мой Hackintosh билдит то же самое менее чем за 5 минут.

Трудно переоценить, насколько это впечатляет для машины без кулера. Последним экспериментом Apple с MacBook без него была 12-дюймовая версия 2017 года, в которой тот же проект собирался 41 минуту.

My M1 MacBook Pro arrived today. Chances are you have various questions, but I think a whole lot is summed up in this 50-second video. (Alt text, because Twitter still doesn’t make this easy: Xcode 12.3 beta unzips in 5 minutes on an M1, vs 13 minutes 22 seconds on an Intel i9) pic.twitter.com/STiivUXXnH

Наши тесты в основном прошли нормально, хотя я обнаружил ошибку, специфичную для arm64, которую мы пропустили раньше, так как мы не запускаем наши тесты на реальном оборудовании в ходе CI. Перенос симулятора на ту же архитектуру, что и у продающихся устройств, будет полезным и поможет найти больше ошибок.

Читайте также:  Обои для айфона se2

Тестировать iOS ниже 14 проблематично. Похоже, WebKit дает сбой в распределении памяти, выдавая EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0) (FB8920323). Производительность также кажется очень плохой: Xcode периодически зависает, и вся система становится настолько медленной, что курсор мыши дергается. Некоторые симуляторы создают проблемы даже с iOS 14, например iPad Air (4-го поколения), который все еще эмулирует Intel, поэтому постарайтесь избегать этого.

Мы были очень взволнованы переносом нашего CI на Mac Mini с чипом M1 и ожидаем, что MacStadium получит эти устройства, однако, похоже, нам придется ограничить тесты только iOS 14, чтобы это работало. В соответствии с нашим текущим графиком мы планируем отказаться от iOS 12 в третьем квартале 2021 года и от iOS 13 в третьем квартале 2022 года, так что пройдет некоторое время, пока мы сможем полностью перейти на Apple Silicon.

Есть шанс, что Apple исправит эти проблемы, однако на это не стоит рассчитывать — учитывая, что это затрагивает только старые версии iOS, проблема в какой-то момент просто «исчезнет».

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

Docker

Мы используем Docker для автоматизации нашего веб-сайта и загрузочных сред для наших веб и серверных PDF SDK. Docker опубликовал в блоге сообщение о текущем состоянии дел, признав, что в настоящее время система не работает, но они пытаются исправить это. Есть хитрые способы использовать Гипервизор Apple для запуска контейнера Docker вручную, однако для этого нужны контейнеры на основе ARM.

Я ожидаю решения в первом квартале 2021 года, в котором будут работать контейнеры на базе ARM. Нам нужно будет немного поработать, чтобы добавить поддержку arm (что-то уже есть в дорожной карте), так что это только проблема перехода.

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

Чтобы тестировать наш Windows PDF SDK, большинство наших разработчиков использует виртуальную машину VMware с Windows 10 и Visual Studio. В настоящее время ни одно из решений виртуализации Mac не поддерживает Apple Silicon, однако и VMware, и Parallels работают над этим. Я не ожидаю, что Virtualbox будет обновлен в ближайшее время.

Я ожидаю, что в конечном итоге мы сможем запускать Windows с набором коммерческих инструментов на базе ARM. Уже существуют различные proof-of-concepts, и производительность кажется многообещающей. Microsoft в настоящее время не продает Windows на базе ARM, поэтому будет интересно получить лицензию.

ARM-Windows может эмулировать приложения x86, а Microsoft работает над эмуляцией x64, которая уже внедряется в сборках Insider. Через несколько месяцев появится возможность разработать и протестировать наш Windows SDK с Visual Studio на M1 с приемлемой производительностью.

Запуск более старых версий macOS может быть более проблематичным. В настоящее время мы поддерживаем macOS 10.14 с нашим AppKit PDF SDK и macOS 10.15 с Catalyst PDF SDK, обе версии ОС требуют тестирования. Еще неизвестно, включат ли VMWare или Parallels полный уровень эмуляции x64. Скорее всего, это будет очень медленно, поэтому я бы не стал на это рассчитывать.

Кроме того, 16 ГБ ОЗУ — это мало. При запуске параллельных тестов машина начинает сильно свапить, и производительность действительно падает. Это будет еще более проблематично при запущенных виртуальных машинах. В будущем у Mac-ов будет вариант с 32 ГБ, что поможет решить эту проблему.

Android Studio на Apple Silicon M1

IntelliJ работает над портированием JetBrains Runtime на Apple Silicon. В настоящее время приложения работают через Rosetta 2, однако сборка через Gradle происходит очень медленно. Gradle создает код в рантайме, что кажется особенно плохим сочетанием с логикой опережающей трансляции Rosetta 2.

Я ожидаю, что большинство проблем будет решено к первому кварталу 2021 года, однако, вероятно, пройдет еще больше времени, пока все версии Java не заработают на ARM. Много усилий было вложено в развертывание циклов и векторизацию, и пока еще не все доступно на ARM.

Homebrew

Homebrew в настоящее время работает через Rosetta 2. Просто добавьте перед всем префикс arch -x86_64, и все будет работать. Можно установить дополнительную (основанную на arm) версию Homebrew в /opt/homebrew и смешать установки, поскольку все больше и больше программного обеспечения добавляет поддержку ARM.

В настоящее время это не проблема (производительность хорошая), и со временем это будет просто работать нативно.

Приложения

Большинство приложений просто работают, Rosetta еле заметна. Более крупные приложения в начале заметно снижают производительность (например, Microsoft Word нужно около 20 секунд на трансляцию), но затем двоичные файлы кэшируются и последующие запуски выполняются быстро.

Иногда бывает, что приложение не может быть транслировано и падает при запуске (например, Beamer или клиент Google Drive), но это случается редко. Некоторые приложения не понимают своего места на диске и просят переместить их в каталог Applications, хотя на самом деле это просто переведенный двоичный файл, который выполняется где-то еще. Большинство этих запросов можно игнорировать. Некоторые приложения (например, Visual Studio Code) блокируют автоматическое обновление, поскольку местоположение транслируемого приложения доступно только для чтения. Однако в случае VS Code сборка Insider уже обновлена ​​для ARM и нормально работает.

Приложения на основе Electron работают медленно, если работают на Rosetta. Похоже, что оптимизированный компилятор JavaScript V8 блокирует ahead-of-time трансляцию. Последняя стабильная версия Electron (версия 11) уже полностью поддерживает Apple Silicon, и такие компании, как Slack, уже обновили свои бета-версии для работы в нативном режиме.

Google только что выпустил Chrome, который работает на ARM, однако между ним и Apple Safari, который просто летает на Apple Silicon, все еще существует значительный разрыв в производительности.

Вывод

Новые MacBook M1 быстрые, красивые, тихие, и хайп полностью оправдан. В области программного обеспечения еще многое предстоит сделать, чтобы наверстать упущенное, и ошибки, связанные с более старыми симуляторами iOS, доставляют больше всего проблем.

Читайте также:  Где у айфона локальное хранилище

Все это можно исправить в самом ПО, и вся отрасль в настоящее время работает над улучшением этого опыта, поэтому к следующему году, когда Apple обновит 16-дюймовый MacBook Pro и выпустит следующее поколение своей линейки чипов M, можно будет использовать Mac M в качестве основной машины разработчика.

В настоящее время Apple Silicon M1 будет моим вторым ноутбуком в путешествиях, и я продолжу работать с 16-дюймовым MacBook Pro с частотой 2.4 ГГц и 32 ГБ оперативной памяти, который сейчас является более быстрой машиной. Мне будет намного труднее принять шум постоянно работающих кулеров теперь, когда я знаю, какая тишина скоро станет возможной.

Источник

UTM: Run Virtual Machines on Your Apple Silicon M1 Mac (Updated)

Your shiny and speedy new Apple Silicon Mac is missing something – the ability to run virtual machines. While you might be spending most of your time in macOS 11 Big Sur, your job might require you to use Windows-only apps, Perhaps you need a Linux VM for development work. UTM (which I believe stands for Universal Turing Machine) is an open source virtual machine environment.

UPDATE (July 9, 2021): Parallels Desktop now runs on Apple Silicon, a solution that was not available in March of 2021 when this article was first published. VMWare has pledged an Apple Silicon version of Fusion, but it won’t support Windows virtual machines! There’s still no word on whether the free VirtualBox VM environment will ever be updated to run on Apple Silicon.

That’s why I was happy to see that there is a VM environment that works on M1 Macs – UTM. It’s free to download or $9.99 on the Mac App Store. UTM also works on “the other Apple Silicon”, with versions of both iOS and iPadOS. If you’ve ever had a burning desire to run Windows on an iPhone or iPad, UTM does the job. However, your devices must be running iOS 11 – 13; iOS 14 requires a jailbreak. Let’s see an example of how UTM works on M1 Macs.

Download UTM

It’s quite simple to download UTM for Mac. To download the app you go directly to the app download page and either click the Download button or click the  Mac App Store button to pay $9.99 for the app.

Why would you want to pay $9.99 when the app is free? Because you’ll get automatic updates just like any other Mac app downloaded from the Mac App Store. Your purchase also funds the future development of UTM. I would suggest downloading and using UTM for Mac for free; if you end up using it regularly for work or pleasure, purchase it.

Install UTM

If you purchased UTM from the Mac App Store, installation is done for you. If you download the app directly, a disk image file named UTM.dmg appears in your download folder. Open it to mount the disk image. Press the Command Key, then drag the UTM application icon from the disk image to the Applications folder.

Launch UTM

That was easy, wasn’t it? Now launch UTM, and a screen similar to this appears:

You’ll notice that this startup screen has four buttons: Create a New Virtual Machine, Browse UTM Gallery, User Guide and Support. Clicking the User Guide button launches a web page in your default browser displaying a succinct user guide.

Probably the most useful button for new UTM users is Browse UTM Gallery. Click this to display a web page with links to download pages for a number of virtual machines (screenshot above). At this time, ARM native VMs are available for:

  • ArchLinux
  • Debian 10.4 (Custom i3, LDXE, Minimal or Xfce)
  • ReactOS 0.4.14
  • Ubuntu 20.04
  • Windows 10 (requires free membership in the Windows Insider Program)

Creating a Windows 10 Virtual Machine with UTM

As an example, I’ll be creating a Windows 10 virtual machine. Click Windows 10 in the Gallery to display a web page showing requirements. Those consist of an Apple Silicon Mac, UTM for Mac, Windows for ARM, and SPICE Guest Tools. Links to the software components appear in the Gallery. Download each file to your Mac prior to starting the installation.

The Windows link downloads a VHDX (Hyper-V Virtual Hard Disk) with the installer. SPICE Guest Tools are a collection of utilities and drivers to aid running Windows on Apple Silicon.

UPDATE: In a previous version of this article, UTM booted from the VHDX file to install Windows. There’s a new critical step — that file must be converted to QCOW2 format. Here’s what the UTM team had to say about the conversion (from https://mac.getutm.app/gallery/windows-10-arm):

Due to an issue with QEMU handling of VHDX images, sometimes Windows will be corrupted from normal usage. This would result in BSOD or random application crashes/errors. To work around this issue, it is recommended that you convert the VHDX image to a QCOW2 image. Currently, UTM does not provide this functionality in the UI so you have to do it directly from QEMU.

  1. Install Homebrew if you do not have it already.
  2. Run brew install qemu
  3. Run qemu-img convert -p -O qcow2 /path/to/Windows10_InsiderPreview_Client_ARM64_en-us_21286.VHDX /path/to/output/Windows10_InsiderPreview_Client_ARM64_en-us_21286.qcow2 replacing the paths with your own.
  4. Use the QCOW2 image with UTM. It is recommended you do this with a fresh VHDX from Microsoft in case your image was already corrupted.

Now comes the fun part! With UTM open on your M1 Mac, click the Create a New Virtual Machine button. I gave the VM the name “Windows 10”, added a note that this is “Windows 10 on Apple Silicon”, and added an optional operating system icon (see image below).

Next, click the System tab. Here, select ARM64 (aarch64) as the architecture, and select at least half of your system’s memory for the virtual machine. For an M1 Mac, that can be as much as 8GB (8192MB).

Читайте также:  Фотки кот с айфоном

UPDATE: Note that you should use QEMU 6.0 ARM Virtual Machine (alias of virt-6.0) (virtual) rather than the 5.2 version shown below.

Connecting the Windows Drive

UPDATE: Now click the Drives tab. Click the Import Drive button, then navigate to the Windows 10 QCOW2 file you downloaded earlier. Open it, then select NVMe as the Interface to the drive (important – many people neglect this important step, resulting in boot errors!)

We need to add one more drive – a virtual CD/DVD drive to read ISO image files. Click New Drive, then add a removable drive with a USB interface (image below):

Click “Create”. The Windows Disk Image and the virtual USB CD/DVD Drive appear on the Drives tab. Click Save.

Add the SPICE Guest Tools ISO as a CD/DVD

You now see the Windows 10 virtual machine in the left sidebar of UTM. Click it, and on the right side of the screen, you’ll see the information. CD/DVD appears as “empty” – click on it and select Browse. Now find the SPICE Guest Tools ISO file that was downloaded earlier, select it, and Open it to make it available to the virtual machine (image below).

Install Windows

Ready to rock and roll? Click that big button in the middle of the virtual machine window (the “play” triangle in the black circle).

Sit back and watch as the Windows installer goes through its processes. You’ll be asked to select your region – in my case, the United States was selected, so I clicked Yes to continue. Note that you might not actually see the cursor on the Windows installer – if that’s the case, click the cursor button in the toolbar to make the cursor visible. You can also hold down the control and option keys to make the cursor visible in Windows.

Next, Windows wants to know if your keyboard layout is correct. Mine was listed as US, so I clicked Yes. You’ll be asked if you wish to add a second keyboard layout. I chose to skip this step.

Windows also wants you to connect to the Internet…yet there is no way at this point to actually select a Wi-Fi network. Click the “I don’t have Internet” link and continue the installation. Within a minute or so, the usual Windows 10 desktop appears:

Run the SPICE Guest Tools installer application

To load drivers and actually be able to do some useful things with the Windows 10 virtual machine, click on the File Explorer button (the file folder icon in the bottom toolbar – see below). Click the CD Drive (D:), and then double click on the spice-guest-tools-0.164 (version number might be different) application. Allow the application to write to your “Windows machine” and let it complete the installation of drivers.

This installs drivers you need for an Internet connection…although Windows may still tell you there’s no connection.

Sharing Files with your Mac

I’m not going to show you how to do everything with Windows, as where’s the fun in that? 😀 But there is one good thing to know, and that’s how to share files with your Mac (the “host” machine).

Shut down your Windows virtual machine, then with UTM running and the Windows VM selected, click on the Sharing tab. Click Enable Directory Sharing, then click Save.

You’ll see Shared Directory listed now under the idle virtual machine. Click it to browse for a Mac directory (folder) you wish to share with the Windows VM. At this point, you can launch the virtual machine again.

How Well Does UTM Work?

There are some little quirks you’ll run into using UTM and Windows. For example, it seemed like the cursor liked to disappear. That was usually resolved by using the control-option key combo to make it visible. I also noticed that after shutting down the Windows VM using the Windows “Shut Down” command, I’d lose the cursor completely. The only way I found to resolve that was to use Command ( ⌘ )-Option-Esc and Force Quit UTM.

Compared to most Windows virtual machines I’ve used, UTM and the ARM64 version of Windows seemed lightning fast. The UTM developers do mention that the app doesn’t do GPU emulation, so it’s probably not wise to try to play graphics-intensive games.

UPDATE: Fast scrolling of any window in the virtual machine also produces a somewhat pixellated image. This is normal.

Ubuntu Server for ARM

As a second experiment, I installed Ubuntu Server for ARM from the UTM Gallery. If you have followed the Ubuntu Server on Mac mini series, you’ll know that it was a rather convoluted and time-consuming process to get it running. Not so with UTM and the instructions on how to install Ubuntu Server for ARM.

I installed the server quickly following the directions, then install Ubuntu Desktop as well to give the virtual machine a friendly non-command-line interface. In less than 15 minutes, everything was up and running:

To be honest, the Ubuntu virtual machine installation went much smoother than the Windows installation, primarily because Ubuntu Linux “knew” immediately how to resize the VM screen to fit the MacBook Air at its highest resolution. The Mac mini server was no slouch in terms of speed, but the virtual machine on Apple Silicon is insanely fast.

Anyone with an Apple Silicon machine – the M1 MacBook Air, MacBook Pro, or Mac mini who has a need to run another operating system needs to take a look at UTM (especially since Virtualbox is not yet an option). It’s not perfect and can be a little finicky during setup, but with a little patience, you can be running Windows 10, Linux, or other operating systems at full speed.

Источник

Оцените статью