blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2015.07.13 技術記事

『詳解Linuxカーネル』の輪読を始めました

by Kiyoshi Yasutake

#linux

初めまして!
IT基盤部の安武です。

本日は、社内で最近始めた『詳解Linuxカーネル』という書籍の輪読会について紹介します。
この本は文字通り、Linux カーネルの仕組みについて詳細に解説した、1000ページ超の大型本です。

O’Reilly Japan - 詳解 Linuxカーネル 第3版
Daniel P. Bovet, Marco Cesati 著、高橋 浩和 監訳
2007年2月発行

決して易しい本ではありませんが、カーネルのアーキテクチャを理解しておくことはアプリケーション開発者にとっても、運用担当のエンジニアにとっても、アドバンテージになる技術スキルだと思います。

私は 2〜3 年ほど前にこの本を購入しました。
しかし、ときどきリファレンス的にピンポイントで参照することはあったものの、実質ほぼ「積ん読」状態( *1 )になっていました。

「複数人で輪読( *2 )したら読み進められるだろうな」と思いついたのが最近のこと。
社内の Slack チャンネルで何気なくつぶやいてみたところ、意外とすぐに反応が返ってきました。

その後、複数のチャンネルで声を掛けて回ったところ、IT基盤部以外の部署からも参加者が集まり、合計で9名になりました。 それが、先月下旬のことでした。

第1回の輪読会はその翌週、7/2 19:00〜 に行いました。
その会の後、 Twitter で輪読の良さについてつぶやいた ところ、更に「参加したい」というメンバーが増え、7/13 現在、発表担当でない者も含めて、合計で15名が輪読会に参加しています。

写真は 7/7 に実施した第2回の輪読会の模様です。

輪読の進め方として、最初にシンプルなものを定めました。

  • 担当の人は該当章をよく読んで、かんたんな要約を作っておく
  • 担当外の人もなるべく読んで、1個以上質問を用意しておく

業務外の活動ですし、自分としては読むきっかけが生まれるだけでもありがたかったので、ルールは厳格にせずゆるく進める方針でいます。

要約のフォーマットとしては、一番楽だろうと「Gist など」と最初に提示しておきましたが、2回の輪読会を経て、スライド形式に落ち着きつつあります。その方が図表など交えてビジュアルに説明しやすいからです。

実際に輪読をやってみて、よかったと感じていることを挙げてみます。

  • 集団で取り組むことである種の強制力が生まれ、積ん読状態だった本を読み進めることができた。
  • 輪読会での議論を通して、より理解を深めることができる。

特に後者については、『 Linux カーネル2.6解読室 』を読んだメンバーや、CPU周りの低レイヤの仕組みに詳しいメンバーもいて、有意義な議論ができているのではないかと思います。

以上、私が発起人になって始めた『詳解Linuxカーネル』輪読会の紹介でした。

ここ最近、社内でどの程度、有志による輪読会が開かれていたかわかりませんが、今回の輪読会を進めながら Slack に #rindoku チャンネルを作り、社内 Wiki に「Rindoku」というスペースを作ってみました。
ので、今後更に別の輪読会が生まれてくるのではないかと期待しています。

1人で読むことと比較して、理解がより深まり、他者から刺激を得られますので、輪読、オススメです。

脚注

(*1) つんどく - ウィクショナリー日本語版
(*2) もし輪読そのものに詳しくないという方には、例えば こちらの記事 が参考になると思います。

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。