For years Intel and AMD’s x86 architecture has ruled the desktop, while ARM dominated mobile platforms. Now ARM is making inroads onto the desktop. There are multiple versions of the M1, and the 2nd generation M2 is now available. With a shared CPU architecture, iOS and iPad apps can run on macOS, improving the simulator for app development. Most recently, the ARM architecture came full circle with the desktop M1 processor powering the iPad Airs.
In this webinar, learn the latest about Apple’s ARM silicon. See Delphi 11.2 deploying to macOS ARM and the updated iOS Simulator. Also, learn the ins and outs of running Windows and Linux in a Virtual Machine on Apple Silicon.
Table of Contents
Slides
Replay
Overview
The development of Apple Silicon has made running an emulator or a virtual machine on MacOS challenging. In general, MacOS supports two architectures:
- x64, or x86_64, which is the architecture of 64-bit Intel CPUs. All the Intel-powered Macs shipped from 2005 to 2020 followed this architecture.
- arm64 is the architecture followed by Macs powered by Apple Silicon. Every Mac shipped from late 2020 up till now follows the arm64 architecture.
All new Apple computers are build using Apple’s silicon series—M1, M1 Pro, M1 Max, M1 Ultra, and M2—built using the ARM architecture.
To help you get started in this regard, we have crafted this guide. Here, we cover virtualization frameworks you will have if you want to run Windows, Linux, etc., on macOS powered by Apple silicon. This guide will cover the following topics:
Table of Contents
Introduction to ARM
ARM Holdings Inc. designs system-on-chips (SoCs), software, and processors. Founded as Advanced RISC Machines in 1990, ARM has built its processors on RISC (Reduced Instruction Set Computer).
ARM is among the most widely licensed processors worldwide. These processors are designed for low cost, low power, embedded and portable devices—smartphones, wireless communications technologies, networking modules, etc.
ARM processors are built on a load-and-store type architecture. According to this architecture, data processing is executed only on the data present in the registers and not directly on the memory contents. As a result, these processors follow data processing instructions that differ from those used for accessing the memory.
ARM’s instruction set is fixed in length and follows uniformity. Every 32-bit ARM processor will have two instruction sets—a 16-bit thumb instruction set and a generic 32-bit ARM instruction set. Additionally, ARM supports 64-bit instruction sets too. Moreover, ARM processors support different stages of pipelines to accelerate the instructional flow.
Comparing ARM with x86
Many computing devices have either an Intel processor or an ARM processor. Both of these chip architectures are well-optimized for consuming low power. However, when we view things from a technical standpoint, the ARM architecture is engineered to minimize energy waste—on the contrary, Intel’s processors have a complicated design that helps in interoperability.
The computers designed around AMD and Intel are different from the ones built on ARM architecture. Many differences set the ARM architecture apart from Intel (x86). Unlike a conventional x86-driven computer, ARM chips are application-specific. Here is a list of differences that separate ARM processors from x86 processors.
ARM | x86 |
Targets energy-efficiency | Drives performance |
Based on the RISC architecture paradigm | Built on the CISC (Complex Instruction Set Computing) architecture paradigm |
Executes one instruction per cycle | Performs multiple complex instructions at one time and requires more than one cycle |
Code expansion management is challenging | Manages code expansion easily |
Requires fewer registers but more memory | Requires less memory but more registers |
Instruction pipelining is a unique feature | Pipelining is less often |
Accelerates the pace of execution | The execution turnaround is high |
Adheres to a software approach to optimize performance | Follows a hardware approach to fine-tune performance |
Instruction execution is fast | The time to execute is low |
Complex addressing is solely managed by software | Built-in capabilities to handle complex addresses |
Operations management is done with the help of a compiler only | A microprogram plays the role of a compiler |
Instruction decoding is handled seamlessly | Managing instruction decoding is a challenge |
Calculations are performed with the help of the available memory | Supplementary memory is required to perform calculations |
Only one complex instruction is executed at one time | Its architecture is robust enough to handle complex statement executions at one time |
Meet Apple’s ARM Silicon Family
Apple Inc. uses the ARM architecture to build its silicon, which is available as a system in a package or an system on chip (SoC). This silicon family powers the latest Mac computers and Apple devices—iPhone, iPad, Apple TV, Apple Watch, AirTag, etc.
Apple M1
This is Apple’s first SoC, which is fabricated using a 5 nm process. Rolled out on November 10, 2020, the M1 was used in MacBook Air, Mac mini, MacBook Pro, iMac, iPad, etc. With 16 billion transistors, the chip houses four efficiency cores and four performance cores and packs up to a whopping eight GPU cores.
Apple M1 Pro
Launched on October 18, 2021, M1 Pro is an exceptional performance powerhouse found in 16- and 14-inch MacBook Pro. The chip comes with two efficiency cores, up to eight performance cores, and up to 16 GPU cores. The chip packs 16 Neural Engine cores, a 32 GB unified RAM with almost 200 GB/sec. memory bandwidth, and over 32 billion transistors.
Apple M1 Max
The M1 Max is a bigger version of the M1 Pro. This chip has two efficiency cores, eight performance cores, up to 32 GPU cores, 16 Neural Engine cores, and up to 64 GB unified RAM with nearly 400 GB/sec. memory bandwidth. Announced on October 18, 2021, the M1 Max comes with Mac Studio and both 16- and 14-inch MacBook Pro.
Apple M1 Ultra
Rolled out on March 8, 2022, an M1 Ultra chip is made from fusing two M1 Max chips. Being an optional upgrade for the Mac Studio, the chip packs enormous 114 billion transistors, four efficiency cores, four performance cores, 32 Neural Engine cores, and up to 64 GPU cores. The SoC can be configured with 128 GB unified RAM that comes with a solid 800 GB/sec. memory bandwidth.
Apple M2
Rolled out on June 6, 2022, the M2 chip came with the new MacBook Air and the all-new 13-inch MacBook Pro. As a successor of Apple M1, the M2 chip is based on improved 5-nm technology. The chip houses over 20 billion transistors and can be included with up to 24 GB of RAM and 2TB of storage. The M2 chip has four efficiency cores and four performance cores and includes up to 10 GPU cores. Moreover, the M2 even includes a higher memory bandwidth of nearly 100 GB/sec.
Moore’s Law
Moore’s law—named after Intel’s cofounder, Gordon Moore—states that the number of transistors present in a chip increases after a space of 18 months. And, no doubt, with the fabrication of mammoth chips, including M1 Ultra, Apple is putting Moore’s Law to use effectively.
Steps to Run iOS Apps on macOS
Working on your smartphone or iPad means you may have to transfer workflows to your MacBook or other Apple computers running on macOS. Earlier, if Apple users wanted to run an iOS app on their Apple computer, they would have to resort to emulators, third-party applications, and other non-official methods.
But if you own an Apple silicon computer running on the M1 chip and have Big Sur iOS, you will run your iPhone or iPad apps seamlessly. Follow these steps to download iOS Apps on your new Mac powered by Apple’s homegrown SoC.
- Step 1: Launch the App Store on your Mac machine.
- Step 2: Key in the name of the app in the search field.
- Step 3: Select the app you want to download from the search results.
- Step 4: Click on the Get button positioned next to the app you wish to download.
- Step 5: Download the app and use it on your Mac.
The New ARM–Based iOS Simulator
You will use an iOS simulator to interact with apps on multiple devices. An iOS simulator also helps you use a pointer and keyboard, prototype and debug apps, optimize graphics, and test apps. With the presence of Apple silicon, developers have to build ARM–based iOS simulators.
Previously, simulators ran x86 compiled apps. However, the new simulators are designed to run ARM–compiled apps. The new ARM–based iOS simulators that are designed to run on ARM MacOS are supported by Delphi 11.2.
This new breed of iOS simulators can have extended testing capabilities when compared with their predecessors. Here is a list of targeted platforms—Windows, Android, and iOS—the new iOS simulators will support.
Comparing Virtualization Stacks for the Machines Powered by Apple Silicon
Most computer users face a scenario where they will need to run different operating systems on their respective machines powered by Apple silicon. This situation will want users to run alternative operating systems on their machines. Enter virtualization stacks. The following table compares the most popular virtualization stacks.
Installing and Using Windows 11 on Apple ARM
Microsoft has an ARM version of Windows, but running it on Apple ARM is not officially supported. The ARM Windows includes compatibility for 32-bit and 64-bit x86 binaries. Windows programs that explicitly check the CPU architecture may face some issues when running on a virtual machine (VM).
The easiest way to run ARM Windows on Apple ARM is with Parallels VM.
Installing and Running 64-Bit Linux x86 with UTM
There may be times when you will have to install an operating system with a different architecture than the host machine. In that case, you will need emulation. When it comes to emulation, UTM is a go-to option as it supports not only emulation but also virtualization. UTM uses Qemu to provide emulation. Here are some steps to follow for installing and running 64-bit Linux x86 with UTM.
- Step 1: Install UTM from mac.getutm.app
- Step 2: Download the ISO of 64-bit x86 Linux.
- Step 3: Once you arrive on the UTM welcome screen, select “Create New Virtual Machine”.
- Step 4: You will then have to choose between two options—Emulate or Virtualize. As x86 ISO will not match the ARM hardware, you must choose “Emulate”.
- Step 5: You will go to a page where you will have to choose the operating systems—Windows, Linux, or any other custom system. As we are demoing the process of installing and running Linux x86, we will click on “Linux”.
- Step 6: You will now have to select the ISO you downloaded during the second step and click “Continue”.
- Step 7: After this step, you will need to choose your hardware. You have to choose more than two CPU Cores. As an option, you may even enable OpenGL hardware acceleration and change the RAM—4GB is the default you will get. Once that is done, click on “Continue”.
- Step 8: You will then come to the Storage page, where you will have to specify the drive’s size where the data will be stored. By default, the storage space’s value is 64GB. Remember that the storage is allocated dynamically, so this storage value is capped at the limit. When you finalize the size of the drive, click “Continue”.
- Step 9: You will then land on the Shared Directory page, where you may specify a directory path between the host machine and the VM. Once that is done, click on “Continue”.
- Step 10: Afterward, you will land on the Summary page. Here, you will have to name your VM and check the box “Open VM Settings”.
- Step 11: Then you will have to click “System” from the vertical menu and enable “Force Multiplier”.
- Step 12: Click on “QEMU” from the same vertical menu and check the box in front of “Balloon Device”. That way, you will let the VM memory allocate dynamically.
- Step 13: From the vertical menu, click on the “Display” option to toggle the GPU support on or off. The On value is “Virtigo-vga-gl (GPU Supported)”—and the Off value is “Virtigo-vga”.
- Step 14: Select the “Network” option from the vertical menu. The Network Mode will always default to “Shared”, which is the host only. This option will work fine if local VMs are used. However, change the Network Mode to Bridged (Advanced) if the VM needs to be accessed from a local network.
Post-Installation Steps for Ubuntu/Debian Linux
Once you have installed Ubuntu/Debian Linux operating system on your Apple ARM machine, follow the steps mentioned below. Find more information in UTM’s documentation.
- Step 1: Optionally upgrade from Server to Desktop
sudo apt update
sudo apt install ubuntu-desktop
sudo reboot
- Step 2: Enable clipboard and directory sharing
sudo apt update
sudo apt install spice-vdagent spice-webdavd -y
- Step 3: Setup for Delphi via embt.co/Ubuntu4Delphi22
sudo apt install curl
curl -L https://embt.co/SetupUbuntu4Delphi22 | bash
Connecting from Delphi
You will need a connection profile to deploy and execute a project on a remote workstation. To do that, you will have to follow the steps written below.
- Step 1: Run PA Server in Linux
- Step 2: Use the
I
command to get the IP address - Step 3: Provide the IP Address in SDK Manager
Conclusion
After reading this guide, you have the knowledge of ARM architecture and how it differs from the family of x86 architectures. Besides, you now know the power of Apple’s line of SoCs and how to run iOS apps on macOS. This guide has also helped you understand ARM–based iOS simulators and how different virtualization machines for Apple silicon stack up against each other. Last, you even have a step-by-step guide to installing and running 64-bit Linux x86 with UTM and installing and using Windows 11 on Apple ARM.