Tumble Forth:アセンブリからOS、Cコンパイラまで自作する旅
Tumble Forth – from assembly to OS with C compiler
Web開発者だった著者が、低レイヤープログラミングの世界へ足を踏み入れる連載が始まりました。PCのベアメタルから出発し、Forthをゼロから作り、Dusk OSに切り替え、さらにCコンパイラ(サンプルコードをコンパイルできる程度)を一から構築します。現代ソフトウェアの複雑さに辟易し、ウサギの穴に飛び込むように低レイヤー開発の深みへ。対象読者はプログラミング経験はあるが低レイヤーは未経験の方。各回で親父ギャグも披露します。
現代ソフトウェアの複雑さの深淵を覗き込み、嫌気がさしたら、低レイヤー開発のウサギの穴に転がり落ちてこのディストピアから脱出しよう。
HNでの議論
12- fjfaase
私がlive-bootstrapプロジェクトでGNU Mesコンパイラの代わりに開発したCコンパイラでも、2つのスタックを使うForth風の言語を使用しました。1つはパラメータと戻り値用のスタック、もう1つは戻りアドレスとローカル変数用のスタックです。このForth風の言語はアセンブリにトランスパイルされ、いくつかのステップを経てELFファイルに変換されます。ターゲットはx86、x86_64、arm64です。riscv64のサポートの作業も始めましたが、他の責任のため現在は中断しています。完成させてくれる人がいれば、少額のボーナスを用意しています。
- zovirl
> これを回避する別の方法は、その複雑さを完全に回避して、独自のOSを構築することです。
> ベアメタルから始めて、独自のCコンパイラを備えた独自のオペレーティングシステムを構築します。この方が簡単です。
この発言の大胆さが大好きです。そして、「_______の最も単純なバージョンを実装して、それがどのように行われるかを学ぼう」というこの種のアプローチに感謝しています。
- drivers99
ああ、これはまさに私の好みです。しばらくベアメタルでForthを作ることを考えていました(去年CでForthインタプリタを作り、C64Uで手組みのマシン語でスタック操作を少しテストしました)。そして、このリンクを見る直前に偶然思いついたのは、ちょうど手に入れた8088 IBM PC用のフロッピーディスクにブートセクタを作ることでした。それはリアルモードの部分でしか動かないことは分かっていますが、とにかくそこから始めるのは楽しいかもしれません。編集:CollapseOSについては知っていましたが、これも存在していたとは気づきませんでした。