パスワードを忘れた? アカウント作成
434214 journal

BAKの日記: volatile 2

日記 by BAK

I 社の CPU の評価ボードを借りて,いじってみている. I 社自身がポーティングしたという Linux カーネルがあるので,こいつを使って動かしている.

で,gettimeofday() で,1/100 ms 以下の値が出ていないのを発見. 「タイマーの resolution が低いのかしらん」と,ユーザーズマニュアルを見ると,タイマーの精度は充分. むしろ高すぎる(?)ぐらい. まぁ,ソースをよくよく眺めてみると,2種類のタイマーをチャンポンにして取り違えているのが原因のようである.

が,よくよく型定義を見てみると,あらかじめカーネルで定義されている型を再定義している. まぁ,ここらはまだ許せるのだけど,レジスタのポインタに対して volatile 宣言していないという,大きな問題を発見.

一気にコードが胡散臭く思えた一日なのであった.

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • Linuxは、(ちゃんと動くかどうかはともかく)誰でもいじれるし。
    結局、GPLには本来、品質保証ないっすよね。
    とりあえず動けば、厳密に検証するかどうかは使い手が要求するかどうかに任されるわけで。
    i386以外だと、結構アレなコードで動いてるモノって、多いと思うな。

    # 以前に、SuperHの割り込み処理をごそごそいじってた時の感想です。
    # 確か、いいかげんなCF対応コードで、IRQ15をブッ潰してたっぽ。
    • んー,まぁ,基本的には無保証だし,そういうあたりはわかるんだけどね. が,そこのポーティングは上位のプロジェクトの方にフィードバックされてなく,「野良ポーティング」だったり.

      コードのフィードバックがあれば,より多くの人の目に触れることになるし,バグを見つけた人も気軽にパッチを送ることができるわけで. 「おーぷんそーすは品質が高い」というのは,そういった「目玉の多さ」に支えられているところも多いわけで.

      まぁ,「請求すれば CD-ROM を郵送」とか,「自社サイトでこっそりと公開」というのでも GPL には抵触はしないのだけど.やはり開発に参加してこそがオープンソースの華,というか,旨味が味わえるのではないかなぁ,と思ったりします.

      親コメント
typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...