• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OSのソースコードを読むなら)

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

このQ&Aのポイント
  • 色々興味があってOSのソースコードを読もうと思っています。自分で一から作る可能性は低いですが、色々いじってカスタマイズくらいはしたいと考えています。
  • BSD系やLINUXのOSのソースコードを読む方法や解説本を探しています。勉強目的であり、読みやすくコンパクトなものを重視しています。
  • 組み込み系や一般的なOSに関する本も考慮していますが、BSDかLINUXで行こうか迷っています。参考情報や意見があれば教えてください。

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

  • ベストアンサー
回答No.1

感想などを参考になるかと思って書かせてもらいます。まとめると、ソースコードそのものを解説した本だと古くなってしまっているので、ソースコードの読み方を解説した本でソースコードそのものの読み方を学ぶか、カーネルモジュールなどあまり変わらないところをベースに書かれている本を読んで試すというのがおすすめです。 ソースコードの読み方の解説本としては、「デーモン君のソース探検」がおすすめです。 カーネルのコードではなく、ユーザコマンドのソースコードの解説本ですが、主人公のデーモン君と一緒に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は最適化を手動でやっていて素直には読みにくいという感じでしょうか。どちらとも適切な抽象化レイヤーを設けてあるので、機能の多い少ないで読みやすさが変わるとは思いません。 以上、参考になれば。

k_kota
質問者

お礼

書籍の感想についてありがとうございます。 識者の意見として今後調べるのに活用させていただきます。 理由はともかく素直なコードはBSDと言うことで了解しました。 コード自体が古くなる問題は確かにあります、読み方を重視した本で探そうと思います。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう