アカウント名:
パスワード:
デバイスドライバのバイナリ互換性はどうかしらないけど、通常のプログラムのバイナリ互換性はかなり高い。もちろんちゃんと互換性を意識してないとダメだけど。10年前に作られた某社のバイナリの課金プログラムが CentOS 6.3 でもバッチリ動く。動作させるには互換ライブラリを入れる必要があった。
ABI は問題ないなくても、その上で動く動的リンクのライブラリ管理に問題があったりします。
これは kernel じゃなくてディストリビューションの問題と言うことなんだけど、同じライブラリの世代番号のまま中身が違ってたりするものだから、リンクエラーや動作の違いが生じたりする理由です。
バイナリを静的リンクすれば、そういう問題に影響されないのですが、こんどは図体がでかくなっちゃうしね。 いろいろなディストリビューションで動作する共通のバイナリを作るのはなかなか大変だった…と言う苦労をしたのはもう10年も前の話なのですが、今でもあまり変ってなさげですね。
>LinuxにもWin Side-by-Sideみたいなのがあればいいのにね。
勘弁してくれ。あれはdll hellがmanifest hellになっただけだ。MSですらVS2010からCRTは昔のDLLに戻したというのに。
> LinuxにもWin Side-by-Sideみたいなのがあればいいのにね。> それともあるのかな?
相当する機能はLinux含むSunOS4系共有ライブラリを使うUNIX系OS一般にありますよ。
共有アセンブリに相当する機能は、共有ライブラリのSONAMEとして同一の名前を指定することにより行います。
プライベートアセンブリに相当する機能は、リンク時に -rpath オプションで、プライベートな共有ライブラリのパスを指定する(ないし、起動時のLD_LIBRARY_PATH環境変数を指定する)ことで行います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
linuxって意外とバイナリ互換性高い (スコア:0)
デバイスドライバのバイナリ互換性はどうかしらないけど、通常のプログラムのバイナリ互換性はかなり高い。もちろんちゃんと互換性を意識してないとダメだけど。
10年前に作られた某社のバイナリの課金プログラムが CentOS 6.3 でもバッチリ動く。動作させるには互換ライブラリを入れる必要があった。
Re: (スコア:1)
ABI は問題ないなくても、その上で動く動的リンクのライブラリ管理に問題があったりします。
これは kernel じゃなくてディストリビューションの問題と言うことなんだけど、同じライブラリの世代番号のまま中身が違ってたりするものだから、リンクエラーや動作の違いが生じたりする理由です。
バイナリを静的リンクすれば、そういう問題に影響されないのですが、こんどは図体がでかくなっちゃうしね。 いろいろなディストリビューションで動作する共通のバイナリを作るのはなかなか大変だった…と言う苦労をしたのはもう10年も前の話なのですが、今でもあまり変ってなさげですね。
の
Re:linuxって意外とバイナリ互換性高い (スコア:0)
それともあるのかな?
まぁ、Windowsらしくわかりづらいし、あまり美しくはない解決策ではあるけれども。
Re:linuxって意外とバイナリ互換性高い (スコア:2)
Re: (スコア:0)
>LinuxにもWin Side-by-Sideみたいなのがあればいいのにね。
勘弁してくれ。あれはdll hellがmanifest hellになっただけだ。MSですらVS2010からCRTは昔のDLLに戻したというのに。
Re: (スコア:0)
> LinuxにもWin Side-by-Sideみたいなのがあればいいのにね。
> それともあるのかな?
相当する機能はLinux含むSunOS4系共有ライブラリを使うUNIX系OS一般にありますよ。
共有アセンブリに相当する機能は、共有ライブラリのSONAMEとして同一の名前を指定することにより行います。
プライベートアセンブリに相当する機能は、リンク時に -rpath オプションで、プライベートな共有ライブラリのパスを指定する(ないし、起動時のLD_LIBRARY_PATH環境変数を指定する)ことで行います。