Портирование программного обеспечения: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
стд. оформление Вступления
Строка 1: Строка 1:
{{нет источников|date=2008-01-07}}
{{нет источников|date=2008-01-07}}
{{другие значения термина|Порт}}
{{другие значения термина|Порт}}
В [[программирование|программировании]] под ''порти́рованием'' понимают адаптацию некоторой [[компьютерная программа|программы]] или её части, с тем чтобы она работала в другой среде, отличающейся от той среды, под которую она была изначально написана с максимальным сохранением её пользовательских свойств. В этом основное отличие понятий ''порт'' и ''форк'' - в первом случае все пользовательские свойства пакета стараются сохранить, а во втором это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами. Процесс портирования также называют ''портированием'' или ''переносом'', а результат — ''портом''. Но в любом случае главной задачей при портировании является сохранение привычных пользователю интерфейса и приёмов работы с пакетом и его свойств. Добавление новых или удаление части имеющихся свойств при портировании программных продуктов не допускается.
'''Порти́рование''' — в [[программирование|программировании]] под порти́рованием понимают [[Адаптация (кибернетика)|адаптацию]] некоторой [[компьютерная программа|программы]] или её части, с тем чтобы она работала в другой [[Среда программирования|среде]], отличающейся от той среды, под которую она была изначально написана с максимальным сохранением её пользовательских свойств. В этом основное отличие понятий ''порт'' и ''форк'' в первом случае все пользовательские свойства пакета стараются сохранить, а во втором это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами.


[[Процесс]] портирования также называют ''портированием'' или ''переносом'', а результат — ''портом''. Но в любом случае главной задачей при портировании является сохранение привычных пользователю интерфейса и приёмов работы с пакетом и его свойств. Добавление новых или удаление части имеющихся свойств при портировании программных продуктов не допускается. <br />
Портирование - включение кода программы в работу [[Аппаратно-программное обеспечение|Аппаратно-программного обеспечения]].
Портирование включение кода программы в работу [[Аппаратно-программное обеспечение|Аппаратно-программного обеспечения]].


__NOTOC__
__NOTOC__
'''Портируемость''' ('''переносимость''', {{lang-en|portability}}) обычно относится к одной из двух вещей:
'''Портируемость''' (переносимость, {{lang-en|portability}}) обычно относится к одной из двух вещей:
# Портируемость — как возможность единожды откомпилировав код (обычно в некоторый [[промежуточный код]], который затем компилируется во время исполнения, «[[на лету]]», {{lang-en|Just-In-Time}}), затем запускать его на множестве платформ без каких-либо изменений.
# Портируемость — как возможность единожды откомпилировав код (обычно в некоторый [[промежуточный код]], который затем компилируется во время исполнения, «[[на лету]]», {{lang-en|Just-In-Time}}), затем запускать его на множестве платформ без каких-либо изменений.
# Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания [[Си (язык программирования)|языка Си]] и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например [[Smart Package Manager]]).
# Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания [[Си (язык программирования)|языка Си]] и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например [[Smart Package Manager]]).

Версия от 10:15, 6 октября 2011

Порти́рование — в программировании под порти́рованием понимают адаптацию некоторой программы или её части, с тем чтобы она работала в другой среде, отличающейся от той среды, под которую она была изначально написана с максимальным сохранением её пользовательских свойств. В этом основное отличие понятий порт и форк — в первом случае все пользовательские свойства пакета стараются сохранить, а во втором — это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами.

Процесс портирования также называют портированием или переносом, а результат — портом. Но в любом случае главной задачей при портировании является сохранение привычных пользователю интерфейса и приёмов работы с пакетом и его свойств. Добавление новых или удаление части имеющихся свойств при портировании программных продуктов не допускается.
Портирование — включение кода программы в работу Аппаратно-программного обеспечения.


Портируемость (переносимость, англ. portability) обычно относится к одной из двух вещей:

  1. Портируемость — как возможность единожды откомпилировав код (обычно в некоторый промежуточный код, который затем компилируется во время исполнения, «на лету», англ. Just-In-Time), затем запускать его на множестве платформ без каких-либо изменений.
  2. Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания языка Си и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например Smart Package Manager).

Необходимость в выполнении портирования возникает обычно из-за различий в системе команд процессора, различий между способами взаимодействия операционной системы и программ (API - Application Program Interface), принципиальных различий в архитектуре вычислительных систем, либо по причине некоторых несовместимостей или даже полного отсутствия используемого языка программирования в целевом окружении.

Международные стандарты (в частности, продвигаемые ISO) значительно упрощают портирование, благодаря тому что они описывают среду исполнения программ таким образом, что различия между платформами становятся минимальными. Часто портирование программ между платформами, реализующими один и тот же стандарт (такой как POSIX.1) сводятся к перекомпиляции программы на новой платформе.

Существует также всё расширяющийся набор инструментов, облегчающих портирование, например, таких как GCC, предоставляющий неизменный язык программирования на различных платформах.

Некоторые языки программирования высокого уровня (Eiffel, Esterel) достигают портируемости путем трансляции исходного кода в промежуточный язык, имеющий компиляторы для многих процессоров и операционных систем.

Термин портирование часто применяется к компьютерным играм, а именно, к процессу переноса компьютерной игры с первоначальной целевой платформы (персонального компьютера или игровой приставки) на другую платформу. Ранние порты видеоигр, по сути, были результатом значительного или полного переписывания программы, но всё больше современных игр разрабатывается с использованием программного обеспечения, позволяющего генерировать код как для PC так и для одной или нескольких игровых консолей.

В зависимости от того, для чего первоначально разрабатывалось то или иное программное обеспечение, его называют родным или портированным. Родное (англ. native) ПО разрабатывается сразу для той платформы (аппаратного обеспечения и/или операционной системы), о которой идёт речь. Портированное (англ. ported) ПО разрабатывается для одних платформ, после чего переносится для работы на других платформах.

Примеры

  • Для GNU/Linux графический редактор The GIMP является родным, а например на Windows, ОС семейства BSD UNIX - FreeBSD/OpenBSD/NetBSD, DEC UNIX (DEC Ultrix, DEC OSF/1)/Tru64UNIX, системы семейства AT&T UNX - SGI IRIX, Sun OS, Sun Solaris, HP-UX и ряд других UNIX систем он был портирован с сохранением своих пользовательских свойств.
  • Сама операционная система Linux портирована на огромное количество аппаратных платформ[1].
  • Логическая игра World of Goo была сначала выпущена для Wii и Windows, а потом портирована на Mac OS X и Linux.

См. также

Примечания

  1. The Linux Kernel Archives: Хотя Linux и разрабатывался сначала для 32-разрядных x86-ПК (от 386), сегодня он также работает (по крайней мере) на следующих архитектурах: Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и Analog Devices Blackfin; для многих из них как в 32-разрядном, так и в 64-разрядном варианте. (Although originally developed first for 32-bit x86-based PCs (386 or higher), today Linux also runs on (at least) the Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, and Analog Devices Blackfin architectures; for many of these architectures in both 32- and 64-bit variants.)

Ссылки