magoroku15氏のtwitterでxv6の存在を知りました。MITのOSの授業用にunix v6の思想を尊重してANSI Cで書き直したものでターゲットcpuはx86です。
当然ソースコードは公開されていますし、OSの仕組みを説明したドキュメントや授業の動画まで公開されています。
ドキュメントをざっと眺めてみましたが、中々分かりやすく1つのテーマが1~3ページにまとまっているため勉強のペースを作りやすいという印象を受けました。
オリジナルのunix v6を学習するには、ANSI C以前の古いC(K&R Cより古い?)で書かれていること、ターゲットcpuが既に存在しないpdp11であるというハードルがあります。古いCがANSI Cとどう異なるかの解説やpdp11のドキュメントやエミュレータ等、ハードルを低くしてくれる情報もありますが、xv6の方が自主的な勉強は進めやすい気がしてきました。
よって一旦xv6のドキュメントを最後まで勉強してみようと思います。それによりv6の思想が一通り頭に入ったところでxv6やunix v6のソースコードに挑戦してみようと思います。
当然ソースコードは公開されていますし、OSの仕組みを説明したドキュメントや授業の動画まで公開されています。
ドキュメントをざっと眺めてみましたが、中々分かりやすく1つのテーマが1~3ページにまとまっているため勉強のペースを作りやすいという印象を受けました。
オリジナルのunix v6を学習するには、ANSI C以前の古いC(K&R Cより古い?)で書かれていること、ターゲットcpuが既に存在しないpdp11であるというハードルがあります。古いCがANSI Cとどう異なるかの解説やpdp11のドキュメントやエミュレータ等、ハードルを低くしてくれる情報もありますが、xv6の方が自主的な勉強は進めやすい気がしてきました。
よって一旦xv6のドキュメントを最後まで勉強してみようと思います。それによりv6の思想が一通り頭に入ったところでxv6やunix v6のソースコードに挑戦してみようと思います。