ホーム » OS

OS」カテゴリーアーカイブ

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930  

カテゴリー

アーカイブ

ブログ統計情報

  • 79,605 アクセス



ゼロからの OS 自作入門 第 3 章

main.cpp のコンパイル,リンク.
$ cd ~/workspace/mikanos
$ git checkout osbook_day03a
$ cd kernel
$ clang++ -O2 -Wall -g –target=x86_64-elf -ffreestanding -mno-red-zone -fno-exceptions -fno-rtti -std=c++17 -c main.cpp
$ ld.lld –entry KernelMain -z norelro –image-base 0x100000 –static -o kernel.elf main.o
第 3 章 min.cpp コンパイル,リンク
ブートローダのビルドと実行.
$ cd ~/edk2
$ source edksetup.sh
$ build
$ ~/osbook/devenv/run_qemu.sh Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi ~/workspace/mikanos/kernel/kernel.elf
第 3 章 ブートローダのビルドと実行
うまくいっているのか,ちょっとわからず.


2023/06/15
$ cd ~/workspace/mikanos
$ git checkout osbook_day03b
$ cd ~/edk2
$ source edksetup.sh
$ build
$ ~/osbook/devenv/run_qemu.sh Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi ~/workspace/mikanos/kernel/kernel.elf
第 3 章 白で塗りつぶす


$ cd ~/workspace/mikanos
$ git checkout osbook_day03c
$ source ~/osbook/devenv/buildenv.sh
$ cd ~/workspace/mikanos/kernel/
$ clang++ $CPPFLAGS -O2 –target=x86_64-elf -fno-exceptions -ffreestanding -c main.cpp
$ ld.lld $LDFLAGS –entry KernelMain -z norelro –image-base 0x100000 –static -o kernel.elf main.o
$ cd ~/edk2
$ source edksetup.sh
$ build
$ ~/osbook/devenv/run_qemu.sh Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi ~/workspace/mikanos/kernel/kernel.elf
第 3 章 適当な模様?
これもうまく動作しない.どうも kernel の呼出しがうまく行っていない?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ゼロからの OS 自作入門 第 2 章

本にある通り
$ cd ~/workspace/mikanos
$ git checkout osbook_day02a

$ cd ~/edk2
$ ln -s ~/workspace/mikanos/MikanLoaderPkg ./

$ source edksetup.sh
$ build
第 2 章 Conf/target.txt を設定していないため Failed
Conf/target.txt を「表 2.1」に変更しなければならない?


すると今度は…

build.py...
/home/iwao/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc(...): error 4000: Instance of library class [RegisterFilterLib] is not found
	in [/home/iwao/edk2/MdePkg/Library/BaseLib/BaseLib.inf] [X64]
	consumed by module [/home/iwao/edk2/MikanLoaderPkg/Loader.inf]

第 2 章  error 4000 Instance of library class [RegisterFilterLib] is not foud
error 4000: Instance of library class [RegisterFilterLib] is not found」で検索すると
FAQ(よくある質問とその回答)
次の方法で対応.
$ git checkout 38c8be123aced4cc8ad5c7e0da9121a181b94251
うまくビルドできた.
第 2 章 Hello Mikan World


$ cd ~/workspace/mikanos/
$ git checkout osbook_day02b
$ cd ~/edk2/
$ source edksetup.sh
$ build
$ cd Build/MikanLoaderX64/DEBUG_CLANG38/X64/
$ ~/osbook/devenv/run_qemu.sh ./Loader.efi
第 2 章  day2b hello


2023/06/09 メモリマップの確認
第 2 章 メモリマップ

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ゼロからの OS 自作入門 第 1 章

昨日 VirtualBox 内の Ubuntu の QEMU が動作することは確認できたので,バイナリコードの入力から.
BOOT_X86.EFI の作成と実行
hello.c をコピー.EfiMain() の while(1) ; のループをコメントにして,コンパイル,リンクしたものを実行.
EfiMain の while(1) をコメントに
EfiMain() を起動した後,BIOS の画面に入った?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ゼロからの OS 自作入門

久しぶりにいい本(自分に合っている本)を購入.

まだ第1章までしか読めていないが,知らないことがいっぱい.
https://zero.osdev.jp/
https://zero.osdev.jp/book-sample.pdf
1 日に 1 章をクリアしていけば,ほぼ 1ヶ月で消化できるみたいだが,そこまでは時間が取れないか?


2023/05/30
少し時間がかかったが,VirtuaBox 内の Ubuntu 22.04.2 LTS に環境を作成した.
確認用 PC 環境は,その Ubuntu 内の QEMU .
手順は,次の所に書かれている通りで,付録 A の状態に.
https://github.com/uchan-nos/mikanos-build
$ cd $HOME
$ git clone https://github.com/uchan-nos/mikanos-build.git osbook

$ sudo apt install ansible
$ cd $HOME/osbook/devenv
$ ansible-playbook -K -i ansible_inventory ansible_provision.yml


これで,QEMU も入るみたいで /usr/bin/ 以下に qemu-* が存在する.
35 ページに書かれている方法でやってみたがうまくいかず,そのページの下の方の run_qemu.sh を使用した.
Ubuntu の QEMU で Hello

Is this 投稿 useful? Useful Useless 1 of 1 people say this 投稿 is useful.