Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

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

30日でできる! OS自作入門
これは2006年に以前のブログへ投稿したエントリーを加筆、編集したものです。

興味本意で購入した一冊が、心動かされる一冊だった。OSが動作する仕組みから、GUI Windowのグラフィック描画、マルチ・タスクまでを、ユーザー自身がコードをタイプしながら学ぶ機会など滅多にあるものではなく、さらに分かりやすく解説、説明してくれる人も稀有だ。本書がそれらを肩代わりしてくれる。

「OSって何だろう?」から始まる本書のスタンスは、かなり潔い。

  • OSにまつわる専門知識や用語の勉強は、まずは不要。
  • 勉強なしで始めよう。
  • 言語の勉強もなしで始めよう、それはこの本を通じて学べばよいじゃないか。

使用言語はCとアセンブラだ。OSの仕組みを学びながら、その実装を通じて言語の勉強も兼ねるという野心作だ。

全30章で構成される本書は、一日一章を読み進めるペースを前提に「30日でできる」とされている。約700ページに及ぶ大作ではあるものの、その大半はコード、その解説に費やされている。この解説が尋常ではない。該当部分のコード前文について、各行ごとの処理内容を追うが如く解説している。
プログラムは、本書内で改良が重ねられる。最初は効率の悪い部分もあるのだが、改良の各段階を省略無しに、同じペースで解説していく。これは読者によって冗長と感じる部分かもしれないが、逆に親切と感じる読者もいるだろう。

この冗長な部分は、著者の志向を端的に表している。

無知なまま、できるところまでやってみよう
壁にぶつかったら、そのときに必要なことだけ勉強しましょう。

この点についての理解、親和性が、本書がターゲットする読者、それ以外を分ける敷居となるだろう。

もし初学者にC言語を教育する機会があるならば、OSは関心を引き付ける題材としても有用ではないかと思った。最近はパズドラ風のゲームを題材にする本も存在する。"hello world"のような文字列を繰り返し表示するだけでは、勉強に取り組むモチベーションを維持する助けにはならないだろう。中だるみにさえ注意すれば、OSは格好の題材ではないだろうか。

私は本書を、次のような人達に勧めたい。

  • OSとは何か、更にその片鱗に触れてみたい人。
  • Cの研修担当になり題材を探している人。
  • Cの勉強を始めるにあたり、題材を探している人。

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

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