以前、↑こちらの記事を書きました。
この中で、WSL2上のUbuntuにmacOS仮想マシンを建てる方法を紹介していますが、その方法よりもっと簡単な方法がありましたので、今回は、Ubuntuに特化して「macOS 仮想マシンを建てる」方法を紹介します。
Quickemu
『Quickemu は、仮想マシンを作成するときに自動的に「適切な処理」を実行する優れた QEMU のラッパーです。』(Google翻訳)
macOS の仮想マシンを作成するのに、たった2つのコマンドを実行するだけです。
#macOSのインストールイメージを作成
quickget macos sonoma
#QEMUを使ってmacOSの仮想マシンを起動
quickemu --vm macos-sonoma.conf
しかし、それらのコマンド自体のインストールが必要です。ですが、それも簡単で、次のコマンドを順に実行するだけです。
sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install -y quickemu
mkdir macosvm
cd macosvm
quickget macos sonoma
quickemu --vm macos-sonoma.conf
macOS Sonoma を指定して仮想マシンを作成しましたが、起動してみたところ、最新の Sequoia でした。OSをアップデートする手間が省けた。
今回使用した Ubuntu PC
Geekbench6.3.0 CPU Benchmark で測定した Single core / Multi core スコア
Host / VM | OS | Geekbench | spec (cpu / memory) |
---|---|---|---|
Host | Ubuntu 24.04.1 | 2735 / 17227 | 16core / 64GB |
quickemu | macOS Sequoia 15.2 | 2295 / 13361 | 8core / 32GB (Hostの半分を割当) |
MacBook Pro 2019 の Geekbench Single / Multi スコアが 1328 / 4716 でしたので、仮想macの方が高速です。
唯一の欠点は、スクリーン(ディスプレイ)サイズ を大きくしたときに、表示がおかしくなることです。VRAMのサイズが反映されないことが原因か?
Swiftの実行速度も比較してみた
1から1000までの階乗を出力するプログラムで、1000! は 2568桁となります。
@inlinable func measureTimeSeconds(block: (() -> Void)) -> Double {
let startTime = Date()
block()
return -startTime.timeIntervalSinceNow
}
let period = measureTimeSeconds {
var factorial = BigInt.zero
for n in 1 ... 1000 {
if n == 1 { factorial = .one }
else { factorial *= BigInt(n) }
print("\(n)!", factorial())
}
}
print(period)
BigInt
は、↓ こちらの記事を参照してください。
PC | Swift version | 実行結果(秒) | Spec |
---|---|---|---|
macOS Sequoia on Ubuntu | 6.0.3 | 0.339 | (8core / 32GB memory) |
Ubuntu 24.04.1 | 6.0.3 | 0.167 | AMD Ryzen 9 7945HX 16core / 64GB Memory |
MacBook Pro 2019 Sequoia 15.2 |
6.0.3 | 0.701 | Intel Core i5 2.4GHz 4core / 8GB memory |
M1 Mac mini 2020 Sonoma 14.7.2 |
5.10 | 0.803 | Apple M1 8core / 16GB memory |
M1 Mac mini 2020 が一番遅いとは意外でした。
M1 Mac mini 2020 の Geekbench Single / Multi スコアが 2389 / 8660 でしたので、MacBook Pro 2019 より高性能な はずなんですが・・・。
M4 Mac mini で同じコードを実行したら、どの程度の性能なのか知りたいな・・・
Quickemu による macOS 導入の動画(オランダ語?)
以上