2010-03-30 3 views
0

Довольно ясно из самого заголовка, что подразумевается при переносе приложения X на платформу Y?Что означает перенос приложения X на платформу Y?

Скажем, например, у меня есть приложение X, работающее на какой-либо ОС, скажем Y, Что делать, чтобы переносить это приложение на другую ОС, скажем Z?
Означает ли это переписывание нового приложения A для операционной системы Z, которое обязательно имитирует поведение приложения X в операционной системе Y.

Просьба пояснить.

ответ

3

Не существует точного метода для этого. В некоторых случаях требуется полная переписывание. В других случаях это может быть вопрос компиляции для другой ОС или процессора. Это действительно зависит от приложения, исходной платформы и целевой платформы. Все, что работает!

1

Некоторые программы, вы можете просто перекомпилировать новую платформу, никаких проблем. Если это очень простая программа, не использующая ничего конкретного для этой ОС, вы можете уйти от этого. В основном, взяв исходный код, переместив его в другую ОС и используя там компилятор. Тем не менее, даже если есть определенный код, вы можете использовать флагов времени компиляции или константы в своем коде, чтобы заставить компилятор работать по-другому. Я ржавый на мой синтаксис C++, но я думаю, что это должно показать, что я имею в виду:

#if OS == WINDOWS 
root = "C:\\"; 
#elseif OS == LINUX 
root = "/"; 
#endif 

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

Третий способ - это комбинация двух, и, если я правильно помню, что делает Firefox. Большая часть кода остается неизменной, но в ней используется база для запуска, которая специально скомпилирована для этой ОС, которая определяет разные вещи, создает определенные типы переменных, например nsInt (прошло некоторое время с тех пор, как я просмотрел FF код, поэтому я, скорее всего, ошибаюсь, но я знаю, что preending ns - это их соглашение), которое вы использовали бы вместо int, так как он был бы специально разработан для разных платформ.

Когда вы компилируете, для базы выбирается правильная платформа, затем вся программа скомпилируется с использованием этого.

1

Я согласен с Питером.

«портирование», когда сказал нетехнических типов, как правило, означает: «Я хочу использовать X на моей системе - как я могу это сделать» Это может быть так же просто, как копировать один и тот же код (например, Java или .Net) и запускать его (ta da!), Или это может быть так же сложно, как взять X в качестве основы спецификации и перестроить с нуля (полная переписывание на один питер).

«Портирование» для технических пользователей обычно относится к перемещению части функциональности из одной системы в другую. Это может быть операционная система (ОС), инфраструктура (например, Java для .NET), технология (например, Flash для JavaScript + CSS + xHTML) ...

В любом случае вам потребуется дополнительная информация, чтобы предоставить рекомендацию /решение.

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