みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

OSのソースコードを読むなら

OSのソースコードを読むなら

色々興味があってOSのソースコードを読もうと思っています。
自分で一から作る可能性は低いですが、色々いじってカスタマイズくらいはしたいと考えています。
そのために、まず勉強目的でソースを読もうと考えています。

BSD系,LINUXが対象ですが、ソースの読み方とか、解説本を探しています。
OS自体、本の解説も含めてトータルで読みやすいものを探しています。

イメージだとLINUXは多機能でコードは多い感じ、
BSDは機能が無いですが、シンプルなコードのイメージではあります。

勉強としては読みやすさとコンパクトさを重視していますので、最新のものでは無くても良いと考えています。

概念レベルの本についてはBSDの設計と実装を持っています。

組み込み系でもいいのですが、いわゆる現在のパソコンで動くものであり、そのための機能があることを重視しています。

MINIX本もいいのですが、一般的なOSに関する本も現在は充実していると思いますのでBSDかLINUXで行こうかと考えています。

30日で作れる~ についてはwin用で独自ツールが多いとのことで、ちょっと避けておりますが、実際自分で手を動かすものもあれば良いと思っています。

参考になる情報や、意見などあればよろしくお願いします。

投稿日時 - 2010-11-07 23:53:22

QNo.6304240

暇なときに回答ください

質問者が選んだベストアンサー

感想などを参考になるかと思って書かせてもらいます。まとめると、ソースコードそのものを解説した本だと古くなってしまっているので、ソースコードの読み方を解説した本でソースコードそのものの読み方を学ぶか、カーネルモジュールなどあまり変わらないところをベースに書かれている本を読んで試すというのがおすすめです。

ソースコードの読み方の解説本としては、「デーモン君のソース探検」がおすすめです。
カーネルのコードではなく、ユーザコマンドのソースコードの解説本ですが、主人公のデーモン君と一緒にBSD系OSのソースコードがどのように系統だっていて、それをどうやって読み進めればいいのかが体験的に学べるようになっています。この時に本で学んだ方法はBSD系OSに限らずあらゆるソースコードを読むときに役立つでしょう。

あと、実技を通してカーネルのソースコードに親しむなら、「Designing BSD Rootkits: An Introduction to Kernel Hacking」という本もおすすめです。こちらは英語の本ですがほとんどソースコードを見ながら丸パクリをするだけでFreeBSDカーネルプログラミングの基本的な方法を学べるようになっています。

逆に「FreeBSDのブートプロセスをみる」は読了するのにかなり根気がいるのでおすすめできません。ブートプロセスについて丁寧に解説して入るのですが、読んだところで明日からすぐにいじって遊べるわけではなく、色々と試すことも難しいのでかなり退屈だと思います。

一応Linuxについても触れておくと、
「詳解 Linuxカーネル 第3版」は要点とそうでないところがパッと見で分からず、ダラダラと読み進めなくてはいけないので読了するのに相当根気が入ります。「プログラミング言語C」同様、これしか解説本がないときは最良の本だったのでしょうが、最後の拠り所として本棚にあればいい程度のもので日頃から読むものではありません。

また、「Linuxカーネル解析入門」も要点が分かりにくく、先の「詳解 Linuxカーネル 第3版」に比べて内容も中途半端で正直言って存在意義がよくわかりませんでした。

これらとうってかわって「Linuxカーネル2.6解読室」は章立てもよくLinuxのソースコードの理解に最適です。ただ、書かれたときのバージョンが既に相当古くなっており、ソースコードもかなり変わっているので、わざわざ古いカーネルを落としてきて見比べないといけなくなってしまっています。古いカーネルが今のユーザーコマンドと一緒に動くかはかなり疑問で、読みながらいじって遊べるというのは難しいかもしれません。

...BSD系OSとLinuxのソースコードを比べると、BSD系OSは素直に書かれていて、Linuxは最適化を手動でやっていて素直には読みにくいという感じでしょうか。どちらとも適切な抽象化レイヤーを設けてあるので、機能の多い少ないで読みやすさが変わるとは思いません。

以上、参考になれば。

投稿日時 - 2010-11-08 01:57:25

お礼

書籍の感想についてありがとうございます。
識者の意見として今後調べるのに活用させていただきます。
理由はともかく素直なコードはBSDと言うことで了解しました。

コード自体が古くなる問題は確かにあります、読み方を重視した本で探そうと思います。
どうもありがとうございました。

投稿日時 - 2010-11-09 22:02:28

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問