低レイヤガイドブック
- ltrace
- strace
- vim
- gdb
- git
- file
- curl
- wget
- binutils
- libssl-dev
- build-essential
- netcat
- nasm
- python3
- python3-pip
- python3-dev
- ghex
- radare2
- docker.io
- checksec
- rp++
- Rust
- VSCode
- socat
- pwntools (pip3)
- gdb-peda
OS
- blog_os
- https://github.com/phil-opp/blog_os
- (unsafeを使うけど)RustでOSを書く。完結はまだで現在もアップデートが頻繁に行われるが、Rust自体もアップデートされているのでそれに合わせてメンテされているのはよい。
- legacy BIOSを使っているが、UEFIに変えるRoadmapもあり、rust-osdevで進行しているので今後に期待。
エミュレータ
- Writing a RISC-V Emulator from Scratch in 10 Steps
- https://book.rvemu.app/
- 64bit RISC-V emulatorを作る
- 初回の Setup and Implement Two Instructions は仕様書を読みながらコード書いていく流れなのでとてもよいなと思いました
Security
- Exploitation Fundamentals
言語処理系
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- Crafting Interpreters
LLVM
- 怖くないLLVM入門
- ミニキャン言語を作ろう
- maekawatoshiki/cilk
- https://github.com/maekawatoshiki/cilk
- これは教材ではないのですが、LLVMのようなコンパイラ基盤を作っている人のリポジトリです(Rust製)
docs-ja
や cilkcc
(独自のLLVMのような基盤の上でCコンパイラのサブセットを書いている) を読んでみると面白いです
- maekawatoshikiさんは ブラウザ(naglfar)やJavaScriptの処理系(rapidus)を開発されていたことがあり、「こんなでかいソフトウェアのサブセットって作れるんだ」という気持ちになるので一度見てみるとよいです