ツナ、納豆、まよねーず。

ICTに関する日記とかメモとか。

【03】自作OSに挑戦する

book.mynavi.jp

 

第1章 PCの仕組みとハローワールド

書籍に従い、Hello, world ! を出しました。
動作確認はエミュレータですることにしました。

f:id:eevid:20210802134438p:plain

 

自分の環境と構築時コマンドをメモします。

 

環境

  • Windows10
    ・RAM:16GB
    SSD:256GB
  • Hyper-V
    ・メモリ:4GB
    ・ハードディスク:64GB
  • Ubuntu Server 20.04LTS
    ※別途、サーバ系の検証もここでやりたかったのでServerにしました。

 

構築メモ

 システムアップデート

$ sudo apt update

$ sudo apt upgrade

$ sudo apt autoremove

$ sudo shutdown -r now

 GUI環境構築

$ sudo apt update

$ sudo apt install tasksel

$ sudo tasksel install ubuntu-desktop-minimal
 ※私はエミュレータとエディタだけ使えればよかったのでミニマル。

$ sudo shutdown -r now

$ sudo apt install xrdp
  ※リモートデスクトップの方が手軽に接続できるなと思ったので。

「Authentication is required to create a color managed device」が
出るので、以下サイトの設定もしました。

god-support.blogspot.com

 バイナリエディタインストール

$ sudo apt update

$ sudo apt install okteta

ビルド環境の構築

あとは以下ページの「ビルド環境の構築」に従いました。

github.com

 

やってみたメモ

oktetaでBOOTX64.EFIを作った際、チェックサムの結果が合わず、
「え、文字コード?」と設定を疑いましたが
打ち間違えをしていただけでした…。(直したらちゃんと一致しました)

スクリプトが用意されていました(ありがたい…)が、
折角なので書籍P.35のコマンドに従ってエミュレータを起動させました。

書籍P.35のとおりに「qemu-system-x86_64」を実行すると
WARNINGが出たので、スクリプトを参考にオプションは調整しました。

github.com

 $ qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly,file=$HOME/osbook/devenv/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=$HOME/osbook/devenv/OVMF_VARS.fd \
-drive if=ide,index=0,media=disk,format=raw,file=disk.img

↑でWARNINGを出さずにBOOTX64.EFIは動きました。
………スクリプト使おう。