Linuxカーネルは商用ソフトよりバグが少ない 162
ストーリー by yoosee
多くの目フィルター 部門より
多くの目フィルター 部門より
otk曰く、"CNET日本語版の記事より。米国のコード分析会社Coverityは、同社の開発するコード分析ツールを用いて、Linuxカーネルのソースコード約570万行に含まれるバグの数を調査した。その結果、985箇所のバグを発見したという(調査結果のサマリ)。しかし、カーネギーメロン大学のデータによると、同等のコード量をもつ商用プログラムには通常5000以上の欠陥が存在するとされており、Coverity社のCEO、Seth Hallem氏は「バグ検出密度という点では、Linuxは非常に良いシステムであるといえる」、また「オープンソースという開発手法が安全なOSを生み出していることが分かる」と結論付けているそうだ。"
Bug探しツールのBug探し (スコア:5, すばらしい洞察)
そもそもがなんだか先に結果ありきのような気がするのだが。
Re:Bug探しツールのBug探し (スコア:1)
Re:Bug探しツールのBug探し (スコア:1)
プログラミングレクリエーション [junkudo.co.jp]の一節を思い出した私は古い人ですね
Re:Bug探しツールのBug探し (スコア:1)
Re:Bug探しツールのBug探し (スコア:1)
一つの基準を設けるためとして同じツールを使っていたと言う事実が必要かも知れない
fix (スコア:4, おもしろおかしい)
Re:fix (スコア:3, すばらしい洞察)
そのバグ修正における影響範囲を考慮せねばならず、
単純にバグ修正しました→OKで終わらないから手をつけられないのだと思います。
ひとつのバグ修正するにしても、
コード検証し、バグ修正&影響範囲調査、
その上で影響範囲分テスト、でリリースとなります。
それを考えるとおいそれと簡単に直せないでしょう。
ぱっとみ単純に見えても、影響範囲多大なことはよくある話ですから。
補足:カーネギーメロン大学の調査データ (スコア:4, 参考になる)
概要を書くと、
・以下は、公の報告書(National Cybersecurity Partnership's Working Group on the Software Lifecycleが4月に発表したリポート)に基づく。なお、そのデータはカーネギー大のソフトウェア工学研究所の分析を引用している
・一般的に、プロプライエタリなソフトウェアは、1,000行のコードあたり1~7つの欠陥(バグ)を持っている
・これを570万行のコードに換算すると、「ざっと5,700~40,000個のバグ」に相当する
……ということで、「985個のバグは少ない」と結論付けているようです。
#ここはカットしないでほしかった>CNET日本
5000以上の根拠はなんだ? (スコア:2, おもしろおかしい)
まさか、Windwosが基準とか言うことはないよな。
# 数学は科学の女王にして奴隷
ふっふっふ (スコア:1)
桁が数個上がるよ。
Re:ふっふっふ (スコア:1, すばらしい洞察)
Windows 2000 = Windows NT 5.0 には log(x) = 5.0 程度のバグが含まれるのです。
Re:ふっふっふ (スコア:2, おもしろおかしい)
Re:ふっふっふ (スコア:1)
少なくとも、割合で議論しないと意味がないような。
Re:ふっふっふ (スコア:1)
○モノリシック
Re:ふっふっふ (スコア:1, おもしろおかしい)
# 「ひみつシリーズ」の「まめちしき」が好きだったので AC
Re:ふっふっふ (スコア:1)
>○モノリシック
そういうアナタは物知りック。
#今日は特に冷えますなぁ。
Re:ふっふっふ (スコア:1)
「黒い石版の周りをサルがうろうろしている」ところを思い浮かべて、
正しいのはモノリス、
という変換をしてます。
Re:ふっふっふ (スコア:1, おもしろおかしい)
振り上げた骨をそのまま空高く放り投げ――、
――物知りになる……。
あれ? ヽ(`Д´)ノウワァァン!! やっぱり間違えたぁぁ!!!
Re:ふっふっふ (スコア:1)
Re:ふっふっふ (スコア:1)
うぃんどうぉず・うぃんどうぉんず (スコア:1)
あくまで Windwos ないし Windwons について (バキッ
コード分析方法 (スコア:2, 興味深い)
調べた方法は同等のものなの?
Coverityのコード分析ツールがろくにバグを抽出出来ない欠陥品な
だけの可能性はないの?
Re:コード分析方法 (スコア:2, 参考になる)
どうやら静的なソースコード検査ツールのようですね。
日本の会社でも何社か似たようなツールを出してるんで、誰かこれらの会社に声かけて、
ツール対決でもけしかければ面白いんじゃないかなぁ
あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
Re:コード分析方法 (スコア:1)
動的なソースコード検査ツールだと…
ガクガクブルブル?
# 週なかで疲れて来たのでID
Copyright (c) 2001-2014 Parsley, All rights reserved.
コード分析ツール vs 謎データ (スコア:2, 興味深い)
(正確かはともかく)根拠のはっきりしたデータと、どうやって調べたかすら分からないデータを同列に扱われてもなあ、という感じです。普通にプレゼン資料とかで使ったら「(後者の)根拠は?」とか突っ込まれて終わりだと思うのですが。
よくても参考以上にはならないでしょう。雑談ネタにはいいですがオープンソースの優位性とか真面目に語るための論拠としては脆弱ではないかと。
Windowsのソースコードが開示されている政府機関等に、同じ条件で分析ツールかけてみてもらいたいですねえ。
-May the sakura-cards be with you.-
Re:コード分析ツール vs 謎データ (スコア:1)
カーネギーメロン大学の研究も、そんなにうさんくさいものではないと思いますが、テスト自体の「バグ」の定義自体も違うでしょうし、そのまま比較することはできないと思います。
なんとなく広告のための話題作りのような気が・・・。
Re:コード分析方法 (スコア:2, 参考になる)
ただ、こういうツールでも発見できる程度のバグがどのくらい残っているか、ということをもって、コードの品質を測る一つの基準とする、と言うことなんじゃないでしょうか。
それでもバグは存在すると考えよう (スコア:2, すばらしい洞察)
コード分析会社が調査するだけで1000近いバグを発見できたのだから問題ありと考えたほうが良いだろう。
多くの目にさらせば、バグは枯れる? (スコア:2, 参考になる)
嘘8: 多くの目にさらせば、バグは枯れる
と書かれていて、オープンソースのバグが少ないという主張に対して、反論を述べています。この本自体も読む価値はあると思います。
Re:多くの目にさらせば、バグは枯れる? (スコア:1)
バグなどの解決の確率があがるのでは?
Re:多くの目にさらせば、バグは枯れる? (スコア:1)
比較対照は (スコア:1, 興味深い)
OpenBSDとかdjbwareとか…
Re:比較対照は (スコア:1)
# 擬似的にコンパイルする様なツールならいけるのかな?
------------------------
いつかきちんと仕上げよう
バグ要因 (スコア:1, おもしろおかしい)
∧_∧
( ´∀`)< ぬるぽ
なんだなと思った、ある冬の寒い朝。
アサーションしよう! (スコア:2, おもしろおかしい)
ごちゃごちゃコメント入れて説明するくらいなら、アサーション入れろ、と。コメントも必要だけどね。
そういや、Microsoft Press から出てた Writing Solid Code [amazon.com] っての、結構面白かったなぁ。Second Edition [amazon.com] が出てるらしい。
屍体メモ [windy.cx]
Re:アサーションしよう! (スコア:1, 参考になる)
それはそれとして、コードコンプリートの2ndエディション [amazon.com]出てますね。
Re:アサーションしよう! (スコア:1)
頭を回転させている人にいい本ですねぇ。手が先に動いちゃう人にまず読んでもらいたい。止まらない人はまぁ放置しましょう。
Re:アサーションしよう! (スコア:1)
ASSERTを知らないその怒り主も開発者(もしくはデバッガー?)
として問題あるような気がするが・・・
というよりその会社、どういう体制でデバッグしているのかの方が気になる。
んで結論は (スコア:1, すばらしい洞察)
我が社の欠陥検出ツールをぜひご利用ください。
なわけ?
仕様 (スコア:1, すばらしい洞察)
Linux でもディスク I/O まわりがアレだったりするのはどうだろう、とか思わなくもないですが、3つも(3つ?4つ)もメモリ使用のインタフェースがあって、ちゃんとつかってもリークしまくりってものよりはましだってことは確かですねぇ。
#ちゃんとディスクに書いてから戻ってきてくれるバージョンの Linux がほしい。
とりあえず分かった事 (スコア:1, おもしろおかしい)
1,000行以下でコーディングすれば、通常はバグが0になるのですね!
Re:とりあえず分かった事 (スコア:1, おもしろおかしい)
# なったらうれしいのになぁ
Re:とりあえず分かった事 (スコア:1)
Copyright (c) 2001-2014 Parsley, All rights reserved.
Re:とりあえずあり得る事 (スコア:1, おもしろおかしい)
350行のコードでも正常だ
500行のコードでも順調だ
1000行のコード、でも仕様にバグが見つかった
というのは結構あり得るのかな。
ホントにバグ? (スコア:1)
検出方法とその調査の結果ソースのどの部分にバグがあるかという
詳細な結果見ないと一概に信用はできんでしょ。
みんなおめでたいなぁ。
Re:ホントにバグ? (スコア:1, すばらしい洞察)
この手のバグ検出ツールというのは限界があります。
たとえばハードウェアのドライバなどで、ハードウェアからは仕様上0~3の値(下位2bitのみ変化し、上位ビットは必ず0)しか返らない場合、4以上の値があり得ない事を前提としてコードを書いたらツールでArray BoundsとかNULL PointerとかUninitializedと検出されたとかね。
コードに現れない制限というのは、たいていこの手のツールではエラーとして報告されます。
もちろんハード側の仕様が変更されればバグとして現出し得るという意味で「バグ」と言えない事も無いかもしれませんが、いかなる仕様変更に対しても動作するようにというのはムチャな話だし、厳密にチェックして仕様が変更されたら全てエラー終了してしまうようになると、下位互換性のある仕様変更でもエラーになってしまったりして「下位互換性があるハードウェアなのに動作しないというバグ」になります。
この辺りをバグとするかしないかというのはツールによっても違ってきますので、精査もせずに違うツールの結果の数字だけを多い少ないと言っても仕方ないですね。
Re:ホントにバグ? (スコア:1)
現時点ではそれだけでしょ。まぁ実際この会社のツール使って
自分で検査すれば分かるんでしょうし、もっと詳細な発表がある
みたいなんでそれ待つのがいいんでしょうけどね。
バスタブ曲線ならぬ・・・ (スコア:1, 興味深い)
オープンソース化直後は顕在化するバグが大量にでてきて大変そうだ。
Re:バグの影響範囲? (スコア:2, 参考になる)
adfs/ affs/ autofs/ autofs4/ bfs/ coda/ cramfs/ devfs/ devpts/ efs/ ext2/ ext3/ fat/ freevxfs/ hfs/ hpfs/ inflate_fs/ intermezzo/ isofs/ jbd/ jffs/ jffs2/ lockd/ minix/ msdos/ ncpfs/ nfs/ nfsd/ nls/ ntfs/ openpromfs/ partitions/ proc/ qnx4/ ramfs/ reiserfs/ romfs/ smbfs/ sysv/ udf/ ufs/ umsdos/ vfat/
となっていて、この中には不安定なものも含まれると思われますが、それはおそらくext2以外の何かでしょう。
Re:やることがないから題名で遊ぶスレでも作るか (スコア:3, おもしろおかしい)
GはHよりIが少ない
#下品なのでAC