ゼロからのOS自作入門を少しずつ読んでいる。
実際にCやC++でコードを書きながら読むのが良いと思われるが、自分は時間の都合で要点要点を読んでいくような読み方をしている。
以下、読んで得た自分の認識をメモしていく。(完全には理解できてないので間違いはあるかもしれない。)
「第一章:PCの仕組みとハローワールド」で得た知見
ブートの仕組みとUEFI BOISとUEFIアプリケーション
PC起動時にマザーボードのROMに記録されているBIOSをCPUが実行する。 BIOSは各種デバイスを初期化し、特定の場所に実行ファイルがあれば実行する。 通常だとHDDやSSDに実行ファイルを見つけてそこからOSを起動するが、本章ではUSBの中に実行ファイルを見つけて実行している。
本章で取り扱うBIOSはUEFI BIOSと呼ばれる形式のBIOSで、この仕組で動作するアプリケーションの事をUEFIアプリケーションと呼ぶ。
UEFIアプリケーションはUEFI BIOSが提供する機能(画面表示、キーボード入力受付など)を使うことができる。 今回は単純に画面にハローワールドを出しただけだが、通常ならばここからOSの起動を行うことになる。
EDK II
EKD IIとはUEFI BIOSやUEFIアプリケーションの開発に使える開発キットのことである。
EDK IIはUEFIアプリケーションを作るのに便利な機能を提供してくれており、incluceして使うことができる。 またUEFIアプリケーションの実行ファイルを作るbuildツールも提供してくれている。
こうして作成されたアプリケーションの実行ファイルをUSBの特定のディレクトリに配置し、UEFI BIOSから呼び出してもらえばこのアプリケーションは起動する