Open6

MikanOSの開発(本のなぞり)メモ

ピン留めされたアイテム
ymdarakeymdarake

MacからManjaroに乗り換えたあとにdevcontaioner等々使えなくなったため、Vagrantで著者の環境に揃えた(Ubuntu 18.04)。

とりあえず問題なくビルド成功、QEMUで動いたので開発中も困らないはず。(はず)

https://github.com/ymdarake/mikanos-box

※VirtualBoxのパッケージが色々あって、自分の使っているカーネル用のものを選択するのが一番のつまずきポイントだった。

ymdarakeymdarake

2章 EDK II入門と メモリマップ

UEFI用の開発キットでメモリマップを取得

ymdarakeymdarake

3章

これ

ln -s $HOME/workspace/mikanos/MikanLoaderPkg ./


こう

 ~/edk2 (38c8be123a ✗) $ ln -s $OS_DIR/MikanLoaderPkg ./
ymdarakeymdarake

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
ymdarakeymdarake

6章

  1. マウスと長方形(デスクトップの箱)を描画する
  2. USB
  • ホストコントローラを制御するホストコントローラドライバ
    • USB3.x用のxHCI
  • ホストコントローラの詳細を隠して USB 規格で定められた API を提供するUSBバスドライバ
  • USB ターゲットの種類ごとに用意するクラスドライバ

に分割して実装する。