Патч (программный)

Запла́тка, или па́тч (англ. 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».

См. также

Ссылки

The Jargon File version 4.4.7 entry for patch(англ.)

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home