Портирование программного обеспечения

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

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

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

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

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

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

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

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

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

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

Примеры

  • Для ОС Linux графический редактор The GIMP является родным, а например для Windows он был портирован
  • Сама операционная система 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.)
de:Portierung

en:Porting es:Portabilidad fr:Portage informatique gl:Portable he:Porting id:Porting it:Portabilità ja:移植 (ソフトウェア) ms:Pengalihan (perisian) nl:Porten no:Portering pl:Port (oprogramowanie) pt:Portabilidade (informática) sk:Portovanie sv:Portning zh:移植

Личные инструменты

Served in 0.135 secs.