cc1についてのページ

  • (by K, 2006.03.19)

おおざっぱな説明

  • gcc3.2をベースに作られたCコンパイラ
  • 基本的にgcc3.2と同じように使えますが、gcc3.2にはバグがあって、たまにプログラムを.dataセクション内に生成してしまいます。GOはそのバグを直したものです。
  • このバグがあってもWindowsやLinuxでは問題なく動作するので長く気づかれないできたようですが、OSASKや「はりぼてOS」では大きな問題になります。
    • 余談ですが、WindowsやLinuxで問題なく動くのは、これらのOSでは.textセクションと.dataセクションが同じセグメントに割り当てられるためです。これは逆にいうと.dataセクション内の「データも実行できる」状態であるともいえます。だからバッファをオーバーフローさせてバッファ内のウイルスコードを実行させるなんてことができるわけです(x86-64では新しい仕組みを作ってこのウイルスに対抗しましたが、そもそもOSがOSASKや「はりぼてOS」のような仕組みになっていれば、こんな問題は起きないのです)。

こめんと欄


コメントお名前NameLink

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2006-07-18 (火) 08:28:17 (5455d)