自動ソフト検査サービスを提供するリーズニングが、Linuxカーネルと5つの商用OSのソースコ ードの比較調査を行った。その結果、いくつかの点で、Linuxカーネルのソースコードの方が、 今回比較対象となった商用OSのソースコードよりも質が高いことが判明した。リーズニングの 報告書は、オープンソースの場合、開発者のみならず一般ユーザーまでもがソースコードの チェックをするからだと、その調査結果を結論づけている。
OSの基礎となるソースコードを調査しているコンサルティ ンググループが調査した結果、Linuxの主要ネットワーキン グコンポーネントの1つが、いくつかの点で、競合する非オ ープンソースソフトウェアよりも優れていることが判明した。
自動ソフトウェア検査サービスを提供しているリーズニン グは、Linuxをはじめとする6つのOSのソースコードの一部 を調査した。この調査は、プログラミングの欠陥の数とその 比率を比較するものだ。特に、リーズニングは主要ネットワ ーキング技術であるTCP/IPを検査し、その結果、ほかの5 つのOSと比較してLinuxの欠陥は数が少ないことが判明し た。
「このLinuxカーネルに実装されているTCP/IPのオープンソ ース版のソースコードは明らかに、汎用OSに実装されてい る商用TCP/IPのソースコードよりも質が高い」とリーズニン グは先週、調査報告書の中で発表している。リーズニング は、ネットワーキング製品2つに実装されている特定の目的 で使用されるソースコードの比較調査も行い、そのうちの1 つがもう片方よりも優れていることをつきとめている。
リーズニングの調査によると、Linuxのプログラムの欠陥 の比率は、コード1000行当たり0.1となっている。2種類の UNIXを含む汎用OSのプログラムの欠陥の比率は、コード 1000行当たり0.6~0.7。2つの組み込み用OSのプログラム の欠陥の比率は、コード1000行当たり0.1~0.3という数字に なっている。
ソースコードは、人間によって記述された、コンピュータに 対する命令・支持の集まりで、これは後でコンピュータが理 解できるよう「バイナリ」コードに翻訳される。オラクルやマ イクロソフトなどの企業は主として、比較的理解しやすいソ ースコードの代わりに人間には理解しにくいバイナリコード を提供している。
リーズニングの調査は、オープンソースソフトウェアならで はの可能な広範囲にわたる調査が問題の早期発見につな がると主張する、エリック・レイモンド氏のようなオープンソース支持者の見解の正 当性を裏づけるものだ。リーズニングの報告書は、「十分な人数をかけて調査を行 えば、すべてのバグを発見できる」と続ける。
この意見には、リーズニングの取締役、スコット・トラッペ氏も同意している。
「オープンソースアプリケーションならば、誰でもソースコードを見ることができる。主 なオープンソースアプリケーションには、Linuxカーネルや“Apache Web server”な どがあるが、何百人もの人々が、ソフトウェアがどうやって動くのかを調べたり、ま た改変したり、バグを見つけるためにそのソースコードを読む。開発プロセスも公 開されるので、これらの個人批評家は発見したエラーを報告できるし、適切なエラ ーの修正方法まで教えてくれる」(トラッペ氏)
「残念なことに、このプロセスは、ほとんどの商用製品の開発サイクルに当てはめ るには、時間がかかりすぎる」(トラッペ氏)
リーズニングは、Linuxと比較したOS名を公表することはないとしながらも、調査 をした汎用OS3つのうち、2つはUNIXのとあるバージョンだと明かしている。この比 較調査は、Linuxカーネルのバージョン2.4.19 を使用して行われた。比較対象の製 品に関して、同社は、通常は厳密に保護され見ることのできない独自仕様のソフト ウェアのソースコードを入手する許可を得た。
現在一般的に普及しているUNIXのバージョンには、サン・マイクロシステムズの 「Solaris」をはじめ、IBMの「AIX」、ヒューレット・パッカードの「HP-UX」などがある。 これらのUNIX OSは、レッドハットおよびSuSEなどのソフトウェアベンダーが販売す るLinuxやマイクロソフトのWindowsと競合している。
強硬に独自仕様のソフトウェアを支持するマイクロソフトは、当初Linuxをはじめ多 くのオープンソースプロジェクトの原則となっているGPL(General Public License)に 関して、法律的解釈を巡って意見を戦わせていたが、後にその見解を撤回してい る。同社は、この「ウイルスのように蔓延する」GPLのお陰で、GPLのソフトウェアと 一緒に使用すれば、ほかのソフトウェアまでオープンソースにされかねないと警戒 していた。
マイクロソフトは、現在ではソースコードの共有はメリットが大きいとしているもの の、各国政府と契約を結び、その政府にだけWindowsソースコードを開示し、さらに は各国向けの特別バージョンの開発さえ行っている。
リーズニングは、メモリが、実際にはまだ使用されているのに開放されたと認識さ れたり、適切に初期化されないまま使用されたため予約された領域を超えてデータ を記録しようと試みるといった、プログラミングの欠陥をチェックした。今回発見され た欠陥はしばしば、バッファのオーバーランをひき起こすもので、環境が整えば ハッカーにコンピュータを乗っ取られる恐れのある重大な欠点の1つだ。
トラッペ氏は、ネットワーク専用製品に搭載されるネットワークアクセルレータに代 表されるハードウェアの違いによって比較が難しいため、異なるバージョン間の TCP/IPパフォーマンスの比較は行わなかったと述べた。
前々回、Red Hat Linuxのサポート期間短縮を例にあげて、Linuxやオープンソースソフトウェアのサポートについての問題提起をした。サポート提供期間が3年では、ユーザー側はRed Hat以外の選択肢を探そうとするのではないだろうか。
さて、前々回、Red Hat Linuxのサポート期間短縮を例にあげて、Linuxやオープンソースソフトウェアのサポートについての問題提起らしきものをした。その中でRed Hat Linux Advanced Serverのサポート提供期間を「3年」として短いと書いた。
現時点でもRed Hatのページでは3年と記載されているが、こちらのページでは5年としている。よく読むと、4年目以降は「メンテナンス期間」として、セキュリティ上の問題が発生した場合のみ修正版を提供するということのようだ。果たしてこのサポートポリシーがユーザーに受け入れられるのか、今後の動向を注目しておこう。個人的な感想では、セキュリティについては3年ではなく5年になったところで、なんとか50点といったところか。
こうなると、ユーザー側はRed Hat以外の選択肢を探そうとするのではないだろうか。実際、そのような話もチラホラと聞こえてくる(私の近しいところだけかもしれないが)。色々と選択肢はあるだろうが、必ず出てくるのが商用系のアプリケーションの動作保証という問題だ。商用アプリケーションのサポートプラットホームは、Red Hat Linux Advanced Serverに事実上一本化されていくか、あるいはUnited Linuxも食い込んでくるかという感じだろうか。もちろん例外もあるだろうが、プラットホームの部分できちんとビジネスができていることがサポートプラットホームの前提となるだろう。
当たり前の話だが、ユーザーはシステム提供側のサポート無しにはやってはいけない。システム提供側は、ハードウェアベンダー、ソフトウェアベンダーのサポート無しにはやっていけない。
この、ごく当たり前と思われている仕組みを、オープンソースが少しでも変えていけないのだろうか。
オープンソースの世界では提供側と利用者側の関係が近いために、ソフトウェアや情報のフローがやや曖昧になりがちだ。これに従来の考え方で望むと、サポートの仕組みがよく分からないという話になってしまうのだろう。
この辺りを整理することが、Linuxディストリビューションベンダーの役割として期待されていた(少なくとも私は期待していた)ところだろう。そして、この期待に対して一定の役割を果たしたものの、結局のところ構造自体はあまり変わらずに、製品だけが変わったという感じだろうか。それはオープンソースが受け入れられる上で非常に重要なことではあるが、目に見える改革が起きることはなかったと私は感じている。
もちろん、これで終わったわけではない。まず一定の成果が見えたところで、その仕組みを乗り越えて何か新しいものが生まれることを期待したい。私自身も、ここ3カ月ぐらいで何かを見つけ出してみたい。最近になってコマンドラインの使い方から始めるLinux基礎のトレーニングを開始した。思った以上に受講希望が多く、また意欲も高い。意外とこんなところにこそ、なにかヒントが隠れているような気がしてならない。とりあえず、エンジニア全体のスキルアップをはかるための支援活動は、より強く、広範囲に行っていこうと思う。まずはそこからだ。
[宮原 徹,びぎねっと]