Портирование программного обеспечения
процесс адаптации программного обеспечения для работы на другой системе / Материал из Википедии — свободной encyclopedia
Уважаемый Wikiwand AI, давайте упростим задачу, просто ответив на эти ключевые вопросы:
Перечислите основные факты и статистические данные о Портирование программного обеспечения?
Кратко изложите эту статью для 10-летнего ребёнка
Порти́рование (англ. porting[1]) — в программировании — адаптация некоторой программы или её части так, чтобы она работала в другой среде, отличающейся от той среды, под которую она была изначально написана, с максимальным сохранением её пользовательских свойств. В этом основное отличие понятий порт и форк — в первом случае все пользовательские свойства пакета стараются сохранить, а во втором — это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами.
Процесс портирования также называют переносом, а результат — портом. Но в любом случае главной задачей при портировании является сохранение привычных пользователю интерфейса и приёмов работы с пакетом и его свойств. Добавление новых или удаление части имеющихся свойств при портировании программных продуктов не допускается.
Портируемость (переносимость, англ. portability) обычно относится к одной из двух вещей:
- Портируемость — компиляция кода (обычно в некоторый промежуточный код, который затем интерпретируется или компилируется во время исполнения, «на лету», англ. Just-In-Time[2]), затем запускать его на множестве платформ без каких-либо изменений.
- Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания языка Си и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например: Smart Package Manager).
Необходимость в выполнении портирования возникает обычно из-за различий в системе команд процессора, различий между способами взаимодействия операционной системы и программ (API — Application Program Interface), принципиальных различий в архитектуре вычислительных систем, либо по причине некоторых несовместимостей или даже полного отсутствия используемого языка программирования в целевом окружении.
Международные стандарты (в частности, продвигаемые ISO) значительно упрощают портирование[3], благодаря тому что они описывают среду исполнения программ таким образом, что различия между платформами становятся минимальными. Часто портирование программ между платформами, реализующими один и тот же стандарт (такой как POSIX.1) сводятся к перекомпиляции программы на новой платформе.
Существует также всё расширяющийся набор инструментов, облегчающих портирование, например, таких как GCC, предоставляющий неизменный язык программирования на различных платформах.
Некоторые языки программирования высокого уровня (Eiffel[4], Esterel) достигают портируемости путём трансляции исходного кода в промежуточный язык, имеющий компиляторы для многих процессоров и операционных систем.
Термин портирование часто применяется к компьютерным играм, а именно, к процессу переноса компьютерной игры с первоначальной целевой платформы (персонального компьютера или игровой приставки) на другую платформу. Ранние порты видеоигр, по сути, были результатом значительного или полного переписывания программы, но всё больше современных игр разрабатывается с использованием программного обеспечения, позволяющего генерировать код как для компьютеров, так и для одной или нескольких игровых приставок.
Применительно к видеоиграм, портом также может называться улучшенный осовремененный движок, заменяющий исполняемые файлы игры и требующий для своей работы оригинальные файлы с ресурсами игры. Такие порты не обязательно делаются для программной и аппаратной совместимости — часто целью является расширение возможностей игры, сдерживаемых устаревшим примитивным движком.
В зависимости от того, для чего первоначально разрабатывалось то или иное программное обеспечение, его называют родным или портированным. Родное (англ. native[5]) ПО разрабатывается сразу для той платформы (аппаратного обеспечения и/или операционной системы), о которой идёт речь. Портированное (англ. ported) ПО разрабатывается для одних платформ, после чего переносится для работы на других платформах.