30日でできる!OS自作入門の環境構築をする
環境
macOS 10.15.2
virtualboxで Ubuntu Desktop 18.04.3 LTSを動かす
Windows 10の場合
マウントして中のファイルを取り出す
https://gyazo.com/298b67d231c72aae2cc679070722b2ac
tolset_hにprojects/XX_day/helloosXXを入れて実行すればいい(本文と同じ)
macOSの場合
追記:Catalina以降では2020/02/10現在動かすことができません
macOS Catalina 以降では、32 ビットの App は macOS との互換性がなくなります。
有志作成のバイナリは32bitなので、つかえません!
過去にmacOSでやった人の記事を見ると、Catalina以前
macOS Mojave 10.14
Lion 10.7.4
code:macOS 10.15.2
z_tools_osx $ ./nask
zsh: bad CPU type in executable: ./nask
トラブル
Ubuntu(on VM)の場合
追記:最初Ubuntuでやろうとしたが、VM使うと電池の減りが早すぎる&シェルが(カスタマイズしたものと比べて当然)使いづらいのでmacOSに移行した
追記2:Catalinaではできなかったのでまた戻ってきた
追記3:VirtualBox上のLinuxではりぼてOSを動かしてみたらマウスカーソルの入力がハンドリングされずにVMにカーソルがいかなくなってしまった(なぜ?)
Ubuntuの準備
コピペの設定をする
HariboteOSの関連ファイルをUbuntuにコピー
VirtualBox > Machine
ダウンロードしたファイルを読み込む
https://gyazo.com/4400c20de9a1655991067d5ce41da457
projectsをDesktopとかにコピーしておく
tolset(の改良版)の準備
tolsetとは本書で著者が作成した便利なtool setのこと
2006年の本でgccが古い(執筆が2006年)
main関数の宣言が仕様と異なる
三項演算子を代入式の左辺に使用している部分があった
__builtin_stdarg_startがリンクできない(昔のgccの仕様)
一部のプログラムは32bit向けにコンパイルされることが前提となっていた
上の記事の著者hikaliumさんがこれらを解決したツールセットを配布しているのでそれを利用する MacでcompileできるようにしたAkkie/tolsetをベースに
compile errorを潰して
win/mac/linuxのコマンド際を吸収するharitolを作成している
前提知識
hariboteOSのproject(読者は基本的にこれをコピペしたりして学習していく)の構造は次のようになっている
code:project
01_day
helloos0
!cons_9x.bat
!cons_nt.bat
helloos.img
install.bat
run.bat
TRANS.TBL
helloos1
helloos2
02_day
helloos3
helloos4
helloos5
...
Makefileが出るのはhelloos5から
使い方
「書き換え済みharib27f」と、各環境にあわせた「z_tools」をダウンロードして、z_toolsはz_toolsに名前を変更すれば、あとはharib27f/に移動し、make runするだけです!簡単でしょ?
haribote_os/harib27f
code:HariboteOS_ROM_DIR
tolset
z_tools
Ubuntu環境下でこのコマンドを実行すればよい
code:/vagrant/haribote_os/harib27f(shared folder)
$ sudo apt update
$ apt install make
code:/vagrant/haribote_os/harib27f
$ sudo make full