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

м
Bot: HTTP→HTTPS (v465)
(<ref></ref>)
м (Bot: HTTP→HTTPS (v465))
 
'''Портируемость''' (переносимость, {{lang-en|portability}}) обычно относится к одной из двух вещей:
# Портируемость — как возможность единожды откомпилировав код (обычно в некоторый [[промежуточный код]], который затем интерпретируется или [[JIT-компиляция|компилируется во время исполнения]], «на лету», {{lang-en|Just-In-Time}}<ref>[httphttps://books.google.ru/books?id=fbyUHGk9cH0C&pg=PA413&dq=porting+jit Towards Intelligent Engineering and Information Technology] Chapter 6.3 Java: «A major benefit of using bytecode is porting… JIT compilation and dynamic recompilation allow Java programs to approach the speed of native code without losing portability»</ref>), затем запускать его на множестве платформ без каких-либо изменений.
# Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания языка [[Си (язык программирования)|Си]] и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например: [[Smart Package Manager]]).
 
Необходимость в выполнении портирования возникает обычно из-за различий в системе команд [[процессор]]а, различий между способами взаимодействия [[операционная система|операционной системы]] и программ ([[API]] — Application Program Interface), принципиальных различий в архитектуре вычислительных систем, либо по причине некоторых несовместимостей или даже полного отсутствия используемого [[язык программирования|языка программирования]] в целевом окружении.
 
Международные стандарты (в частности, продвигаемые [[ISO]]) значительно упрощают портирование<ref>Donald A. Lewine. [httphttps://books.google.ru/books?hl=en&lr=&id=rHyMRyDEG3gC&oi=fnd&pg=PR23 POSIX Programmer’s Guide. Writing Portable UNIX Programs with the POSIX.1 Standard] // O’Reilly, 1991—1994 «IEEE Std 1003.1-1988, commonly known as POSIX … When applications follow POSIX rules, it is easier to move programs from one POSIX-conforming operating system to another»</ref>, благодаря тому что они описывают среду исполнения программ таким образом, что различия между платформами становятся минимальными. Часто портирование программ между платформами, реализующими один и тот же стандарт (такой как ''[[POSIX]].1'') сводятся к перекомпиляции программы на новой платформе.
 
Существует также всё расширяющийся набор инструментов, облегчающих портирование, например, таких как [[GCC]], предоставляющий неизменный язык программирования на различных платформах.
| date = 1996-02-11
| format = txt
}} Пакет GIMP 0.54 2006 года, см файл README: «The GIMP has been tested (and developed) on the following operating systems: Linux 1.2.13, Solaris 2.4, HPUX 9.05, SGI IRIX»</ref>, а например на [[Windows]], Mac OS X<ref>William von Hagen. [httphttps://books.google.ru/books?id=rsSlrQLB8-gC&pg=SA14-PA35&dq=gimp+ported Ubuntu Linux Bible: Featuring Ubuntu 10.04 LTS] Chapter «Using GIMP» page 14-35</ref>, ОС семейства BSD UNIX — FreeBSD/OpenBSD/NetBSD, DEC UNIX (DEC Ultrix, DEC OSF/1)/Tru64UNIX, и ряд других UNIX систем он был портирован с сохранением своих пользовательских свойств. В процессе портирования были разработаны графические библиотеки [[GTK]] (GIMP Toolkit) и [[gdk]] (GIMP Drawing Kit), которые позволили использовать GIMP вне зависимости от наличия библиотеки Motif.<ref>[http://docs.gimp.org/en/gimp-introduction-history-early-days.html GNU Image Manipulation Program. User Manual. Appendix A. GIMP History 2. The Early Days of GIMP] «Main programming advantages were the new toolkits, GTK (GIMP Toolkit) and gdk (GIMP Drawing Kit), which eliminated the reliance on Motif»</ref>
* Сама операционная система [[Linux]] портирована на огромное количество аппаратных платформ.<ref>[http://kernel.org/ 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)</ref>
* Логическая игра [[World of Goo]] была сначала выпущена для [[Wii]] и Windows, а потом портирована на [[Mac OS X]] и Linux.