Windowsで使用されているCOFFフォーマットとgnu toolでサポートされているELFフォーマットにつきまして、下記の3点について教えていただけないでしょうか。


https://ja.wikipedia.org/wiki/COFF
https://ja.wikipedia.org/wiki/Executable_and_Linkable_Format

1) Windows上ではCOFFというフォーマットが使われているそうなのですが、cygwinのgccでビルドされる実行バイナリはELFフォーマットなのでしょうか?

2) cygwinでビルドされる実行バイナリがELFフォーマットだとすると、Windows上でELFフォーマットを実行するのはどのように行われているのでしょうか?
i) ELFフォーマットをWindows上で実行することは可能なので問題なし。
ii) ELFファイルを作成する際にリンクされるライブラリが互換を担保している。
iii) ELFファイルを実行する際に、cygwinのモジュールが互換性を担保している
iv)その他

3) Ubuntsu On WindowsではUbuntuのバイナリがそのまま実行できたと思いますが、UbuntuのELFファイルとcygwinのELFファイルは何か違いがあるのでしょうか?

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2017/05/17 10:40:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:cx20
    > 1) Windows上ではCOFFというフォーマットが使われているそうなのですが、cygwinのgccでビルドされる実行バイナリはELFフォーマットなのでしょうか?

    Cygwin 用の実行バイナリは ELF ではなく COFF フォーマットだったかと思います。
    今、Cygwin 入れていないので確認できないですが Cygwin の gcc でコンパイルした実行バイナリは cygwin1.dll をリンクしていたかと思います。

     <参考情報>
     ■ Cygwin
     https://www.cygwin.com/
     
     > a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
  • id:uraxurax
    コメントありがとうございます。
    勉強になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません