UNIXカーネル

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のページを覗かれてはいかがでしょうか。