2016-08-17 4 views
0

Я использую приложение, разработанное в Sun Solaris 8, и это зависит от архитектуры SPARC (приложение, использующее некоторые librairies системы Solaris 8).Экспорт приложения с использованием архитектуры Sparc в intel x86

Можно ли экспортировать это приложение из SPARC в Intel x86? Могу ли я экспортировать также в другую ОС, например, Ubuntu, Windows или другую?

Я надеюсь, что это было ясно, и если вам нужна дополнительная информация, я попробую уточнить. Спасибо.

+0

Вы спрашиваете о перекомпиляции из источника для x86? Или у вас есть только двоичные файлы? –

+0

Благодарим вас за ответ @PeterCordes, я новичок в этом проекте, но я думаю, что это касается двоичных файлов. Но если у вас есть ответ на перекомпиляцию источника, я тоже с удовольствием возьму – Hohenheim

+1

Ну, если у вас есть только двоичные файлы, вам нужно либо декомпилировать/перекомпилировать (может не сработать), либо вам нужен эмулятор SPARC, надеюсь, с JIT, а не интерпретатор. Если у вас есть источник, вы просто скомпилируете его с версией библиотек x86. (например, на x86-64 Solaris или x86-64 Ubuntu или что-то еще). –

ответ

2

Я предполагаю, что мы говорим о родном приложении здесь (двоичный код машины).

Короткий ответ: Нет для обоих вопросов.


Длинный ответ:

Можно ли экспортировать это приложение с SPARC для Intel x86?

Да, но это будет означать:

  • Полностью перепроектировать его
  • Re-записи в подходящем языке высокого уровня (например, C)
  • Compile для Intel x86

Могу ли я экспортировать также в другую ОС, например, Ubuntu, Windows или другие?

Я предполагаю, что вы говорите о другой ОС, работающей на архитектуре SPARC. Если нет, обратитесь к предыдущему ответу. Если да, то вы можете, но вы должны:

  • Перевести все системные вызовы с Solaris на новую ОС (это может варьироваться от относительно легко очень сложной в зависимости от того, насколько отличается архитектура ОС).
  • Возможно, изменить разделы ELF32, чтобы они соответствовали новой ОС.

Кроме того, для не-UNIX целевой ОС (например, Windows):

  • Перестроить исполняемый файл с помощью новой операционной системы исполняемый формат (например, NE, PE, LE ...)

Это то, что появляется на моей голове при первой мысли.

+0

@ спасибо за ответ! Поэтому, если я понимаю ваши длительные ответы: немного сложно экспортировать из SPARC в Intel x86. И если это возможно: это требует большого количества знаний, особенно на языке C. Но мой вопрос будет, может быть, глупым: приложение разработано в C на SPARC/Solaris 8, оно будет другим, если оно разработано в smae langage C для intel x86? это не только проблема компиляции? – Hohenheim

+1

SPARC Linux может запускать двоичные файлы Solaris, если в ядре есть уровень совместимости с syscall. IDK, но это стоит посмотреть, потому что Solaris является/самой популярной ОС для этой платформы. Раньше x86 Linux обладал уровнем совместимости для системных вызовов FreeBSD (но теперь это наоборот: x86 ядра FreeBSD имеют уровень совместимости для двоичных файлов x86 Linux.) –

+3

@Hohenheim Ну, в зависимости от размера исполняемого файла мы говоря о. Также зависит от вашего навыка RE, но, судя по вашим вопросам, я бы поставил его в «почти невозможный» диапазон сложности, если вы не захотите погрузиться в безумное количество времени на него. Это будет связано с большей сборкой и информацией об исполнении исполняемого файла Solaris, чем C. C является просто примером. Вы можете использовать любой другой язык, чтобы переписать его. Это будет совершенно другим, даже если оба они записаны на C, поскольку вывод языка C - это машинный код, и это характерно для каждой архитектуры. – m0skit0

Смежные вопросы