Web Analytics

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自作入門