Edited at

「30日でできる! OS自作入門」をMac向けに環境構築する


tl;dr

https://github.com/tatsumack/30nichideosjisaku のREADMEを読んで環境構築する


背景

「30日でできる! OS自作入門」はWindowsでの開発が前提で書かれているが、先人たちのおかげでMacでも環境構築ができる。

https://github.com/sandai/30nichideosjisaku

がしかし、14日目の「高解像度にしよう(1)」のharib11dを動かしたところ、画面が真っ暗になり、小一時間ハマった。

同様の症状が出ていた記事(http://lv4.hateblo.jp/entry/2012/06/17/165640) を発見したが、同じようにVRAMの番地を変更してもダメ。

エミュレータのバグを疑って、Q.appではなく、homebrewからqemuをインストールして動かしたところ、表示されるようになった。

後に続く人たちが同じハマり方をしないように、オリジナルのレポジトリからforkして、qemuを使うようにMakefileを変更した。

https://github.com/tatsumack/30nichideosjisaku/blob/master/z_tools/qemu/Makefile

El Capitan 10.11.2では動くことを確認したが、Sierraではまだ確認できていないので気が向いたら確認する。


追記 (2018/03/22)

macOS Sierra(10.12.5)、qemu(2.5.0)で動かしたところ、harib11dで真っ黒画面になっていた。

asmhead.nasで指定しているVRAMのアドレスを0xfd000000に変更したところ表示されるようになった。


asmhead.nas

MOV    DWORD [VRAM],0xfd000000



追記 (2019/01/19)

qemu 3.1.0で-localtimeオプションが廃止されたので、qemuに渡すオプションを修正。

また、必要なツール群をレポジトリに抱き込むようにして、レポジトリをcloneすればだいたい動くようにした。


参考

http://qiita.com/chojuku/items/fea8adbb63410590e123

http://d.hatena.ne.jp/sandai/20120728/p2