低レイヤーの勉強方針 メモ

April 28, 2018

ここ1ヶ月くらい本を読んだりtcfmを聞いたりして情報を集めつつ、具体的にやることが決まってきたのでメモ。

OSを作る

Turing Complete FMでOSを作る話が面白そうだったのでいろいろ情報を集めていたら、ちょうどスタンフォードでRustでRaspberryPi上で動くOSをフルスクラッチで作るという授業が始まったことを知った。

Webでシラバスや課題やスライドが一通り見れるのと、Hacker Newsで「これを買えば授業で必要なものがそろうよ!」みたいなのもみつけて、「これはイケるぞ」と思いGWを利用して始めてみることにした。

CPUエミュレータを作る

最初の目論見では「FPGAを買ってCPUを作るぞ!!」みたいなことを考えていたけれど、漠然とハードウェアには興味がそこまで持てなさそうだったのと、ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 16日目: x86 エミュレータ製作

振り返ると、低レイヤの入口として最も良い題材はエミュレータの製作だと思う。 これをしっかり作ったことで、FPGAやコンパイラに挑戦する前段階として、CPUの挙動が直感的につかめるようになった。

と書いてあったのが決め手となって、まずはCPUエミュレータを作ってみることにした。

コンパイラをコード生成フェーズまで通して書く

去年からやっていたコンパイラの勉強もなんだかんだParser → 型システム → 最適化 と来てコード生成を残すのみとなったが、、、いかんせん低レイヤーの知識がなさすぎてアセンブリを吐こうにもなにをどうすればよいのか全然わからないというのが現状。 一度低レイヤーに潜ってCPUエミュまで作ればきっとできるようになるはず、と信じてコンパイラの勉強の集大成として今度こそ(インタープリタではなく)コンパイラを作ってみたい。

このエントリーをはてなブックマークに追加