やる気がストロングZERO

やる気のストロングスタイル

「ゼロからのOS自作入門」を読んでる 3

ゼロからのOS自作入門を少しずつ読んでいる。

実際にCやC++でコードを書きながら読むのが良いと思われるが、自分は時間の都合で要点要点を読んでいくような読み方をしている。 以下、読んで得た自分の認識をメモしていく。(完全には理解できてないので間違いはあるかもしれない。)

第三章:画面表示の練習とブートローダ

カーネルを模した実行ファイル(中身は無限ループ)をUEFIアプリケーションから呼び出す方法について認識できた。

カーネルコードをメモリ上の配置予定番地を指定してビルドする。(特定メモリ番地でないとうまく動かないということだったが、なぜそうなのかはよくわからなかった。)
UEFIアプリケーション(ブートアプリケーション)からカーネル実行ファイルをメモリに番地指定で読み込む。
メモリ上にカーネルの実行ファイルを読み込んだら、カーネルのエンドポイントの関数が書き込まれているアドレス位置を計算し、そのアドレスをブートアプリケーションから実行する。
実行するには、そのアドレスを指すポインタを「引数・返り値なしの型」にキャストする必要がある。