マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

学生プログラマに贈る「OS作り」のススメ

大学3年のときあたりか目標を失いかけていた俺が今、x86エミュレータ作りに夢中になっている。その要因となったのが「OS作り」であると思う。すでに目標を持ってプログラミングしている人には不要だろうが、特に目標が無いならOSを作ってみたらどうか?

俺が思うOSを作るメリット

  • ものすごいしょうもないことに感動できる(かもしれない)
  • 普段知ることも無いだろう領域を知ることができる(かもしれない)
  • 達成感が凄い(かもしれない)
  • 作ってる途中に別の目標ができる(かもしれない)
  • 何よりも作っていて楽しい(かもしれない)

どれも俺が勝手に思っているだけである。まぁ、考える前に作ろう!ブートローダから!って別にブートローダは作る必要ないけど、面白いよ!俺はPC/AT互換機でOSを作っていたがレジスタBIOS Callを調べて、ようやくショボイ機能が追加され、それにもの凄い喜びがある。OSに入れば割り込みやI/Oポート使ってキーボードやらタイマやらマウス何かも扱ったりする。それとは別にグラフィック何かも扱ったり、メモリ管理したりやりたい放題だ。しかし、当たり前の機能がどれだけ大変なものかがわかるだろう。俺が最も苦労したのはマルチタスクだと思う。何たってその当時特権レベルなんて知らなかったし、Task State Segmentなんて使おうと思ってなかったから苦労した。大学の先輩のおかげでなんとか実装したが、そこで力尽きた。でも動いたのを確認したときには何とも言えない感動があった。多分、他では味わえないような感動があるはず!ということで作ろう!下に読んだことある本を書いておくが、『12ステップで作る組込みOS自作入門』の方はH8ボードがターゲットなので注意が必要。H8も面白いけど

30日でできる! OS自作入門

30日でできる! OS自作入門

12ステップで作る組込みOS自作入門

12ステップで作る組込みOS自作入門