誰も読まないOSのソース・コードという記事

はてなの最近の人気記事に載っていたので読んでみたけど、この記事はLinuxなどのオープンソースのOSのソースコードを読むことが実はお仕事に繋がるんです。だから、最近読んでる人が少なくてバグ出しがあまり進んでないけどみんな読んでね。
という記事なのかも。

いろいろアララ?と思いながら読んだので、↑の考えに至るまでに時間がかかってしまったよ。

どこでアララ?と思ったか

まずこの記事の冒頭には

まず,結論から言おう。 「エンジニアがOSのソース・コードを読めるようになると,活躍の場が一気に広がる」。そして,「コツさえ分かれば,OSのソース・コードはびっくりするほど簡単に読める」。

と、書かれている。が、コツをつかみ、すらすらと読めるようになるには

カーネルのソースを読むんが生活そのものや」

という状況で無ければいけないらしい。
確かに毎日プリントアウトした、ソースコードを持ち歩いてどこでも読んでいれば、読める(理解できる)ようになるに違いない・・・

が、kernelのコードを読むためにlinuxなどのオープンソースなOSなどを使っているわけでは無く、何か目的があってそのOSを使っているのだし、kernelのコードを読むよりもそのOSの上で動作させるソフトウエアのマニュアルなり、ソースなりを読むべきなのでは無かろうか?

あとは、見つけたバグの例が悪い気がする。
ここで3度ほどアララ?とおもった。
この記事はOSのソースコードとかいうタイトルになっていて、冒頭ではカーネルソースコード云々といっているのに、tracerouteのコードが例にあがっている。
確かにOS添付のソースコードには違いないと思うけど、コマンドはkernelとは別だと思う。
ふつうのコマンドとkernelではコードの読みかたが違う気がするというのは私がkernelのコードを読もうと思って挫折した組だからだろうか?(汗

さらに例にあがっているのはtraeroute6.cのコードのエラーメッセージの並び順のミス。

「え,こんなに分かりやすいバグも放置されてるんですか?」

と書かれているが、IPv6を使っている人がどのくらいいるのだろうか?(実はたくさんいたりして・・・)
使わないコマンドのバグなんてソースコードを読むのが趣味の人でもいない限り見つからない気がする。

さらにさらに

718 if (t >= 128 && t <= 132)
719 {
720 return(ttab2[t]);
721 }
中略
配列の範囲を超えて書き込むため,極めて危険なバグである。

とあるが、これ、配列の範囲を超えて読み込んでるから変な値が返るの間違いじゃなかろうか?

最後の一個は最近c言語をさっぱりいじらなくなってしまったので、私の間違いかもしれない・・・

というようなアララ?ポイントを書き並べてやっと、この記事とタイトルの関連性が見えてきたのであります。

http://itpro.nikkeibp.co.jp/article/OPINION/20060406/234744/