Патч

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:24, 28 декабря 2016.

Патч (англ. patch /pætʃ/ — заплатка) - часть программы, или небольшая отдельная программа, представляющая собой временное дополнение к части кода, как правило, для быстрого исправления существующих багов и ошибок ПО.

История

Когда для загрузки программ в компьютеры использовались перфокарты или бумажные ленты, разработчики программ распространяли патчи в виде перфокарт с отличным от первоначального набором перфорации или указывали на перфоленте места, которые следует изменить. Пользователи заменяли соответствующие перфокарты в стопке или вырезали помеченную часть ленты и вклеивали вместо неё новый кусок программы. Тогда же и возникло название «patch».

Позже для распространения патчей стали использоваться магнитные ленты. Когда же были изобретены дискеты, патчи стали отправляться на дискетах в конвертах по почте. Сегодня компьютерные программы и их пользователи скачивают патчи с сайтов разработчиков.

Причины использования

  • Описание изменений обычно меньше полной версии программы, пригодной для установки с нуля (за исключением большого количества изменений, например, если обновление происходит сразу через несколько версий).
  • Промежуточный вариант между мелкими патчами и заменой всего сразу — патч, включающий в себя изменения, указанные в нескольких последовательных патчах за определённый период — кумулятивный патч (лат. cumulatio — «увеличение, скопление»).
  • Описание изменений может включать в себя контекст, так что патч может быть применим к версиям файлов, отличающимся от тех, для которых он был создан (обычно возможно для текстовых файлов). Патч, содержащий и заменяемые данные, позволяет отменить изменения, в том числе при наличии не мешающих последующих изменений.

Виды патчей

  • Патчи могут распространяться в виде списка различий между двумя версиями файла или набора файлов. Такие патчи обычно используются при разработке программного обеспечения. Существуют специальные утилиты для автоматического создания и применения таких патчей.
  • Патчи для обновления откомпилированного программного обеспечения распространяются в виде двоичных файлов, скачиваемых самой программой, либо в составе самостоятельных программ, запускаемых самим пользователем. В этом случае необходимые изменения файлов программы или их полная замена зачастую происходит автоматически, без вмешательства пользователя.

Применение

Коротко выполняемые патчами задачи можно описать следующими действиями:

  • исправление обнаруженных за время существования программы недочетов и ошибок;
  • изменение или улучшение работы существующих функций;
  • добавление новых функций и возможностей;
  • обеспечение совместимости с разрабатываемыми отдельно библиотеками.

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

Для автоматического обновления у конечного пользователя патчи используются обычно в крупных проектах, где важен объём пересылаемых данных.

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

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

Сервер Apache развился из набора патчей, написанных ранее различными веб-мастерами для добавления функциональности к NCSA HTTPd. По легенде, отсюда и возникло название — означающее, что это есть по сути коллекция патчей: «a patchy server».

Все изменения кода Firefox и других продуктов Mozilla Foundation существуют в виде патчей, которые учитываются с помощью «багов» в системе Bugzilla.

Музыкальное ПО

В программах для создания музыки патчем называется сохранённый в памяти музыкального синтезатора набор программируемых параметров звучания определённого звука. Программный модуль, содержащий различные дополнительные звуковые эффекты и пресеты.

Участие пользователя в обновлении ПО

Бывает, что само обновление становится причиной новых ошибок в работе. Поэтому опытные пользователи предпочитают выждать некоторое время, пока не появятся первые отзывы о результатах использования новой версии ПО, и уже потом решают, стоит ли устанавливать данный патч. Особенно критичен данный момент для системных администраторов и при установке больших обновлений операционной системы.

В случае обновления операционных систем и серверного программного обеспечения патчи играют важную роль в поддержании безопасности и устранении дыр в защите. Чтобы облегчить установку таких обновлений, операционные системы часто поддерживают автоматические или полуавтоматические механизмы обновления. При этом осторожные пользователи (в частности, системные администраторы) обычно отключают автоустановку патчей, пока не убедятся в стабильной работе исправленных версий на чужих примерах.[1] В случае больших или очень важных патчей разработчики часто сначала сами проводят предварительное тестирование (бета-тестирование).

Принудительное обновление

Иногда разработчики программ принуждают пользователей к обновлению. Это может выражаться в ограничении доступа с помощью необновлённой программы к сервисам разработчика (например, невозможности устанавливать последующие патчи и обновления), либо в полном или частичном отказе самой программы.

Причинами могут быть:

  • уязвимости в программе, делающие её использование опасным для сервисов разработчика, компьютера пользователя, или других компьютеров;
  • изменения или исправления, напрямую связанные с сервисами разработчика (совместимость между установленными у всех пользователей копиями, правила игры, условия использования сервисов);
  • борьба против определённых действий пользователя (например, читерства в сетевых играх или использования несвободных компонентов ПО, не одобренного правообладателем); при этом могут удаляться важные функции, например возможность установки Unix-подобных операционных систем на игровую консоль PlayStation 3 («OtherOS»).

Источники