Патч: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎Интересные факты: уточнение ссылки на вики-статью
Содержимое страницы заменено на «ЛУЧШЕ ИМЕТЬ ДУРГА ЧЕМ ДРУГ ДРУГА <br /> Категория:Программное о...»
Строка 1: Строка 1:
ЛУЧШЕ ИМЕТЬ ДУРГА ЧЕМ ДРУГ ДРУГА
{{Орисс|дата=9 февраля 2013}}
{{нет ссылок|дата=14 мая 2011}}
{{другие значения}}

'''Запла́тка'''{{Нет АИ|8|10|2016}}, или '''патч''' ({{lang-en|patch}} {{IPA|/pætʃ/}} — заплатка) — информация, предназначенная для автоматизированного внесения определённых изменений в компьютерные [[файл]]ы. Применение патча иногда называется «пропатчиванием».

Патчем или ''обновлением'' {{lang-en|update}} называется, в частности, содержащее такую информацию автоматизированное отдельно поставляемое программное средство, используемое для устранения проблем в [[программное обеспечение|программном обеспечении]] или изменения его функциональности.

Исправление может применяться к уже установленной программе, либо к её [[исходный код|исходным кодам]]. Сюда входит исправление ошибок, изменение внешнего вида, улучшение [[эргономичность|эргономичности]] или [[Производительность компьютера|производительности]] программ, а также любые другие изменения, которые разработчик пожелал сделать.

Размер патчей может варьироваться от нескольких [[килобайт]] до сотен [[мегабайт]]. В частности, очень большими патчи могут быть при изменении или замене непрограммных данных, таких как файлы с графикой и звуком (часто встречаются в [[компьютерная игра|компьютерных играх]]). Тем не менее, большой размер может быть вызван и многочисленностью вносимых изменений. При этом слова «патч», «заплатка» обычно используются для обозначения небольших исправлений, большие же патчи, серьёзно меняющие или обновляющие программу, часто называются ''«[[service pack]]»'' или ''«[[software update]]s»''.

== Причины использования патчей ==
* Описание изменений обычно меньше полной версии программы, пригодной для [[установка программного обеспечения|установки]] с нуля (за исключением большого количества изменений, например, если обновление происходит сразу через несколько версий).
** Промежуточный вариант между мелкими патчами и заменой всего сразу — патч, включающий в себя изменения, указанные в нескольких последовательных патчах за определённый период — ''кумулятивный патч'' ({{lang-lat|cumulatio}} — «увеличение, скопление»).
* Описание изменений может включать в себя контекст, так что патч может быть применим к версиям файлов, отличающимся от тех, для которых он был создан (обычно возможно для текстовых файлов). Патч, содержащий и заменяемые данные, позволяет отменить изменения, в том числе при наличии не мешающих последующих изменений.

== История ==
Во времена, когда для загрузки программ в компьютеры использовались перфокарты или бумажные ленты, разработчики программ распространяли патчи в виде перфокарт с отличным от первоначального набором перфорации или указывали на [[Перфолента (носитель информации)|перфоленте]] места, которые следует изменить. Пользователи заменяли соответствующие перфокарты в стопке или вырезали помеченную часть ленты и вклеивали вместо неё новый кусок программы. Тогда же и возникло название «patch» ({{lang-en|patch}}, буквально — «заплатка»).

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

== Виды патчей ==
* Патчи могут распространяться в виде списка различий между двумя версиями [[файл]]а или набора файлов. Такие патчи обычно используются при разработке программного обеспечения. Существуют специальные [[утилита|утилиты]] для автоматического создания и применения таких патчей (например, [[diff]] и [[patch (UNIX)|patch]]; различные [[Система управления версиями|системы управления версиями]]).
* Патчи для обновления [[Компиляция (программирование)|откомпилированного]] программного обеспечения распространяются в виде двоичных файлов, скачиваемых самой программой, либо в составе самостоятельных программ, запускаемых самим пользователем. В этом случае необходимые изменения файлов программы или их полная замена зачастую происходит автоматически, без вмешательства пользователя.

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

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

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

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

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

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

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

В случае обновления [[операционная система|операционных систем]] и [[Сервер (программное обеспечение)|серверного программного обеспечения]] патчи играют важную роль в поддержании [[компьютерная безопасность|безопасности]] и устранении [[Уязвимость (компьютерная безопасность)|дыр в защите]]. Чтобы облегчить установку таких обновлений, операционные системы часто поддерживают автоматические или полуавтоматические механизмы обновления.
<!--Полностью автоматическое обновление намного распространённее на рынке потребителей, так как Service Pack 2 для [[Windows XP|Microsoft Windows XP]] включал этот механизм автоматически. — ???-->
При этом осторожные пользователи (в частности, [[системный администратор|системные администраторы]]) обычно отключают автоустановку патчей, пока не убедятся в стабильной работе исправленных версий на чужих примерах<ref>Действительно в основном для серверов, на рабочих станциях обычно стоит автообновление.</ref>. В случае больших или очень важных патчей разработчики часто сначала сами проводят предварительное тестирование ([[бета-тестирование]]).<!-- это тут не на своём месте. --AVRS -->

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

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

== Патч встроенного ПО ==
Во многих устройствах [[Firmware|программное обеспечение]] находится в памяти самого устройства в виде т. н. ''прошивки'', которая включает в себя сразу и [[операционная система|операционную систему]], управляющую работой устройства, и собственно набор программ, обеспечивающих выполнение тех или иных его функций. Поэтому если разработчиком предусмотрена возможность замены его прошивки (''перепрошивка''), то применение патча на [[программное обеспечение]] устройства чаще всего представляет собой полную замену целиком всей прошивки на более новую версию. Обычно такой патч состоит из файла, содержащего обновленный программный код в двоичном виде, и специальной программы, записывающей его в память устройства вместо прежней версии.
Пример такого вида патчей — перепрошивка [[БИОС]]а [[материнская плата|материнской платы]] [[компьютер]]а или современного мобильного телефона, подключённого к компьютеру.

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

== Разработка патчей ==
Для создания, использования и учёта патчей используют [[система управления версиями|системы управления версиями]].

=== Автоматизация установки ===
Зачастую современные программы обновлений могут управлять патчами. [[Автоматизация]] всего процесса упрощает задачу конечного пользователя — ему достаточно запустить программу, а та уже решит, нужно ли ставить патчи, и в каком порядке. Бывает и так, что программа скачивает обновления из интернета без участия пользователя. Такой способ часто применяется в поддержке серверного программного обеспечения и операционных систем. В ситуации, когда администратору приходится следить за несколькими компьютерами такой подход помогает поддерживать надёжность системы в целом. Обычно таким способом происходит установка обновлений безопасности.

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

: ''Подробнее см. в статье '''[[Самораспаковывающийся архив]]'''.''

== Интересные факты ==
* [[Microsoft]] для своего [[Авиасимулятор|симулятора полётов]] [[Microsoft Flight Simulator]] выпустила специальный патч после [[Теракты 11 сентября 2001 года|атак 11 сентября 2001 года]] на [[Всемирный торговый центр]] в Нью-Йорке. Из карты города были изъяты башни торгового центра.
* Существуют также неофициальные пользовательские патчи, качество вносимых изменений которых может как отличаться от изменений разработчиков, так и в некоторых случаях нет. Создаются такие патчи из-за разных причин, например, из-за того, что разработчик в предыдущих патчах не заметил ошибку, для отключения проверки лицензии (в случае, если распространяется пиратская копия ПО) или же если патчи к этому продукту не выпускались вообще.
*Есть пиратская программа [https://biblsoft.ru/android/system/utilities/839-lucky-patcher Lucky Patcher], которая делает патчи для программ ОС Android. А именно: удаляет рекламу, отключает проверку лицензии и делает эмуляцию покупок. Для её работы нужны права [[Root|ROOT]].

== См. также ==
* [[Портирование программ]]

== Примечания ==
{{примечания}}

== Ссылки ==
* [http://www.catb.org/jargon/html/P/patch.html The Jargon File version 4.4.7 entry for patch]{{ref-en}}


<br />
[[Категория:Программное обеспечение]]
[[Категория:Программное обеспечение]]
[[Категория:Сопровождение программного обеспечения]]
[[Категория:Сопровождение программного обеспечения]]

Версия от 16:29, 10 июня 2019

ЛУЧШЕ ИМЕТЬ ДУРГА ЧЕМ ДРУГ ДРУГА