LaranjaOS を実行してみた

os

ゼロからのOS自作入門は、C++ で書かれていますす。

これを Rust で描き直そうとしている猛者が現れました。

ゼロからのOS自作入門 Rustで5章までやった記録 – 2021-04-18
https://skoji.jp/blog/2021/04/mikan-laranja-os.html

ゼロからのOS自作入門 – 2021/3/22

これを macOS Monterey Apple Silicon 上の QEMU で実行できたのでその手順を示します。

ソースコードは以下から取得できます。

skoji/laranja-os
https://github.com/skoji/laranja-os

以下を参考にして Rust をインストールします。

Rust 1.56 (2021 edition) リリース
https://nomad.office-aship.info/rust-1-56

以下をインストールします。

QEMU

% brew install qemu

llvm

Xcodeに付属の apple製 clang ではなく、純正の clang を使う必要があります。

% brew install llvm

Clangのインストール
https://students-tech.blog/post/install-clang.html

パスを通す1

% echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc

パスを通す2
~/.zprofileに次のコードを追加する。
そうすると、使用するときだけ新しいClangが使えるようになる。

function llvm (){
    export PATH="/usr/local/opt/llvm/bin:$PATH"
    export LDFLAGS="-L/usr/local/opt/llvm/lib"
    export CPPFLAGS="-I/usr/local/opt/llvm/include"
    unset -f llvm
}

一度ターミナルを閉じて、新しいターミナルウインドウを開く。

通常の clang (Appleバージョン)のバージョン確認

% clang -v
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

llvm コマンドを実行後は、オリジナルの clang が使用される

$ llvm
$ clang -v
Homebrew clang version 13.0.0
Target: arm64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /opt/homebrew/opt/llvm/bin

rust-src

% rustup component add rust-src --toolchain nightly-aarch64-apple-darwin

dosfstools

dosfstools は Mac で mkfs を使えるようにするためのソフトです。

% brew install dosfstools
Installed: /opt/homebrew/Cellar/dosfstools/4.2

laganda-os/make-image.sh の

 if [ "`uname`" = "Darwin" ]; then
     MKFS_FAT=/usr/local/opt/dosfstools/sbin/mkfs.fat
     SUDO=''

 if [ "`uname`" = "Darwin" ]; then
     MKFS_FAT=/opt/homebrew/Cellar/dosfstools/4.2/sbin/mkfs.fat
     SUDO=''

のように変えます。

実行

% cd laranja-os
% make

成功すると以下のような画面が表示されます。

USBドライバ

その他のOS自作本

30日でできる! OS自作入門 – 2006/3/1

コメント

タイトルとURLをコピーしました