パスワードを忘れた? アカウント作成
163599 story
オープンソース

さまざまなアーキテクチャで動作するバイナリ仕様「FatELF」、頓挫 31

ストーリー by hylom
「太ったエルフ」 部門より

あるAnonymous Coward 曰く、

マイコミジャーナルで紹介されているが、LinuxやFreeBSD、Solarisなど複数のアーキテクチャで動作するバイナリ仕様「FatELF」の開発が頓挫したようだ。

FatELFは複数の異なるアーキテクチャ向けのバイナリを1つのファイルに収納するフォーマット。Mac OS XではPowerPC向けバイナリとIntel向けバイナリを同一のファイルに収納できるが、これと似たようなものを想定していたようだ。

開発者のRyan Gordon氏は、中止の理由としてFatELFの利点がなかなか理解されなかったことを挙げている。

しかし、実際のところ例えば「WindowsとLinuxとMac OS Xで動く実行ファイル」というものがあったとしても、それが便利か、また必要か、と問われると微妙ではないだろうか。x86とx64のように、単一のファイルで複数のアーキテクチャに対応するメリットがある場合も考えられるので、そちらの方面での活躍を願いたいところだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by feenal (37359) on 2009年11月12日 18時03分 (#1670745)

    僕が通ってた大学にはsparcのSolarisと、i386のLinuxでホームディレクトリを共有しているシステムがあった。
    自分でインストールしたプログラムがもう片方のOSでは動かないわけで、面倒な事もあったけど結局はPATHとLD_LIBRARY_PATHを設定すれば問題なく使えるわけだ。

    なのでどっちでも使えるバイナリってのは考えもしなかったな。
    コンパイルするのも大変そうだし。クロスコンパイラ複数使って作るのか?それとも既にあるバイナリをコマンドでくっつけるのかな。
    それにSolarisやLinuxで使えるようにってことだけど、結局はOSにパッチ当てて再構築しないといけないわけだし、理解が得られなかったのもうなずける。

    でも面白そうだからやってみようって考えたのも理解できる…

  • LinuxやFreeBSD、Solarisなど (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2009年11月12日 19時29分 (#1670816)

    tarball拾ってmakeしてる連中相手にしてもしょうがないと思う。

    •  ホントに、その通りだと思います。
       商用アプリケーション(ソフトベンダからバイナリのみが供給されるという意味で)がもっと繁盛してる世界だったのなら状況も違ったかもと思いますが…
       とは言うものの、Javaで逃げるって手もあるわけだし、商用ソフトベンダにとってあまり魅力的な世界でもないし、fatバイナリで得をする人が少ないのは現状致し方ない気がします。fatバイナリにしようにもアーキテクチャが多岐に渡りすぎるし、エンタープライズな世界ならアーキテクチャ別にリリースした方が良い事もあるでしょうし。
       個人的にはfatバイナリと言えばMacintoshに手を出したのがPowerPC604から(KT7.5.3時代、やっつけPPC対応な頃)なので非常に世話になったのですが、Macの場合は異なるアーキテクチャへの移行をスムーズに行う目的があったので必要だったし、PPCからIntelへの移行が収束しつつある現在でも必要な物だと感じています。(そうじゃないとPPC+Tigerな俺っちが泣く)
       そういえばWindowsNTで4アーキテクチャ対応なfatバイナリもありましたね。

      #なんかApple Computerから高級な靴べらがリリースされましたねoTL

      --
      凛々しく、あほらしく。
      親コメント
      • by Anonymous Coward

        PPCとx86の同居が役目を終えても、x86とx64の同居という新しい役目ができましたしね。

      • Apple "Computer"て昔の社名ですよ。

      • by Anonymous Coward

        >商用アプリケーション(ソフトベンダからバイナリのみが供給されるという意味で)がもっと繁盛してる世界だったのなら状況も違ったかもと思いますが…
        かと言って競争が激しければ一番最初に手を付けて問題無い改善場所になるという。
        というか、バージョンアップでパフォーマンスを謳おうとするだけで消えてしまう可能性が。

    • by Anonymous Coward
      Word でも、Excel でも、PowerPoint でも開ける、魔法の Office ファイル。
      やっぱり要らないかも。
  • コンピュータウイルスとかトロイの木馬とかワームとか……

    • by Anonymous Coward

      > コンピュータウイルスとかトロイの木馬とかワームとか……

       はっきり書こうよ。「HOS」って。
      --
      for(;printf("BABEL "););

  • by Anonymous Coward on 2009年11月12日 16時56分 (#1670656)
    ドワーフだからか
  • by Anonymous Coward on 2009年11月12日 17時00分 (#1670663)
    MacOSX以外には普及してるとは云えないですしね
  • by Anonymous Coward on 2009年11月12日 18時38分 (#1670775)

    > x86とx64のように、単一のファイルで複数のアーキテクチャに対応するメリットがある場合も考えられるので、そちらの方面での活躍を願いたいところだ。

    その段階ですでに頓挫したって言ってるんだろう?

  • by Anonymous Coward on 2009年11月12日 20時32分 (#1670873)

    オプソじゃないバイナリ提供ソフトのインストーラなんかで, どうしてもそういうのが必要なんて状況があったとしても
    ファイルの頭をシェルスクリプトにして, そこで環境判断してファイルの適切な部位からバイナリ呼び出すとか
    現状で普通にできるからな.
    本気で存在意義がわからない.

    • > ファイルの頭をシェルスクリプトにして, そこで環境判断してファイルの適切な部位からバイナリ呼び出すとか

      FatELF [icculus.org]のページを見ると、それと同じことをやろうとしてたみたいですよ。

      The format is very simple: it adds some accounting info at the start of the file, and then appends all the ELF binaries after it, adding padding for alignment.

      で、しかもkernelとlibc、binutilsなんかを修正してまで。そりゃコミュニティにパッチを拒否されるだろうね。
      コミュニティ側のコメントに、「存在しない問題を解決するために多くのコストをかける」とか、「少しの利点のためにファイルサイズやパフォーマンスを犠牲にする」 とかコメントがあったけど、全くそのとおりだと思う。

      実行ファイルよりデータが大部分を占め、起動時のパフォーマンスがたいした問題にならないゲームとかなら、単一バイナリ配布はそれなりにメリットがありそうだけど、
      結局こんな仕様じゃ、ファイル先頭のシェルスクリプトでの振り分けで十分だしね。本当に存在意義が分からない。

      親コメント
  • by Anonymous Coward on 2009年11月13日 1時11分 (#1671059)
    プログラムのことはBASICまでしかわからないのでA.C.なんですが

    ffmpegという八面六臂の大活躍のオープンソースソフトがあるじゃないですか?
    それのLinux用のrpmやdebのパッケージのサイズを調べて見てください。
    で、ffmpegを含む携帯動画変換君のFFMPEG.EXEのサイズを…
    同様にVLCのLinux用パッケージとWindows版VLCのパッケージサイズを…

    これって、静的リンクされたライブラリ分ですよね?

    これだけライブラリの扱い方に違いがあると
    WindowsとLinuxで動くバイナリーって
    すごく限定的な運用しかできないんじゃないでしょうか?

    Windowsの50GBでも食いつぶしかねないC:と
    64bit版でも5GB越えるのが難しいLinuxの/パーティションを比べて…

    Windows用バイナリまでしょったバイナリーなんて…ねぇ。
    • by Anonymous Coward

      >64bit版でも5GB越えるのが難しいLinuxの/パーティションを比べて…

      それはX-WindowやGNOMEまで入ってるのか?

      • by Anonymous Coward
        最近は、細かくパーティションを切るのが流行ってないと云うか、みんな面倒なのかも知れませんね。
        ハードディスクが安くなったから、NFSとかで/usrとかのバイナリを共有して容量節約する動機も薄れてるしね
        (しかもSATAとかで繋がってるハードディスク程には、ネットワークの速度は速くなってない)。
      • NetWalkerがなぜ4GBしか無い内蔵ストレージでUbuntu採用なのか?
        3GBにも及ばないんですよ。NetWalkerのOOo,Firefox入り環境で。

        少し越えて5.4GBとなっているうちの環境には
        Blenderとか試しに入れたソフトまで放置されているし
        GnomeとKDEの両方が入っています。

        #なぜか発売してくれない→超速8GBで激安のSSD

  • by Anonymous Coward on 2009年11月13日 5時41分 (#1671111)

    Javaのような中間コード形式のバイナリでもいいんじゃないのん?
    とか思っちゃいましたが…。

    実行効率とかはこの際無視でw

    • by Anonymous Coward

      実行効率とかあまり気にしなくてもいいなら、
      それこそ ruby なり perl なりで script 書くだけで大抵のことはできちゃうからなぁ。
      (Javaもコンパイルとか実行環境とか多種揃えようとするとメンドクサイ)

      script なら使用メモリ量とか引っかからなければ、CPUもOSも気にせず結構使いまわせちゃうし。

      そもそもどのくらいの規模?のツールに、これを適用するといいことになるのかが想像しにくい……

      所謂GUI利用するものだとそもそもダメだよねぇ

    • by Anonymous Coward
      Java や.NET も JIT や JIT キャッシュも一般的になってますしね。
      .NETで書いたアプリだとインストーラで、インストールの最後にその環境に合わせたネイティブコードのキャッシュ生成が、とくに手間かけずに出来ますね。JIT の欠点である起動速度も劇的に改善されてます。これのおかげで、.NET で書かれてるものでも、ネイティブアプリだと思いこんで使われてるものも多いはず。
      バイナリ配布問題後の 午後のこーだ の配布形式は、この手があったかって思いましたが、今じゃインストール時にコンパイルしちゃうってことは当たり前になっちゃってますので、中間コー
    • by Anonymous Coward

      以前、OSFがANDF(Architecture Neutral Distribution Format)とかやってましたね。
      http://en.wikipedia.org/wiki/Architecture_Neutral_Distribution_Format [wikipedia.org]

      更に遡るとUCSD p-Systemとか。
      http://ja.wikipedia.org/wiki/UCSD_p-System [wikipedia.org]

      # 多分じじいなのでAC

  • by Anonymous Coward on 2009年11月13日 7時37分 (#1671128)

    MS-DOSとWin16、MS-DOSとWin32の両方で動くバイナリとか。NEヘッダやPEヘッダの前に今でも付いてるMZヘッダは飾りではありません。Borland C++の一時期のバージョンは実際にこの仕組みを使っていて、MS-DOSではDOSエクステンダで、Win32ではコンソールアプリとして動作する32ビットコンパイラでした。
    .NETアプリは、MS-DOS環境ではDOSアプリ、Windows 2000以前ではネイティブアプリとして動く3アーキテクチャ対応にもできます。

  • by Anonymous Coward on 2009年11月13日 9時24分 (#1671160)
    >「太ったエルフ」部門より。

    きょうびのネット掲示板風でいくなら、太ったエルフと言うより
    • エルフ脂肪のお知らせ

    と言うべきだった…

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...