「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?
こんにちは。
Claude Code 200$を課金してから一日400$くらいつかってしまったゴリラです。
今回はぼくが最終回ということで、温めておいた「Build Your Own X」シリーズのコンテンツを紹介できたらと思っています。
Build Your Own Xはいわゆる車輪の再開発のコンテンツとなります。 たとえばCコンパイラを自作したり、OSを自作したりなど、無料で公開されているコンテンツが色々あるので、その中で個人的に良いなと思っているものを紹介していきます。
build-your-own-x
Build Your Own X 系のコンテンツがまとめられたリポジトリです。 カテゴリごとにまとめられていて、自分が興味ある分野を探してみると面白いものが見つかるかもしれません。
掲載されているものは比較的に簡単で短めなものが多いのですが、中には重厚なものもあります。 また、マージはされていないけどPRが出ているものもかなり多く、そちらも漁ってみると良いかもです。
ゼロからのハイパーバイザ自作入門
ハイパーバイザーを自作する本です。 ハイパーバイザーとは、1台の物理マシンで複数OSを動かすためのソフトウェアです。
Type 1(ベアメタル型)とType 2(ホスト型)の2種類あって、Type 1は直接物理マシンにインストールして使います。 例えばWindowsのHyper-Vなどがそれにあたります。
Type 2はOS上で動くものとなっていて、VirtualBoxなどがそれに当たります。
上記の本はラズパイ上で動かせるType 1のハイパーバイザーを作るようです。 自分はまだ自作したことがないのですが、そのうちこの本をみてやろうかなと思っています。
Writing Hypervisor in Zig
こちらもType 1のハイパーバイザーを自作する本です。 面白い点としてはZigというニッチな言語を使っている部分です。
Zig自体はかなり評判が良いみたいですが、まだv1.0になっていないからか、アップデートがかなり激しいらしく互換性がすぐ壊れる話しをよく聞きます。 それを自作言語に選んだのは中々珍しいなと思いました。
そのうちZigも覚えて、これをやろうかなと思っています。
Go でデバッガを自作する
デバッガを自作する本です。 デバッガの仕組みを解説している記事は中々見かけないという印象があるので、個人的に珍しい本だなと思いました。
普段開発でデバッガをつかうことがあってもそれがどのように動作しているのか分らなかったので、この本をRustでやってみて理解を深められました。 最初は難しそうな印象がありましたが、実際にやってみた感想としては思ったよりも難しくなかったです。
興味ある方はぜひチャレンジしてみてください。
RustでWasm Runtimeを実装する
手前味噌ですが、以前zennで公開したRustでWasm Runtimeを実装する本を書きました。 この本はWasm Runtimeがどのように動作するのか、その仕組みを解説しながらRustで実装していく本です。 最後まで実装していけば、最終的に"Hello, World"を出力できるようになります。
最近Wasmのエコシステムが充実してきていて、利用事例も増えています。 こちらも興味ある方はぜひやってみてください。
Writing an OS in Rust
RustでOSを実装するチュートリアルです。 いつかやろうと思ってとっておいてありますが、最近だと「作って学ぶOSのしくみ」という本が出版されているので、そちらの方が良いかもしれません。
低レイヤを知りたい人のためのCコンパイラ作成入門
moldの作者であるRuiさんが書いたCコンパイラをスクラッチで実装する本です。 この本は未完成ですが、コンパイラのコミットが綺麗に整備されているらしいので、本に書いていない部分に関してはコミットを参照すれば良さそうです。
これもいつかやろうと思ってとってあります。 ぜひみなさんもコンパイラを書いてみてはどうでしょうか。
ゴリラさんの「も読」過去記事
- Claude Code活用のための+α(@gorilla0513) (06月27日公開)
- KOKKAI DOC / Rolldown-Vite / TLS 1.3の暗号技術 / Zennの検索高速化(6月12日公開)
- リンカ・ローダ実践開発テクニック (5月1日公開)
- オブジェクトファイル(5月12日公開)
- 高速リンカー mold(5月29日公開)