QEMU で PureDarwin 環境を作ってみる

MacOS の根幹である Darwin の、オープンソース版である PureDarwin というモノを触ってみる。この前試した FreeBSD みたいな感じで簡単に導入できるかと思ったら上手く行かなくて、QEMU という別のエミュレータを試してみた。

VirtualBox では起動できず

PureDarwin の VMDK ファイルを以下からダウンロードする。

Windows 10 上の VirtualBox で VMDK ファイルを基に仮想ディスクを作り、それを利用する形で仮想マシンを立ててみた。

起動してみると、次のようなエラーが出た。

VirtualBox では PureDarwin を起動できず

No kexts.plist replacement found.
Booting on macOS 10.13.3 (17D47)

(中略)

Mach-0 (i386) file has bad magic number
Decoding kernel failed.

なんか CPU が合わない雰囲気のエラーメッセージだが、どうしたらいいか分からず。

QEMU を使ってみる

PureDarwin の GitHub README には、QEMU という別のエミュレータを使った起動コマンドが書かれていたので、QEMU とやらを試してみる。

コチラによると Windows では pacman でインストールできるっぽいので、Git SDK の pacman コマンドでインストールを試みたが上手くインストールできず断念。素直に MSYS2 を使えば行けると思うけど、面倒臭がってやらなかった。w

MacOS だと Homebrew でインストールできるようなので、Mac で試してみた。

$ brew install qemu

$ qemu-system-x86_64 --version
QEMU emulator version 8.2.1
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers

# 以下で VMDK ファイルを指定して PureDarwin を起動する
$ qemu-system-x86_64 -m 8192 -cpu Penryn -smp 2 -netdev user,id=network0 -device rtl8139,netdev=network0 -serial stdio -drive format=vmdk,file=pd_17_4.vmdk

起動させてみるとこんな感じでウィンドウが開いた。

PureDarwin 起動中

可愛らしい起動ロゴも一瞬見えた。

PureDarwin 起動ロゴ

ターミナルが起動した。$ uname -a で確認してみると、確かに PureDarwin v17.4 が起動していた。

PureDarwin 起動

起動してみれば MacOS のターミナルと大して変わらないので、特別な感動はなく。w