Требуются ли для разработки приложений для SPARC, мощного ЦП IBM отдельные компиляторы, кроме целей x86, x86-64? - PullRequest
3 голосов
/ 14 июля 2010

Требуется ли для разработки приложений для SPARC , IBM PowerPC отдельные компиляторы, кроме целей x86 и x86-64?

Если да, насколько легко может x86x64 бинарные файлы в Linux будут портированы на SPARC и PowerPC?Есть ли способ моделирования этих сред с использованием виртуализации?

Ответы [ 4 ]

5 голосов
/ 15 июля 2010

Первый ответ: да, для разработки скомпилированного кода для Power Architecture или SPARC вам нужны компиляторы, которые будут генерировать код для этих процессоров. Компилятор, который генерирует код x86 или x86_64, не будет генерировать код, работающий в Power Architecture или SPARC. Однако вы можете найти кросс-компиляторы, работающие на x86 (32 или 64), которые будут генерировать код Power или SPARC. Но другая вещь, о которой нужно знать, это формат объектного файла (elf, xcoff и т. Д.). Набор инструкций является лишь частью картины. Вы можете получить более четкие ответы, если вы предоставите более подробную информацию о вашей конкретной отправной точке и целях.

Во-вторых, обычно не говорят о переносе двоичных файлов. Мы портируем исходный код, который может включать ассемблер, а также C или другие языки. Процесс для этого включает в себя выбор компилятора, после чего вы можете начать итеративный процесс компиляции, переноса, компиляции и компоновки кода для нового оборудования. Я опускаю много деталей. Опять же, если вы укажете больше деталей в своем вопросе, вы можете получить более конкретные ответы.

В-третьих, как уже говорили другие, нет, вы не можете использовать виртуализацию в сценариях, на которые вы ссылаетесь. Вы можете найти приемлемые решения для эмуляции. Опять же, пожалуйста, предоставьте больше подробностей, если можете.

1 голос
/ 14 июля 2010

Нет, виртуализация не является ответом. Виртуализация берет вашу аппаратную платформу и создает независимую «виртуальную» машину из того же оборудования. Поэтому при работе на x86 вы используете виртуализацию для создания второго компьютера с архитектурой x86.

Чтобы смоделировать совершенно другую аппаратную архитектуру, вам нужно рассмотреть эмуляцию .

Насколько легко / сложно переносить программное обеспечение с одной архитектуры на другую, полностью зависит от того, как оно было написано. Если он использует что-то конкретное для одной архитектуры, а не для другой (например, x86 может обрабатывать несогласованные обращения к памяти, а SPARC - нет), вам нужно будет исправить подобные вещи. Другим примером, который может затруднить портирование, было бы, если бы программное обеспечение приняло определенный порядковый номер оборудования.

1 голос
/ 14 июля 2010

SPARC, IBM PowerPC требует отдельного компиляторы, кроме x86 и x86-64 цели?

Я не хочу быть по-настоящему хитрым, но, учитывая, что IBM PowerPC и SPARC не поддерживают наборы команд x86 или x86-64 (т. Е. Говорят на совершенно отдельном языке компьютера), откуда вы вообще взяли, что они совместимы? 1005 *

Есть ли способ имитировать эти среды, использующие виртуализацию?

Возможно, да, но это будет ДЕЙСТВИТЕЛЬНО медленно, потому что вам придется либо переводить машинный код, либо - хорошо - интерпретировать его. Аппаратная виртуализация не будет работать, учитывая, что архитектуры ЦП различны. SPARC и PowerPC - это не просто «разные ярлыки для одного и того же», они действительно разные внутри.

0 голосов
/ 14 июля 2010

Используйте Java или LLVM , или попробуйте QEMU для тестирования других процессоров.

Легко, если ваш код был написан для переносимости, это не так, если он не был«т.Изменение размеров типов данных для каждой платформы и кода, который зависит от нее, встроенной сборки и т. Д., Усложнит задачу.

Домашняя страница для LLVM и QEMU:

...