気になることから読む#

本書は第1章から順に積み上げる構成ですが、最初から順に読まなくてもかまいません。 下から、気になっているものを選んでください。 読んでいて分からない言葉が出てきたら、そのときに前の章へ戻れば十分です。

まず動くところを見たい#

自作 OS をブラウザで動かす

実機と同じファームウェアをブラウザの中の QEMU で動かします。 インストールは要りません。

付録: 実機がなくても試せる
四脚ロボットをブラウザで歩かせる

学習済みの歩行方策を物理シミュレーションで動かします。 前進・旋回はスライダーで変えられます。

歩行を学習させる(強化学習)

普段使っているコンピュータの「なぜ?」#

重い処理があっても、ほかのアプリが止まらないのはなぜ?

第4章: タイマ割り込みで、走っているタスクを強制的に切り替えます。

第4章: プリエンプティブスケジューラ
アプリが落ちても、OS が落ちないのはなぜ?

第6章: ゼロ除算や不正なアドレスへの書き込みを受け止め、 起こしたタスクだけを止めます。

第6章: メモリ保護
top やタスクマネージャの CPU % はどう数えている?

第7章: OS が数えている CPU 使用率を LED マトリクスに出します。

第7章: LEDマトリクス可視化
電源を入れた瞬間、CPU は何をしている?

第1章: リセット直後から main() にたどり着くまでを追いかけます。

第1章: ブートシーケンス
malloc の中では何が起きている?

応用編 第3章: malloc / free を自分で書きます。

応用編 第3章: ヒープ自作 — malloc / free を書く
「ファイル」はどうやってできている?

応用編 第4章: Flash の上にファイルシステムを載せます。

応用編 第4章: 最小ファイルシステム — LittleFS

好きなものから#

ロボットを歩かせたい

第13章: 自作 OS でサーボを 8 個動かして四脚を歩かせます。 部品と組み立ては 四脚ロボットの組み立て にあります。

第13章: 四脚ロボットを歩かせる — Physical AI への一歩
Python が好き

第11章: マイコンの上で動く小さな Python を作ります。 その手前の第8章では、もっと小さな言語を作ります。

第11章: TinyPython — マイコンで動くPythonを作る
仕事で FreeRTOS を使っている

第10章: 自作 OS と同じ課題を FreeRTOS で書いて、設計を比べます。

第10章: FreeRTOSで同じことをやってみる
電子工作が好き

第12章: PWM の生成と A/D 変換を、レジスタのレベルから理解します。

第12章: ハードウェア制御の深層 — PWM生成とA/D変換

動いているものを壊してみたい#

第4章・第6章・第7章の終わりに「壊してみる」を置きました。コードを 1 か所だけ 変えて、何が起きるかを予想してから動かします。ブラウザ版でも試せます。