Open6
MikanOSの開発(本のなぞり)メモ
ピン留めされたアイテム
MacからManjaroに乗り換えたあとにdevcontaioner等々使えなくなったため、Vagrantで著者の環境に揃えた(Ubuntu 18.04)。
とりあえず問題なくビルド成功、QEMUで動いたので開発中も困らないはず。(はず)
※VirtualBoxのパッケージが色々あって、自分の使っているカーネル用のものを選択するのが一番のつまずきポイントだった。
mac + Docker (devcontainer)の設定使わせてもらった
ありがたい
コツ(?):
XQuartzインストールしたあとに再起動しないとmacに$DISPLAYが設定されなくてxhostコマンドが通らない
2章 EDK II入門と メモリマップ
UEFI用の開発キットでメモリマップを取得
3章
これ
ln -s $HOME/workspace/mikanos/MikanLoaderPkg ./
は
こう
~/edk2 (38c8be123a ✗) $ ln -s $OS_DIR/MikanLoaderPkg ./
4章以降のビルド用コマンド
# XQuartzの設定
host-machine $ xhost + 127.0.0.1
# devcontainer
$ OS_DIR=/workspaces/mikanos-devcontainer/mikanos
$ cd $OS_DIR
$ git checkout osbook_day04b
$ cd kernel
$ source ~/osbook/devenv/buildenv.sh
$ make
$ cd ~/edk2
$ source edksetup.sh
$ build
$ ~/osbook/devenv/run_qemu.sh ~/edk2/Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi $OS_DIR/kernel/kernel.elf
6章
- マウスと長方形(デスクトップの箱)を描画する
- USB
- ホストコントローラを制御するホストコントローラドライバ
- USB3.x用のxHCI
- ホストコントローラの詳細を隠して USB 規格で定められた API を提供するUSBバスドライバ
- USB ターゲットの種類ごとに用意するクラスドライバ
に分割して実装する。