私はずっと低レイヤーに興味を持って勉強していますが中々低レベルを脱出できずもどかしく思っていました。それでも低レイヤーの勉強を始めたころに比べれば多少は勝手が分かってきたかなとも感じていますが。
そんな私が最近面白い本を見つけました。2025年12月8日に発売されたばかりの「いちばんやさしい! OS自作超入門 マルチタスクと仮想メモリーを実現!」です。著者の方はLinuxカーネルの本等も書かれています。自作するOSの機能をマルチタスクと仮想メモリ程度に絞り、それを実現できる最低限の機能だけをもつCPUの仕様を決め、CPUはPythonでエミュレータを作り、開発言語はアセンブリ言語にするというユニークな方針の本です。x86_64とかArmとかRISC-VのようなリアルなCPUを対象に高級言語でOS自作しようとすると多くのハードウェアや高級言語の知識が求められます。そのハードルを低くするためにこのような方針にしたそうです。アセンブリ言語での開発もCPUの仕様が簡単であればむしろ楽になるという考えです。
3章までにCPUの命令セットとアセンブリ言語の書式を説明し、4章でシングルタスクOS、6章でマルチタスクOS、7章で仮想メモリを実現する構成になっています。まだ4章に入ったばかりなのでここからが本番ですが既にかなりわくわくしています。
というのが著者の方が言うように今までx86_64のOS自作本を読んだことはあるのですが求められる知識の多さに中々理解するのも難しいですし、ましてや自分なりの改造や機能追加は目途も立たない感じでした。勉強は何でもそうですが自分なりに何かできる段階に達しないと面白くありません。
それがこの本の場合は一通り読んだら開発言語をアセンブリ言語より便利な物を作りたい、CPUエミュレータを拡張してもっとOSに機能を追加したい、他言語で書き直してみたい、CPUのFPGA化もできたらいいな、等々自分なりの改造や機能追加のアイデアが次々と湧いてきます。しかもそれがあまり実力のない自分でも十分可能だと思われます。
まだ4章を読み始めたばかりなので全てはこれからですが非常に楽しく読めています。この本で一通り遊んだ後で再びx86_64のOS自作本を読んだ時にどう感じるようになっているのかも楽しみです。
ところでCPUエミュレータにどのような機能を追加すればOSにこの機能を実現できるようになるという部分は知識がないためビット幅を広げる以外の具体的なイメージが湧いていません。性能ではなくOS自作の勉強に特化したCPUの仕様決めと言えばいいでしょうか。OS自作に詳しい方からご意見をいただけると嬉しいなと思っているところです。