2

Ubuntuサーバーでコンパイルされた単純なLD_PRELOADモジュールを作成しました。このプリロードは、Solaris、FreeBSD、CentOS などの他のシステムでも機能しますか? 一部の OS で特別な問題はありますか?

4

1 に答える 1

1

このLD_PRELOADメカニズムは、すべての ELF システム (Linux、Solaris など) で機能します。

理論的には、アーキテクチャが一致していれば同じライブラリを異なるオペレーティング システムで使用できますが (たとえば、i386 ライブラリは Solaris SPARC では動作しません)、多くの落とし穴があります。たとえば、C ライブラリが提供する多くのデータ構造は、サイズとメンバーの配置が異なり、アーキテクチャが同じであってもオペレーティング システム間で互換性がありません。

ライブラリで呼び出す関数に十分注意すればLD_PRELOAD、オペレーティング システム間で互換性のあるライブラリを作成できる場合があります。必ずテストする必要があります。

于 2012-06-10T14:44:42.197 に答える