|
Запла́тка, или па́тч (англ. patch /pætʃ/ — заплатка) — часть программы, или небольшая отдельная программа, используемая для устранения проблем в программном обеспечении. Сюда входит исправление ошибок, изменение внешнего вида, улучшение эргономичности или производительности программ, и любые другие изменения, которые кто‑то пожелал сделать. Бывает, что и сами патчи становятся причиной новых неполадок.
Способы распространенияРазработчики программного обеспечения публикуют патчи в различной форме. Так как авторы закрытых программных продуктов скрывают исходные коды, их патчи распространяются в виде откомпилированных программ. При запуске такие патчи изменяют некоторые файлы программы или полностью замещают их. Также патчи могут распространяться в виде списка различий между двумя версиями исходных кодов. Этот тип патчей обычно используется в open source-проектах. Предполагается, что пользователи или другие разработчики сами внесут эти изменения и соберут программу заново. Существуют специальные утилиты для автоматического создания и применения таких патчей. Так как слова «патч», «заплатка» обычно используются для обозначения небольших исправлений, то в случае крупных изменений может использоваться другое определение. Большие патчи, или патчи серьёзно меняющие программу, иногда называются «service pack» или «software updates». ИсторияВ не столь отдалённые времена, когда компьютеры были большими, разработчики программ распространяли патчи на бумажных лентах или перфокартах. Пользователи вырезали помеченную часть ленты или убирали соответствующие перфокарты из стопки и вклеивали (или вкладывали) вместо неё полученный кусок программы. Тогда и возникло название «patch» (англ. patch — заплатка). Позже для распространения патчей стали использоваться магнитные ленты. Когда же были изобретены дискеты, патчи стали отправляться на дискетах в конвертах по почте. Сегодня, в эру повсеместного интернета, конечные пользователи скачивают патчи с сайтов разработчиков. ПрименениеРазмер патчей может варьироваться от нескольких килобайтов до сотен мегабайтов. В частности, патчи могут быть очень большими при изменении или замене непрограммных данных, таких как файлы с графикой и звуком. Такие ситуации часто возникают при обновлении компьютерных игр. По сравнению с первоначальной установкой программы применение патчей обычно не занимет много времени. Патчи, получаемые из интернета, однако, могут устанавливаться дольше, в зависимости от скорости соединения. В случае обновления операционных систем и серверного программного обеспечения патчи играют важную роль в поддержании безопасности и устранении дыр в защите. Чтобы облегчить установку таких обновлений, операционные системы часто поддерживают автоматические (или полуавтоматические) механизмы обновления. Полностью автоматическое обновление намного распространённее на рынке потребителей, так как Service Pack 2 для Microsoft Windows XP включал этот механизм автоматически. Осторожные пользователи (в частности, системные администраторы) обычно отключают автозапуск патчей, пока не убедятся в стабильной работе исправленных версий на чужих примерах. В случае больших или очень важных патчей разработчики часто сначала проводят бета-тестирование. Применение патчей к встроенному ПО — особый случай. Перепрошивка оборудования чаще всего подразумевает полную замену программного кода, а не изменение текущей его версии. Обычно такой патч состоит из двоичных данных и специальной программы, которая заменяет текущую версию на новую. Любая неожиданная ошибка или вмешательство в процесс (например, выключение питания) могут привести к катастрофическим результатам. Пример такого вида патчей — перепрошивка БИОСа материнской платы компьютера. Компьютерные игрыВ отличие от таких приложений, как текстовый редактор, патчи играют для компьютерных игр особую роль. В компьютерных играх патчи могут быть предназначены для изменения правил или алгоритмов игры. Необходимость в выпуске таких патчей может возникать при обнаружении возможности жульничества игроков. Многопользовательские игры могут не допустить игрока, использующего версию игры, отличную от официальной. Это делается для того, чтобы избежать конфликта версий и не допустить читерства. Microsoft выпустила специальный патч для своего симулятора полётов Microsoft Flight Simulator после атак в сентябре 2001-го на World Trade Center в Нью-Йорке. Из карты города были изъяты башни торгового центра. Это редкий пример патча, выпущенного из уважения к чувствам людей, а не для исправления ошибки в программе или усиления защиты от копирования. АвтоматизацияЗачастую современные программы обновлений могут управлять патчами. Автоматизация всего процесса упрощает задачу конечного пользователя — ему достаточно запустить программу, а та уже решит, нужно ли ставить патчи, и в каком порядке. Бывает и так, что программа скачивает обновления из интернета без участия пользователя. Такой способ часто применяется в поддержке серверного программного обеспечения и операционных систем. В ситуации, когда администратору приходится следить за несколькими компьютерами такой подход помогает поддерживать надёжность системы в целом. Обычно таким способом происходит установка обновлений безопасности. ИнструментыСуществуют специальные утилиты для помощи в создании самоустанавливающихся патчей. Подробнее см. в статье Самораспаковывающийся архив. Патчи в разработке программного обеспеченияВ разработке программного обеспечения патчи иногда требуются для устранения проблем с часто используемыми или важними библиотеками и частями исходного кода. Такое обычно происходит в широкомасштабных проектах, и очень редко — в малых проектах. В open source-проектах патчи, исправляющие частные проблемы или добавляющие некоторую функциональность, такую как поддержка других языков, обычно отправляются авторам или публикуются в сети. Например, на ранних стадиях разработки Linux — ядра операционной системы — Линус Торвальдс, его автор, получал тысячи писем с патчами к его версии от множества программистов. Сервер Apache первоначально развивался как набор патчей, написанных веб-мастерами для добавления функциональности к NCSA HTTPd. Отсюда и название, означающее, что это — коллекция патчей: «a patchy server». Все изменения кода Firefox и других продуктов Mozilla Foundation существуют в виде патчей, которые учитываются с помощью «багов» в системе Bugzilla. См. такжеСсылки |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net