本書をお手に取っていただきありがとうございます。
本書では、自作OSによるマルチコア制御を、UEFIを活用することで、比較的手っ取り早く実現します。
本書でマルチコアの制御もできるようになったことで、自作OSのアーキテクチャも図1のようになりました。
本書は2年前に公開したブログ記事「UEFIベアメタルプログラミング - マルチコアを制御する*1」の内容を元に、ブートローダーからカーネルへのジャンプ方法やカーネルへジャンプ後のマルチコア制御についても加筆してまとめ直したものです。
[*1] URLは本書末尾の参考情報を参照
本書は以下の2章構成です。
なお、本書ではマルチコア時の割り込みについてはあまり立ち入りません*2。マルチコアとして新たに使用するプロセッサへ任意の処理を、ブートローダー/カーネル/アプリのレベルでそれぞれ行えるようになればOKとします。
[*2] 具体的には、システムコールを扱えるようにするために、ソフトウェア割り込みだけはマルチコア時にも使えるようにします。
筆者が開発や動作確認を行っている環境を以下に記載します。
言語としては、C言語と一部アセンブラを使う程度なので、一般的なLinux環境であれば問題ないと思います。
これまでの当サークルの同人誌同様、本書もPDF版/HTML版は以下のページで無料で公開しています。
サンプルコードは以下のGitHubリポジトリで公開しています。
サンプルコードのリポジトリ内はディレクトリで分かれています。各ディレクトリが以降の各項で作るものです。各項の冒頭で「この項のサンプルディレクトリはXXです。」と紹介しますので適宜参照してみてください。
なお、ビルド方法は本書のパート1を参照してください。また、パート2でブートローダーにも手を加えています。実行の際はブートローダーも必要なので、そちらも併せてご参照ください。
「A」から始まるディレクトリは参考用の付録サンプルコードです。今回は「A00」から「A02」の大きく3つの付録があります。