本書をお読みいただきありがとうございました!
本書では、前著で作ったカーネルの枠組みにスケジューラを追加しました。これにより、カーネルの技術要素として以下が(簡単なものではありますが、)揃いました。
とはいえスケジューラは、動作するタスクが固定であったり、スケジューラ動作時に使えない機能(sleep)があったりするのですが*1。
[*1] スケジューラ動作時に意図通りに動かない問題は、共有資源をロックをしていないからかと思いますが。
本著を読んで実際に作ってみた場合は、これらを直すも良し、これらは仕様としてアプリを作ってみるも良しで楽しんでみると良いと思います。
今後のネタとしては、カーネルとアプリをバイナリレベルで分離できるよう、システムコールを整備していきたいなと思っています。
あと、まだマウスをサポートしてないですね。特に自身のメイン機であるThinkPadのトラックポイントとかタッチパッド入力の取得方法を知りたい所です。タッチパッドはマルチタッチが扱えれば何か面白いことができそうです。
他にもACPIでちゃんとシャットダウンできるようにするとか、ネットワーク対応とか、やりたいことは山積みです。
ページ数の都合上、今回は「付録」での説明はしませんが、例によって表紙はサンプルプログラムを改造して作ったものです。
サンプルディレクトリ「A01_cover」にソースコードを格納していますので、興味があれば見てみてください。