パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

OpenBSD、malloc(3) を改良。多数パッケージに影響か」記事へのコメント

  • Linux等でも同じようにmallocを修正すれば、バグの叩き出しができるんでしょうか?
    • Re:これはつまり (スコア:2, 参考になる)

      by Anonymous Coward
      Linuxではむかしからmallocはmmapを使っています。というかbrkはPOSIX.1ではないので意図的に使っていません。それからシステムコールになんかしたらパフォーマンスがあがらないので、そんな馬鹿なことを平気でする感覚がわからないです。mallocのバグ出しには
      • Re:これはつまり (スコア:2, すばらしい洞察)

        > それからシステムコールになんかしたらパフォーマンスがあがらないので、

        ええと、malloc(3)はシステム「ライブラリ」のtypoですよね?

        たしか、OpenBSDは安全性をウリにしているOSだと思うので、パフォーマンスを犠牲にして安全性を保障するというのは一つの戦略として僕はわからんでもないです。システムライブラリのmallocを置き換えてしまえば、mallocを使用している多くのプログラムの安全性を一挙に高めることが出来ますからね。

        Pur
        • by Anonymous Coward
          たぶんあなたはmallocの中身が理解できていないので、まず、そこから始めます。mallocはまずシステムコールmmapあるいはbrkを呼びある程度のメモリ空間をプールしておきます。次に、mallocが呼ばれたときに、その中を必要に応じて刻んで渡します。freeをされると、リサイクル用リストに入ります。次にmallocが呼ばれたらfreeされているリサイクル用リストに適切なものがあれば、そちらから引渡し、なければプールされている領域から取ります。これがユーザ空間で行われるため、単純なポインタの付け替えだけで処理できます。ですから非常に高速です。
          • by tt_net (17623) on 2005年08月29日 4時31分 (#789379)
            大変有用な解説をありがとうございます。でも、ごめんなさい、それは踏まえてこの話はしているつもりでした(ところで、#788069のACさんですよね?) 。そもそも、それが分かってないと、このトピックの面白みがわかりませんし;)。

            つまり、#788069では、ユーザランドのライブラリ じゃなくてシステムコールで解決しようとしているのが馬鹿なこととおっしゃってたのですね。システムライブラリに組み込むのが馬鹿なことなのではなく、そのアルゴリズムに関する異議なのですよね?それなら合点です。すいません。

            ところで、ユーザランドでのmalloc置き換えの実装と言うと、例えば以下のものもそうなのではないかと想像しますが、これらと比べても今回のOpenBSDのアプローチはhigh costですかね? 昔、これらに類するツールをいくつかちょこっと試してみた感想なのですが、それらも通常のmallocを使った場合と比べて大分パフォーマンスが悪かった記憶がありますので、それ以上遅いと実用には向かない気がいたします。その時、私の使ったツールのアルゴリズムがたまたま悪かったのでしょうか? この種のツールのみなさんの比較経験を教えて頂けるとありがたいです。

            • ccmalloc http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/
            • Electric Fence http://perens.com/FreeSoftware/


            # って、もうこの記事にはコメントつかなそうですが...
            親コメント

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...