Патч (программный)
Материал из Википедии — свободной энциклопедии
-
У этого термина существуют и другие значения, см. Патч.
Запла́тка, или па́тч (англ. patch — заплатка) — часть программы, или небольшая отдельная программа, используемая для устранения проблем в программном обеспечении. Сюда входит исправление ошибок, изменение внешнего вида, улучшение эргономичности или производительности программ. Хотя бывает, что и сами патчи становятся причиной новых неполадок.
Содержание |
[править] Способы распространения
Разработчики программного обеспечения публикуют патчи в различной форме. Так как авторы закрытых программных продуктов скрывают исходные коды, их патчи распространяются в виде откомпилированных программ. При запуске такие патчи изменяют некоторые файлы программы или полностью замещают их.
Также патчи могут распространяться в виде списка различий между двумя версиями исходных кодов. Этот тип патчей обычно используется в open source-проектах. Предполагается, что пользователи сами внесут эти изменения и соберут программу заново. Существуют специальные утилиты для автоматического создания и применения таких патчей.
Так как слова «патч», «заплатка» обычно используются для обозначения небольших исправлений, то в случае крупных изменений может использоваться другое определение. Большие патчи, или патчи серьёзно меняющие программу, иногда называются «service pack» или «software updates».
[править] История
В не столь отдалённые времена, когда компьютеры были большими, разработчики программ распространяли патчи на бумажных лентах или перфокартах. Пользователи вырезали помеченную часть ленты или убирали соответствующие перфокарты из стопки и вклеивали (или вкладывали) вместо неё полученный кусок программы. Тогда и возникло название «patch» (англ. patch — заплатка). Позже для распространения патчей стали использоваться магнитные ленты. Когда же были изобретены дискеты, патчи стали отправляться на дискетах в конвертах по почте. Сегодня, в эру повсеместного интернета, конечные пользователи скачивают патчи с сайтов разработчиков.
[править] Применение
Размер патчей может варьироваться от нескольких килобайтов до сотен мегабайтов. В частности, патчи могут быть очень большими при при изменении или замене непрограммных данных, таких как файлы с графикой и звуком. Такие ситуации часто возникают при обновлении компьютерных игр.
По сравнению с первоначальной установкой программы применение патчей обычно не занимет много времени. Патчи, получаемые из инетернета, однако, могут устанавливаться дольше, в зависимости от скорости соединения.
В случае обновления операционных систем и серверного программного обеспечения патчи играют важную роль в поддержании безопасности и устранении дыр в защите. Чтобы облегчить установку таких обновлений, операционные системы часто поддерживают автоматические (или полуавтоматические) механизмы обновления.
Полностью автоматическое обновление намного распространённее на рынке потребителей за счёт того, что Service Pack 2 для Microsoft Windows XP включал этот механизм автоматически.
Осторожные пользователи (в частности, системные администраторы) обычно отключают автозапуск патчей, пока не убедятся в стабильной работе исправленных версий на чужих примерах. В случае больших или очень важных патчей разработчики часто сначала проводят бета-тестирование.
Применение патчей к встроенному ПО — особый случай. Перепрошивка оборудования чаще всего подразумевает полную замену программного кода, а не изменение текущей его версии. Обычно такой патч состоит из двоичных данных и специальной программы, которая заменяет текущую версию на новую. Любая неожиданная ошибка или вмешательство в процесс (например, выключение питания) могут привести к катастрофическим результатам. Пример такого вида патчей — перепрошивка БИОСа материнской платы компьютера.
[править] Компьютерные игры
В отличие от таких приложений, как текстовый редактор, патчи играют для компьютерных игр особую роль. В компьютерных играх патчи могут быть предназначены для изменения правил или алгоритмов игры. Необходимость в выпуске таких патчей может возникать при обнаружении возможности жульничества игроков. Также посредством патчей в игры часто добавляются дополнительные возможности и различные улучшения игрового процесса. Такой вид патчей особенно распространён в MMORPG-играх и шутерах от первого лица.
Многопользовательские игры могут не допустить игрока, использующего версию игры, отличную от официальной. Это делается для того, чтобы избежать конфликта версий, и является также лишним стимулом обновлять свою версию игры.
Microsoft выпустила специальный патч для своего симулятора полётов Microsoft Flight Simulator после атак в сентябре 2001-го на World Trade Center в Нью-Йорке. Из карты города были изъяты башни торгового центра. Это редкий пример патча, выпущенного из уважения к чувствам людей, а не для исправления ошибки в программе.
[править] Автоматизация
Зачастую современные программы обновлений могут управлять патчами. Автоматизация всего процесса упрощает задачу конечного пользователя — ему достаточно запустить программу, а та уже решит, нужно ли ставить патчи, и в каком порядке. Бывает и так, что программа скачивает обновления из интернета без участия пользователя. Такой способ часто применяется в поддержке серверного программного обеспечения и операционных систем. В ситуации, когда администратору приходится следить за несколькими компьютерами такой подход помогает поддерживать надёжность системы в целом. Обычно таким способом происходит установка обновлений безопасности.
[править] Инструменты
Существуют специальные утилиты для помощи в установке патчей. Например, WinZip имеет утилиту самораспаковки, которая может запустить программу патча после извлечения из архива.
[править] Патчи в разработке программного обеспечения
В разработке программного обеспечения патчи иногда требуются для устранения проблем с часто используемыми или важними библиотеками и частями исходного кода. Такое обычно происходит в широкомасштабных проектах, и очень редко — в малых проектах.
В open source-проектах патчи, исправляющие частные проблемы или добавляющие некоторую функциональность, такую как поддержка других языков, обычно отправляются авторам или публикуются в сети. Например, на ранних стадиях разработки операционной системы Linux Линус Торвальдс, её автор, получал тысячи писем с патчами к его версии от множества программистов.
Сервер Apache первоначально развивался как набор патчей, написанных веб-мастерами для добавления функциональности к NCSA HTTPd. Отсюда и название, означающее, что это — коллекция патчей: «a patchy server».