UNIXカーネル
投稿日:2011年08月31日
投稿カテゴリー: SE
SE04のSMです。
ここ数年、自己啓発としてOSのコードを読んでいるのですが、最近ではxv6というOSを読んでいます。
xv6というのは昔のUNIXカーネルのコードをANSI Cで書き直したものです。MITのカーネル教育用に作成されました。
前に会社の先輩から「Lions’ Commentary on UNIX」というUNIX本を読むように進められたのですが、これまでは読まずじまいでした。
この本はUNIXカーネルについて解説している数少ない本で、その昔プログラマーにとってはUNIXのバイブルといわれていた本です。
本に書かれてあるコードはPDP-11を前提に書かれており、現在のx86向けではありません。また、CのコードもK&R Cなのでいまいち読みづらいです。
これらのコードをANSI Cでx86向けに書き直されたのがxv6というわけです。
教育用OSといえばMINIXが有名ですが、xv6はMINIXと同様にコンパクトにまとまっており、マルチコアCPUと仮想メモリもサポートしています。
カーネルに興味がある方は、一度xv6のページを覗かれてはいかがでしょうか。