LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所(情報元のブックマーク数)

小崎さんキタ━━━━(゜∀゜)━━━━ッ!!、小崎さんのこれまでの歴史

連載「Linux Karnel Watch」の筆者である小崎資広(こさきもとひろ)氏は、Linuxカーネルの開発コミュニティとRuby開発者コミュニティの両方でコミッタとして活動している開発者である。オープンソース・ソフトウェア(OSS)のコミュニティは、どのように運営されているのか。そしてLinuxRubyという成功した2つのコミュニティには、どのような個性の違いがあるのか。小崎氏に話を聞いた。

LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所

組み込みLinuxな人がKernel開発へ!

前職では、組み込み機器向けにLinuxをカスタマイズする仕事をしていました。そのころは、組み込みソフトウェア開発の分野で「既製のOSを流用してコストを削減しよう」というもくろみからLinuxを採用する動きが盛んでした。ただ、実際にはバグが出ることが多く、OSの内部まで見て直さないといけないことがよくありました。
富士通に入社してからは、HPC(ハイパフォーマンス・コンピューティング)分野でLinuxにかかわりました。組み込み開発とHPCの両方の分野を経験したことは、Linuxカーネル・コミュニティで大いに役立っていると思います。

LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所

やっぱりリアルでもオンラインでも根回しは必要。やっぱりそうだよねぇー

──OSSコミュニティは、主にメーリングリストで議論をして結論を出して開発を進めていきます。どうすれば、こういうやり方でうまくいくのでしょうか。「根回し」が必要な場合もあるのでしょうか。
小崎 根回しは大いにありますよ。年に何回かLinuxのカンファレンスがあるので、そこで集まって議論することがあります。事前に「こういうことをしたいんだけど」と発表しておいて、そのネタが後で議論の材料になるわけです。
ですが、基本的には「メーリングリストを読めばすべて分かる」形になっています。なぜうまくいくかを説明するのはなかなか難しいのですが。理由を一言でいうと「信頼の輪」を広げていく形で進めていくからでしょうか。「この人の修正だったら大丈夫だろう」とか、「この人がレビューでOKを出していたら大丈夫だろう」とか。

LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所

新しいものを提案する前には過去ログは嫁よ!

──メーリングリストでの新機能の提案と、その採用・却下の記録の積み重ねが、コミュニティの蓄積になっている。ということは、メーリングリストは必ず読まないといけないわけですね。
小崎 メーリングリストはウオッチしないといけないですね。過去の議論を知らずに「オレオレ修正」を投げると、素っ気ない対応をされがちです。コミッタも人間なので、同じことを何回も説明するのは嫌ですから。
メーリングリストのいいところは、「記録が残る」ことです。コミュニティの文化、やってはいけない修正など、頑張って調べれば分かってくる。よく「ソースコードを読め」という話がありますが、Linuxは20年近い歴史があります。ソースコードだけで全部の設計を把握できるわけがない。幸いなことに、いまは検索エンジンの性能が賢いので、メーリングリストの過去ログを調べるのがずいぶん楽になりました。

LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所

Ruby側で直せない場合はLinuxKernel側を直すと言う考えが出るところが小崎さん的だよなぁ。

あと、あるバグの解決で、Ruby側では直せないから「Linuxカーネル側を直しておきます」といったら喜ばれました。Rubyの場合、I/O(入出力)系が歴史的な事情で入り組んでいます。特に、Ruby 1.9で実装が変わった。I/Oは性能が欲しいし、チューニングすると特殊なバグに遭遇することもある。そこで、OSの方を直しました。

LinuxカーネルとRuby、異なるコミュニティにコミットして見えたもの − @IT自分戦略研究所

screenshot