web-dev-qa-db-ja.com

ARMプロセッサでx86バイナリを実行することは可能ですか?

すでにコンパイルされたx86バイナリをARMバイナリに変換/再コンパイルすることは可能ですか?

BeagleBoard をコマンドラインUbuntu(Maverick)で使用していて、 Ventrilo サーバーを実行したいのですが、それらが提供するx86実行可能ファイルをハードウェアで実行することはできません。私が知ることができるように(おそらくアーキテクチャが異なるため)。

残念ながら、ソースにアクセスしてネイティブに再コンパイルすることはできません。

そうでない場合、バイナリを実行する他の方法はありますか(たとえばエミュレーション)?

6
Ryall

アーキテクチャでネイティブに利用できる代替ソフトウェアに切り替えることをお勧めします。つぶやきやつぶやきが思い浮かびます。

つぶやきとつぶやきのホームページ

6
anddam

短いバージョン:ソースコードがない場合はありません。

ロングバージョン:qemu(またはkvmやvirtualboxなど)を使用し、最小限のx86エミュレートシステムを使用してサーバーを実行できます。

4
OneOfOne

答えは「たぶん」だと思います。通常、実行可能ファイルについて十分に理解していれば、逆コンパイルできます。 ARMコンパイラーを備えた言語にコードを逆コンパイルし、そのバイナリーをARMプラットフォームにコンパイルするために必要なライブラリーは、可能であるはずです。 。

例:VentriloサーバーをCソースコードに逆コンパイルでき、このソースコードがANSI標準である場合、コードを再コンパイルするためにARMコンパイラで十分なサポートがある可能性があります。

ただし、所有者ではないソフトウェアをリバースエンジニアリングするため、合法的にそれを実行できるかどうかはわかりません。

1
Machado