注目の書籍

好評発売中!

IT業界徹底研究就職ガイド2013年版

IT/ネット業界で働くと いうことを分かりやす く解説。2013年3月卒 業の学生向けの1冊。

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux
生越昌己のオープンソースGTD

オープンソースは品質が良い?

2008/05/23

 「群衆の叡智サミット」という討論会に,パネラーとして出席しました(関連記事)。

 「群衆の叡智」という言葉は耳慣れない人も少なくないかも知れませんが,あちこちで解説されたり使われている言葉なので,ちょっとぐぐってみればたくさんの情報に当たることができると思います。

 「オープンソース」はよく「群衆の叡智」の例として挙げられます。これがそうであるか否かは,皆さん自身で考えてみられると良いと思います。私は最近の複数の事件から,ちょっとそうだと言い切るのは難しいのではないかと思い始めました。どう結論づけするかは,読者の皆さんにお任せするとして,今回はまずその「事件」について考えてみたいと思います。

最近起きたショックな事件

 一つは「DebianのOpenSSL問題」です*1。詳しい障害の内容はリンク先を見て戴くと分かると思います。この問題はOpenSSLのメンテナがバグを取ろうとして間違った修正をした結果起きたものだそうです。この問題により,元々安全なはずのOpenSSLが,非常に脆弱な状態になってしまっただけではなく,それが原因となってDebianと関係のないシステムまでもが脆弱になってしまいました。私はセキュリティの専門家ではありませんし,この連載自体セキュリティを扱うものではないので,起きている現象についてここでは詳しく述べません。ただ,この連載的に重要なことは,「たった1人のメンテナのミスのせいで,非常に広範に悪影響を及ぼす障害を作ってしまった」ということです。

 もう一つは「4.2BSD以降のすべてのBSD libcに残っていたseekdir()の問題」です*2。これはある特定の条件下でseekdirが正しい動作をしないというもので,バグの存在そのものは広く知られていたらしいのですが,ごく最近になって修正されたというものです。バグの存在が知られていたにもかかわらず,25年にもわたって修正されなかったというのは,ちょっとした驚威です。

 いずれの問題も,オープンソースを肯定する理由の一つである「目が多ければバグも見つかる」ということに反した事件です。

*1 OpenSSL パッケージの脆弱性とその影響について (SSH鍵,SSL証明書等)
http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.html

*2 When seekdir() Won't Seek to the Right Position
http://www.vnode.ch/fixing_seekdir

オープンソースの品質改善

 普段,我々が目にするオープンソースは,既にテストが終わったものです。とは言え,完全なテストが存在しないのは世の常ですから,すべてのソフトウエアでバグがないわけではありません。また,オープンソースのリリースには特に規定があるわけでもないですから,開発者によってはバグだらけのものをリリースしていることもあります。さらに,特にリリースということなく,cvs等をそのまま晒して「as is」で持って行くことにしている人もいます。ですから,実際に使っているうちに,バグが発見することが少なくありません。それを見つけるのはハッカーとしての楽しみの一つだったりするわけなので,だからどうだと責める性質のものでもありません。

 理想的なオープンソース・プロジェクトの場合,バグを報告すれば直ちに修正され,修正版が公開されます。「直ちに」というのが難しい場合でも,いくつかの修正がまとめられた結果の「バグフィックス版」が公開されるものですし,そうでないものでも「次」の公開版ではバグも合わせて修正されているものです。このサイクルを繰り返すことにより,テストの不十分なソフトウエアであっても,どんどん品質を良くして行くことが可能です。ですから,多少品質が悪いものを公開してしまっても,早晩品質は良くなるものです*3

 多くの人が使っているということは,様々な条件の下で使われるということです。それは「実運用」であることは確かではありますが,作者の立場からすればテストをされているのと同じことです。つまり,完全なテストが困難であっても,テストそのものの頻度や条件を様々に取ることにより,良質のテストが行なわれたのと同じ効果をもたらすわけです。

 この効果は延べの利用頻度によるものですから,なるべく大勢になるべく長い時間使われれば使われるほど,品質が良くなるわけです。「定番」が好まれるのも,このような品質改善の機会が多くあって高品質が期待できるからというのがあるわけです。

 また,オープンソースの場合は利用者の手元にソースコードがあり,誰でも確認や修正が可能です。これはテスターが大勢いるということだけではなく,レビュアーがたくさんいるのと同じですし,デベロッパが大勢いるということにもなります。こういった諸々のものが相乗して,品質が良くなって行くのがオープンソースだということになっています。

*3 修正による品質改善は,「素状」を良くしたことにはなりません。とは言え,バグを取れば取るだけ,実用的な品質が向上するのは確かです。

>>「ショック」からわかったこと
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

著者プロフィール

生越 昌己(おごし まさみ)
 WASP株式会社代表取締役。1983年に島根県松江市の高専を卒業後,1年弱ほど鉄構関係の設計ソフトウエアを書く仕事をして後,地元のテレビ局に14年勤務。その後9年ほどオープンソースの会社の役員を勤める。
 linux.or.jpを立ち上げ,日本Linux協会初代会長を務めた。日本医師会のオープンソース・プロジェクトORCAにかかわり,オープンソースのトランザクション管理システムMONTSUQIを公開している。2007年4月にWASP株式会社を設立。
 著書に「Linuxを256倍使うための本」「コンパイラを作る方法」などがある。日経Linuxにも「Linux一問一答」や「カーネル・コンパイル入門」を執筆している。生越氏の個人ブログはこちら

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介